Summary:
This blog post would help you save time and effort and not reinvent the wheel. We have penned down general areas where all SAP-MDG projects struggle with Ariba Integration. If we observe more scenarios will create a version 2.
Below are the frequent and important scenarios faced while working with Ariba SLP <--> MDG.
Scenario 1:
How do we create a Change Requests (diff for create/change) from the payload incoming from Ariba SLP?
Solution 1:
Implement BADI MDG_SE_BP_BULK_REPLRQ_IN, in method INBOUND_PROCESSING write below code:
- Define internal table with type MDG_USER_PROXY_SETTING_T.
- Append Line 1
- FIELD_NAME = "PROXY_PERSISTANCE".
- FIELD_VALUE = "1".
- Append Line 2
- FIELD_NAME = “SUPPLIER_CHANGE”
- FIELD_VALUE = <CR Type>
- Call method: CL_MDG_BP_BUPA_SI_IN=>IF_MDG_UPLOAD_PROXY~SETUP_FOR_FILE_UPLOAD ( Exporting IV_INSTANCE = 1 IT_USER_SETTING = <Above Internal Table> )
******************************************************************************************************************
Scenario 2:
Once we enable DRF to Ariba from MDG, how does the Business Partner number flow back to SLP post BP is created in MDG to enable Bi-Sync?
Solution 2:
Implement BADI MDG_SE_BP_BULK_REPLRQ_OUT, in method IF_MDG_BP_BULK_REPLRQ_OUT~OUTBOUND_PROCESSING
Get current Business Partner Id from OUT-BUSINESS_PARTNER-INTERNAL_ID or OUT-BUSINESS_PARTNER-SUPPLIER-INTERNAL_ID.
Ensure both Internal Ids are same (i.e. contains BP number).
Read Key mapping data to get Supplier Id via below APIs
CL_MDG_ID_MATCHING_API_BS=>GET_INSTANCE
IF_MDG_ID_MATCHING_API_BS=>QUERY_OBJECTS
Fill Supplier Id in OUT-BUSINESS_PARTNER-RECEIVER_INTERNAL_ID & OUT-BUSINESS_PARTNER-SUPPLIER-RECEIVER_INTERNAL_ID
Also, ensure UUID fields are in sync.
******************************************************************************************************************
Scenario 3:
Supplier getting replicated from Ariba SLP but CR or BP is not created in SAP-MDG?
Solution 3:
We have observed error logging during creation process is not readable, and we need to debug it’s API related methods and below are the places where setting a breakpoint during replication process would get us error message in general.
If processing is not real time via service and works based on batch job of Pull program (/ARBA/SM_BUSINESS_PARTNER_PULL) then place additional breakpoint in this program to check if the process is pulling payload data from Ariba or not.
For all scenarios, below methods help a lot to gather error message:
- CL_MDG_BP_BUPA_SI_IN=>DO_SAVE
- CL_MDG_BP_BUPA_SI_IN=>DO_SEND_CONFIRMATION
NOTE: these are the frequent places where I’ve encountered error, incase it’s not appearing here more detailed debugging would be needed.
******************************************************************************************************************
Putting down few links from which I felt are quite enlightening from other bloggers/experts:
Please feel free to add comments or more scenarios & solutions herein.