cancel
Showing results for 
Search instead for 
Did you mean: 

CIF - Change Pointers

Former Member
0 Kudos

Hi All,

We have configuered the Change pointers for all the fields to trigger Product master changes from ERP to SCM APO. The Integration Model is working fine and as far as what I understood is when it is CIFFING it will send all the data from ERP to SCM. SCM it will change only those data where there is a mismatch between the systems.

Now we have a requirement - For few custom fields we wanted to send the data only if it is changed. We have activated the Userexit/BADi for handling custom fields. So, during the actual CIF is there a way to determine in the user exit to determin which field got changed - if the field is not changed then we should ignore that particular field.

Thank You.

Regards,
Swaroop

Accepted Solutions (1)

Accepted Solutions (1)

rajkj
Active Contributor
0 Kudos

Hi Swaroop,

Since you implemented a user exit/BAdI, you can enhance further to check existence of a valid change pointer record for a given criteria like material, field, etc., (pleas refer the the following program RBDCPCLR or t.code BD22 with message type CIFMAT for reference). If you find a valid change pointer, then don't send the data through your user exit to APO.

This suggestion is based on the following statement from F1 help documentation.

ALE change pointers are not deleted in the ERP system after the change transfer, they are marked as processed. To prevent a reduction in performance, we recommend that you delete the ALE change pointers regularly. You can do this using transaction BD22 or by scheduling program RBDCPCLR as background processing.

Thanks,
Rajesh

Former Member
0 Kudos

Hi Rajesh,

Thank you for the information - it is helpful but when executing an Integration Model to CIF the product changes - How is the linking established. How do i know whether the field got changed for that execution. It might be a case the field might have been modifed in the previous execution but for the subsequent changes also the field remains in those tables. Is there a way to filter from the tables BDCP2 to restrict that particular execution.

Regards,
Swaroop

rajkj
Active Contributor
0 Kudos

Hi Swaroop,

Good question, probably an ABAPer would answer better. As per my understanding, the change will be recorded first and then CIF transfer job will be triggered provided there is an active integration model. 

The CIF batch jobs such as model deletion, generation, and activation are normally scheduled to run during off-peak times periodically. Assuming product master custom field is changed manually, chances of data transfer conflict would be negligible.

Thanks,

Rajesh

former_member209769
Active Contributor
0 Kudos

Hi Swaroop,

First of all, I didn't understand your question clearly.

Delta that is picked in CIF is based on the change pointers in R/3, which means that only the changes in R/3 would get transferred in CIF, unless you are using the RIMODINI report. RIMODINI will send ALL the data from R/3 to APO afresh.

(Normal CIF is not based on mismacth between R/3 and APO, but as mentioned earlier, it depends on changes which are made in R/3 which are relevant to create change pointer in R/3).

If I am missing something and you wantto compare some field from material data during CIF of material master, you can do a check in the exit APOCF005 (in APO inbound). Your current data would be available in the transfer, and if you need to verify whether there has been some change in APO relevant data or not, you could check data from the table /sapapo/matloc in APO (assuming that your previous changes had reached APO, you would be comparing the current data in R/3 with the already existing data in APO).

Hope this helps.

Thanks - Pawan

Former Member
0 Kudos

Hi Pawan,

Thanks for the reply, I am actually executing the transaction CFM2 - What i observed is this transaction is actually sending all the data for any change to APO and in APO it compares all data in SCM and makes the changes. As per our requirement - Some of the data after the initial CIF will be maintained in SCM - So fo those specific fields only if there is a change in ECC we need to send otherwise we dont want to send it to SCM.

babu_kilari4
Active Contributor
0 Kudos

Hi Swaroop,

Are you looking for something like below ?


You have a z-field and whenever this field is changed - you want to trigger a queue and make sure that it is updated in APO system ?

If yes, I think you should try and see if the below user exit can be of help

FV45VFZY_USEREXIT_APO_UPDTRIG

This exit works for Sales documents. 371832 is the note which gives this information.

Are you looking for the fields changes in Sales order processing or material master document ? if it is something to do with the material master document changes, then I am not sure if the above exit helps. You might need to get something similar for MM updates.


Thank you.


Babu Kilari

former_member209769
Active Contributor
0 Kudos

Hi Swaroop,

During normal CIF (generation/activation) of integration model, you should not have the complete material master data being sent to APO from R/3. There is no comparison of the data between R/3 and APO as far as my knowledge goes. If you feel that it's happening in your case, I would suggest to get it checked with SAP by raising an OSS.

Only during RIMODINI (initial transfer) run, your complete data is supposed to be sent again to APO.

If there are fields which would get data from R/3, but you maintain them directly in APO, then you could use the exit APOCF005 to check the data coming from R/3 and the one existing in relevant table in APO (e.g. /sapapo/matloc), and if there are differences, then do not update the values from R/3. Or else, you could once and for all, uncheck the corresponding X in the "update" table in the exit, so that these fields would NEVER get updated from R/3. Which solution you would choose would depend on your requirement.

Thanks - Pawan

Answers (0)