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 Process Model (CPM), Connect for PHP API All product versions
Resolution:
Suppression is important to prevent rules, external events and/or custom processes from running on an object save or destroy method. There are three options for suppression methods:
Enabling suppression
First the option needs to be added to the save or destroy method in the Connect for PHP (including CPM customizations) code.
Examples:
$contact->destroy(RNCPHP\RNObject::SuppressRules); $incident->save(RNCPHP\RNObject::SuppressExternalEvents); $obj->save(RNCPHP\RNObject::SuppressAll);
After making the code change you must set the Can Suppress checkbox within the Process Designer on each object and each interface you wish to allow suppression. This is only necessary (and possible) for object types tied to CPM customizations through the Process Designer.
Open the Process Designer, expand the OracleServiceCloud or RN object, click the object type (such as Incident), and then check the Can Suppress checkbox for each interface. Save, test, save and deploy the CPMs.
Alternative method for synchronous scripts triggered on object update
This code can be used to avoid looping in synchronous scripts tied to object update (will not suppress a CPM triggered to object update after an API save in a CPM mapped to object create): if ($n_cycles !== 0) return; This code has no effect on asynchronous CPM scripts. The preferred way to implement suppression is to suppress on API save and use the 'Can Suppress' check box.
Cause:
Suppression is required when using a CPM as an object updated method unless careful code design is implemented. When an object is saved, that object will enter an updated state and will then trigger rules (if the object is open), external events or CPMs.
Unless the second (and subsequent runs) are controlled by code logic that checks for the action type (create vs. update), a suppress option is required. Failure to enable suppression in this case will result in that object repeatedly running the CPM in a uncontrolled loop. This also holds true for CPMs that open other objects such as incidents and contacts within the code. Those saves should be handled by code logic or be suppressed. The action type in CPM code can be checked as follows:
public static function apply($run_mode, $action, $obj, $n_cycles) { if (RNCPM\ActionUpdate == $action) { // CPM is being run on object update in this case } elseif (RNCPM\ActionCreate == $action) { // CPM is being run on object create in this case } }