‎2008 Mar 14 11:13 AM
Hi All,
I am working on changing pointers in HR.
According to the requirement, whenever an inbound IDOC gets triggerred and master data is updated or when there are any changes made to the master data manually, an Outbound IDOC needs to be generated through Change Pointers.
This works absolutely fine, however only those segments in the IDOC structure for which the changes take place is populated in the Outbound IDOC. But I need all the segments to be present in the generated IDOC even if few of them are blank.
I am using the Message Type HRMD_A and the IDOC type HRMD_A07.
Its really urgent, any help is appreciated.
Thanks.
‎2008 Mar 14 11:22 AM
We had a similar issue with material master changes. We used the BADI BDCP_BEFORE_WRITE. This is called at the time the change pointer is to be written. We then used the BADI to get SAP to write more changes pointers for the data we wanted to be sent.
The standard IDoc sending program should then do the rest for you.
‎2008 Mar 14 11:38 AM
Hi Martin,
Thanks for the reply.
But will the BADI help in populating all the segments in the IDOC structure.
In my case, the IDOC HRMD_A07 has more than 100 segments, so if changes occur in only 3 or 4 segments, will the Outbound IDOC that will be generated contain all the 100 segments with only the 3 or 4 segments with the changed data?
Is there any code for the BADI that I can refer to?
Thanks
‎2008 Mar 14 11:43 AM
You will have a list of segments that you require on your IDoc. These segments will be populated based on the type of change pointer created. Therefore if you make a specific change only a single change pointer may be created. If you require other segments then you will need to create extra change pointers so that the standard IDoc program will create the segments that you require.
Use the BADI to create these extra change pointers.
Otherwise, you would need to write a program yourself to create the IDoc based on the change pointers that have been created.
‎2008 Mar 14 11:54 AM
Hi Martin,
Will this BADI work if I am using RBDMIDOC to generate the IDOC?
When I try to run RBDMIDOC, this BADI does not trigger. It triggers only when you try to change or update data from the TCode where data is maintained.
Thanks.
‎2008 Mar 14 8:18 PM
The BADI is exeuted at the time the change pointer is created.