There is a new functionality in Data Replication Framework which checks for pending replication messages in the Queue.
It checks if there are any existing payloads which are not successfully replicated, if it finds any payloads which are stuck or in error, the new replication will not be triggered.
This is to protect data from being overwritten. The expectation is that we either re-process the pending messages in the queue or delete it before we initiate any new replication.
Issue: When we try to send any data using DRF, it fails with a warning message:
“Business Partner XXXXXXX not send due to pending message."
Root Cause: There is a new functionality added which prevents overwriting of the data in target systems, if any replication has failed already.
Functionality: During the replication, check if any pending messages for the same object. If any pending message found, do not replicate until the queue is cleared.
Purpose: Avoid data loss:
Technical Details:
This table stores entry for any failed payload, which is referred every time a new replication is triggered.
This class has method (IF_MDG_BS_MSG_PEND_DB~IS_OBJECT_PENDING) which is called to validate if any pending data request for replication
This report is available to delete the pending replication entries from the table MDG_BS_MSG_PEND
You can delete the entries based on:
If anyone has anymore info to add do let me know!
P.S.: I am not at contributor level so cannot write a blog post for this so sharing it as a question. Hope it helps!