Skip Navigation
Expand
Alternatives to using CPM customizations for event-driven functionality that needs to happen immediately
Answer ID 11934   |   Last Review Date 11/15/2022

What are alternatives to using CPM customizations for event-driven functionality that needs to happen immediately?

Environment

Process Designer, Custom Process Model (CPM) / Service Process Model (SPM), Customer Portal, Browser Extension Framework, .NET Add-Ins
All product versions

Issue:

What are the options for implementation of event-driven functionality when CPM customizations and/or Event Subscriptions are not a good fit?

Resolution:

Synchronous CPMs have a five second time limit, and asynchronous CPM functionality is not designed to be used for activity that needs to happen immediately. Similarly, Event Subscription functionality is also not designed for activity that needs to happen immediately, so what are the alternatives?

Alternatives generally involve client side customizations built to make requests to external integrations. When implemented to run from the client-side, there is no connection to the Oracle B2C Service database while the integration request is waiting to complete. This results in scalable implementations due to limited load applied to the site database and other resources.

If such an alternative is considered, then details around potential logging and/or required updates to Oracle B2C Service objects will need to be taken into account also. As a rule of thumb, there should be no database connection held while the integration call is being made. Any design following this rule is likely to be successful, as long as the design is also maintainable (through implemented logging etc.).

Be aware that custom scripts (otherwise known as File Manager scripts) that authenticate with the API do hold connections to the database, while those that do not authenticate with the API do not. All Customer Portal (CPM) processes (PHP) running on the server hold a database connection as well, which means that PHP curl should not be used in Customer Portal. Instead, integration calls from CP should be made from JavaScript. This is not a problem for integration calls made from BUI Extensions and .NET Add-Ins, as they will always run on the client-side.