Skip to Content
8
May 05, 2021 at 08:34 AM

Business Partner XXXXXXX not send due to pending message

4539 Views

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:

  • 1.If the pending message is re-processed, it may overwrite the latest data set in the target causing data loss and inconsistency
  • 2.If the pending message is a create request, the new payload for changing the same data set might fail in target, causing inconsistency

Technical Details:

  • Table: MDG_BS_MSG_PEND

This table stores entry for any failed payload, which is referred every time a new replication is triggered.

  • Class: CL_MDG_BS_MSG_PEND_DB

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

  • Report: MDG_DEL_MSG_PEND

This report is available to delete the pending replication entries from the table MDG_BS_MSG_PEND

You can delete the entries based on:

  1. Own Data: To be used to delete all entries for a specific data object
  2. Message ID: to delete a specific payload
  3. Sender Data: To delete all the payloads sent from a specific system

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!