Application Composer Series: Inside Object Workflows
By Richard Bingham-Oracle on Aug 07, 2014
Object Workflow is a feature that extends Oracle Sales Cloud functionality, adding new actions when specific events occur on a Business Object. An example might be a notification fired to the Sales VP when an opportunity with a revenue amount > $10,000 is created. The event points for Object Workflows are either upon object creation or object update, and can be combined with a condition expression to control exactly when the actions are fired.
To learn more about the basics of Object Workflows, see the overview video embedded below taken from our YouTube channel or check Chapter 8 of the Extending Sales Guide. So in addition to the content already available, this post provides some noteworthy considerations and general recommendations when developing with Object Workflows.
Business Object Usage
- Object Workflows exist in the context of the Application container that matches the associated business objects. So Object Workflows for Opportunities would exist in the Sales application only.
- Object Workflows can be created for both Standard and all types of Custom Objects.
- You can chain updates to fire Object Workflows. For example, a groovy expression fired from ObjectA can update ObjectB, which then runs its associated Object Workflow(s). This can be useful when ObjectB has more fields/options for your workflow than ObjectA, for example, if ObjectA is a custom object and ObjectB is an Opportunity. Here if you wanted to fire a notification to all Sales VPs on ObjectA creation, you could add an object trigger to ObjectA which updates a (hidden custom) field on ObjectB which will then run the associated Object Workflow with it's Email Notification action.
Trigger Points and Actions
- Object Workflows are best tested outside a Sandbox when possible, since they rely on all dependent objects, fields, and setups to be published to the mainline. Use your test or development instance for running those tests.
- Whilst they cannot be deleted, Object Workflows can be turned off using the Active checkbox, available in the edit page.
- If the condition expression entered for your Object Workflow evaluates to true then all the actions will fire, if not then none will fire. Bear this in mind when building your logic.
- You cannot specify which specific actions to fire and when, you should create additional object workflows to meet those needs.
- In addition to conditions, use the Execution Schedule to fine-tune when actions will occur, such as adding an extra day after the last update before sending notifications. These schedules can be different for every action, as opposed to the condition which is set for all actions in the whole object workflow.
- You can only have one action of each type within each object workflow, however you can have multiple object workflows for the same object and reuse the same conditions.
- Whilst most objects support most action types, there are a few exceptions:
- Child Objects do not allow Business Process Flows
- Sales Assets and Campaigns do not allow Tasks
- All object in the Common application do not allow Tasks
- The recipients available varies by object, with most standard objects exposing their related email fields, although Custom Objects only offer the record creator. As mentioned above, you can chain updates as a workaround.
- For Opportunities (and as shown in the screenshot below) the following recipients are supported. If your requirement is just for basic notifications then compare this list with one for Tasks below.
- Relative Users including the record creator, the opportunitiy owner, the management hierarchy (including subordinates), and Opportunity Team members with specific access or job roles.
- The Opportunity Contacts available on the record
- All users with specific Job Roles, such as Sales VP
- Any user in the application, available as a pop-up list.
- A blank field for typing in any email address
- When you create a Worklist Task it will also send an email notification, although these are quite minimal and less open to configuration conpared to the Email Notification action type.
- The task recipients available are those related to the current object. For Opportunities, new tasks can be assigned to:
- The creator of the transaction record
- The Opportunity Owner field
- Other members of the Resource Team, including those with specific levels of access or job role.
- The actions you can take on a worklist task are; complete, suspend/resume, or delete.
- Whilst not available as receipients when creating the object workflow, active tasks can be re-assigned to any user defined as a sales resource.
- Task are created with an internal priority 3, as shown in notifications and the worklist app. This value has no bearing on the application or product features.
- The link in the task notification goes to the Worklist App self-service UI where there is more functionality compared to the embedded worklist. This may or may not be useful.
- This supports updating both custom and standard fields on the current object, as well as updating several fields at once.
- It is not possible to use expressions for new values, however it permits the use of tokens to include runtime data.
- There is also support for updating standard LOVs to the next or previous value, such as moving a status field from a current value of NEW to the next value of ACTIVE.
Outbound XML Messages
- Outbound messages sends a single payload based on the XSD structure and transaction data from the triggering SDO Business Object.
- You can only add one endpoint URL per outbound message.
- You can review examples of testing with JDeveloper in the Extending Sales - Use-Case Guide here.
Business Process Flows
- For approvals it is recommended to modify and redeploy the seeded BPM Template: ExtnBusinessProcess.
- Whilst you can create and use new BPM Projects and Processes, only on-premises environments support the addition of new BPM Templates and Business Catalog items.
- Business Process Flows cannot be triggered for any Custom Objects using Object Workflows at this time.