Skip Navigation
Expand
CPMs and Event Subscriptions Not Sent or Sent with Duplicate Data
Answer ID 12386   |   Last Review Date 09/08/2022

Why is each object update not reflected in my site's integration(s) implemented using CPMs or Event Subscriptions? 

Environment:

Event Subscriptions, Service Process Model (SPM), Process Designer, Custom Processes (CPM)
Oracle B2C Service

Resolution:

Triggered asynchronous CPMs and Event Subscription integration calls are run using the Service Process Model (SPM) queue for an Oracle B2C Service site. When each is run the API will reflect the state of objects as they exist in the database at that instant. This means that any object data sent to external integrations will reflect the state of that object in the database at the time the integration call is made rather than when the CPM or Event Subscription was triggered.
 
This condition is as the product was designed and can cause confusion when it is found that individual record updates are not always reflected in the external integrations. The same can also be perceived as duplicate data sent to integrations. Both of these conditions do exist when using these Oracle B2C Service product features and should be expected.
 
In cases where integrations need to reflect each update to an object, the data can be sent at the time the data is updated from client applications directly (including Customer Portal (using JavaScript rather than PHP), and BUI/.NET consoles), or by using custom scripts (not recommended as this requires a database connection to the Oracle B2C Service database to access the data to be sent). 
 
A possible solution using CPMs would be to use a synchronous CPM to record the data of an object on each update in a custom object table, and then an asynchronous CPM to send the data stored in custom objects to the integration endpoint. The integration may not receive the data in the same order it was modified, but the modify date (for the object in question, through data stored in the custom object) can be sent to integrations to account for this.