Search for existing answers to your product and support questions.
Familiarize yourself with our support site and learn best practices in working with our team.
Manage Service Requests, View and update service requests submitted by you and others in your organization.
Submit a new issue to our technical support team.
Oracle B2C Service insights from our Technical Support team subject matter experts
Browse resources to assist you in launching your implementation and ensure a successful go-live.
Access your OCI account.
Find product documentation for supported versions of B2C and documentation libraries for related service solutions.
You will have the tools to improve your customers' experience when you learn about all the things our products can do.
Find links for API documentation, Custom Processes, Customer Portal, and Agent Browser UI Extensibility Framework.
Explore how accelerators are designed to demonstrate how an integration scenario could be built using the public integration and extension capabilities of the Oracle B2C Service.
Prepare for a successful transition by reviewing upcoming release changes and enhancements.
Explore webinars, events, and feature kits to learn about B2C Service features, functionality, and best practices from the technical experts.
Oracle MyLearn offers a portfolio of free and paid subscription-based learning resources to help you gain valuable skills, accelerate cloud adoption, increase productivity, and transform your business.
Empower your team with the skills to implement, configure, manage, and use your applications with Customer Experience Cloud Training.
Our goal is to facilitate a friendly, supportive environment where members can easily collaborate with each other on solutions and best practices.
Ask and answer questions specific to B2C.
This is an exciting resource intended to help with your Oracle Service Cloud Analytics.
Share product improvement ideas and enhancement requests with Oracle Development, while collaborating with other Oracle customers and partners.
Update your phone number, email notification preferences, and severity 1 and severity 2 contact preferences.
View the contact managers within your organization.
Find contact information of the Technical Account Manager (TAM) and Client Success Manager (CSM) for your organization.
Environment:
Process Designer, Custom Processes (CPM)All product versions
Resolution:
Click here to view product documentation on 'Best Practices: Testing Object Event Handler Scripts'. The following can be helpful in addition to the information provided in the product feature documentation.
The following best practices and guidelines are important to understand when creating and testing object event handler scripts:
Ensure that any asynchronous CPM scripts using PHP curl have set the curl timeout to a value smaller than the maximum runtime for a CPM custom process script (157 seconds). A value of five seconds or under is highly recommended, as any external call through a CPM can cause queue delays in processing of the queue. There is a maximum of three asynchronous CPM processes running at a time, and if any of them are waiting on the response from an integration call this is going to reduce the speed that the queue is able to process. A value of 155 seconds is the maximum that should be used. The following is an example:
curl_setopt($curl, CURLOPT_TIMEOUT, 5);
For further details see Answer ID 11903: Coding for PHP curl call timeouts and re-tries in CPM customiizations
The utility that processes asynchronous CPMs may already have PHP curl loaded from a previous CPM run in the process. For this reason, we need to ensure that the following check is performed before loading the libraries, to prevent any code failures:
if(!extension_loaded('curl')) { load_curl(); }
For further details see Answer ID 10789: Use of load_curl() function in multiple scripts
PHP file_get_contents is not allowed in CPM customizations. Use PHP curl instead.
A database commit is run automatically after CPMs have processed. Add API commit statements to the code only when necessary, or if it will be somehow useful to troubleshoot a problem, as API commit statements in CPM code adds overhead to processing and can make troubleshooting at a deeper level (using server trace files when appropriate, for example) much more complex. API commit statements can be useful when using PHP curl, however, and for further details see Answer ID 11387: Commit before making cURL calls in a Customer Portal CPHP customization
Excessive API save statements on the same object should be avoided, as each save can trigger CPMs and business rules (depending on the particular implementation). Extra saves add unnecessary processing overhead and result in added complexity when troubleshooting problems that may come up. Save the object after modifications have been applied, and before the CPM code completes.
Do not destroy the object that triggered a CPM within the CPM code itself, as this is considered an invalid use case and will cause unexpected problems.
For file-based logging, close resource handles promptly. This is particularly important if an asynchronous CPM customization is logging between save and commit operations. If the CPM were to be triggered concurrently for the same object, this could cause resource contention as one thread waits for the database lock and the other waits for the file handle.
Keep the following points in mind when testing an object event handler script before deployment:
For further information refer to Answer ID 5169: Technical Documentation and Sample Code
Answer ID 6604: There are two types of execution for Object Event Handlers
Answer ID 11934: Alternatives to using CPM customizations for event-driven functionality that needs to happen immediately