Oracle Cloud Process Automation Guide
Oracle Cloud Process Automation Guide
F34768-27
April 2025
Oracle Cloud Using Oracle Cloud Infrastructure Process Automation,
F34768-27
This software and related documentation are provided under a license agreement containing restrictions on use and
disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or
allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit,
perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation
of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find
any errors, please report them to us in writing.
If this is software, software documentation, data (as defined in the Federal Acquisition Regulation), or related
documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then
the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any
programs embedded, installed, or activated on delivered hardware, and modifications of such programs) and Oracle
computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial
computer software," "commercial computer software documentation," or "limited rights data" pursuant to the applicable
Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction,
duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle
programs (including any operating system, integrated software, any programs embedded, installed, or activated on
delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle
data, is subject to the rights and limitations specified in the license contained in the applicable contract. The terms
governing the U.S. Government's use of Oracle cloud services are defined by the applicable contract for such services.
No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications. It is not
developed or intended for use in any inherently dangerous applications, including applications that may create a risk of
personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all
appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its
affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.
Oracle®, Java, MySQL, and NetSuite are registered trademarks of Oracle and/or its affiliates. Other names may be
trademarks of their respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used
under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc, and the AMD logo
are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open
Group.
This software or hardware and documentation may provide access to or information about content, products, and
services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all
warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an
applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss,
costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth
in an applicable agreement between you and Oracle.
Contents
1 Introduction
Overview of Oracle Cloud Infrastructure Process Automation 1-1
Process Automation Product Types 1-2
Set Up Process Automation as an Individual Service 1-3
Use Process Automation with Fusion-Based Oracle Cloud Applications 1-3
Prerequisites 1-3
Synchronize Users From Fusion Applications Identity Provider to IDCS Stripe 1-4
Assign IDCS Application Roles 1-5
Get the Process Automation Instance URL 1-6
Example of Required User Created in IDCS 1-7
Use Process Automation with Oracle Integration 3 1-8
iii
Configure Searchable Fields Based on Business Data 2-17
Configure Roles for Process Applications 2-18
About Process Application Roles 2-19
Users, Groups, External Applications and Permissions 2-20
Work with Roles in Designer 2-22
Create an Application or Global Role 2-22
Link a Global Role to Your Application 2-23
Assign Roles to User Tasks in Structured Processes 2-24
Assign Roles to User Tasks in Dynamic Processes 2-25
Enable Users to Start Your Application 2-25
Remove Roles in Designer 2-26
Work with Decision Applications 2-26
Create a Decision Application 2-27
Activate and Use Decision Applications 2-27
Create an Application from a Recipe 2-28
iv
Parallel Gateway: Take All Paths Simultaneously 3-18
Create a Gateway 3-19
Connect to Other Processes and Services 3-21
About Reusable Processes 3-23
About Subprocesses 3-24
Use a Send Activity 3-29
Send Notifications 3-30
Use Send and Receive 3-31
Communicate Between Processes Using Correlation 3-32
Example of Using Correlation with Send and Receive 3-33
Handle Errors with Event Subprocesses 3-39
Configure a Multi-instance Activity 3-40
Configure an Upload Form Activity 3-42
Use Abstract Activity 3-44
About Draft Property 3-45
Use Data Mapper Activity 3-47
Work with Sequence Flows 3-48
Unconditional Sequence Flows 3-48
Conditional Sequence Flows 3-49
Default Sequence Flows 3-49
v
5 Design Forms and User Interfaces
Forms and Linked UIs at a Glance 5-1
Work in the Forms Editor 5-3
Position Controls on Forms 5-3
Configure Basic Controls 5-5
Configure Text Input and Area Fields 5-5
Configure Simple Text Fields 5-6
Configure Buttons 5-6
Configure Drop-down Select Fields 5-7
5-8
Configure Check Lists and Check Boxes 5-8
Configure Radio Buttons 5-9
Configure Number Fields 5-10
Configure Date and Time Fields 5-11
Configure Email Fields 5-12
Configure Web Address URL Fields 5-13
Configure Message Fields 5-13
Configure Links 5-14
Configure Advanced Controls 5-15
Configure Currency (Money) Fields 5-16
Configure Phone Number Fields 5-17
Include Images 5-18
Upload and Preview a Base64 Image 5-18
Include Videos 5-19
Configure Identity Browser Fields 5-20
Place Controls in Panels, Sections, or Tabs 5-22
Format the Title and Description of a Panel 5-23
Indent Sections 5-24
Configure Static and Dynamic List of Values Fields 5-24
Add an Option to a List of Values Field 5-25
Clear All Options From a List of Values Field 5-25
Configure Tables 5-26
5-28
Configure Repeatable Sections 5-29
5-30
Configure Train Controls 5-30
Configure Divider Controls 5-32
Configure File Manager Controls 5-32
Configure File Upload Control 5-33
Configure File List Control 5-35
Implement Intelligent Document Processing in Forms 5-36
vi
Configure Document Understanding Controls 5-37
Reuse Forms 5-40
Work with Presentations 5-40
5-42
Change Form Presentations Dynamically 5-43
Work with Styling 5-47
Styling Properties 5-47
Work with CSS 5-49
Apply a Stylesheet to a Form 5-49
Style Form Controls 5-50
Bind Form Data with Controls 5-51
Create a Form Based on a Business Type 5-53
Create Computed Controls 5-53
Specify Filters for Controls 5-55
Add Dynamic Behavior to Forms 5-58
Configure Events 5-59
Specify Actions 5-61
Specify Conditions 5-63
Specify Functions 5-66
Example of Current User Function 5-74
Specify Filters in Events 5-76
Reuse Event Snippets 5-80
Extract a Snippet 5-80
Use a Snippet 5-81
Execute Loops in Events 5-81
Example of a Simple Loop 5-81
Example of a Loop with an Array 5-82
Execute REST Connector Calls in Events 5-83
Populate Controls Using REST Calls 5-86
Link and Refresh List of Value Fields 5-88
Preview Forms and Their Payload 5-89
Export Forms as PDF 5-90
Configure a Linked UI 5-91
Linked UIs at a Glance 5-91
Add a Linked UI Connection 5-92
Use a Linked UI in a Human Task 5-93
Integrate a Linked UI with the Task List 5-94
vii
Typical Workflow for Creating a Human Task Activity 6-2
Create Submit and Approve Tasks 6-2
Implement Human Task Activities 6-2
Assign Human Task Activities 6-3
Configure the Title and Task Summary 6-4
Configure Action Rules 6-5
Use Forms or Linked UIs to Display Task Information 6-5
Define an Approval Pattern 6-6
Bypass the Approval Chain 6-6
Exclude Participants 6-7
Configure the Due Date and Priority 6-7
Configure Task Escalation or Expiration 6-8
Configure Task Reminders 6-9
Customize Notification Emails 6-10
About Notification Email and Templates 6-10
Configure Email Notifications 6-11
Manage Email Templates 6-12
Configure Email Templates 6-12
Use Handlebar Helpers 6-23
7 Model Decisions
Decisions at a Glance 7-1
Understand Local and External Decisions 7-3
Create a Local or External Decision 7-4
Understand the Graph View 7-5
Add a Decision Logic Type 7-6
Define Expressions with the Friendly Enough Expression Language (FEEL) 7-8
Data Types 7-8
Grammar Rules 7-9
Built-In Functions 7-10
Conversion Functions 7-10
Boolean Functions 7-11
String Functions 7-11
List Functions 7-12
Numeric Functions 7-12
List Iteration Expressions 7-13
Date, Time, and Duration Functions 7-13
Conversion Examples 7-13
Arithmetic Operation Examples 7-14
Comparison Operation Examples 7-14
Define Decision Input and Type 7-15
viii
Create Input Data 7-15
Define Custom Data Types 7-16
Model Decision Logic 7-19
Create Empty Logic Decisions 7-19
Create Decision Tables 7-19
Define Decision Table Input 7-21
Define Decision Table Output 7-23
Configure Rules 7-24
Configure a Hit Policy 7-24
Create Expressions 7-29
Create If-Then-Else Statements 7-30
Create Functions 7-32
Create Contexts 7-33
Create Lists 7-37
Create Relations 7-38
Create Loops 7-40
Test Decision Models 7-42
Expose Decisions as Services 7-42
Add Decision Services to Processes 7-43
8 Manage Data
About Managing Data 8-1
Work with Data Objects 8-1
Create a Data Object 8-2
Edit or Delete a Data Object 8-2
Work with Business Types 8-3
Create a Business Type 8-3
Create a List of Values 8-5
Use Business Types 8-6
Create a Business Exception 8-8
Configure Data Association 8-9
Data Association Tips 8-10
Human Task Exec Variables 8-11
Process Variables 8-12
Define Conditions for Data Associations 8-12
Work with Transformations 8-14
Append to Array 8-16
Filter Arrays 8-17
Work with Expressions 8-18
Use Business Keys 8-26
ix
9 Integrate with Applications and Services
Work with Connectors 9-1
Connectors at a Glance 9-1
Configure REST Connectors in Designer 9-3
Add a REST Connector 9-3
Add REST Connector Resources and Operations 9-4
Define REST Connector Input and Output Types 9-6
Secure the REST Connector 9-7
Specify Connector Visibility in Process Editors 9-11
Use Connectors in Process Applications 9-12
Delete a Connector 9-13
Work with Integrations 9-13
Use Integrations 9-14
Create a Connector with an Integration 9-14
Implement an Integration in Processes and Forms 9-15
View Integration Details 9-15
About Integration Statuses 9-15
Discover and Use Integrations Within Oracle Integration 3 Projects 9-16
Embed a Start Form in an External Application 9-16
Embed a Task List in an External Application 9-18
Embed a Task Detail in an External Application 9-20
10 Explore Workspace
Start an Application 10-1
Work on Tasks 10-2
Find a Task 10-2
Search for a Task 10-2
Use the Task Tab Filters 10-5
Use the Task Lifecycle and Due Date Filters 10-6
Apply Advanced Search Filters 10-6
Perform Task Actions 10-7
View and Complete Tasks 10-9
Track Processes 10-10
Find a Process 10-10
Filter Processes 10-11
Sort Processes 10-12
About Process States 10-12
Work on Processes 10-13
View Process Details 10-13
Work with Activities 10-14
x
View Process Audit 10-15
Post and View Comments 10-16
Upload and View Documents 10-16
View Process Data 10-16
View Process Information 10-17
End Dynamic Processes and Activities 10-17
Alter the Flow of a Process 10-18
Use Analytics 10-20
Analytics: Summary View 10-22
View Analytics for an Application 10-28
View Analytics for a Process 10-32
View Analytics for Activities 10-36
View Analytics for a Human Task Activity 10-39
View Analytics for a Service Task Activity 10-41
About Instance Status 10-43
Analytics: Instance Tracking 10-45
Set to Out of Office 10-46
Create Out of Office Record 10-46
11 Workspace Administration
Manage Roles in Workspace 11-1
View or Edit Roles After Activation 11-1
Add a Global Role in Workspace 11-2
Assign the Process Application Administrator Role 11-3
Delete Roles in Workspace 11-4
Manage Notifications 11-5
Manage Credentials in Workspace 11-6
About Credentials 11-6
Edit Application Credentials 11-7
Manage Global Credentials 11-8
Add Global Basic Credential 11-8
Add Global OAuth Credential (Client Credential) 11-9
Add Global OAuth Credential (JWT Assertion) 11-10
Add Global OCI Signature Policy Credential 11-11
Edit or Delete Global Credentials 11-12
Manage Out of Office Records 11-12
Configure Out of Office Records for Users 11-13
Enable Break Glass 11-13
Temporary Access Approval 11-14
Provide Your Own Key 11-14
Create and Import Your TDE Master Key 11-14
xi
Update the Key 11-16
Specify Data Management Settings 11-16
Register Services 11-17
Prerequisites for Registering a Service 11-17
Register a New Service 11-19
Configure Email Based Approvals 11-20
A Quick Reference
xii
Preface
This document describes how to use Oracle Cloud Infrastructure Process Automation to
design process applications and its components in Designer (design-time), and work on user
tasks in Workspace (runtime).
Topics:
• Audience
• Documentation Accessibility
• Diversity and Inclusion
• Related Resources
• Conventions
Audience
Using Oracle Cloud Infrastructure Process Automation is intended for users who want to
design process applications and work on end user tasks.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility
Program website at [Link]
Related Resources
For more information, see these Oracle resources:
• Oracle Cloud Infrastructure Process Automation documentation in the Oracle Cloud Library
on the Oracle Help Center.
• Oracle Cloud at [Link]
13
Conventions
Conventions
The following text conventions are used in this document.
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated with an
action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for which
you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code in
examples, text that appears on the screen, or text that you enter.
14
1
Introduction
Oracle Cloud Infrastructure Process Automation is a multi-tenant Oracle Cloud Infrastructure
(OCI) service. Use the low-code designer environment to quickly create structured and
dynamic process workflows. Leverage capabilities such as resuable business rules,
configurable web forms, connectivity to prebuilt application integrations, and much more to
simplify repetitive tasks and automate your business processes.
Topics:
• Overview of Oracle Cloud Infrastructure Process Automation
• Process Automation Product Types
1-1
Chapter 1
Process Automation Product Types
1-2
Chapter 1
Process Automation Product Types
When you get Process Automation in this way, it is automatically provisioned for you. You
give team members access to the instance in the Oracle Identity Cloud Service (IDCS)
application of the instance.
See Use Process Automation with Fusion-Based Oracle Cloud Applications.
• Enabled with Oracle Integration 3 : You can enable a Process Automation instance with
an Oracle Integration 3 Enterprise Edition instance. When you enable Process Automation
with Oracle Integration, a Process Automation service instance is automatically
provisioned and associated with the Oracle Integration service instance.
See Use Process Automation with Oracle Integration 3.
Prerequisites
To use Oracle Cloud Infrastructure Process Automation with Fusion-based Oracle Cloud
Applications, ensure that you have met the prerequisites listed here.
1. Your organization must have purchased Oracle Cloud Infrastructure Process Automation
for Fusion Applications.
2. Complete any prerequisite requirements detailed in the Fusion Applications
documentation.
1-3
Chapter 1
Process Automation Product Types
1-4
Chapter 1
Process Automation Product Types
e. Click Save.
5. Verify that the users are available and synchronized in IDCS.
a. In the IDCS navigation pane, click Users.
b. If the users that you want to access Oracle Cloud Infrastructure Process Automation
are not listed, click Import to import those users.
Note:
In order for some Fusion-based Oracle Cloud Applications services to use Oracle
Cloud Infrastructure Process Automation, you may need to create specific users in
IDCS. See Example of Required User Created in IDCS.
1-5
Chapter 1
Process Automation Product Types
Note:
These roles are not required for accessing the Process Automation Workspace. Any
authenticated user can work in Workspace or access runtime APIs.
Note that to further define data access and task permissions for users and groups in Process
Automation, you can configure roles specific to process applications. See Configure Roles for
Process Applications.
1. In the IDCS navigation pane, click Oracle Cloud Services.
2. As the display name of the Process Automation IDCS application is prefixed with the
display name of the IDCS application for your Fusion based cloud application, you can
search for the Process Automation IDCS application by entering the display name of the
IDCS application for your Fusion based cloud application in the Search field.
For example, if the display name of the IDCS application for your Fusion based cloud
application is exqx-test then enter exqx-test in the Search field. The Process Automation
IDCS application appears in the search result. Verify it is the right application by confirming
that its display name starts with exqx-test (for example, exqx-testdemoxyz).
The following image shows the display name for the IDCS application of a Fusion based
cloud application (HCM).
3. Select and click the Process Automation IDCS application to open it.
4. Navigate to the Application Roles tab.
5. In the tile for the ServiceAdministrator or ServiceDeveloper role:
1-6
Chapter 1
Process Automation Product Types
4. Append /process/designer to the end of the URL. This is the URL for the Process
Automation instance's Designer user interface.
5. Copy the value of the Primary Audience field again and append /process/workspace to
the end of the URL. This is the URL for the Process Automation instance's Workspace
user interface.
6. Distribute these URLs to team members who require access to the Process Automation
instance.
Note:
The FA HCM Journey Admin user must be in IDCS only, and should not exist in FA.
To create the required user FA HCM Journey Admin in IDCS for Oracle HCM Cloud:
1. As the Cloud Account Administrator, sign in to IDCS.
The URL and credentials for your IDCS instance are provided in the welcome email that
you receive when you create a new cloud account.
2. In the IDCS navigation pane, click Users.
3. On the Users page, click Add.
4. In the Add Users dialog, add the FA HCM Journey Admin user, as follows:
• First Name: FA HCM
• Last Name: Journey Admin
• User Name: fa_hcm_journey_admin
• Email: An email address where this user can receive email notifications
1-7
Chapter 1
Process Automation Product Types
5. Click Finish.
Note:
You can use Process Automation with only Oracle Integration 3 Enterprise Edition.
When a Process Automation instance is enabled with an Oracle Integration instance, the
Process Automation instance gets automatically provisioned with the Oracle Integration
instance. Users assigned the IDCS application role ServiceDeveloper can access both the
Process Automation and Oracle Integration design-time.
See Enable Process Automation with Oracle Integration 3 in Administering Oracle Cloud
Infrastructure Process Automation.
Another way to use Process Automation with Oracle Integration 3 is by registering an Oracle
Integration service instance with your Process Automation instance from Workspace.
To learn how to register a service such as Oracle Integration from Workspace, see Register
Services
Once Process Automation is enabled with Oracle Integration or Oracle Integration is registered
with Process Automation from Workspace, you can use activated integrations from Oracle
Integration that are designed with REST triggers into your process applications. See Work with
Integrations.
1-8
2
Work with Applications
Applications are the containers for all design components such as processes, UIs, decisions,
connectors and so on that you create in Designer.
Topics:
• Applications at a Glance
• Add and Edit Applications
• Activate Applications
• Work with Process Applications
• Configure Roles for Process Applications
• Work with Decision Applications
• Create an Application from a Recipe
Applications at a Glance
Start by familiarizing yourself with these application concepts.
Method Description
Create Create a new process application or decision application.
Import Import a previously exported process application from an .expx file or a
previously exported decision application from a .dmnx file.
Recipe Use a prebuilt, ready to use application.
Clone Save a copy of an existing application under a new application name.
Version Save a copy of an existing application under the same application name. (for
example, 2.0).
What are the different types of applications that you can design?
You can design either a process application or a decision application. All process applications
are listed in the Process Applications page, while all decision applications are listed in the
Decision Applications page. The All Applications page lists all created process and decision
applications. You can distinguish between a process and a decision application by the different
icons.
• Process application
• Decision application
See Work with Process Applications and Work with Decision Applications.
2-1
Chapter 2
Applications at a Glance
An application's version always appears next to its name. Click the version icon to view
other versions, open a different version, or create a new version.
While you can create and activate many application versions, just one version is set as the
default version in Workspace.
See Work with Versions.
an application, view other users and all activity by clicking Main menu and choosing
View Members. If you try to open a resource being edited by another user, a message notifies
you.
2-2
Chapter 2
Add and Edit Applications
Topics:
• Create an Application
• Clone an Application
• Rename an Application
• Export an Application
• Import an Application
• Work with Snapshots
• Work with Versions
• Delete an Application Version
Create an Application
When you create an application, you provide a name, version, and optional description with
which you can identify the application later on.
To create an application:
1. From the Designer home page (All Applications), click Create.
2. In the Creation application pane, you can create an application using one of the options
available.
Option Description
Create process application Create a new process application. See Create a
Process Application.
Create decision application Create a new decision application. See Create a
Decision Application.
Import application Import a process application as an .expx file or a
decision application as a .dmnx file. See Import
an Application.
Create application from recipe Create an application from a recipe which is a
pre-designed, run-ready application. See Create
an Application from a Recipe.
The newly created application is listed under the All Applications page, and also on the
Process Application page if it is a process application or the Decision Application page if it is a
decision application.
Besides the above options to create a new application, you can also:
• Save a copy of an existing application under a new application name by cloning the
application. See Clone an Application.
2-3
Chapter 2
Add and Edit Applications
• Save a copy of an existing application under the same application name. (for example,
2.0). See Work with Versions.
Clone an Application
When you clone an application, a copy of the selected application is created with a new name
and version that is specified by you.
Clone from the All Applications, Process Applications or Decision Applications page
1. From the list of applications, hover at the far side of the application you want to clone and
2. In the Version pop up that appears, click View more options and choose Clone.
3. In the Clone application pane, change the name, description, version tag and identifier
name for the application as needed.
4. Click Clone. The newly cloned application appears in the list of applications.
Rename an Application
You can change an application’s title and description only. You can’t change its identifier or
version.
Rename from the All Applications, Process Applications or Decision Applications page
1. From the list of applications, hover at the far side of the application you want to rename
1. At the top of the page, click Main menu and choose Info.
Alternatively, click the down arrow after the application name and version on top of the
page. In the Version pop up that appears, click View more options and choose Info.
2. In the Application Info pane, change the application name and description. Note that these
changes apply only to the selected application version.
3. Click Save. The newly saved application appear in the list of applications.
2-4
Chapter 2
Add and Edit Applications
Export an Application
Exporting saves an application’s metadata as an .expx file (in case of a process application) or
a .dmnx file (in case of a decision application) that can be imported as a new application on
another system.
Note:
You should not modify the contents of an exported file. If the contents of an exported
file is modified, then the file becomes corrupt and it cannot be imported.
What's exported?
All metadata (design time settings) from the application is exported, except for:
• Credentials
• Role assignments
Credentials and roles need to be reconfigured after import.
Export from the All Applications, Process Applications or Decision Applications page
1. From the list of applications, hover at the far side of the application you want to rename
1. Click the down arrow next to the application's name and version.
2. In the Version pop-up dialog that appears, click View more options and choose
Export.
You get a confirmation dialog that the file has been exported successfully and the file gets
automatically downloaded to your local system.
Import an Application
Import a previously exported process application or decision application to create a new
application.
What's imported?
You can import the following files:
• Previously exported .expx or .dmnx files from Oracle Cloud Infrastructure Process
Automation.
• Previously exported .exp and .dmn files that are created in Oracle Integration Generation
2.
2-5
Chapter 2
Add and Edit Applications
Once you import the .exp or .dmn file, Oracle Cloud Infrastructure Process Automation
displays a migration report that contains the following sections:
– Migrated
Review this section to understand what has been migrated.
– Review and finalize
Review this section and take the required action. For example, you have to manually
reassign the role members.
– Couldn't migrate
Review this section to understand functionality that could not be imported. For
example, references to Insight activity may not be available in Process Automation.
Note:
Once you fix the problems, validate the application. You can always access
the original migration report by clicking Main menu at the top of the
application's page and choosing View Migration report from the menu.
All metadata (design time settings) from the application is imported, except for:
• Credentials are not imported.
• Users or groups assigned to roles may be unavailable.
You can also import .exp and .dmn files that are created in Oracle Integration Generation 2.
Once you have imported the file, Process Automation displays a migration report that contains
the following sections:
To import a saved application:
1. On the Designer home page (All Applications), click Create.
2. In the Create application pane, choose Import application.
3. In the Import application pane, drag and drop the .expx file or the .dmnx file into the Drag
and Drop area.
You can also import .exp and .dmn files into the Drag and Drop area.
4. Click Import.
The newly imported application appears in the list of applications.
If you have imported a .exp or a .dmn file, Process Automation displays a migration report
that you need to read and take the necessary action.
1. At the top of the page, click the saved timestamp or click and choose View Activity.
2-6
Chapter 2
Add and Edit Applications
1. For an application, open the Version pop-up by clicking the down arrow next to the
application name and version breadcrumb.
The selected version is listed at the top. Note that a green dot is displayed next to the
default version of the application.
In this dialog, you can clone, export, delete, rename, or create a new version from any
version.
2. Create a new version. If creating from the selected version, click New Version. If creating
from a version below the selected version, click its New version icon.
A New Version side pane opens.
3. Enter a new version tag (for example, 1.1) or leave the default suggested tag. This tag will
differentiate the application versions.
4. Click Create.
The new version is created but not selected.
2-7
Chapter 2
Activate Applications
5. Click Open Now to open the new version. Alternatively, open the Version pop-up by
clicking the down arrow next to the application name and version breadcrumb. In the
Versions pop-up, select the new version to edit it.
1. For an application, display the Versions pop-up by clicking the down arrow next to the
application name and version. In the Versions pop-up, select the new version to edit it.
2. Click New Version.
3. Select another version to open and edit it.
• To delete the selected version, click View more options and choose Delete.
Activate Applications
After designing an application, you can activate your application and make its resources
available to be used by end users.
When you activate an application:
• You specify a snapshot (application metadata) to use.
• You’re notified of any validation issues. You can still activate with warnings but not with
errors.
• You can deactivate a previous activation, and activate your current one.
After activating an application:
• A process application's resources moves from design time (Designer) to runtime
(Workspace), where users can run it in either a test or production capacity.
2-8
Chapter 2
Activate Applications
• You can test the process application in Workspace, provided you have permission to start
requests for it.
• You can view and use REST API endpoints for the processes in a process application.
• You can view and use REST API endpoints for the decision services in a decision
application.
Topics:
• Activate an Application Version
• Deactivate an Application Version
• View Application API Endpoints
• View Activated Application Versions
2-9
Chapter 2
Activate Applications
Note:
Not sure which application version is active? Click and choose View Activated
Versions. The active version is identified by its version tag and shows a Running
status.
Under Last Activation, clicking View more options displays other available options
such as View Activated Versions and View API.
2. For process applications, click Deactivate and purge.
In the resulting pane, you get a message that if you choose to deactivate and purge it will
delete the currently activated version of the application, including the running and
completed process instances, and all associated analytics data. You're asked to confirm
the action.
Caution: If working in a production environment, use the Deactivate and purge option
with care. Deactivating and purging a process application permanently deletes all existing
(running or completed) process instances and associated analytics data for your
application version.
3. For decision applications, click Deactivate.
In the resulting pane, you get a message that if you choose to deactivate the decision
application, decision services of this version will be unavailable. You're asked to confirm
the action.
Caution: If working in a production environment, use the Deactivate option with care.
When you deactivate a decision application, the decision services exposed by it will no
longer be reachable. Only decision service endpoints of activated decision applications can
be reused by other process applications as well as external clients.
4. Click Confirm.
An intermediate message lets you know that your application is being deactivated. You get
a confirmation after deactivation, and the Activate pane opens.
5. Specify a snapshot to activate. See Work with Snapshots.
a. In the Select a snapshot field, leave New snapshot selected to capture your most
recent changes.
b. In the Snapshot name field, optionally change the default date/time name.
2-10
Chapter 2
Activate Applications
3. In the Activate pane, click View more options and select View API.
4. Expand API endpoints.
Depending on your application's components, endpoints are displayed. For example, in a
process application you can view endpoints for connectors and processes; and in a
decision application you can view endpoints of the exposed decision services.
2-11
Chapter 2
Activate Applications
5. If needed, click Explore complete API to view all available endpoints for Process
Automation. See available endpoints in REST API for Process Automation.
1. From an application's main page, click Main menu and choose View Activated
Versions.
The Activated Versions page appears. It displays all activated versions of the application.
2. You can identify an active version by its version tag, its status, the date of creation, and the
user who created it.
3. Click View more options (three horizontal dots) on an activated application version's row.
If required, select any of the following options:
• Test in Workspace: Click this option if you want to test the activated application
version in workspace. This option only appears for a process application. See Activate
and Test Process Applications.
2-12
Chapter 2
Work with Process Applications
• Deactivate: Click this option if you want to deactivate the activated application version.
See Deactivate an Application Version.
• View API: Click this option if you want to view REST API endpoints used in the
activated application version. See View Application API Endpoints.
Topics:
• Create a Process Application
• Add Design Components
• Activate and Test Process Applications
• Localize Applications
• Configure Searchable Fields Based on Business Data
2-13
Chapter 2
Work with Process Applications
A process application can contain some or all of the following design components:
Components Description
Processes Model your business process using structured or dynamic processes.
• A structured process follows a defined flow of human or automated
tasks. See Design Structured Processes.
• A dynamic process depends on human actions, events, and data
values. See Design Dynamic Processes.
UIs Create user interactions that display or request data from users.
• Quick Form: Quickly lay out a form. Use more advanced controls later, if
needed. See Work in the Forms Editor.
• Web Form: Design using the full range of options. See Work in the
Forms Editor.
• Linked UI: Connect and exchange data using a UI designed externally.
See Add a Linked UI Connection.
Decisions Create decision models to automate the decision logic inherent in your
business processes. You can either add an inline decision created within the
context of your process application or add an external decision service. See
Model Decisions.
Connectors Connect to an external system using REST APIs. See Work with Connectors.
Types Create business types and list of values to group related data types and
define the structure of data used.
• Business Types are created by adding attributes. See Create a
Business Type.
• List of Values are created by adding set of predefined values. See
Create a List of Values.
Roles Specify who can do what in your process application. See Configure Roles for
Process Applications.
2-14
Chapter 2
Work with Process Applications
• Work on Tasks
• Track Processes
Troubleshoot: If you can't see your activated process application in the Start Requests page
in Workspace, ensure that you’ve configured a role that can start the process in the application.
See Enable Users to Start Your Application.
Localize Applications
Process Automation supports localization for a number of components such as process
applications, processes (structured and dynamic), UIs (forms and external UIs), and decisions.
In addition, localization is also supported for dynamic labels of the following:
• Forms
• Structured process - activity name in process flow, human task title, and start form title
• Dynamic process - stage name, activity name, human task title
• Process application title and description
By default, all process applications are created in English. To localize an application, first
choose and add a locale from the available languages, and then provide localized strings for
the new locale in the Localization editor. The editor’s interface provides a consolidated view of
all default and translated resources and allows you to manage them from one place.
When the process application is activated in Workspace, users can view labels in the localized
language based on their browser language setting.
Note that if the browser language chosen by the user was not added as a locale in Designer,
then labels are displayed in the default language (English).
To localize an application:
1. Open an application.
2. Click Main menu on the top right of the application page, and select View
Localization.
3. In the Localization pane, click Add.
4. Choose a locale from the Select Locale drop-down field.
You can also search for a language in the resulting Search field while you choose a
language.
5. Optionally, select the Make it default check box to make it the application’s default
language.
6. Click Create.
The new locale is displayed in the Localization pane.
2-15
Chapter 2
Work with Process Applications
a. The main canvas of the editor displays the process application’s artifacts. You can
view the total number of artifacts displayed on the page in the top left corner.
b. At the right of each artifact, you can see the number of components or elements
present under each artifact.
c. Filter with a drop-down arrow next to it lets you select the artifacts (Project, Process,
and Form) that are to be displayed on the page.
d. A search field lets you search components by property. For example, if you search by
Title, all components in the application with property Title get displayed.
e. Reload icon lets you reload the page so that the latest changes get reflected.
2-16
Chapter 2
Work with Process Applications
f. Expand all rows icon expands all artifacts so that you can view or edit any of the
elements.
g. Collapse all rows icon collapses all artifacts, and gives you a concise view of the
artifacts.
h. Maximize icon expands the central pane with the four columns – Component,
Property, Default Text, and Translation Text.
9. Click the Translation Text field of a component, and enter the translated text.
The localization editor automatically saves the changes.
Note the Duplicate icon besides some of the rows. When you click the Duplicate icon
besides a row, changes made to the translated text of that row gets applied to all its
duplicate counterparts.
2. Click Main menu on top right of the process application page. Select Define
Business Search.
The Business Search window opens.
3. Click Add field.
2-17
Chapter 2
Configure Roles for Process Applications
Notice that all process and form data objects present in the process application are
displayed under the Attributes pane, on the left of the Business Search window. You can
add search fields using these process or form data attributes which are the business data
of your process application.
4. Select a process or form data object under the Attributes pane, and click Add Attribute.
The attribute gets added to the list on the right of the Business Search window. You can
also drag and drop an attribute to the list.
Notice the following in the attribute list table:
• By default, the attribute is added as searchable data into the Tasks page in runtime.
• If you don't want to add the attribute to the Tasks page, then deselect the
corresponding check box in the Task column.
• To delete the attribute from the list, click the Delete icon under the Action column.
5. If required, you can change the name and type of the search field.
• The name should always start with a lower case alphabet.
• You can choose a type from the Type drop-down field.
• Select the Match whole words check box to enable whole word search. Leave this
check box deselected, if you want to enable partial search of words.
6. Click Apply.
The field is added to the Business Search window.
In runtime, you can use the configured searchable fields to search for process instances or
tasks. See Search for a Task and Apply Advanced Search Filters.
Topics:
• About Process Application Roles
• Users, Groups, External Applications and Permissions
• Work with Roles in Designer
As a Process Automation Administrator (assigned the ServiceAdministrator IDCS application
role), you can manage process application roles in Workspace. See Manage Roles in
Workspace.
Note:
The users and groups assigned process application roles do not need the
ServiceAdministrator or ServiceDeveloper IDCS application roles.
2-18
Chapter 2
Configure Roles for Process Applications
To know about the different types of roles in Oracle Cloud Infrastructure Process Automation,
see Process Automation Roles.
2-19
Chapter 2
Configure Roles for Process Applications
Note:
Process Application Administrator is a system generated role and can't be
deleted.
• ProcessUser: This application role gets automatically created when you create a
structured process, and gets displayed in the swimlane. You can either use it for task
assignments or delete it.
The following table lists how and where Process Automation Designers and Process
Automation Administrators work on process application roles.
External applications
You can also authenticate and authorize an external application in a flow. In a business
scenario that uses machine to machine flows, the process instance and decision services can
handle requests that contain bearer tokens generated through the OAuth client credential flow.
To use an external application in a flow, as a prerequiste, you must have an Oracle Cloud
Infrastructure Identity and Access Management (IAM) application configured to authenticate a
client using the client credentials grant. This results in a scoped bearer token that can access
the Process Automation instance.
2-20
Chapter 2
Configure Roles for Process Applications
You can either use the default Oracle Cloud Infrastructure Identity and Access Management
(IAM) application created for your Process Automation instance or create a new integrated
application and configure it appropriately.
To initiate a Process Automation instance using the client credentials flow, add the external
application to a role with Use permission.
Note:
You can perform GET and POST operations at all instances level, while you can
perform only the GET operation on a specific instance.
Permissions
Users, groups, and/or external applications added to a process application role have to be
assigned one of four permissions, listed in the table below from least amount of access to the
most. For example, Inspect grants the least control and Manage grants the most. Behind the
scenes, permissions use a data access control (DAC) model.
2-21
Chapter 2
Configure Roles for Process Applications
2-22
Chapter 2
Configure Roles for Process Applications
• Scope: Choose Application to use the role in this application only. Choose Global to
allow this role to be used in other applications.
5. Click Create. The role is created.
6. Open the role from the Roles tab.
7. Assign users, groups and/or external applications to the role.
a. In the Category field, select Users, Groups, or External applications from the drop-
down list.
The search field displays the appropriate text depending on the category that you
selected.
b. Click the search field, a list of available users, groups, or external applications are
displayed.
c. Select the user, group, or external application to add it to the role. The selected user,
group, or external application gets listed on the roles page indicating that it has been
assigned to the role.
You can assign a combination of users, groups, and external applications to a role.
Process Automation Administrators can also select users, groups, external applications
later in Workspace to add to the role.
8. Under Choose permission, choose a level. The default is Use.
You can now use the role in structured and dynamic processes. See:
• Assign Roles to User Tasks in Structured Processes
• Assign Roles to User Tasks in Dynamic Processes
2-23
Chapter 2
Configure Roles for Process Applications
2-24
Chapter 2
Configure Roles for Process Applications
2-25
Chapter 2
Work with Decision Applications
Topics:
• Create a Decision Application
• Activate and Use Decision Applications
2-26
Chapter 2
Work with Decision Applications
2-27
Chapter 2
Create an Application from a Recipe
2-28
3
Design Structured Processes
A key part of your application is the business process. When developing a structured process,
your first step is to determine the people and roles required to complete each task that requires
user interaction. You then use the various activities, such as human tasks, system activities,
and other events, to design the flow of your process.
Note:
In Oracle Cloud Infrastructure Process Automation, you can create two types of
process: structured (described below), and dynamic, described in Design Dynamic
Processes.
Topics:
• Typical Workflow for Designing a Structured Process
• Use the Structured Process Editor
• Create a Structured Process
• Work with Activities
• Work with Sequence Flows
Task Description
Create a process Create a structured process from the Add component pane.
See Create a Structured Process.
Assign roles to the Assign roles and determine which members of your business organization are
process responsible for completing the tasks and activities within the structured
process.
See Work with Roles in Designer.
Design the flow Drag and drop activities such as human tasks, system, events onto the
canvas.
See Work with Activities
Configure activity
properties Select an activity in your process diagram, click , and select Open
Properties to open the Properties pane. Configure properties specific to the
activity. For example, configure a form, service call, or send task and receive
task.
Define the data Define the data the activity uses.
See Work with Data Objects
3-1
Chapter 3
Use the Structured Process Editor
Task Description
Associate the data Link data to the activity inputs and outputs.
See Configure Data Association
3-2
Chapter 3
Use the Structured Process Editor
3-3
Chapter 3
Use the Structured Process Editor
Activities Palette
Use the Activities palette to add activities and sequence flows to your business process by
dragging and dropping activities to the process editor canvas.
Click Expand to expand a specific type of palette item and see all the activities available for
that type. Click the icon again to collapse. Click Show/Hide Palette to close and open the
palette. See Work with Activities.
Swimlanes
Swimlanes are the horizontal lines that run across the process editor canvas. All activities must
be placed within a swimlane. Swimlanes that contain user tasks must have roles assigned to
them. Swimlanes visually display the role responsible for performing each activity within your
business process.
You can have multiple swimlanes that are assigned to the same role. Swimlanes can make
your business process more readable when you must use the same role in different parts of
the same business process.
When you create a new business process, a default swimlane is created. You can add
additional swimlanes to your business process as necessary. For example, for a travel request
approval business flow, you may have two swimlanes. The Employee role is assigned to the
first swimlane and the Approver role is assigned to the second swimlane.
See Add and Edit Swimlanes.
See Configure Roles for Process Applications.
3-4
Chapter 3
Create a Structured Process
2. Hover over Menu on the far side of the selected process, and choose Clone.
The Clone component pane displays.
3. In the Clone component pane, enter a name in the Title field and a suitable description in
the Description field.
4. Click Clone.
A confirmation dialog lets you know that the component is being cloned. You can click the
Open now link to open the cloned process.
3-5
Chapter 3
Work with Activities
The cloned process gets displayed as a new process in the Processes page as well as the
process application's main page.
Human
Human activities represent tasks where a process participant is required to perform the work.
The task can be a simple interaction, such as filling out a form, or part of a more complicated
workflow that requires input from multiple process participants.
• A submit task provides a form or submit action that the user acts on to create a request or
provide information about a certain subject.
• An approve task provides a form for review or an approve/reject action that the user acts
on to approve or reject the request.
See Add Human Interaction.
System
System activities allow you to define interactions across business processes and services. For
example, you can use a Service activity to invoke an external service or process, or a Call
activity to call a reusable process from within the current process.
Activity Description
Abstract Use to designate a placeholder for another activity.
Call Use to call a reusable process from within the current process.
3-6
Chapter 3
Work with Activities
Activity Description
Data Mapper Use to assign values to data objects and variables within the process.
Decision Use to incorporate decision services exposed through a decision created
within your application, into your business process.
Notify Use to send an email notification to a user.
Send Use to asynchronously start or send a message to another process.
Receive Use to receive a message from another process.
Send and receive activities are typically used as pairs to communicate
between asynchronous processes. See Use Send and Receive.
Service Use to communicate with other processes and services.
Subprocess Use to group related activities in your business process into inline
subprocesses.
Event Subprocess Use to handle exceptions that occur in the runtime life cycle of a process.
Upload Form Use the upload form activity to upload snapshot of a form in a process
instance to an external database or service.
Events
Event activities can be divided into two types:
• Start and End activities that define the starting and ending points of a process
• Intermediate activities that can either occur within the typical flow of your process or trigger
an interruption with your process
Activity Description
Start Use when no instance trigger is defined, such as when a process instance is
created by another activity, or as a placeholder when the start event isn’t
known.
Form Start Use to trigger a process instance when a user submits a form.
Message Start Use to trigger a process instance when an email message is received.
Timer Catch Use to control the flow of your business process using a time condition.
End Event Use to mark the end of a process path, or as a placeholder.
Gateway
Gateway activities determine the path a token takes through a process. They define control
points within your process by splitting and merging paths.
Activity Description
Exclusive Splits a process into multiple paths, where process flow continues down only
one of the paths. The decision about which path the process should proceed
along is based on data-specific conditions.
Inclusive Splits a process into multiple paths, where process flow can continue down
multiple paths depending on conditional sequence flow.
Parallel Splits a process into multiple paths, where process flow continues down all
paths simultaneously.
Integrations
Use the integrations activity to quickly add integrations to your structured processes. You can
do so by either of the two ways:
3-7
Chapter 3
Work with Activities
• Drag and drop an already configured integration connector from under the Integrations
category in the Activities palette.
• Drag and drop an integration activity from under the System category in the Activities
palette, and configure the connector's properties from the activity's properties pane.
See Work with Integrations.
Other
Notes are equivalent to sticky notes. They’re temporary and you should use them more as a
reminder and delete them as soon as the information is used.
Add Activities
You can add an activity to your business process by dragging it from the Activities palette onto
the process editor canvas.
To add an activity to a process:
1. In the Activities palette, click Expand next to an activity type.
2. Click and drag an activity onto the process editor canvas where you want to add it.
The cursor displays the icon associated with the activity type.
3. Position the cursor at the point in your process where you want to add the activity.
Note:
If you position the cursor over a sequence flow, incoming and outgoing sequence
flows for the new activity are automatically created.
Adding a gateway activity, such as an exclusive gateway, requires more steps. See Create a
Gateway.
Looking for a keyboard shortcut? After you select an activity, press p to open the properties of
the activity.
3-8
Chapter 3
Work with Activities
When a token reaches a human task activity, the corresponding task is performed. The token
waits until the human task activity is completed before continuing to the next activity. For
example, look at the following process where the loan request is submitted using the form start
event:
3-9
Chapter 3
Work with Activities
After the user enters information into the form, the process flow passes the outgoing sequence
flow to the loan approval human task activity. If the loan is approved, then the flow passes to
the fulfill human task activity. If the loan application is rejected, then the flow passes to the re-
submit human task activity for more information from the applicant.
See Create Human Task Activities.
This event is useful in business usecases that require periodic repetitive actions. For example,
you can use the timer start event to initiate a process to send weekly email reminders to all the
employees to submit their timesheets.
Note:
To stop a schedule, you have to deactivate the application.
3-10
Chapter 3
Work with Activities
You can configure hourly, daily, weekly, or monthly schedules as shown in the following
screenshot:
The timer start event also allows you to schedule triggering of process flows at repetitive time
intervals. Process Automation calculates all the schedules according to UTC time zone.
Additionally, to configure advanced schedules using cron expressions, select Advanced from
the Recurrence dropdown list, and then specify the cron expression.
Here is how you can use the cron expressions:
Example 1: Trigger a process flow every five minutes
0 0/5 * * * ?
Example 2: Trigger a process flow every 5 minutes, and every 10 seconds after the minute
(i.e. 10:00:10 am, 10:05:10 am, etc.).
10 0/5 * * * ?
3-11
Chapter 3
Work with Activities
Note:
• The timer start event rounds off to the nearest hour if the nearest hour is earlier
than the next scheduled time.
For example, if an event is scheduled for 8:11 a.m, the process flow is triggered
at 8:00 a.m which is 11 minutes earlier and at the beginning of the hour
according to UTC.
• Due to unknown circumstances, if there is any delay in starting a schedule, the
delayed start impacts subsequent scheduled triggering of the processes. For
example, consider a schedule that starts at 8:00 a.m and repeats every 15
minutes. However, due to unknown circumstances, the process starts at 8:05
a.m. The next scheduled process starts at 8:20 a.m, 8.35 a.m, and 8.50 a.m.
However, the next scheduled process starts at 9:00 a.m because there is an
overlap between the next scheduled start at 9:05 a.m, and 09:00 a.m.
None start events specify the beginning of a process where the process instance is created
by another event or activity. The none start event doesn’t trigger a new process instance.
Similar to other start events, the none start event can’t have incoming sequence flows. It can
only have default out-going sequence flows.
Note:
None start events are always used to define the beginning of reusable processes and
subprocesses.
The form is designed to get input from the user and present information relevant to the
workflow. As you build the form, a business object is created to store the form data.
3-12
Chapter 3
Work with Activities
Messages are types of data used to exchange information between processes. Just as
data objects are used to define the data used within an application, messages are used to
define the data used between processes or between a process and a service.
Similar to other start events, the message start event can’t have incoming sequence flows.
Message start events require a default outgoing sequence flow.
You can expose a business process as a service that allows other processes and applications
to invoke the process. To expose a process as a service, your process must begin with a
message start event. Additionally, you must define the input arguments to the process, which
are the data objects passed to the message start event.
The message start event allows you to specify input arguments to a process. These arguments
define the message that other processes or services must send to the process during
invocation.
Note:
Any process configured with a message start event will not appear in Workspace.
You can start a process configured with message start event using REST APIs.
• Run /process-interfaces API to get the processDefinitionId.
• Run /instances API with appropriate arguments to invoke a process.
See Create a Process Instance under REST API for Oracle Cloud Infrastructure Process
Automation.
3-13
Chapter 3
Work with Activities
For example:
To set a valid timer duration, use the DateTime variable minus the current time with the
now function: [Link]-'now'.
You can use timer events as boundary events on an activity. Timer events can be defined as
either interrupting or non-interrupting boundary events.
When an interrupting timer event fires, the token leaves the main process flow to follow the
process flow the timer event defines. The process flow that an interrupting timer event defines
can return directly to the main process flow.
When a non interrupting event fires, a copy of the token is created and passes through the
process flow the timer event defines. The process flow that a non-interrupting event defines
can’t return to the main process flow.
End Event
The end event marks the end of a process path. When a token reaches a none end event, it’s
consumed. If there are no other tokens within the process instance, then the instance is
complete.
A process should have at least one end event. However there can be multiple end events
based on how the process is designed.
3-14
Chapter 3
Work with Activities
You typically use the error end event with the error boundary event. The error boundary event
is used to change the process flow based on a specific error. This flow usually ends with an
error end event. See Error Boundary Event.
Use the error boundary event in the following activities that can throw service invocation failure
exceptions:
• A service task activity.
• A subprocess activity.
The error boundary event catches an error that can occur during the execution of an activity
and interrupts the execution of the process flow, and reroutes the flow out of an activity.
3-15
Chapter 3
Work with Activities
You can define the order in which the flows are evaluated by configuring the properties
for the gateway.
• If only one outgoing sequence flow evaluates to True, then the process token continues
down that outgoing sequence flow to the next activity.
• If more than one outgoing sequence flow evaluates to True, then the process token
continues down the first sequence flow according to the order you defined in the gateway
properties.
• If none of the outgoing sequence flows evaluates to True, then the process token moves
down the default outgoing sequence flow. Therefore, you must define a default outgoing
sequence flow for the exclusive gateway.
Unlike other gateways, the exclusive gateway doesn’t require a corresponding merge to be
explicitly defined in your process after splitting.
Note:
The exclusive gateway can also merge incoming sequence flows. However, there’s
no synchronization with other tokens that may be coming from other paths within the
process flow. If other tokens arrive at an exclusive gateway merge, then they’re
passed through as is. If you’re synchronizing tokens or performing evaluations on
incoming sequence flows, then you should use a different type of gateway.
3-16
Chapter 3
Work with Activities
The merge portion of the gateway is required. However, you don’t have to ensure that all paths
out of the split return to the merge.
Although it’s possible to have process paths that split at a gateway without merging through
the gateway, it’s not a good practice and not recommended.
Note:
If you delete the merge gateway from a business process, the corresponding split
gateway is also deleted.
3-17
Chapter 3
Work with Activities
Next, a token is generated for each of the conditional sequence flows that evaluates to True. A
token is generated for the default sequence flow only if none of the conditional sequence flows
evaluate to True.
These tokens are joined at the merge of the inclusive gateway. When a token reaches the
merge gateway, it waits until all the tokens generated by the split have reached the merge.
After all the tokens have reached the merge of the inclusive gateway, the merge is complete,
and the token continues to the next sequence flow after the gateway.
The token proceeds along all the sequence flows that evaluate to True. If none of the
sequence flows evaluate to True, then the token passes along the default sequence flow.
The merge portion of the gateway is required. However, you don’t have to ensure that all paths
out of the split return to the merge.
Although it’s possible to have process paths that split at a gateway without merging through
the gateway, it’s not a good practice and not recommended.
Note:
If you delete the merge gateway from a business process, the corresponding split
gateway is also deleted.
3-18
Chapter 3
Work with Activities
Note:
You must design your business process so that a token arrives for each incoming
sequence flow for the merging parallel gateway. If you don’t, your business process
can freeze if the merge is expecting tokens that don’t arrive.
Create a Gateway
Use gateways to control how the process flows.
To create a gateway:
1. Open your process.
2. In the Activities palette, click Gateways to expand the list.
Here are the gateways you can add to a process:
Exclusive Only one of the paths out of the gateway is taken. The decision about
which path the process should proceed along is based on data-
specific conditions. For example, an exclusive gateway can specify
different paths for the APPROVE and REJECT outcomes of an
Approval human task.
Inclusive One or more paths out of the gateway can be taken, and the paths
must converge later in the process. Use this type to perform several
optional or conditional tasks at the same time.
3-19
Chapter 3
Work with Activities
Parallel All paths out of the gateway are taken, and the paths must converge
later in the process. Use this type to perform several required tasks at
the same time.
4. Select the gateway. Click Sequence Flow and drag the icon to create each path that
exits from the gateway.
• For exclusive or inclusive gateways, make sure the default path connects to the
correct activity. Default sequence flows represent the path your business process
takes out of these gateways when none of the data conditions evaluate to true. Default
sequence flows are represented by an arrow with a slash mark on one end.
• For inclusive or parallel gateways, you can drag paths to the side to separate them.
• For parallel gateways, you must drop at least one activity onto each path before you
can create another path.
5. For exclusive or inclusive gateways, create a data object. Data objects store and organize
data the process uses.
a. Select the gateway and click the Data icon. The Data pane opens.
b. Click Create Data Objects.
c. In the resulting pane, type a name for this data object. All names must begin with a
lowercase letter.
d. Select the data type that matches the data flowing into the gateway from the previous
task.
In most cases, the type is boolean (true or false) or string (text). For example, select
string for the APPROVE and REJECT outcomes of an Approval human task.
e. Click Create.
f. Close the Data pane.
6. For exclusive or inclusive gateways, implement each non-default path.
You don’t need to implement the default path, but you should name it.
3-20
Chapter 3
Work with Activities
a. Select the task that precedes and sends data to the gateway, and click Data
3-21
Chapter 3
Work with Activities
Activity Description
Use the service activity to communicate with other processes and services. Add the
service activity when you know that your business process must invoke an external
service or process.
Service For example, the following process uses the service activity to save the finalized sales
quote to a database.
When the service activity invokes a service, the token waits at the service activity until a
response is returned. After the response is received, the token continues to the next
sequence flow in the process. Note that multiple service activities can also execute at any
given point of time depending on the way the user has modeled the application.
In case a service activity fails to execute (for example, due to REST endpoint timeout),
you get an error message with details about the failure in the process Tracking page in
runtime. You can manually retry the service activity from the process Tracking page by
clicking the Retry button.
Use the notify activity to generate and send notifications. The notify activity, which is
similar to the service activity, uses a predefined service to perform notifications. You use
expressions to determine which users receive the notifications generated by the notify
Notify activity.
Currently, email is the only type of notification supported in Oracle Cloud Infrastructure
Process Automation. This type of notification sends an email to the users you specify.
See Send Notifications.
Use the call activity to call a reusable process from within the current process. The
process being called becomes a child process of the calling process.
When calling a reusable process, the call activity of the parent process waits until the child
Call process completes before continuing.
Data objects of the parent process aren’t automatically available to the reusable process.
Data objects must be passed to and from the child process using argument mapping of
the call activity.
See About Reusable Processes.
Use the decision activity to add decision services to your process applications.
You can use different types of decision logic, such as decision tables, simple expressions,
and so on, to create an executable decision model, then expose it as services. These
Decision decision services can be incorporated into your business process to facilitate automated
decision-making.
Want to know more about working with decision models? See Model Decisions.
Use the upload form activity to capture snapshot of a form (with its payload) during
execution of a process instance and store the form in a database or service for archiving
Upload Form or auditing purposes.
For example, you can capture snapshots of a form after a user submits the form and then
again after a manager approves the form during a process execution and upload the form
snapshots to an external database for auditing purpose.
See Configure an Upload Form Activity.
3-22
Chapter 3
Work with Activities
Activity Description
Use the subprocess activity to model a subprocess within a business process. The
subprocess becomes a child process of the parent process and is always a part of the
Subprocess parent process. A subprocess activity lets you hide the complex details of a part of a
process to make the overall process more readable.
See About Subprocesses.
Use the event subprocess activity to catch system exceptions that occur in the runtime life
cycle of a process and cause it to fail.
See Handle Errors with Event Subprocesses.
Event Subprocess
Use the send activity to start another process from within the current process. The send
activity doesn't wait for the process that it starts to complete. Once the called process is
Send started, the main process continues to the next activity in the process flow. The called
process and the main process runs asynchronously. See Use a Send Activity.
A send activity can also be used to send a message to a receive activity in another
process. See Use Send and Receive.
Use the receive activity to receive messages from another process or external system. It
waits for the message to arrive from a process or external system. Once the message is
Receive received, the receive activity completes and the process continues to the next activity in
the flow.
A receive activity is usually paired with a send activity to interact between asynchronous
processes. See Use Send and Receive.
Receive activities paired with send activities can also be used to set up correlation to
communicate between asynchronous processes. See Example of Using Correlation with
Send and Receive.
3-23
Chapter 3
Work with Activities
Select the call activity, then click and select Open Properties to open its
properties pane.
d. Under the Implementation section of the properties pane, select the reusable process
from the Process drop-down field.
The reusable process that you created in step 1 should appear in the Process drop-
down field.
e. Close the properties pane to save the changes.
3. Define data associations for the call activity to pass the input data to the reusable (child)
process and receive the output data from it.
See Configure Data Association.
About Subprocesses
Subprocesses are embedded or in-line processes within the main business process. They are
mainly used to manage complex business processes by grouping related activities together.
Subprocesses not only improves the readability of complex processes in design-time but also
improves the runtime user experience by enabling users to take collective actions on similar
tasks during process execution.
Note the following:
• Subprocesses are child processes within the main (parent) process. But unlike reusable
processes, they can't be called from outside the parent process.
• Subprocesses must always begin with a none start event and end with a none end event.
• Subprocesses are useful in modeling a group of repeatable tasks within the main process
as subprocess activities can be configured as multi-instance activities.
• Subprocesses can have sequence flows only within the subprocess. Sequence flows that
connect to activities outside the subprocess are not supported.
Let us explore how we can use subprocesses to make a complex process such as an
employee onboarding process into a more manageable and readable process in design time,
and then explore the runtime experience for the same. The employee onboarding process can
have several activities within it, such as activities related to the main hiring process, and
activities for training newly hired employees. We'll use the subprocess activity to group related
hiring and training activities into inline subprocesses thereby making the main process more
readable.
1. Create a structured process.
2. Add subprocess activities onto the process flow and group related activities into the inline
subprocesses.
a. In the Activities palette, expand Systems and drag and drop a subprocess activity
onto the process flow.
For example, we have added two subprocess activities Hiring Process and
Mandatory Trainings Process onto the process flow of the Employee Onboarding
Process. We'll group activities related to hiring and training under these two
subprocesses.
3-24
Chapter 3
Work with Activities
b. Now expand the subprocess activity, and then drag and drop required activities from
the Activities palette into the subprocess.
For example, in the subprocess Hiring Process, we have added the following activities:
• A human task activity Collect Basic Employee Information for the recruiter to
gather information about the employee.
• A decision activity Perform Background Check to check if the information provided
by the employee matches the job criteria.
• An exclusive gateway which when evaluates to True allows the process to move to
the next human activity Generate and Sign Employment Contract, otherwise
sends a notification with the Notify activity.
• A human task activity Generate and Sign Employment Contract for the employer
to generate and submit the employment contract.
• A human task activity Final HR Approval of type approve for the HR manager to
approve the employment contract for the employee.
You would need to configure the implementation details for the activities. For example,
in case of the human task activities you would need to associate specific forms that the
end user needs to complete and take actions (Submit or Approve).
3-25
Chapter 3
Work with Activities
The two inline subprocesses - Hiring Process and Mandatory Trainings Process
become child processes of the main process (Employee Onboarding Process).
Depending on your modeling requirement, you can also use nested subprocess, that
is, add a subprocess inside another subprocess.
3. Configure the subprocess activity as a multi-instance activity. See Configure a Multi-
instance Activity.
For example, we have configured the subprocess activity Hiring Process as a multi-
instance activity.
A marker with two parallel lines appear on the subprocess activity indicating that it has
been configured as a multi-instance activity whose instances will execute in parallel in
runtime.
4. Define data associations for the activities in a subprocess. See Configure Data
Association.
3-26
Chapter 3
Work with Activities
For example, the following figure shows the data associations for the Final HR approval
activity.
Notice the following under the Data Objects section in the data association editor:
• The data objects for the subprocess are present under Subprocess Data.
• The multi-instance predefined variables for the subprocess (as the subprocess is
configured as a multi-instance activity) are present under Activity Loop.
5. Deploy and test the process application. Take actions and complete the various tasks in
the parent process and the child subprocesses in runtime.
For the Employee Onboarding process, the sequence of the tasks will be as follows:
• The process instance is started by submitting the start form.
• The process moves to the next task, in this case the first activity (Collect Basic
Employee Information) in the subprocess Hiring Process.
• After completing each task in the subprocess Hiring Process that is configured as a
multi-instance activity with parallel execution, the process moves to the next activity
Schedule Orientation in the process flow.
• Once the Schedule Orientation task is completed, the process moves to the
subprocess Mandatory Trainings Process.
• After completing each task in the subprocess Mandatory Trainings Process, the
process ends and the process instance state changes to Completed.
3-27
Chapter 3
Work with Activities
If required, in the Audit window you can drill down and check how each of the parallel
instances of the multi-instance subprocess (Hiring Process) executed.
3-28
Chapter 3
Work with Activities
3-29
Chapter 3
Work with Activities
1. On the Activities palette, expand System and drag and drop a send activity onto the
process flow.
2. Double-click the send activity. Alternatively, select the activity, then click and select
Open Properties to open the activity's properties pane.
3. In the properties pane of the send task activity, enter a name for the activity in the Name
field and an optional description in the Description field.
4. Under the Implementation section of the properties pane, enter the following details:
a. In the Type drop-down field, choose Process call.
b. In the Process drop-down field, select the process that you want to trigger with the
send activity.
c. In the Target node drop-down field, choose the target node for the selected process.
Note that the target node can be one of the following in the called process:
• message start event
• form start event
5. Close the properties pane to save the implementation details in the send activity.
6. In the called process:
• For a message start event, define input arguments.
• For a form start event, define data associations to pass the input arguments to the next
activity in the process flow. See Configure Data Association.
After activation, in runtime Tracking page you will see that the main process and the process
triggered by the send activity (called process) are running and completing asynchronously.
Send Notifications
Use the notify activity to generate and send email notifications to users that you specify. You
can create custom email notification templates.
To send email notifications:
1. On the Activities palette, expand System and drag and drop a Notify activity onto the
process flow.
2. Configure the properties for the notify activity.
a. Double-click the notify activity in the process flow, to open its properties pane.
b. In the properties pane of the activity, enter the name and description for the notify
activity.
c. In the Send an e-mail section, enter the following information:
3-30
Chapter 3
Work with Activities
Note:
The combined character limit of To, Cc, Bcc, and Reply fields is 200. To add
more recipient email addresses, you can add multiple notification activities.
d. To test the process flow without waiting for all activities in the process to be
implemented, select Draft checkbox.
3. To send a plain email notification message, select Body and enter the message in the
Body field.
4. To send a customized email notification, select Template.
a. To use the default template, select Default Template from the drop down.
b. To create a custom template, in the Manage Email Templates section, click the plus
icon.
Enter the name of the template and the html template for the notification message. You
can also create a copy of the default template and modify it to your requirements.
3-31
Chapter 3
Work with Activities
3-32
Chapter 3
Work with Activities
• Define and create correlation key from the properties pane of a receive activity.
• Define and create correlation key in the process level by clicking the Correlation keys
icon from the sidebar menu of the process editor. The Correlation keys pane opens where
you can define correlation keys for your process. Once defined you can use it in a receive
activity in that process.
3-33
Chapter 3
Work with Activities
3. Implement a start form for the form start event in the Order process.
The form should have at least two fields: Order Id and Description. When you add these
two fields in the form, notice that two data objects orderId and description get listed
under the Data section in the properties pane of the form.
You can implement the same form but with different presentations in the Approve and
Approve bill amount activities.
4. Define input arguments for the message start event in the Vendor process.
Open the properties pane of the message start event (Start vendor process) to specify the
input arguments. Define two input arguments: order_id and desc.
5. Use the send activity in the Order process to call the Vendor process.
a. Open the properties pane of the send activity (Send order details).
b. In the Type drop-down field, choose Process call.
c. In the Process drop-down field, select the Vendor process.
d. In the Target node drop-down field, choose the message start event (Start vendor
process) of the Vendor process.
3-34
Chapter 3
Work with Activities
6. Define data associations in the Order process' send activity (Send order details) to map
orderId and description to order_id and desc.
• orderId and description are the start form's data objects.
• order_id and desc are the message start events input arguments.
7. Define input arguments that you want to receive in the callback from the Vendor process.
a. Open the properties pane of the receive activity (Waiting for vendor response) in the
Order process.
b. In the Type drop-down field, select Define interface as the implementation type.
c. In the Operation name field, define the operation: waitingForVendorResponse.
d. Under Arguments Definition, define the input arguments: orderid and quote.
8. Implement correlation in the receive activity of the Order process so that the response
message from the Vendor process is mapped to the correct Order process instance.
a. Open the properties pane of the receive activity (Waiting for vendor response) in the
Order process.
b. Define the correlation key.
i. Under the Correlation section, click the arrow > next to Key.
ii. In the resulting Create key pane, click the New tab.
iii. In the Name field, enter a name for the key (orderKey).
3-35
Chapter 3
Work with Activities
If required, you can add more than one property to the key. Use + to add more
properties.
v. Click Apply.
A green check mark next to Key indicates that the correlation key has been defined.
c. Correlate or match the correlation key to the input argument that will be received from
the Vendor process in its response message. In our example, we'll match id (the
attribute of the correlation key) to the input argument attribute orderid.
i. Click the arrow > next to Correlate.
ii. In the resulting Correlate key attributes pane, switch to literal mode in the drop-
down field, and choose orderid from the list.
3-36
Chapter 3
Work with Activities
A green check mark next to Correlate and id: orderid indicates that the key has
been correlated.
d. Initialize the correlation key.
i. Click the arrow > next to Initialize.
ii. In the resulting Initialize pane, choose Start event in the Initialize in drop-down
field.
iii. Under Map attributes to arguments, map the correlation key property id to the
start form's data object orderId. Use the expression mode to form the expression
[Link] in the given field.
3-37
Chapter 3
Work with Activities
When we initialize the key in the start activity, we assign a value to the correlation key.
The value comes from the form's data object orderId.
9. Implement a form for the submit human task activity (Provide quote) in the Vendor process.
This form should have at least the following fields: Order Id and Quote amount.
10. Define data association for the message start activity (Start vendor process) in the Vendor
process, so that order_id is mapped to the submit form's data object orderId. This
ensures that the order id value is passed into the submit activity (Provide quote) of the
Vendor process.
11. Use the send activity in the Vendor process to callback the Order process.
3-38
Chapter 3
Work with Activities
This ensures that the correlation key value matches the value in the orderid input
argument and the quote amount for the requested item is passed onto the correct Order
process instance.
Now that the processes are set up, you can activate and test the process application in
Workspace. Track the running of the Order and Vendor process instances from the Tracking
page, and check if the response message from the Vendor process instance is received by the
corresponding Order process instance. See Track Processes.
3-39
Chapter 3
Work with Activities
3-40
Chapter 3
Work with Activities
• Call
• Service
• Subprocess
• Integration
1. Open a structured process where you want to add a repeatable or multi-instance activity.
2. In the process editor, expand System in the Activity palette, and drag and drop an activity
(Call, Service, Subprocess, Integration) that can be configured as a multi instance activity
onto the process flow.
Notice how a multi-instance icon appears on the right side of the process editor. The
icon is displayed only for a call, service, subprocess or integration activity, indicating that
you can configure such an activity as multi-instance.
3. If required, complete the implementation details for the activity.
a. Double click the activity, or select the activity and click , and then select Open
Properties to open the activity's properties pane.
b. In the activity's properties pane, under Implementation:
• For a call activity, select the process you want to call from the Process field.
• For a service or integration activity, enter the connector details by selecting the
service in the Service field, the resource in the Resource field, and an operation
in the Operation field.
3-41
Chapter 3
Work with Activities
Predefined Variables
The following predefined variables are available for multi-instance activities.
3-42
Chapter 3
Work with Activities
2. Add and configure a REST connector that will upload the form to an external service.
See Work with Connectors.
3. Configure the properties for the upload form activity.
a. Double-click the upload form activity in the process flow, to open its properties pane.
Alternatively, select the upload form activity, then click and select Open
Properties to open its properties pane.
b. In the properties pane of the activity, enter the following information :
Note:
If the same expression exists in a upload file activity's
data association as well as in the file content
expression field (in the properties pane), then the
execution of the file content expression will be given
precedence over data association in runtime.
3-43
Chapter 3
Work with Activities
4. Deploy and test the process application, submitting and approving the form as needed.
Check if the form data has been uploaded to the external service.
3-44
Chapter 3
Work with Activities
3. Once you're sure about the kind of activity you want to use, you can change the abstract
activity type. For example, you decide to use a service activity to validate the travel
request. Right-click the abstract activity and select Change Type, then choose Service.
3-45
Chapter 3
Work with Activities
Suppose you want to activate and test a travel request process that has an unimplemented
service activity.
2. In the properties pane for the activity, select the Draft check box.
Notice the following:
• The service activity is greyed out.
• The validation error disappears and a green tick mark indicates that the process is
valid.
3-46
Chapter 3
Work with Activities
2. Select the Data Mapper activity, click , and select Open Data Association.
The Data Association editor opens. Notice that the editor contains only the Output tab
because the Data Mapper is just a mapper that serves to associate one process data
object or variable with another. Unlike other activities (for example, human tasks), it does
not have data objects of its own that require mapping with the process data on the input
side.
3. In the editor, drag and drop elements from the left and right panes onto the center pane to
map associations. Both the panes display all the available data objects or variables within
the process. The object you add on the left serves as the source and the object on the right
denotes the target of the mapping. The following figure shows a sample data mapping:
3-47
Chapter 3
Work with Sequence Flows
Here, the value of a form data object, customername is assigned to another form data
object name, and a literal value of “Paris” is assigned to a form data object, city.
Note:
If you chose a predefined variable as the target, ensure that it isn’t read only.
4. Optionally, use the Expression Editor to build an input expression using standard functions
and operators.
5. Click Apply to save the data mappings.
To define data associations through other activities, such as human task or service activities,
see Configure Data Association.
3-48
Chapter 3
Work with Sequence Flows
Most activities can contain only one default outgoing sequence flow. Only parallel gateways
can contain multiple unconditional sequence flows, which represent the parallel paths of your
business process.
Exclusive and inclusive gateways can’t have unconditional outgoing sequence flows. These
gateways use conditional and default sequence flows to determine the flow of your business
process.
Not all activities can use outgoing conditional sequence flows. Only the following types of
gateways can have outgoing conditional sequence flows:
• Exclusive gateways
• Inclusive gateways (split)
You use expressions to define the conditions used within a conditional sequence flow.
3-49
4
Design Dynamic Processes
A key part of your application is its business process or processes. When developing a
dynamic process, first determine the activities and stages that may occur. You can then build
out related elements, such as web forms for human interaction, milestones, and the data flow
between elements.
Note:
In Oracle Cloud Infrastructure Process Automation, you can create two types of
processes: dynamic (described below) and structured, described in Design
Structured Processes.
Topics:
• How do dynamic processes work in process applications?
• Model a Dynamic Process in Design Time
• Create a Dynamic Process
• Create Activities
• Create Stages
• Define Stage Properties
• Define Activity Properties
• Define Conditions for Stage or Activity
• Define Process Input and Output
• Define Process Data Objects
• Define Process Completion and Termination
• Work with Inline Validations
4-1
Chapter 4
Model a Dynamic Process in Design Time
Wondering how knowledge workers use activated dynamic processes? See Work on
Processes.
4-2
Chapter 4
Clone a Dynamic Process
The dynamic process is created and listed in the Processes page. You can either open it
immediately by clicking the Open now link in the Confirmation dialog, or select and open it
from the Processes page.
Create Activities
Activities represent the actions for a process to execute. The Activities drop-down menu on
the dynamic process canvas contains all the activities that can be used within a dynamic
process.
Activities are divided into the following types:
4-3
Chapter 4
Create Stages
Select the activity to perform various actions on it. The actions available for each activity are
listed as follows:
• Edit – Click this icon to edit the properties of the activity. See Define Activity
Properties.
Create Stages
Stages are segments that a dynamic process can be divided into. A stage acts as a container
using which you can group and organize activities in a logical way. Typically, activities that
must be completed in order for a milestone to be achieved are grouped into a stage.
The execution of stages is not necessarily sequential. Stages can be activated in parallel or
upon occurrence of an event.
Note:
Within a process, activities can exist without being grouped into a stage. Such
activities are called Global activities.
To create a stage on the process canvas, enter a suitable name in the Add Stage field, and
click Add Stage next to it. An example stage with some activities grouped into it is shown
in the following figure:
4-4
Chapter 4
Define Stage Properties
Select the stage to perform actions on it. The actions available for each stage are listed as
follows:
• Edit – Click this icon to edit properties of the stage. See Define Stage Properties.
Properties that appears to open the Properties pane. Optionally, select a stage and click
the Properties icon on the right of the process editor canvas to open the Properties pane.
In the Properties pane, you can do the following:
• Edit the name of the stage. Click the field with the name to modify it.
• Enter a suitable description in the Description field. Click the field to enter a description.
• Enable markers for the stage, and if required set conditions for markers.
4-5
Chapter 4
Define Stage Properties
2. Click the Edit Property icon that appears next to the selected marker.
3. In the resulting pane, click Create Data Condition to create a new condition.
4. Define the condition.
The following figure shows a data condition that has been defined.
5. Click Create.
The following table lists the markers available for a stage.
Marker Description
Enable the Repeatable marker to repeatedly execute an entire stage.
Repeatable
• If this marker is enabled with no data condition, a new instance of
the stage is created each time the execution of the stage is
complete.
• If this marker is enabled with a data condition, a new instance of the
stage is created only when the data condition is fulfilled and the
stage instance transitions away from the Available state into the next
state.
Enable this marker to make execution of a stage obligatory for the
Required
process to complete.
Enable the Manually Activated marker if you require a stage to be
Manually Activated
started by a process participant.
• If this marker is enabled, the stage transitions from Available to
Enabled (after fulfilling enablement conditions if any). From here, a
process participant can move the stage into Active or Disabled
states.
• If this marker is disabled, the stage automatically transitions from
Available to Active (after fulfilling activation conditions if any).
To define enablement or activation conditions for a stage. See Define
Conditions for Stage or Activity.
4-6
Chapter 4
Define Activity Properties
Marker Description
select an activity and click Edit Properties that appears to open the Properties pane.
Optionally, select an activity and click the Properties icon on the right of the process editor
to open the Properties pane.
In the Properties pane, you can do the following:
• Edit the name of the activity. Click the field with the name to modify it.
• Enter a suitable description in the Description field. Click the field to enter a description.
• Enable markers for the activity, and if required set conditions for markers. See Enable
Markers for an Activity.
• For Human Task Activity, specify some additional details.
• For Process Activity, specify implementation details.
• For Service Activity, specify implementation details.
• For Connectors, specify implementation details.
2. Click the Edit Property icon that appears next to the selected marker.
3. In the resulting pane, click Create Data Condition to create a new condition.
4-7
Chapter 4
Define Activity Properties
5. Click Create.
The condition is set for the activity's marker. The marker gets enabled for the activity only when
this condition is satisfied.
The following table lists all markers available for an activity.
Marker Description
Enable the Repeatable marker to repeatedly execute an activity.
Repeatable
• If this marker is enabled with no data condition, a new instance of
the activity is created each time the execution of the activity is
complete.
• If this marker is enabled with a data condition, a new instance of the
activity is created only when the data condition is fulfilled and the
activity transitions away from the Available state into the next state.
Enable this marker to make execution of an activity obligatory for the
Required
stage/process to complete.
For a new activity, this marker is enabled by default.
Enable the Manually Activated marker if you require an activity to be
Manually Activated
started by a process participant.
• If this marker is enabled, the activity transitions from Available to
Enabled (after fulfilling enablement conditions if any). From here, a
process participant can move the activity into Active or Disabled
states.
• If this marker is disabled, the activity automatically transitions from
Available to Active (after fulfilling activation conditions if any).
To define enablement or activation conditions for a stage, see Define
Conditions for Stage or Activity.
4-8
Chapter 4
Define Activity Properties
• Select Submit to create a submit task where a user has to complete and submit a form.
• Select Approve to create an approve task where a user has to view or/and complete a
form, and then perform actions such as approve or reject the form, or perform a custom
action that you define.
Assign Tasks
In the Assignees section, click the Assign to field and assign the task to users (Members),
roles (Roles) or users specified through expression (Expressions). You can also search for a
user or role by typing the first few characters of the name in the Search field.
4-9
Chapter 4
Define Conditions for Stage or Activity
In Workspace, when a user starts a dynamic process containing a process activity, the
structured process corresponding to this activity is automatically instantiated even if the user
doesn’t have permissions to instantiate it. However, in such cases, the user is only able to view
the structured process instance and its associated tasks. To perform actions in the structured
process instance, the user must have the correct permission level or has to be a Process
Application Administrator.
execution being complete. A termination decorator appears on the stage or activity that
has the condition defined.
Conditions are triggered by events or by data or both. To create a condition:
1. Select the stage or activity for which you want to define an activation or termination
condition.
2. Click the Condition icon present on the right of the process editor canvas.
5. To create an event trigger, click Create Event next to Events and define a trigger from
the available drop-down fields.
For example, if you want a stage to be completed only after its previous stage is complete,
select Previous Stage in the Stage or Activity drop-down field, and Complete in the
Actions drop-down field.
The following table details the options you can select from the Actions drop-down field for
a Stage or Activity.
4-10
Chapter 4
Define Process Input and Output
Note:
• You can create event triggers for a stage or activity based only on its siblings.
That is, for an activity within a stage, you may create an event trigger based
on other activities within the same stage. Similarly, you can define event
triggers for a stage based on other stages or global activities only.
• When you create multiple event triggers for the same stage or activity, a
logical AND expression is formed which includes all triggers.
6. To create a data trigger, click Create Data Condition next to Data Driven to define a
condition based on a process variable's value in the payload.
7. Click Create to save the changes.
4-11
Chapter 4
Define Process Input and Output
Alternatively, click Interface and click Define Input Data next to Input.
The Start the Dynamic Process dialog opens.
2. Choose one of the following options under Who can start the process?
• Any user with Use or Manage permission
• Any Authenticated User
3. Choose one of the following options under How to start the process?
• With Data Only: Select to define input arguments to the process. Use this option to
start a process instance with data from other processes or REST services.
• With Form: Use this option to trigger a process instance using a form or REST
service.
4. If you select the With Data Only option, click Add Argument to define new arguments.
a. Provide a name to identify the argument and select a data type for the same. You can
use simple or pre-defined business data types.
Note:
When you use a form as input, a business object to store the form data is
automatically created and displayed under the Interface Argument section
within the dialog. This input business object is also displayed in the Data
pane. See Define Process Data Objects.
4-12
Chapter 4
Define Process Data Objects
Alternatively, click Interface and then click Define Output Data next to Output.
The Define Output Data dialog opens.
2. In the Define Output Data dialog, click Add Argument to define new arguments.
a. Provide a name to identify the argument and select a data type for the same. You can
use simple or pre-defined business data types.
4-13
Chapter 4
Define Process Completion and Termination
You can create two types of data objects within a dynamic process:
• Simple: Simple data objects define the basic types of variables that you can use within
your process. They can be used separately within your process or they can be combined
into complex data objects.
• Business: Business objects enable you to create data structures based on simple data
objects. For example, you can create a business data object called Patient that contains
different data types for patient name, age, and pincode.
To create a new data object:
Use Edit or Delete to modify an existing data object from the Data pane.
Note:
In addition to data objects, the input and output data that you define for the process
also show up in the Data Object pane.
selecting the Auto Complete marker. Click Properties to open the Properties pane. Select
the check box next to the Auto Complete marker to enable it. An Auto Complete decorator
appears for the process above the dynamic process editor.
When you enable the marker without conditions, it applies to the process by default. You can
also enable the marker based on data conditions defined using process variables.
4-14
Chapter 4
Work with Inline Validations
Marker Description
• If the Auto Complete marker is enabled, a
Auto Complete
process is automatically marked Complete if
none of the plan items (stages or activities)
within it are in the Active state and all required
plan items are Completed, Terminated, or
Disabled.
• If this marker is disabled, a process is marked
Complete only if all plan items are Completed,
Terminated, or Disabled.
Note that when this marker is disabled, you can
also manually complete a process if none of the
plan items is in the Active state, and all required
plan items are Completed, Terminated, or Disabled.
A termination decorator appears on the process, above the dynamic process canvas.
When a process is terminated, all Active stages and activities within the process are also
terminated.
Click Interface , to open the Interface pane. Edit or define process input and output.
See Define Process Input and Output.
4-15
Chapter 4
Work with Inline Validations
• The validation icon's number displayed at the top of the dynamic process editor indicates
the total number of issues found in the process.
• Use the Configuration pane to hide or display validation issues. Click the Configuration
icon to open the Configuration pane. Deselect the Show Inline Errors and Show
Inline Warnings check boxes to hide inline validations.
4-16
5
Design Forms and User Interfaces
In Oracle Cloud Infrastructure Process Automation, you create web forms to interact with end
users.
Topics:
• Forms and Linked UIs at a Glance
• Work in the Forms Editor
• Position Controls on Forms
• Configure Basic Controls
• Configure Advanced Controls
• Implement Intelligent Document Processing in Forms
• Reuse Forms
• Work with Presentations
• Work with Styling
• Bind Form Data with Controls
• Create Computed Controls
• Specify Filters for Controls
• Add Dynamic Behavior to Forms
• Preview Forms and Their Payload
• Configure a Linked UI
5-1
Chapter 5
Forms and Linked UIs at a Glance
5-2
Chapter 5
Work in the Forms Editor
5-3
Chapter 5
Position Controls on Forms
The row is based on a 12-column grid system. For example, if the row has four controls, then
each uses three columns. When more than 12 controls are added to a row, the remaining
controls are displayed below the table.
Note:
If you delete a panel, a section, or a tab, all the controls grouped inside the panel,
section, or tab also get deleted.
5-4
Chapter 5
Configure Basic Controls
Tables and repeatable sections provide a way to add information and content dynamically to
forms. With these controls, you can run action and if triggers in the form to display dynamically
changing information.
See Configure Tables and Configure Repeatable Sections.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Placeholder Text that will appear in the control until any text is entered. If text is
removed from the control, the text specified in this field reappears.
Hint Hint text that will display to users when a user clicks into the control.
5-5
Chapter 5
Configure Basic Controls
Field Description
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Min Length Defines the minimum number of characters a user must enter into the
control. Leave this field blank if you don't want to define the minimum
length.
Max Length Defines the maximum number of characters a user can enter into the
control.
Rows Defines the number of text rows that will be visible to a user. A scroll bar
appears automatically when the number of text rows entered by the user is
greater than the value specified in this field.
Pattern Allows you to define custom validations on the type of text a user enters
into the control. Enter a pattern using regular expressions. When you
specify a pattern for the control, you can also specify a message in the
Pattern Validation Message field that will display if the validation fails.
Password Allows you to create a secure text field that masks the characters entered
into it.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
Field Description
Name An internal identifier that you will use to identify the control.
Text Specifies the simple text value that displays as the field's label.
Hide Select this check box to hide the control.
Events Specifies events that trigger actions. You can change the simple text value
of the control by using an action within Events.
Configure Buttons
Use a button control to add a button to your web form.
To configure a button control:
1. From the Basic Palette, drag the Button control onto the canvas.
2. Select the control and edit its properties on the Properties pane's General tab.
5-6
Chapter 5
Configure Basic Controls
Field Description
Name An internal identifier that you will use to identify the control.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Hint Hint text that will display to users when a user clicks into the control.
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Multiple Determines whether users can select multiple values in the control. If this
field is disabled, users can select only one option in the control.
Options Source Select a source (Static, From Data, and Connector).
• Static: Specify choices using Options Names and Options Values
fields. Use Options Names to specify the label to display for an
option and use Options Values to specify an internal value for an
option.
• From Data: In the Options List field, select a list of values options
source from the data definitions available in the web form. If you
selected a list of complex elements, then, in the Label Binding field,
specify a data attribute that will display as the label and in the Value
Binding field, specify a data attribute that will be the value.
• Connector: Specify a REST connector, a resource, and an operation
to use. Specify parameters to pass to the connector and define how
the response should be mapped to the control properties. See Work
with Connectors.
Filter Select this check box to apply a filter to the control. See Specify Filters for
Controls.
Default Value If you selected Static in the Options Source field, then, specify a default
option in this field.
If you selected From Data or Connector in the Options Source field,
then, select either the first or the last value as the default value.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
5-7
Chapter 5
Configure Basic Controls
Field Description
Name An internal identifier that you will use to identify the control.
Label Specifies the control name that displays to the user.
For check box controls, if you select the Inline HTML check box below the
Label field, the value that you enter in the Label field is treated as an inline
HTML.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Inline Specify the layout of the options defined for the check list control. If
enabled, the layout changes from vertical to horizontal.
5-8
Chapter 5
Configure Basic Controls
Field Description
Options Source Select a source (Static, From Data, and Connector).
• Static: Specify choices using Options Names and Options Values
fields. Use Options Names to specify the label to display for an
option and use Options Values to specify an internal value for an
option.
• From Data: In the Options List field, select a list of values options
source from the data definitions available in the web form. If you
selected a list of complex elements, then, in the Label Binding field,
specify a data attribute that will display as the label and in the Value
Binding field, specify a data attribute that will be the value.
• Connector: Specify a REST connector, a resource, and an operation
to use. Specify parameters to pass to the connector and define how
the response should be mapped to the control properties. See Work
with Connectors.
Filter Select this check box to apply a filter to the control. See Specify Filters for
Controls.
Default Value If you selected Static in the Options Source field, then, specify a default
option in this field.
If you selected From Data or Connector in the Options Source field,
then, select either the first or the last value as the default value.
For the check box control, select either True or False as the default value.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Inline Specify the layout of the options defined for the control. If enabled, the
layout changes from vertical to horizontal.
5-9
Chapter 5
Configure Basic Controls
Field Description
Options Source Select a source (Static, From Data, and Connector).
• Static: Specify choices using Options Names and Options Values
fields. Use Options Names to specify the label to display for an
option and use Options Values to specify an internal value for an
option.
• From Data: In the Options List field, select a list of values options
source from the data definitions available in the web form. If you
selected a list of complex elements, then, in the Label Binding field,
specify a data attribute that will display as the label and in the Value
Binding field, specify a data attribute that will be the value.
• Connector: Specify a REST connector, a resource, and an operation
to use. Specify parameters to pass to the connector and define how
the response should be mapped to the control properties. See Work
with Connectors.
Filter Select this check box to apply a filter to the control. See Specify Filters for
Controls.
Default Value If you selected Static in the Options Source field, then, specify a default
option in this field.
If you selected From Data or Connector in the Options Source field,
then, select either the first or the last value as the default value.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Default Value Sets a value to display to users when the form loads.
Placeholder Hint text that describes the expected value. This hint text will display in the
control before users enter a value.
Max Sets a maximum value that users can enter into the control.
Min Sets a minimum value that users can enter into the control
Show increment/ Select this check box to display the up and down arrow buttons used to
decrement buttons increment or decrement the control value.
5-10
Chapter 5
Configure Basic Controls
Field Description
Step Specifies a value based on which the number will increase or decrease
when users increment or decrement the value with the up or down arrow.
For example, if the step value is set to 4, and the initial value in the
number field is 0, then when users increment the value for the first time,
the value will be 4. When users increment the value the second time, it will
be 8 and so on.
By default the step value is set to 1. Step must be always greater than 0
and you can’t enter a value lower than 1.
Note:
This property is displayed only when you select the Show
increment/decrement buttons check box.
Events Specifies events that trigger actions and conditions. You can customize the
control’s behavior by configuring events. See Add Dynamic Behavior to
Forms.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Placeholder Hint text that describes the expected value. This hint text will display in the
control before users enter a value.
Help Help text to display to users when they hover over or click the control’s
help icon.
Default Value Sets the default date and time that appears in the control when the form
loads and the current control value is empty.
Max Time Sets a maximum date and time users can enter in the control.
Min Time Sets a minimum date and time users can enter in the control.
Format Specifies a date format for the control. You can select from the available
date formats such as yyyy-MM-dd, MM/dd/yyyy, dd-MM-yyyy and so on.
5-11
Chapter 5
Configure Basic Controls
Field Description
Events Specifies events that trigger actions and conditions. You can customize the
control’s behavior by configuring events. See Add Dynamic Behavior to
Forms.
Note:
When a user enters data into a Date Time control, the timezone information of the
user is saved (in UTC). When other users access this data, the date-time information
is displayed in timezones specific to them. This timezone conversion capability is
available only in the Date Time control and not in the separate Date and Time
controls.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Default Value Specifies an email to display to users when the form loads and the current
control value is empty.
You must ensure that you enter a valid email format in the field, otherwise
you will get a message indicating that the email format entered isn’t valid.
Placeholder Hint text that describes the expected email format. This hint text will
display in the control before users enter a value.
Hint Useful hint text that displays to users when they select the control.
Help Help text to display to users when they hover over or click the control’s
help icon.
Max Length Sets the maximum number of characters users can enter before the @
symbol for the email.
Min Length Sets the minimum number of characters users can enter before the @
symbol for the email.
Events Specifies events that trigger actions and conditions. You can customize the
control’s behavior by configuring events. See Add Dynamic Behavior to
Forms.
5-12
Chapter 5
Configure Basic Controls
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Default Value Sets a value to display to users when the form loads and the current
control value is empty.
You must ensure that you enter a correct web address URL format in the
field, otherwise you will get a message indicating that the URL format
entered isn’t valid.
Placeholder Hint text that describes the expected value. This hint text will display in the
control before users enter a value.
Hint Useful hint text to display to users when they select the control.
Help Help text to display to users when they hover over or click the control’s
help icon.
Max Length Specifies the maximum number of characters users can enter into the
control.
Min Length Specifies the minimum number of characters users must enter into the
control.
Events Specifies events that trigger actions and conditions. You can customize the
control’s behavior by configuring events. See Add Dynamic Behavior to
Forms.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Default Text The default text message that will appear to users when the form loads.
You can use inline HTML tags to format the default text. Before using, you
have to select Inline HTML from the Type drop-down list.
5-13
Chapter 5
Configure Basic Controls
Field Description
Type Sets the style and format in which the message displays. For example, as
a bold heading or as a paragraph text.
Note that predefined message types such as Error, Info, Success, and
Warning are available for selection. These message types have their
unique style and format, so that the user can easily identify if the message
is an error, info, success, or warning.
Select Inline HTML if you want to use inline HTML tags to format the
default text message that displays when the form loads.
Events Specifies events that trigger actions and conditions. You can customize the
control’s behavior by configuring events. See Add Dynamic Behavior to
Forms.
Configure Links
Use the link control to insert a URL into a form. You can specify the value for the link URL or
configure the URL value to change dynamically based on the payload. For example, a URL link
that contains an order item could change based on the order ID, which could be in the payload.
1. From the Basic Palette, drag and drop a Link control onto the canvas.
2. Select the control and edit its properties on the Properties pane's General tab.
Field Description
Name Defines an internal name for the control. It’s an internal identifier that you’ll
use to identify the control.
Label Specifies the control name that displays to a user.
Static Select this option to use the value in the Default Label field as the control
name when the form loads. This is the default selection.
Dynamic Select this option to assign the control name dynamically when the form
loads. If you select this option, you must create a data attribute in the Data
pane and link it to the control using the Label Binding field. When the
form loads, the value of the data attribute is fetched from the payload and
assigned as the control name.
Note:
If the attribute value is not available in the payload, then the
value in the Default Label field is used as the control name.
Label Binding Defines a link between the control’s label and a data attribute. Specify an
attribute for this field by selecting an option from the autocomplete list or
entering a valid binding.
Default Label Sets a label to display to users when the form loads. The value in this field
is used as the control name in the following contexts:
• When you select the Static option in the Label field.
• When you select Dynamic option in the Label field but the binding
value is not available.
5-14
Chapter 5
Configure Advanced Controls
Field Description
Value Binding Defines a link between the control and a data attribute. Data attribute
bound to the control, either automatically when Auto Binding is enabled or
manually using autocompletion.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Default Value Sets a value to display to users when the form loads and the current
control value is empty.
Open Specifies whether you want the link to open in the current tab or in a new
tab.
Anchor Select this check box to enable linking to specific controls in the current
form. When you select this check box, the Default Value field changes to
a drop-down menu that lists names of all controls present in the form.
Select a control name to which you want to link. All Basic Palette, Money,
Phone, Image, and Video controls , if present in the current form, appear
in the Default Value field. However, controls within repeatable sections,
tables, or imported from other forms (unless detached) do not appear in
the drop-down list.
Note:
If the URL value for the link is set from binding or events, the
value selected in the Default Value field is overridden.
Hide Select this check box to hide the control. For example, you might hide a
control by default, but configure another control that when selected
triggers an event that displays the hidden control.
Events Specifies events that trigger actions and conditions. You can customize the
control’s behavior by configuring events. See Add Dynamic Behavior to
Forms.
5-15
Chapter 5
Configure Advanced Controls
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Currency Allows you to change the currency type.
Placeholder Text that will appear in the control until any text is entered. If text is
removed from the control, the text specified in this field reappears.
Hint Hint text that will display to users when a user clicks into the control.
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Min Specify the minimum amount that users need to enter into the control.
Max Specify the maximum amount that users can enter into the control.
Show increment/ Select this check box to display the up and down arrow buttons used to
decrement buttons increment or decrement the control value.
Step Specify a step value based on which the amount will be incremented or
decremented correspondingly when a user increments or decrements the
amount in the control. By default, the step value in this field is set to 1. For
example, if the step value specified is 3 and the initial amount is $ 0.00,
then, when a user increments the amount in the control for the first time,
the amount is updated to $ 3.00. When the user increments the amount
again for the second time, the amount is updated to $ 6.00 and so on.
Note:
This property is displayed only when you select the Show
increment/decrement buttons check box.
5-16
Chapter 5
Configure Advanced Controls
Field Description
Show increment/ Select this check box to display the up and down arrow buttons used to
decrement buttons increment or decrement the control value.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Format Specify a phone number format. By default, the US format is selected.
Placeholder Text that will appear in the control until any text is entered. If text is
removed from the control, the text specified in this field reappears.
Hint Hint text that will display to users when a user clicks into the control.
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Max Length Defines the maximum number of characters a user can enter into the
control.
Min Length Defines the minimum number of characters a user must enter into the
control. Leave this field blank if you don’t want to define the minimum
length.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
5-17
Chapter 5
Configure Advanced Controls
Include Images
Use an image control to include an image in your web form. Under image source properties,
you can identify the image using an absolute or a relative image URL or a Base64 format
string.
To configure an image control:
1. From the Advanced Palette, drag the Image control onto the canvas.
2. Select the control and edit its properties on the Properties pane's General tab.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
From URL To specify either an absolute or relative URL, select this option and enter
the image URL in the field below it.
From Base64 To specify an image converted to base64 format, select this option, then
identify the image's format in the Image Format field and its binding in the
Base64 Binding field. Base64 images can be viewed in preview mode
only.
Alternative text Enter text to display if the image can’t be loaded.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
5-18
Chapter 5
Configure Advanced Controls
Include Videos
Use a video control to add a video, such as a YouTube or Vimeo video, to your web form. You
can specify full video URLs, embedded URLs, or shortened URLs using the Source Url
property on the General tab. You can optionally loop the video or specify to automatically start
playing the video when loaded.
To configure a video control:
1. From the Advanced Palette, drag the Video control onto the canvas.
2. Select the control and edit its properties on the Properties pane's General tab.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Source Url Specify a valid source URL for the video.
Allow Fullscreen Set this property to allow users to play the video in full screen mode. By
default, this field is enabled.
Loop Set this property to loop the video continuously.
Auto Play Set this property to automatically start playing the video when the web
form loads.
Show Controls Specify whether to display play or pause controls for the video. By default,
this field is enabled.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
5-19
Chapter 5
Configure Advanced Controls
Field Description
Name An internal identifier that you will use to identify the control.
Label Specifies the control name that displays to a user.
Binding Defines a link between the control and a data attribute.
Placeholder Text that will appear in the control until any text is entered. If text is
removed from the control, the text specified in this field reappears.
Hint Hint text that will display to users when a user clicks into the control.
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Default Scope Specifies the default scope for the identity search. Available options in the
drop-down menu are All, User, Group, and Role. The value of this field is
set to User by default.
Required Set this property to require users to complete the control in order to
successfully submit the form.
Multiple Set this property to allow multiple entries to the control.
Disabled Set this property to display the control as inactive.
Hide Set this property to hide the control. For example, you might hide a control
by default, but configure another control that when selected triggers an
event that displays the hidden control.
Scope Filter Set this property to allow filtering of results in the control.
Auto Focus Set this property to automatically select the control when the web form
loads.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
Note:
Except for assigning a constant value, you cannot trigger any
changes to the Identity Browser using other controls. Actions
such as assigning function results, connector call values, or
data from the payload or another control are not applicable in
the context of Identity Browser.
5-20
Chapter 5
Configure Advanced Controls
5-21
Chapter 5
Configure Advanced Controls
Field Description
Name An internal identifier that you will use to identify the control.
Label The title of the panel, section, or tab that the user will see in the form.
Description For a panel control, provides additional information or instructions for the user.
Type For a section control, sets the style and format in which the section label displays.
Hide Set this property to hide the control.
Read Only Set this property to make the (panel, section, or tab) control read-only. Note that
when this property is set, all the controls inside a panel, section, or tab control
become read-only (irrespective of the individual property of each of the controls).
The user can view but is not allowed to edit the control.
Lazy Loading For a section control, implements lazy loading for the controls inside it. The lazy
loading controls are collapsed by default.
5-22
Chapter 5
Configure Advanced Controls
Field Description
Expanded For a section control, specifies if the section control is expanded when the form
loads. By default, this field is checked.
Event Specifies events that trigger actions and conditions. You can customize the control’s
behavior by configuring events. See Add Dynamic Behavior to Forms.
Note:
If you delete the panel, section, or tab control, all the controls grouped under it
get deleted.
Note:
If the data in a field within a section or tab is invalid, a validation error is
displayed for the field and the entire section or tab is marked invalid.
5-23
Chapter 5
Configure Advanced Controls
You can use the Label Color field to specify a color for the label and the descriptive text in
the panel.
Indent Sections
Use a theme to indent the sections in your form.
To indent one or more sections in a form:
1. From the Advanced Palette, drag and drop the Section control onto the canvas.
2. Select the Section control on the canvas.
3. In the Properties pane, select the Styling tab.
4. In the Theme field, select Indent.
5-24
Chapter 5
Configure Advanced Controls
b. Specify the connector settings in the Connector, Resource and Operation fields
and map response settings. See Work with Connectors.
c. Select an option in the Autofocus field to make that option the selected option
when the form loads.
5-25
Chapter 5
Configure Advanced Controls
Configure a control in your form such that you can use it for clearing all options from a list of
values field. For example, you can configure a button control with an On Click event and use it
to clear all options from a list of values field.
To delete all options from a list of value (LOV) control:
1. Drag and drop a control, such as a button control, from the Basic Palette onto your form
with the LOV control. Change the name and label of the control, for example Clear.
2. Configure the control by specifying an event and defining an action for the event.
a. Select the control, and scroll down the General tab of the Properties pane until you
Configure Tables
Use table controls to group multiple controls in a grid pattern into your form. You can use table
controls to create dynamic content for your form.
To configure a table control:
1. From the Advanced Palette, drag and drop a table control onto the canvas.
By default the table control contains one column.
2. Select the control and edit its properties on the Properties pane's General tab.
Field Description
Name An internal identifier that you will use to identify the control.
Binding Defines a link between the control and a data attribute.
Columns In the Columns field, click Add to add columns. Edit the labels of
each column in their respective label fields. To hide a particular column
from users, click Hide beside its label field; you may require to hide a
column initially and show it on occurrence of an event. Click the Delete
icon to delete a column.
Users can Add/Remove Allows users to add or remove rows to the table.
Rows
5-26
Chapter 5
Configure Advanced Controls
Field Description
Multiple Selection Allows users to select multiple rows of the table.
While using a table with multiple-selection enabled to define dynamic
behavior or computed values, the options available (specific to multiple
selection) in the Event or Computed Value window under the Which? field
are listed here:
• For Each Selected: Use to retrieve a value from another control to
apply to each selected row of a table.
• All Selected: Use to retrieve values from all selected rows of a table
to apply to another control.
Similarly, in a table with two columns, you can use these options to apply
values from one column to another on occurrence of an event. In this
case, when you chose to apply an action to each selected row (by
selecting the For Each Selected option), an additional option is available
to chose the value source:
• Current Iteration Row: Use to retrieve the value from one cell of the
current selected row and apply to another cell in the same row.
Use Data from Allows you to populate the table from a REST connector defined for the
Connector application.
Specify the connector settings in the Connector, Resource and Operation
fields and map response settings. See Work with Connectors.
Events Specifies events that trigger actions and conditions. You can customize the
control’s behavior by configuring events. See Add Dynamic Behavior to
Forms.
Note:
While configuring events for a table, you can now add a
condition based on number of rows present within the table
using the Row Count property.
3. On the Styling tab, edit the control's styling properties. You can specify column width in
several ways:
• Leave the Automatic column size checkbox selected so the table’s columns
automatically resize to fit the device on which the form is viewed.
• Deselect the Automatic column size checkbox and specify column sizes for different
device sizes by entering a number from 1 to 12 in the column size fields that display
for different devices.
• In the Table Columns Width fields, specify an absolute width for each column such as
2in (inches), 5cm (centimeters), 100px (pixels), or 25% (percent). If the column widths
together exceed the table width, a scroll bar displays, unless columns are defined with
percentages. If percentages are specified but exceed 100%, column widths are
displayed proportionally across the table.
4. Drag and drop individual controls from the Basic or Advanced Palette into the columns.
Each column can have one control.
5. Configure general and styling properties for the controls inside your table control.
See Configure Basic Controls and Configure Advanced Controls.
5-27
Chapter 5
Configure Advanced Controls
Note:
If you delete the table control, all the controls grouped under it get deleted.
• To hide a column within a table on occurrence of an event, select Self under the Which?
field, choose Hide Column under Action, and specify the column to hide. The following
figure shows an event action configuration to hide a table column:
5-28
Chapter 5
Configure Advanced Controls
Field Description
Name An internal identifier that you will use to identify the control.
Label Specifies the control name that displays to a user.
Binding Defines a link between the control and a data attribute.
Label Binding Allows you to define a dynamic label. To do this, you can use a data
attribute listed in the Data definition pane.
Users can Add/Remove Allows users to add or remove rows to the repeatable section.
Rows
Multiple Selection Allows users to select multiple rows of the repeatable section.
While using a repeatable section with multiple-selection enabled to define
dynamic behaviors or computed values, the options available (specific to
multiple selection) in the Event or Computed Value window under the
Which? field are listed here:
• For Each Selected: Use to retrieve a value from another control to
apply to each selected row of a repeatable section.
• All Selected: Use to retrieve values from all selected rows of a
repeatable section to apply to another control.
Similarly, in a repeatable section with two controls in a row, you can use
these options to apply values from one control to another on occurrence of
an event. In this case, when you chose to apply an action to each selected
row (by selecting the For Each Selected option), an additional option is
available to chose the value source:
• Current Iteration Row: Use to retrieve the value from one control of
the current selected row and apply to another control in the same row.
Use Data from Allows you to populate the repeatable section from a REST connector
Connector defined for the application.
Specify the connector settings in the Connector, Resource and Operation
fields and map response settings. See Work with Connectors.
Events Specifies events that trigger actions and conditions. You can customize the
repeatable section control’s behavior by configuring events. See Add
Dynamic Behavior to Forms.
Note:
While configuring events for a repeatable section, you can now
add a condition based on number of rows present within the
section using the Row Count property.
5-29
Chapter 5
Configure Advanced Controls
Note:
If you delete the repeatable section control, all the controls grouped under it get
deleted.
5-30
Chapter 5
Configure Advanced Controls
number of steps a user must complete before submitting the form, and it also indicates the
user’s current place within a multistep activity.
In a multistep form (form with a set of presentations), you can represent each step using a train
stop. In other words, you can map each presentation to a stop. Users can navigate between
steps by clicking on the train stops; the current stop of the user is highlighted in blue and the
visited stops bear a check mark. However, to display a different presentation for each stop, you
must define an event with Change Presentation actions for the Train control.
To configure a Train control:
1. From the Advanced Palette, drag the Train control onto the canvas.
2. Select the control and edit its properties on the Properties pane's General tab.
Field Description
Name An internal identifier that you will use to identify the control.
Label Specifies the control name that displays to a user.
Binding Defines a link between the control and a data attribute.
Computed Value Set this property to apply a computation to the control. See Create
Computed Controls.
Options Source Select a source (Static, From Data, and Connector).
• Static: Specify choices using Options Names and Options Values
fields. Use Options Names to specify the label to display for an
option and use Options Values to specify an internal value for an
option.
• From Data: In the Options List field, select a list of values options
source from the data definitions available in the web form. If you
selected a list of complex elements, then, in the Label Binding field,
specify a data attribute that will display as the label and in the Value
Binding field, specify a data attribute that will be the value.
• Connector: Specify a REST connector, a resource, and an operation
to use. Specify parameters to pass to the connector and define how
the response should be mapped to the control properties. See Work
with Connectors.
Default Value If you selected Static in the Options Source field, then, specify a default
option in this field.
If you selected From Data or Connector in the Options Source field,
then, select either the first or the last value as the default value.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
5-31
Chapter 5
Configure Advanced Controls
Note:
• You can add a maximum of 15 stops for your form using the Train control. When
the form loads, users can scroll to navigate the stops or the control can be
designed to fit into a single view by selecting Stretch from the Properties pane's
General tab.
• To avoid redesigning the Train control each time you make changes (especially,
addition or deletion of presentations) to the multistep form, add the control after
you’ve completely configured the web form and all of its steps.
Field Description
Name An internal identifier that you use to identify the control.
Hide Set this property to hide the control. For example, you might hide a control
by default, but configure another control that, when selected, triggers an
event that displays the hidden control.
Events Allows you to configure events for the control. You can assign actions or If/
Then/Else conditions to the control based on a selected event. See Add
Dynamic Behavior to Forms.
5-32
Chapter 5
Configure Advanced Controls
• Move the file upload or file list control outside the file manager control in your web form.
• Add any other control inside the file manager control.
To configure file manager control:
1. From the Advanced Palette, drag the File Manager control onto the canvas.
2. Select the control and edit its properties on the Properties pane's General tab. Notice that
the Container tab is selected by default for the file manager control in the Properties pane.
Field Description
Name An internal identifier that you will use to identify the control.
Label The title of the file manager control that the user will see in the form.
Description For a file manager control, provides additional information or instructions for the
user.
Hide Set this property to hide the control.
Connector and Allows you to choose the connector that uploads the files to the external
Resource document store. After choosing the Connector, choose the corresponding
Resource. The connector and resource chosen here will apply for both file
upload and file list controls.
See Work with Connectors.
Events Allows you to configure On Load event for the control. The event is triggered
when the file manager control gets loaded.
See Add Dynamic Behavior to Forms.
3. If you want to configure the properties of the file upload control, see Configure File Upload
Control.
4. If you want to configure the properties of the file list control, see Configure File List Control.
5. On the Styling tab, edit the control’s styling properties.
6. Click Preview to try out using the control.
Note:
• The file upload control is a part of the file manager control. It cannot be added
separately outside the file manager control in the web form.
• Binary file upload is not supported.
• The maximum aggregate file size allowed is 2 MB.
• You can upload up to 5 files simultaneously.
5-33
Chapter 5
Configure Advanced Controls
1. Select the file upload control and edit its properties on the Properties pane's General tab.
Notice that the Upload tab is selected by default for the file upload control in the Properties
pane.
Field Description
Name An internal identifier that you will use to identify the control.
Label The title of the file upload control that the user will see in the form.
Accept only these Defines the accepted file types as comma-separated values. If no file types are
file types specified, the control accepts all the files.
Maximum Upload Defines the maximum file size allowed in megabytes. The default value is 2 MB.
Size
Help Help text that will appear for the control. If you specify help text, a help icon
appears next to the name of the control and displays the help text when a user
hovers over it or clicks it.
Primary Text Text that will appear in the drop-zone of the file picker.
Secondary Text Subtext that will appear in the drop-zone of the file picker.
Disabled Set this property to display the control as inactive.
Hide Set this property to hide the control.
Auto Focus Set this property to automatically select the control when the web form loads.
Events Allows you to configure events for the control. You can choose one of the
following events:
• On Load: The event is triggered when file upload control gets loaded.
• On Upload: The event is triggered when file is uploaded successfully.
• On Error: The event is triggered when file upload is unsuccessful.
Note:
• The Last Uploaded File Name property of the file upload
control allows you to get the name of the most recently
uploaded file while configuring events and actions.
• The Upload Response property stores the result of the On
Upload event. You can use the same to auto populate values for
other controls in the form.
Note:
If you haven’t configured the connector and resource for the file manager control,
click Go to Container tab and configure the same. See Configure File Manager
Controls.
Field Description
Operation Choose the file upload control's operation based on the connector and resource
you specified when configuring the file manager control.
5-34
Chapter 5
Configure Advanced Controls
Field Description
Supports multiple Set this property to allow users to upload multiple files simultaneously.
uploads
Note:
Please note that the API must also support multiple file uploads and
have one or more array type request body parameters. If this
property is set and the API does not support array type request body
parameters, only the first file from the list will be uploaded.
Parameters Configure the values for header parameters, template parameters, and the
(Header request body based on the operation you specified.
Parameters,
Template
Parameters,
Request Body)
Element with list of If the Supports multiple uploads property is set, you must select the
files connector element in which the user can upload multiple files. You can choose
from the array type request body parameters that are listed in the drop-drown.
Further, configure the sub-properties of the selected field.
Field Description
Name An internal identifier that you will use to identify the file list control.
Label The title of the file list control that the user will see in the form.
Help Help text that will appear for the control. If you specify help text, a help icon
appears next to the name of the control and displays the help text when a user
hovers over it or clicks it.
Empty State The text value that is displayed in the form when there are no files to list.
Message
Disabled Set this property to display the control as inactive.
Hide Set this property to hide the control.
Read Only Set this property to disable edit permissions.
Show Refresh Set this property to display refresh button that refreshes the file list connector
Button on click.
5-35
Chapter 5
Implement Intelligent Document Processing in Forms
Field Description
Events Allows you to configure events for the control. You can choose one of the
following events:
• On Load: The event is triggered when file list control gets loaded.
• On List Refresh: The event is triggered when the file list is refreshed.
• On Download: The event is triggered when a file is downloaded
successfully.
• On Delete: The event is triggered when a file is deleted successfully.
• On Download Error: The event is triggered when a file download is
unsuccessful.
• On Delete Error: The event is triggered when a file delete is unsuccessful.
See Add Dynamic Behavior to Forms.
Field Description
Operation, Header Choose the file list control's operation based on the connector and resource
Parameters, and you specified when configuring the file manager control. Similarly, configure the
Template values for header parameters, and template parameters.
Parameters
Element that Select the file attributes to be displayed in the list. Further, configure the sub-
contains the list of properties of the selected field.
files
Enable Download Set this property to allow users to download a file from the file list by clicking
the file name.
Operation, Header Choose the file download control's operation based on the connector and
Parameters, and resource you specified when configuring the file manager control. Similarly,
Template configure the values for header parameters, and template parameters.
Parameters
Enable Delete Set this property to display delete button that allows the users to delete a file
from the file list on click.
Show Set this property to display a confirmation dialog before deleting a file from the
Confirmation file list.
Message
Operation, Header Choose the file delete control's operation based on the connector and resource
Parameters, and you specified when configuring the file manager control. Similarly, configure the
Template values for header parameters, and template parameters.
Parameters
5-36
Chapter 5
Implement Intelligent Document Processing in Forms
Process Automation uses two pretrained AI models from OCI Document Understanding AI
service: Document Classification and Key Value Extraction.
• The Document Classification AI model is used to classify the document uploaded to the
document understanding control. See Document Classification.
• The Key Value Extraction AI model is used to extract values for predefined key value
pairs in the uploaded document. For example, if a passport includes nationality and date of
issue, Document Understanding can identify these values and return them as a key value
pair. See Key Value Extraction.
Note:
Process Automation is preregistered with OCI Document Understanding AI service
for tenancies in the OC1 realm.
To learn how to configure the document understanding control in forms, see Configure
Document Understanding Controls.
Note:
The document understanding control is available in the Forms palette only if your
tenancy is in the OC1 realm. To know more about Oracle Cloud Infrastructure realms,
see Regions and Availability Domains in Oracle Cloud Infrastructure Documentation.
Field Description
Name An internal identifier that you will use to identify the control.
Label The title of the document understanding control that the user will see in
the form.
Accept only these file Defines the accepted file types as comma-separated values. If no file
types types are specified, the control accepts all the files.
Maximum Upload Size Defines the maximum file size allowed in megabytes. The default value is
2 MB which is also the maximum upload size allowed.
Help Help text that will appear for the control. If you specify help text, a help
icon appears next to the name of the control and displays the help text
when a user hovers over it or clicks it.
Primary Text Text that will appear in the drop-zone of the file picker.
Secondary Text Subtext that will appear in the drop-zone of the file picker.
5-37
Chapter 5
Implement Intelligent Document Processing in Forms
Field Description
Disabled Set this property to display the control as inactive.
Hide Set this property to hide the control.
Events Allows you to configure events for the control. You can choose one of the
following events:
• On Load: The event is triggered when the document understanding
control gets loaded.
• On Upload: The event is triggered when the file is uploaded
successfully.
• On Error: The event is triggered when file upload or detection/
extraction of text in the uploaded file are unsuccessful.
You can assign actions or If/Then/Else conditions to the control based on a
selected event. See Add Dynamic Behavior to Forms.
Note:
• The Last Uploaded File Name property of the document
understanding control allows you to get the name of the
most recently uploaded file while configuring events and
actions.
• The Last Uploaded File Content property of the
document understanding control allows you to get the
content of the most recently uploaded file while configuring
events and actions.
Field Description
Document type Specify a document type from the drop-down list. The following document
types are supported:
• Driver license
• Passport
• Receipt
• Invoice
Create data definition Select this property to automatically create data definitions for the selected
document type.
For example, if you chose Passport as the document type then on
selecting Create data definition, a passport data object is created.
The data object and data definitions are displayed under the Data section.
In this section, the document object consists of document and fields sub-
objects. The document sub-object is a document reference type and and
consists of documentId and documentName attributes. You can use these
attributes to reference the document.
The fields sub-object contains the related data definitions such as
firstName, lastName, country, nationality and so on that are
automatically created.
Generate controls Select this property to automatically generate controls for the created data
definitions.
The generated controls are like any other form controls. If required, you
can change their position, edit, or delete them.
5-38
Chapter 5
Implement Intelligent Document Processing in Forms
Field Description
Minimum confidence Either enter a value, or set a specific value between 0 and 100 using the
score increment/decrement arrows in the field. Note that higher the confidence
score, higher is the chance of the AI model returning accurate results.
For example, if you set the minimum confidence score as 96, then the
pretrained models must return results that are at least 96 percent
accurate.
Show warnings for low Select this property to show warning messages for fields with confidence
confidence score fields scores that are lower than the minimum threshold.
Hide fields with no data Select this property to hide empty fields.
Hide image preview Select this property to hide the preview of the uploaded document's
image.
Hide document upload Select this property to hide the document upload.
Document display size Set this property to specify if the image rendered for the uploaded
document is Small, Medium or Large.
Persist document Select this property to include the documentId and documentName
reference in payload details in the payload. These document details are used to reference the
document in subsequent user tasks or business flows.
Note:
This checkbox does not appear for data definition schemas that
do not contain the document reference attributes.
Download document on Select this property if you want the user to click on image to download and
demand display the document. Use this option in scenarios where approvers want
to see images on demand, or if there are multiple images and the user
wants to avoid longer load times.
Regenerate data This property appears when you import an application that uses an older
definition schema that does not contain document referencing attributes. Click this
link if you want to regenerate the data definition schema so that the new
schema includes document reference information.
Note:
Regenerating is an irreversible action and may introduce
breaking changes.
Messages Expand this section to view the default messages that will be displayed for
the following:
• Success message
• Failure message
• When uploaded document is of different type
• When uploaded document cannot be recognized
• When confidence score is too low
If required, you can edit the default messages and create messages
customized to your business needs.
5-39
Chapter 5
Reuse Forms
Reuse Forms
You can reuse forms from the Forms Palette by embedding them in other forms that you build.
Once you have embedded a form within another form, you can make changes to the form like
styling changes or remove unwanted fields. You can also make the reused form as a read only
form.
Note:
Process Automation does not allow you to:
• Nest forms beyond three levels.
• Deploy a project if there is cyclic dependency among the forms.
To reuse forms:
1. In the Forms Palette, expand Forms.
If the form that you want to reuse doesn't appear, search for it. Click the search icon and
type the form’s name in the search field. If no forms in your application match the search,
you will get a message stating this. Otherwise, the form gets loaded into the Forms Palette.
2. Drag and drop the required form onto the canvas.
You can drop the form onto any part of the canvas. The layout of the reused form is
preserved but depending on where you drop the form some panels may get added to it to
maintain the form’s layout.
3. Make styling and label changes to the reused form if required.
4. Optionally, click Detach on top of the reused form.
When you detach an embedded (referenced) form on another form's UI, the controls
corresponding to the embedded form appear as separate entities on the UI, but the data
attributes related to these controls continue to be mapped under the data attribute of the
embedded form. However, if you add a new control to the detached embedded form's
section, the new control and its data attribute are treated as a part of the referencing form.
Additionally, once an embedded form is detached on another form's UI, new controls
added at the source of the embedded form aren't reflected on the referencing form's UI.
However, the data attribute of the embedded form reflects this change in the referencing
form's data definition section. The referencing form and its associated process task use
this updated data attribute.
Detaching can be helpful when you want only certain parts and don’t want some parts of
an embedded form. You can delete the unwanted controls and reuse only the controls that
you want in building your web form.
5-40
Chapter 5
Work with Presentations
When a form is created, it uses a default presentation. When you add a control to the form, the
new control is added to the currently selected presentation.
Field Description
Name Specify a name for the presentation.
Description Specify a suitable description for the presentation.
Border Color Select a border color from the color palette or enter a hexadecimal value
in the adjacent text field.
Border Width Specify a border width in pixels or points. For example, 9px.
Border Style Select a border style (Solid, Dotted, or Dashed) for the presentation.
Background Color Specify a background color for the presentation. Select a background color
from the color palette or enter a hexadecimal value in the adjacent text
field.
Events Configure events for the presentation. See Add Dynamic Behavior to
Forms.
Reusable Snippets Create a global event snippet to reuse across the form’s presentation. Use
any event block, such as action, condition, or connector, to define a
snippet.
In addition, all the event snippets you’ve extracted while defining events for
form controls appear here. See Extract a Snippet. Click Edit to view or
update a previously extracted snippet. Changes you make at the
presentation level reflect in all instances of the snippet across different
controls.
Note that deleting a global snippet converts all usages of the snippet into
local copies.
5-41
Chapter 5
Work with Presentations
Note:
A customized presentation is identical to the base presentation from which it is
created. However, unlike a cloned presentation, you cannot add/delete controls
or modify control properties within a customized presentation. You can only
perform the followings actions on existing controls: hide, show, and modify read-
only status. To edit a customized presentation after creating it, use the Edit
button next to the presentation switcher.
5-42
Chapter 5
Work with Presentations
• Use the Change Presentation action to switch the presentation of a form or an embedded
form on occurrence of an event.
• Use the Print action to print a presentation of a form on occurrence of an event. For
example, you can define an On Click event with the Print action for a Button control.
• Use the following actions to manipulate an array or its elements:
– Use the Array Value action to set the value of a particular element in an array on
occurrence of an event. Specify the array, index of the element, and value to set—in
that order—in the subsequent fields of the event window. The following image shows a
value of option1 set to an element with index 0 in the array named checklist.
– Use the Insert Array Value action to insert an element into an array. Specify the array,
the index at which to insert the element, and the value to insert—in that order—in the
subsequent fields of the event window.
– Use the Append Array Value action to insert an element at the end of an array.
Specify the array and the element to append in the subsequent fields of the event
window.
– Use the Clean Array action to clear an entire array. Specify the array in the Value
field.
– Use the Delete Array Value action to delete a particular element in an array. Specify
the array and the index of the element to delete in the subsequent fields of the event
window.
Note:
You can also use dynamic data, such as values entered in controls, payload data, or
data from connectors to trigger the Change Presentation action.
Here, we create a simple travel form in which a user enters details, such as name, origin,
destination, and so on. The user also mentions whether the intended journey is a one-way trip
or a round trip using radio buttons, and the date (departure and return) fields are displayed
according to the radio button selection. The date fields are supplied through an embedded web
form.
We start by creating this sub-form with date fields:
1. Within the form, create a presentation called One Way, make it default, and add a date
control named Depart Date to it.
5-43
Chapter 5
Work with Presentations
2. Create another presentation called Round Trip and add two date controls as follows.
3. Now, create the main travel form with the following controls:
a. Input text controls for name, origin, and destination.
b. Radio buttons to specify if it’s a one-way journey or round trip.
c. Embed the web form created in the previous steps to provide the date controls.
5-44
Chapter 5
Work with Presentations
4. Set up option names and values for the radio button control as follows; specify the One
Way option as default.
5. Now, define an On Change event for the radio button control to change the presentation of
the inner web form according to the user’s selection. Use the Change Presentation action
available for the inner form as shown in the following figure:
5-45
Chapter 5
Work with Presentations
6. Click Preview to test the travel form. When the form loads, the One Way option is selected
and the default presentation of the inner form loads with only the depart date control.
7. Populate all the controls and select Round Trip. The inner form’s presentation changes to
display two date controls; if you change your selection back to One Way, the embedded
form displays its default presentation.
5-46
Chapter 5
Work with Styling
Styling Properties
You can change a control’s appearance by defining its styling properties on the Styling tab in
the Properties pane. Use the Styling tab to define display-specific properties of the currently
selected control.
The following table provides an alphabetical list of the properties available on the Styling tab.
5-47
Chapter 5
Work with Styling
Note:
Styling properties are control-specific. Not all of the properties listed below are
available for every control.
Property Description
Automatic column size Calculates the column size for the control based on the amount of visible
controls in the row. Automatic column size is selected by default.
Note: In small devices like a phone, each control is displayed in one row
when automatic column size is enabled.
You can specify absolute column sizes for different device sizes. To do this,
deselect Automatic column size and enter a number from 1 to 12 in the four
available options: Small, Medium, Large, and Extra large column sizes.
Background Color Specifies the background color of the content area in a control.
Border (Color, Width, Determines the appearance of the border in the content area of your control.
Style, Radius) • Border Color: Defines the color of the border.
• Border Width: Defines the width of the border. Use standard values such
as 1in, 5em, or 20px.
• Border Style: Defines the style of the border—Solid, Dotted, or Dashed.
• Border Radius: Defines the value of rounded border corners. Use
standard values such as 1in, 5em, or 20px.
Color Specifies the color of the text in the content area of a control.
Control Alignment Specifies the alignment (left, right, or center) of a control in the form.
Font Size Defines the font size of the text in the content area of a control. The available
values are x-small, small, normal, large, and x-large.
Height Sets an absolute height for the control. Use standard values such as 1in,
5em, or 20px.
Label Color Specifies the color of a control's label.
Label Size Specifies the size of a control's label. The available values are x-small, small,
normal, large, and x-large.
Note: For a Panel control, using the Standard theme overrides the value in
the Label Size property.
Reset Inline Styles to Discards all styling selections made on the Styling tab and restore settings to
Default their default values.
Text Alignment Specifies the alignment (left, right, or center) of the content in a control. This
property applies to controls where the user can type in text such as the Input
Text control.
Theme Uses a CSS to define the format of a control. This property applies to Panel
and Section controls.
For a Panel control:
• Standard: Automatically increases the size of the control’s label to 24
pixels (font size) and makes the label bold (font weight). The Standard
theme overrides the value in the Label Size property.
• None: Applies no formatting to the control. None is the default value.
For a Section control:
• Indent: Automatically indents the section. With the Indent theme, you can
easily nest sections within sections.
• None: Applies no formatting to the control. None is the default value.
Width Sets an absolute width for the control. Use standard values such as 5in, 20px,
or 5%.
5-48
Chapter 5
Work with CSS
Note:
Process Automation does not support javascript references in CSS. Oracle does not
recommend using the CSS to position elements.
You can apply any uploaded CSS to a form. To apply a CSS to a form, select the required CSS
and click Apply. Once you have applied a CSS to a form, you can preview the changes on the
form. However, you cannot maintain more than 20 stylesheets in each process automation
application. The stylesheets are specific to an application.
Note:
The size of the stylesheet must not exceed 100 KB.
5-49
Chapter 5
Work with CSS
5-50
Chapter 5
Bind Form Data with Controls
5-51
Chapter 5
Bind Form Data with Controls
must create data attributes in the Data pane and link them to every unbound control using the
General tab’s Binding field.
On the General tab, notice that the forms editor displays the Binding field for every control on
the canvas. In the Binding field, you can specify an attribute for a control by selecting an
option from the autocomplete list or entering a valid binding.
Note:
• The name of the binding in the Binding field is the same as the name of the
control to which it is linked when you use auto-binding.
• When a data attribute is bound—either directly or indirectly (through computed
values or events)—to multiple controls, any change to the data attribute is
immediately reflected in all associated controls. Repeatable sections or tables
bound by the same data attribute are also in sync, that is, addition or deletion of
rows in one control is automatically reflected in the other control.
Note:
• An attribute name can only start with a lower case letter and can only contain
letters, digits, and underscores. Also, an attribute name can't start with XML.
• In the Create Attribute window, if you select Business in the Type field, then, the
business types defined for your application are available in the drop-down list.
Notice that the business types defined for your application are listed in the
Business Types Palette.
To delete an attribute, click the Delete icon adjacent to the attribute you want to delete in the
Data pane. If the attribute you’re trying to delete is bound to at least one control, click Delete in
the Delete Attribute Confirmation window. Note that the forms editor clears the binding when
you delete an attribute which is bound to a control.
To edit an attribute’s name, click the Edit icon adjacent to the attribute you want to edit in the
Data pane. Enter a new name and click OK.
5-52
Chapter 5
Create Computed Controls
Note:
• If a control has a computed value and also has a value assigned through
payload, the computed value has the priority.
• If a control has a computed value but is edited, either through user input or event
actions, the new value remains. However, when a dependency (data definition,
control value, or connector data) is updated, the new computed value is set.
5-53
Chapter 5
Create Computed Controls
5-54
Chapter 5
Specify Filters for Controls
Note:
If you specify more than one way to filter data from the source, the results are
ORed.
5-55
Chapter 5
Specify Filters for Controls
Based on the filtering condition specified for the control, you will be able to see relevant data
as options of the control when the form loads.
In this example, we use a previously created REST connector to fetch data from a web server,
which contains a list of items. Each item, in this case, is a complex data object that contains
details of employees of an organization, such as first name, last name, unique ID, phone
number, isActive (this Boolean attribute specifies if the individual is a current employee or not),
city, and so on. To create a REST connector from scratch, see Add a REST Connector.
We use this REST connector as the input to the select control.
Now, let’s configure the select control to suit this example.
1. Click on the control, and on the General tab, change the Label field to First Name.
2. Under Options Source, select the Connector option and populate the Resource and
Operation fields with respect to the REST connector defined within the application. See
Add REST Connector Resources and Operations.
3. Under Response, specify the items list to display as options of the control.
a. For this particular example, we map the first name attribute to the Label Binding field,
so that only first names of employees appear as options in the select control. Also, the
unique ID attribute is mapped to the Value Binding field as follows:
4. Select the Filter check box, and click the Edit button that appears next to it.
5. In the Filter window, specify a condition to filter specific data from the source. The filter
configuration in the following figure extracts only active items (that is, current employees of
the organization) from the data source to display as options of the select control:
5-56
Chapter 5
Specify Filters for Controls
6. When the form loads, the control displays first names of all current employees as follows:
5-57
Chapter 5
Add Dynamic Behavior to Forms
7. You can change the filter configuration on the select control to display only former
employees (isActive=false) as follows:
5-58
Chapter 5
Add Dynamic Behavior to Forms
• Make a REST call on demand, store the call’s response, and use response data in an
event action or condition.
Note:
To use logged-in user's credentials when loading a form to execute a REST
operation, define a REST connector without credentials. To use the same
operation as a service call in the process, define another identical REST
connector with credentials. This applies to internal REST API calls only.
• Configure Events
• Specify Actions
• Specify Conditions
• Specify Functions
• Specify Filters in Events
• Reuse Event Snippets
• Execute Loops in Events
• Execute REST Connector Calls in Events
• Populate Controls Using REST Calls
• Link and Refresh List of Value Fields
Configure Events
By configuring one or more events on a control or presentation, you change the control or
presentation’s behavior. Configuring events in forms enables you to trigger connector calls,
actions, conditions, and functions.
To configure events for a control or presentation:
1. In the web forms editor, select a control or presentation, and locate the Events options.
a. For a control, select the control and scroll down the General tab of the Properties pane
until you see Events.
b. For a presentation, click a blank area of the form so that the Form and Presentation
tabs display in the Properties pane. On the Form tab, select a presentation, then
select the Presentation tab. Scroll down until you see Events.
Notice placeholder text displayed in the Events field No events defined.
2. Click Add to define an event.
The Events section now displays two fields; an Event Name field and a field with a drop-
down menu listing event options available for the control or presentation.
5-59
Chapter 5
Add Dynamic Behavior to Forms
3. Select an event option from the list and, optionally, enter a name for the event.
Available event options are specific to the selected control or presentation.
5-60
Chapter 5
Add Dynamic Behavior to Forms
4. After selecting an event option, click the editing icon next to the events drop-down menu to
specify the actions, conditions, connectors, or functions for the event. Click OK to complete
configuring the event.
See Specify Actions, Specify Conditions, and Execute REST Connector Calls in Events.
Note:
To cancel an event, click its delete icon. Click Add to define an additional event.
You can define multiple events for a control.
You can configure multiple events in a control. The configured events are executed
sequentially in runtime. Note that, by default, the newest configured event is added last in the
event sequence, and subsequently gets executed last in runtime. But you can re-order events
to control their execution sequence. Use the event re-order handler to re-order events and
ensure that they get executed in the correct sequence in runtime. The event re-order handler
gets displayed in front of each event name field only when there is more than one event
configured on a control.
If you want to disable all events configured for a control, select the control, and specify the
action Disable Events. See Specify Actions. This disables all events configured for the control
and the events do not get executed in runtime. But note that On Load type of events are
exceptions. On Load events get executed even if you specify the Disable Events action.
To enable events in controls where they have been disabled by the Disable Events action,
configure the Enable Events action. This ensures that all those events get executed in
runtime.
If the Disable Events action is configured for container controls such as tables, repeatable
sections, sections, panels, and tabs, then all events in child controls that reside inside them are
disabled. This also applies to any rows that you add to container controls after the Disable
Events action has been configured in the container controls. To enable events in container
controls, and also in all child controls inside the container controls, configure the Enable
Events action in the container controls.
Specify Actions
Actions let you trigger changes to a control. You can choose from a variety of control and style
actions. For example, you might configure a Clear button to clear the values of other form
controls.
To specify actions for a control:
5-61
Chapter 5
Add Dynamic Behavior to Forms
1. Select a control on the form canvas and specify an event for it. For example, choose On
Click for a button control. See Configure Events.
2. Click the Event editing icon adjacent to the Event field.
The event window displays with the selected event option (for example, On Load) at the
top, and color coded buttons for adding actions, conditions, or connectors to the event.
3. Click +Action to add an action.
A solid red Action indicator appears. The Summary field below it displays a compact
version of the action you'll define. Use the button at the end of this field to collapse or
expand the actions editor.
4. In the Control Name field, select the control the action will affect.
5. In the Action field, select the action to take place. For example, select Clear Value to clear
the selected control’s value.
You can select from a variety of actions grouped in Control and Style categories. The
options vary based on the control.
6. If configuring a control action, complete any additional fields that display. Control actions
such as Value, Label, Help, Hint, Placeholder, Min Value, Max Value, and Pattern require
further configuration for Type and Value fields.
5-62
Chapter 5
Add Dynamic Behavior to Forms
• Connector Data lets you assign a value from a connector call made from the same
event.
Note:
You can modify multiple properties of controls such as their value or label. You
can also use the data, such as connector data, to modify the control, but you
cannot modify data.
7. If configuring a style action, complete additional fields that display for the selected action.
For example, you might combine a condition with a style action so that if a certain value is
exceeded, a control’s color, label, or class changes to alert users.
8. If needed, use the buttons at the bottom of the event window to configure additional
actions or specify a condition or connector call. See Specify Conditions and Execute REST
Connector Calls in Events.
Connector calls cannot be executed based on a condition. Connectors are always
executed when their event is executed. You can later use the connector response values in
any condition or action.
Note:
In the event window, use the Undo or Redo buttons to remove or restore recent
changes to actions. Use the delete icon to delete an action. Click Cancel to exit
the event window without saving changes.
Specify Conditions
Conditions let you configure an If/Then/Else condition to trigger an action or connector call for
a control’s selected event or a control’s specified action.
To specify conditions for a control:
1. Select a control on the form canvas and specify an event for it. See Configure Events.
2. Click the event editing icon adjacent to the Event field.
The event window displays with the selected event option (for example, On Load) at the
top, and color coded buttons for adding actions, conditions, or connectors to the event.
3. Click +If to add a condition.
Multiple items display to help you construct and complete the condition.
• Solid blue If, Then, and Else indicators signal each portion of the condition to
complete.
The Summary field below the If indicator displays a compact version of the condition
you'll define. Use the button at the end of this field to collapse or expand the conditions
editor.
• Use the +Condition, +Action, +Else If, and +Else Action buttons to add additional
conditions or actions to the condition.
• Use the fields displayed under the If or Else If indicators to define conditional behavior.
5-63
Chapter 5
Add Dynamic Behavior to Forms
Tip:
To check for a null value, choose is False; if a control has no value, the
condition result returns true. Conversely, choose is True to check that a
property is present.
Note:
You can also check if a particular property, such as value, of a control is
empty or not using the is empty operation. Controls of array type (repeatable
sections or tables) are considered empty if the array is empty. A check box or
a checklist is considered empty if no selection is made.
c. Based on the selected operation, complete a second Type field and additional fields
that display. You must specify a type and additional fields for all operations except
when is True or is False are selected.
d. To add another condition, click +Condition, specify if it's an And or an Or condition
and configure it.
For example, as shown in the figure, you can configure a condition for the Cost control
field of a travel request form such that if cost is greater than 5000 and the duration of
travel is less than 14 days then you can set further Then or Else conditions to be
triggered.
5-64
Chapter 5
Add Dynamic Behavior to Forms
5. Complete the Then portion of the condition by clicking +Action and completing the action.
See Specify Actions.
For example, for the Cost control of a travel request form if the cost is greater than 5000
and the number of days of travel is less than 14 then the Justification field is required in the
form.
6. Complete the Else portion of the condition by clicking +Else Action and completing the
action.
For example, for the Cost control of a travel request form if the cost is greater than 5000
and the number of days of travel is less than 14 then the Justification field is required in the
form else it's optional.
5-65
Chapter 5
Add Dynamic Behavior to Forms
Note:
In the event window, use the Undo or Redo buttons to remove or restore recent
changes to conditions. Use the delete icon to delete a condition. Use up and
down arrows to reorder conditions within the window. Click Cancel to exit the
event window without saving changes.
Specify Functions
Use functions in event actions and conditions to perform common operations with strings,
values, and arrays. For example, use a function to add two values, concatenate two strings, or
sum items in table rows.
Important points about functions:
• You can specify parameters for selected functions. The parameter value can be a
constant, data definition value, control value, other function, or connector data value.
• Some functions support selecting arrays of data or repeatable controls.
• You can nest functions, such as concatenate multiple strings or the results of multiple
rows. You might select a concatenate function and concatenate a data value, connector
data value, or control value with another value such as a constant.
Note that the event window where you specify functions has an embedded Help that gives
details on each function. Choose a category in the Category column, the Function column on
the right displays the related functions of the chosen category. Select a function to view details
about that function with examples in the area below.
5-66
Chapter 5
Add Dynamic Behavior to Forms
5-67
Chapter 5
Add Dynamic Behavior to Forms
5-68
Chapter 5
Add Dynamic Behavior to Forms
5-69
Chapter 5
Add Dynamic Behavior to Forms
5-70
Chapter 5
Add Dynamic Behavior to Forms
Note:
In regular expressions there are 12
characters with special meanings:
backslash \, caret ^, dollar sign $, period or
dot ., vertical bar or pipe symbol |, question
mark ?, asterisk or star *, plus sign +,
opening parenthesis (, the closing
parenthesis ), opening square bracket [,
and opening curly brace {. If you want to
use any of them as regular characters, you
will need to escape them with backslash \.
Text Matches (String, Checks if two strings or expressions match and returns a Boolean value.
String)
5-71
Chapter 5
Add Dynamic Behavior to Forms
5-72
Chapter 5
Add Dynamic Behavior to Forms
To use a function:
1. In the web forms editor, select a control on the canvas. Note that you can also apply
events and functions to presentations, as described in Configure Events.
2. On the Properties pane, scroll down to the Events field. Click Add to add an event and
select its type in the drop-down field (for example, On Change).
3. Click Edit next to the event you just added.
4. In the event window, add an action or condition by clicking the +Action or +If button.
5. Configure the action or condition to use a function.
• For an action, select a control on which to apply the function in the Control Name
field. In the Action field that displays, select Value in the Action field. In the Type field
that displays, select Function, then choose a function from the functions listed by
category in the Function field. Optionally, provide a name for the function in the
Function Name field to easily identify it (this name displays in the Action Summary
field).
• For an if condition, select Function in the Type field that displays, and choose a
function from the functions listed by category in the Function field. Optionally, provide
a name for the function in the Function Name field to easily identify it (this name
displays in the Condition Summary field). Complete the condition in the remaining
condition fields.
6. Specify parameters within parentheses for functions that allow them.
Additional fields display within parentheses for functions that include parameters, such as
math functions.
The Compact Function field displays a summary of the function you define. Use the
button at the end of this field to collapse or expand the functions editor.
7. Click OK to close the event window. Click Preview to test the function. For example, a
simple application uses a function set on the Value field to sum values each time a user
enters or changes a value in the table, and displays the calculated value in the Total field. If
the total exceeds a set amount (constant), a style action displays the total in red letters.
5-73
Chapter 5
Add Dynamic Behavior to Forms
5-74
Chapter 5
Add Dynamic Behavior to Forms
c. In the event On Load window, click + Action. In the Control Name field select UserID
and then select Value from the Action drop-down list. In the Type field that displays,
select Function.
d. In the Function drop-down list that displays, scroll down till you find Current User,
and then select Current user’s ID.
e. Click OK.
3. Configure the First Name and Last Name controls.
a. For each control, select the control and repeat steps 2b to 2d. Ensure to select the
correct control (First Name or Last Name) in the Control Name field.
b. For the First Name control, in the Function drop-down list, select Current user’s first
name under Current User.
c. For the Last Name control, in the Function drop-down list, select Current user’s last
name under Current User.
4. Drag and drop an Email control. Then drag and drop a Button control under it. Change the
name of the button control to GetEmail and its label to Get Email.
5. Configure the Get Email button.
a. Select the button, and in the properties pane scroll down till you find Events.
b. Click Add to configure an event. Select On Click from the drop-down list and then
click the edit icon.
c. In the event On Click window, select Email from the Control Name drop-down list, and
then select Value from the Action drop-down list. In the Type drop-down list that
displays, select Function.
d. In the Function drop-down list that displays, scroll down till you find Current User,
and then select Current user's email.
e. Click OK.
6. Click Preview.
When the form loads, the user's id, first, and last name gets auto populated into the User
ID, First Name and Last Name fields. The Email field is empty.
Click the GetEmail button. Note that the email gets loaded into the Email field.
5-75
Chapter 5
Add Dynamic Behavior to Forms
5. Click +Criteria to specify how data is filtered from the data source. You can also use an If
condition to do the same.
5-76
Chapter 5
Add Dynamic Behavior to Forms
Note:
You can specify more than one way to filter data from the source. If you specify
an Or condition, the results are combined or unioned. If you specify an And
condition, the result is the intersection of that filter condition with the other filter
conditions.
You can also specify another Filter (specified before) as the source type for your
filter. This gives you the ability to filter data from another filter.
6. Provide a suitable name for the filter; the information extracted from the data source is
stored within this filter.
7. In the same event window, you can use the data in the filter to populate other controls
dynamically through actions or conditions.
8. After completing the event, click OK, then Save.
5-77
Chapter 5
Add Dynamic Behavior to Forms
5-78
Chapter 5
Add Dynamic Behavior to Forms
Note:
While defining event actions, if you choose to map the filter data to a control
of simple data type (for example, input text), you have to specify an index
value in addition to the attribute that you would like to map to the control.
6. When the form loads, the select control displays first names of all individuals as follows:
7. After you make a selection, all data associated with the selected option is stored within the
filter, and this data is selectively used to populate the table as shown in the following figure:
5-79
Chapter 5
Add Dynamic Behavior to Forms
Extract a Snippet
Extract any event block, such as action, condition, loop, connector, or filter, as a global snippet
and reuse it in other event definitions.
To extract an event snippet:
1. In an event definition window, click Extract Snippet.
A name field appears at the top of the window and all the available blocks are selected for
extraction.
5-80
Chapter 5
Add Dynamic Behavior to Forms
Use a Snippet
Use previously extracted event snippets in any event definition.
1. In the event definition window, select + Reusable Snippet at any point in your definition.
2. Select an extracted snippet from the drop-down list to add it to the window.
3. Additionally, you can click Detach to independently retain the blocks within a global
snippet, but not the snippet as a whole.
Note that changes made to the global snippet won’t reflect in the blocks you’ve retained.
5. Click +Actions. In the Control drop-down list select Table, and in the Action drop-down list
select Add Row.
5-81
Chapter 5
Add Dynamic Behavior to Forms
When the loop executes (on form load), the Add Row action gets executed 5 times.
6. Click OK.
7. Preview the form and see how it works.
Note that 5 rows get added to the table as the form loads.
To see how the loop executed, click Log in the Preview window.
.
5-82
Chapter 5
Add Dynamic Behavior to Forms
Note that the Loop type can have three options as value.
• Index: 0-based index of the iteration (0, 1, 2, 3...)
• Position: 1-based index of the iteration (1, 2, 3, 4...)
• Value: The value of the current iteration. If the iterator is a number, this value will
be same as Index.
7. Click OK.
8. Preview the form and see how the loop works.
a. In the Preview window, click Reload with Payload.
b. In the Custom Payload window, specify an array, and click OK.
c. You can see that the loop executes with the specified array.
On form load, the table displays two rows with the values (red, blue) specified in the
array.
Examples
• Configure a web form that prompts users to enter a zip code. Add an event that calls a
weather site to query weather values. Store the response data, then add actions to the
event that display temperature-related values.
• Configure a web form that prompts users to enter a company name and click a Get Quote
button. Add an event to the button that calls a stock service site to query stock values for
the specified company. Store the response data, then add event actions that display read
only stock value fields.
5-83
Chapter 5
Add Dynamic Behavior to Forms
Before configuring a REST connector call, create the REST connector you want the event to
call. See Configure REST Connectors in Designer.
To add and configure the connector call:
1. In the web form editor, select a control, add an event, and select its type.
For example, include an On Change event for a text input control or an On Click event for
a button control. See Configure Events.
2. Click the event’s Edit icon to display the Events window.
3. Click +Connector to add the connector call.
4. Configure the connector call.
a. In the Connector field, select a REST connector from those defined for the
application.
b. In the Resource and Operation fields, select the resource to access and operation to
perform as configured in the REST connection.
Note:
You can also perform a POST operation from the event window. Currently, for
POST operations, arrays aren’t supported for requests but can be
successfully received and handled in responses.
c. Complete the connector call parameters (query, header, or body) that display based on
the operation you choose. For example, the illustration below shows a connector call
with a GET operation and a template parameter called message.
You can configure query parameters either from static texts or from form expressions
(as shown in the example). Use Form Expressions to specify complex values in
query parameters based on functions, payload data, and control values. Get values
from payload data directly without dependency on controls by using Data Definition
type. Configure functions by using the Function type, for example, specify a concat
function to combine two or more values.
d. Enter a variable name in which to store the response data (for example, quoteResult
or weatherInfo).
5-84
Chapter 5
Add Dynamic Behavior to Forms
5. Optionally, configure error handling. You can set actions to address all errors or a selected
error detected in the call.
a. Click +Error Handler to add an error handler.
b. In the Run on Error field, select an error (or all errors) to detect.
c. In the Control Name field, select the control on which to identify the error. In the
Action field, select the control or style action to take.
6. Collapse the connector call.
7. Below the connector call, configure actions, conditions, or additional connectors, and click
OK.
A common use case is to add an action to display response data from the connector call.
Click +Action, select a control, specify Value as its action, Connector Data as its type,
and the response variable data to display in the Value field.
5-85
Chapter 5
Add Dynamic Behavior to Forms
Note:
5-86
Chapter 5
Add Dynamic Behavior to Forms
4. Based on the call, the system will display a list of required parameters (payload values)
and a response below the Options Source field or the Use Data From Connector field.
a. Payload values: Specify the information to pass to the REST connector (parameters).
You can specify query, header, or template parameters.
If you selected Text, enter the parameter information. Or, if you selected Control
value, select a control value from the available options.
Note:
Text parameters are secure and remain on the server.
b. Response: Define how the response will be mapped to the control properties:
• Options List: Define the mapping by specifying an attribute list from the response
that contains the items to display as the options in the control.
• If the list is a simple type of list such as a list of strings or numbers, then no label
and value mappings are needed. The value of the item in the list will be used as
both the label and the value of the option.
If the list consists of complex elements, then you need to specify a mapping using
the Label Binding and Value Binding fields to identify the label and value.
5-87
Chapter 5
Add Dynamic Behavior to Forms
Note:
• For a table control, define how the response will be mapped to each
column in the table. For a repeatable section, define which property from
the response will be mapped to which control inside the repeatable
section.
• If the connector data is an array of elements, you can map a particular
array item to a Response field by entering the corresponding array
index, for example, response[0].RestResponse[1].result.
5. You may also use the Skip Upon Load property to determine when the connector data
loads into the control.
• Deselect the checkbox (default state) to allow connector data to be populated into the
control when the form loads.
• Select the checkbox to prevent connector data being populated into the control when
the form loads. When you use this option, you must explicitly execute a connector
refresh for the data to load into the control.
6. Optionally, in the Events field, configure the events for the control. See Configure Events.
Test the dynamic fetching of data by testing the application. And, verify if the mappings you
defined work correctly as expected.
5-88
Chapter 5
Preview Forms and Their Payload
4. In the Action field that displays, select Refresh Connector. This setting means that each
time users make a selection in the Category field, the Product field’s REST call is
refreshed to return product values for the selected category.
5. Click OK to close the event window. Click Preview to test the function.
Note:
REST connector calls are not supported in the Preview window. You cannot
make REST calls in a form's preview mode.
4. Click the Trigger Custom Outcome button to test the form with different outcome values.
In the resulting window, enter a custom outcome value and click Submit. Observe the
form’s behavior in the payload field.
5. Click Close.
5-89
Chapter 5
Export Forms as PDF
Note:
You can obtain the payload JSON from the Outcome tab.
5-90
Chapter 5
Configure a Linked UI
j. Click OK.
4. Implement the form and its presentation (with the Print button) in a human task activity.
See Implement a Human Task Activity.
5. Activate the process application to test the form in runtime.
Once the activated process application is instantiated in runtime, tasks get assigned to
respective users. As a user assigned the task that has the form with the Print button
(configured earlier in design-time), click the Print button on the form. The form gets
automatically downloaded as a PDF to your local system.
Configure a Linked UI
You can configure a human task activity to use a linked UI (such as an external form) for
displaying the information a user needs to view (or supply) in order to complete the task.
• Linked UIs at a Glance
• Add a Linked UI Connection
• Use a Linked UI in a Human Task
• Integrate a Linked UI with the Task List
5-91
Chapter 5
Configure a Linked UI
• Design a complex web application that uses features not available in Process Automation
forms and integrate it with Process Automation tasks
• Develop web applications using applications such as Oracle Visual Builder and Oracle
APEX and integrate them with process applications
Note:
You can also provide path or template parameters while specifying the linked
URL, for example, [Link]
5-92
Chapter 5
Configure a Linked UI
6. Under Connection parameters, add required query parameters for the URL.
In addition to these parameters, the task ID parameter is passed with the value
corresponding to the task ID.
7. Under What data is going to be exchanged?, add custom payload attributes that you'll
use to send/receive data from the linked application. Unlike query parameters, here you
can add complex business data types as well.
Note:
Through these attributes, you can use the data from a linked UI in any task within
a process. However, you must perform a POST operation using the REST API to
save the changes made to the payload attributes in the linked UI.
Note:
You can edit the base URL of the linked UI while activating your application.
1. In the structured process editor, select a human task, click Menu and select Open
Properties.
2. Select a linked UI connection.
a. In the Properties pane, scroll to the UI field under End User Display. All forms and
linked UI connection in the application appear in this dropdown field.
b. Select a connection listed under Linked UIs.
Tip: To edit a linked UI connection, click the Edit icon next to the UI field, or choose Open
5-93
Chapter 5
Configure a Linked UI
From the Data Association window, assign necessary values to path parameters, query
parameters, and custom payload attributes that you need to pass to the external
application.
1. In the dynamic process editor, select a human task activity, and click Edit Properties .
2. 2. Under End User Display on the Properties pane, select an existing external UI connector
from the Form drop-down list. All external UI connectors within the application appear in
the list.
3. Configure data association for the human task activity.
Select the human task activity, click , and choose Data Association.
From the Data Association window, assign necessary values to path parameters, query
parameters, and custom payload attributes that you need to pass to the external
application.
General guidelines
• As expected, the linked form is displayed when you select the task in the runtime task list.
• If a linked form is used for a human task activity, the associated external application must
provide the action buttons for the task.
• When an action is performed within the task, the linked UI must make the corresponding
REST API call to the Process Automation server and also fire an appropriate JavaScript
event to update the runtime task list. The process task list listens to these events and
refreshes accordingly.
5-94
6
Work with Human Task Activities
Human task activities enable you to model how users interact with the application. Understand
how end users interact with tasks in Workspace and then learn how to create and implement
human task activities in Designer.
Topics:
• Understand End User Tasks
• Create Human Task Activities
• Implement Human Task Activities
• Customize Notification Emails
6-1
Chapter 6
Implement Human Task Activities
6-2
Chapter 6
Implement Human Task Activities
6-3
Chapter 6
Implement Human Task Activities
5. If you selected All Assignees in Parallel, then you've to specify values for the
Percentage Required and the Default Outcome fields.
For example, if you set the percentage required as 55% and the default outcome is
APPROVE. This means that a minimum of 55% of task assignees must approve the task
for the task's outcome to result in APPROVE. Otherwise, the outcome is REJECT.
6. If you selected Management Chain in Sequence, specify how to seek approval: going up
one level, going up a specified number of levels, or going up until a specified title is
reached.
• Choose Immediate Manager to go up one level from the assignee.
• Choose Until Level or Title Reached to continue seeking approval until the specified
level or title is reached.
– Specify a number between 2 and 10 in the Levels Up to Reach field.
– (Optional) Specify a title to reach by selecting Title to Reach and entering a title to
match. If the title isn't found, approval continues until the level specified in the
Levels Up to Reach field is reached.
To assign a human task activity in a dynamic process:
• Select the human task activity in the dynamic process, and open its Properties pane.
Note:
Your plain text string and your expression are maintained so that you can toggle
between the two options without losing any data.
6-4
Chapter 6
Implement Human Task Activities
Note that once you've selected a form, you can click next to the UI field, and open the
form in the form editor to edit it.
4. From the Presentation drop-down field, select a presentation for the form.
6-5
Chapter 6
Implement Human Task Activities
5. Select Bind to process data if you want to automatically bind form data. Notice that the
Task Payload and Task Outcome fields get populated.
Keep in mind that when you implement a human task activity with a form, data association is
automatically performed when a form is selected:
• If the data object already exists, then that one is used.
• If the data object with the same name doesn’t exist, then the first data object of the same
type is used.
• If there’s no data object of the same type, then a new data object is automatically created.
New data objects use this naming convention:
<form-name-starting-in-lower-case>DataObject<n>
where n is a number added to avoid duplicate names.
• Name restrictions for data objects and forms are similar, so no special treatment is
required.
• After data association is performed, you’re notified with a message below the form input
box.
6-6
Chapter 6
Implement Human Task Activities
If you add or remove an action in the Action field, the drop-down menu for skipping
approvals automatically updates to reflect the addition or deletion. See Define an Approval
Pattern.
Exclude Participants
Excluding participants lets you control who can work on tasks such as approving the tasks.
You can control the users that can approve a task by excluding any user from acting on a task.
For example, you can ensure that requestors cannot approve their own requests, and prevent
unauthorized users from acting on a task. If you want to exclude multiple users, you can
specify an expression. You can enter comma separated usernames and user IDs in the
expression.
To exclude participants:
1. Select a human task activity in a process, and open its Properties pane.
2. In the Properties pane, scroll to the Assignees section.
3. In the Exclude the following section, select the required checkboxes:
• Creator
• Expression
If you select the Expression checkbox, the Enter an expression field appears where
you can type the required expression.
Note:
A task due date is different from a process due date. Setting a due date for a
process does not automatically set a due date for the task.
6-7
Chapter 6
Implement Human Task Activities
• Normal (2)
• Low (3)
In addition, you can use expressions to dynamically set a value for the priority during
human task activity creation. Click the literal mode icon in the Level field once to enable
the expression mode . Use the inline expression builder to specify an expression. The
expression should evaluate to an integer. This is suggested by a hint text on the top-right
of the field.
Note that when you use an expression to set a task's priority, if the expression returns a
value that doesn't fall under the predefined range, then by default the task priority will be
set to Normal (2).
In Workspace, you can sort task list based on the task priority. High priority tasks are
marked with a red exclamation mark.
2. Click Escalation and Expiration to open the Escalation and Expiration pane.
3. Use the radio buttons to specify if you want the human task to Never expire, Expire, or
Escalate.
• Never expire: the human task doesn’t expire and if no user completes it, it remains in
the users task list for an indeterminate period of time. Note that by default, a human
task is set to never expire.
• Expire: the human task expires after the specified time and is no longer accessible
from the task list.
• Escalate: when the specified time passes, the human task is escalated to the
specified users and/or roles.
4. If you chose the human task to expire or escalate, specify the interval to wait before
performing this action.
You can specify the duration of the interval to wait using one of the following options:
6-8
Chapter 6
Implement Human Task Activities
• If required, you can update the default text in the mandatory Comment field to a
customized text or configure it as a dynamic comment using the expression mode.
6. Close the Escalation and Expiration pane to save the changes.
• Escalation: In Workspace (after the process application has been activated), if the task
hasn't been acted upon till the specified interval duration, the task will be assigned to the
users and/or roles that you specified in the Escalation and Expiration pane. If it is
escalated to a single user, then the task's state changes to Assigned with the sub-state
Escalated; and the process waits for the completion of the task. If it is escalated to one or
more users and/or roles, then the task's state changes to Unassigned with the sub-state
Escalated; and the process waits for the completion of the task.
• Expiration: In Workspace (after the process application has been activated), if the task
hasn't been acted upon till the specified interval duration, the task's state changes to
Completed with the sub-state Expired; and the process moves to the next activity in the
process flow. The task will no longer be available under In Progress tasks, and will be
available under Completed tasks. If you open the audit details of the task from the
Workspace Tracking page, you can see that the state of the task is marked as Expired,
along with other details such as the expiration date and time.
A notification email is sent to the task assignee that the task has expired.
6-9
Chapter 6
Customize Notification Emails
• Choose Before Expiration if you want the reminders to be sent before the task
expires.
• Choose After Assignment if you want the reminders to be sent right after the task has
been assigned.
• Choose Before Due Date if you want the reminders to be sent before the due date of
the task.
6-10
Chapter 6
Customize Notification Emails
You can also configure and use customized notification emails for human task activities. You
have an option to create customized email templates that include the following information:
• Payload
• Task
• Links to perform an action on a task
• Task comments
Note:
If you’ve configured the human task activity to use a linked UI instead of a web
form, the options to include the form as image, PDF, or inline are not available on
the Notification tab.
4. In the Email Template field, select an email template that you want to use for the task-
related emails.
5. Specify when the email notification is sent, for example when a task is assigned or
completed, or when an error occurs. By default, On Assign and On Complete are
selected. Use the drop down to determine the template for each notification email. The
Use Parent Template is selected by default.
The parent template uses the template you selected before. You can either use the same
template or select any other template. To manage email templates, see Manage Email
Templates.
6-11
Chapter 6
Customize Notification Emails
6. Optionally, you can select Task Attachments to include files that users have uploaded to
tasks.
• Create a new email template for your use. Click Add to the right of Manage Email
Templates. See Configure Email Templates.
• Copy, preview, or download an existing email template for your use. Click next to
the email template that you want to use, and choose from the available options.
Option Description
Copy Copy and save the email template with another name.
Preview Open the email template in the Preview Email Template dialog. You can view how
the email appears to end users. The payload information isn't displayed in the
Preview mode.
Download Download and save the email template in HTML format to your local drive or select
an application to open the file.
6-12
Chapter 6
Customize Notification Emails
2. Select a human task activity, and click Notifications on the right side of the process
editor.
4. Enter the HTML markup for your email template in the space provided for it.
To include values from process variables and form arguments, you'll use mustache
templates. Mustache templates provide a way to include predefined task variables, and
values in an HTML markup. The following example shows how to reference the first name
and last name with a data object using the mustache template:
Template:
{{#payload}}{{#DOName}}{{AttributeName}}{{/DOName}}{{/payload}}
Object:
<div class="container">
<div class="label">Hello {{#payload}}{{#DOName}}{{firstName}}{{/DOName}}
{{/payload}} {{#payload}}{{#DOName}}{{lastName}}{{/DOName}}{{/payload}}
</div>
</div>
6-13
Chapter 6
Customize Notification Emails
Note:
To use values from process or task variables that are not predefined, associate
the variables with a data object before referencing them as shown in the
example.
Output:
Note:
In preview mode, the payload and action map sections don’t show the data.
6-14
Chapter 6
Customize Notification Emails
{{name_of_the_predefined_variable}}
For example:
{{title}}, {{assignee}}
{{# hasActions }}
<div class="button-
container">
<div
class="label">Actions</div>
<div class="buttons">
{{# actions }}
<a class="action-
button" href="{{workspaceURL}}">
<span
title="{{actionDisplayName}}">{{a
ctionDisplayName}}</span>
</a>
{{/ actions }}
</div>
</div>
{{/ hasActions }}
6-15
Chapter 6
Customize Notification Emails
{{# hasActions }}
<div class="button-
container">
<div class="label">List
of Task Actions</div>
<div class="buttons">
{{# actions }}
<a class="action-
button" href="{{workspaceURL}}">
<span
title="{{actionDisplayName}}">{{a
ctionDisplayName}}</span>
</a>
{{/ actions }}
</div>
</div>
{{/ hasActions }}
6-16
Chapter 6
Customize Notification Emails
To define a… Example
Variable Reference the predefined variables as shown in the following format:
{{title}}
To use multiple predefined variables, use comma as a separator. For
example:
{{title}}, {{assignee}}
6-17
Chapter 6
Customize Notification Emails
To define a… Example
Payload To get the structure of the payload, see the incoming webform
dataObject in the Data Association page of the human task activity. You
can reference the following:
• Process level data objects
• Form argument data objects
• User defined data objects
.
Payload example 1: Format of a Form with form and business data
objects
{{#payload}}{{#formDO}}{{inputText1}}{{/formDO}}{{/
payload}}
{{#payload}}{{#myFormArgs1}}{{inputText2}}{{/
myFormArgs1}}{{/payload}}
{{#payload}}{{#myFormArgs2}}{{inputText3}}{{/
myFormArgs2}}{{/payload}}
<div class="info">
<div class="container">
<div class="label">Loan Application
1</div>
<div class="value">{{#payload}}
{{#appDataObject}}{{appName}}{{/appDataObject}}{{/
payload}}</div>
</div>
<div class="container">
<div class="label">Loan Application
2</div>
<div class="value">{{#payload}}
{{#myFormArgs}}{{appStatus}}{{/myFormArgs}}{{/
payload}}</div>
</div>
<div class="container">
<div class="label">secondLevel</div>
<div class="value">{{#payload}}
{{#accessSecondLevelValue}}{{#firstLevel}}
{{secondLevel}}{{/firstLevel}}{{/
accessSecondLevelValue}}{{/payload}}</div>
</div>
<div class="container col">
<div class="created">
<div class="label">Created On</
div>
<div
class="value">{{createdDate}}</div>
</div>
<div>
<div class="label">Due Date</div>
<div class="value
6-18
Chapter 6
Customize Notification Emails
To define a… Example
amber">{{dueDate}}</div>
</div>
</div>
<div class="container link">
<a class="view-link" href="{{url}}">
View in Browser</a>
<div class="underline"></div>
</div>
</div>
<table border="1">
<thead>
<tr>
<th>Loan Application Name</th>
<th>Outcome</th>
<th>Task created date</th>
<th>Customer Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{#payload}}{{#appDataObject}}{{appName}}
{{/appDataObject}}{{/payload}}</td>
<td>{{outcome}}</td>
<td>{{createdDate}}</td>
<td>{{#payload}}{{#myFormArgs}}{{customerName}}
{{/myFormArgs}}{{/payload}}</td>
</tr>
</tbody>
</table>
In this table:
• {{outcome}} and {{createdDate}} are task variables.
• {{appName}} is the value from the data object.
• {{#payload}}{{#myFormArgs}}{{customerName}}{{/
myFormArgs}}{{/payload}} is the value from form arguments
data object.
Example 4: HTML table containing references to data objects
<table class="Sport-Score-Age-table">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Sport</th>
<th>Score</th>
</tr>
</thead>
6-19
Chapter 6
Customize Notification Emails
To define a… Example
<tbody>
{{#sportSelection}}
<tr>
<th>{{Name}}</th>
<th>{{Age}}</th>
<th>{{Sport}}</th>
<th>{{Score}}</th>
</tr>
{{/sportSelection}}
</tbody>
</table>
This HTML table displays a table of information with Name, Age, Sport,
Score columns along with data from the Name, Age, Sport, Score data
objects.
6-20
Chapter 6
Customize Notification Emails
To define a… Example
Array loops You can define arrays containing information in the form of elements.
You can define the elements at different levels. For example the following
screenshot shows how to define employee information at the second
level.
Sample code to define array at second level. In this sample code, the
employee name, age and experience details are defined as elements at
the second level.
{{#payload}}{{#secondLevelListDO}}
{{#secondLevelList}}{{#employee}}
<li>Employee Name:{{empName}}<br>Employee
experience: {{empExp}}<br>Employee age:
{{empAge}}</li>
{{/employee}}{{/secondLevelList}}{{/
secondLevelListDO}}{{/payload}}
{{#payload}}{{#DOName}}{{AttributeName}}{{/DOName}}{{/payload}}
6-21
Chapter 6
Customize Notification Emails
Object:
<div class="container">
<div class="label">Hello {{#payload}}{{#DOName}}{{firstName}}{{/DOName}}
{{/payload}} {{#payload}}{{#DOName}}{{lastName}}{{/DOName}}{{/payload}}
</div>
</div>
{{#payload}}{{#secondLevelListDO}}{{#secondLevelList}}{{#employee}}
<li>Employee Name:{{empName}}<br>Employee experience:
{{empExp}}<br>Employee age:{{empAge}}</li>
{{/employee}}{{/secondLevelList}}{{/secondLevelListDO}}{{/payload}}
Here is an example:
${[Link]('AttributeName')}
For example:
${[Link]('loanAmount')}
6-22
Chapter 6
Customize Notification Emails
Note:
Email templates for notify tasks do not support:
• Referencing process variables that are not part of a data object.
Note:
To use values from process or task variables that are not predefined,
associate the variable values with a user defined data object before
referencing.
• Predefined variables
• Array data in data objects
Conditional Helpers
Some common conditional function helpers with examples are listed in the table below:
6-23
Chapter 6
Customize Notification Emails
{{#neq
[Link]
"sales"}}
Sorry, this item is only
eligible for Sales team
{{/neq}}
6-24
Chapter 6
Customize Notification Emails
{{#gt
[Link]
nt 10000}}Important!{{/gt}} Expense
report by {{creator}} for amount
{{[Link]
ount}} for approval
{{#gt
[Link]
gth 1}}
<h3>Expense Items</h3>
<table>
<thead>
<tr>
<th>Item</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr>
<td>item1</td>
<td>400</td>
</tr>
<tr>
<td>item2</td>
<td>340</td>
</tr>
</tbody>
</table>
{{/gt}}
6-25
Chapter 6
Customize Notification Emails
{{#and
[Link]
[Link]
cutive}}
<h3>Special Category Traveler</h3>
{{else}}
<h3>Normal Traveler</h3>
{{/and}}
If value is the list ['a', 'b', 'c'], the output will be the
string "a // b // c".
6-26
Chapter 6
Customize Notification Emails
Examples:
• {{dateFormat date ["full"]}
output: Tuesday, June 19 2012
• {{dateFormat date ["long"]}
output: June 19, 2012
• {{dateFormat date ["medium"]}
output: Jun 19, 2012
• {{dateFormat date ["short"]}
output: 6/19/12
numberF Returns the number in the specified
ormat format. <pre>
Parameters: {{numberFormat number ["format"]
• integer [locale=default]}}
• percent </pre>
• currency
• pattern
Note:
Handlebars is a superset of Mustache and Mustache templates are compatible with
Handlebars.
See Handlebars.
6-27
7
Model Decisions
Create decisions to automate the decision logic inherent in your business process. As part of
modeling decisions, define their input, model their logic using simple and complex types, test
them, and expose them as services.
Topics:
• Decisions at a Glance
• Understand Local and External Decisions
• Create a Local or External Decision
• Understand the Graph View
• Add a Decision Logic Type
• Define Expressions with the Friendly Enough Expression Language (FEEL)
• Define Decision Input and Type
• Model Decision Logic
• Test Decision Models
• Expose Decisions as Services
• Add Decision Services to Processes
Decisions at a Glance
Start by familiarizing yourself with these decision concepts.
What are the types of decisions that you can use in your processes?
You can use two types of decisions in processes - local decisions and external decisions.
7-1
Chapter 7
Decisions at a Glance
Local decisions can only be used in the context of the process application in which they're
created. They are typically used for simple use cases.
External decisions can be used to automate complex decision logic in business processes.
External decisions are standalone decisions that are created and activated in decision
applications. They can be called in more than one process applications as external decisions.
In addition, you can also use these type of decisions in external applications by calling the
active REST API endpoints exposed by the decision services.
See Understand Local and External Decisions.
7-2
Chapter 7
Understand Local and External Decisions
7-3
Chapter 7
Create a Local or External Decision
As a workaround, you can delete the decision and use an available active decision
application.
• Local decision:
• External decision:
Local decision: For a local decision, an empty decision component is added. Clicking it will
open the decision editor canvas. You can start modeling the decision as described in the
following topics:
• Add a Decision Logic Type
• Define Expressions with the Friendly Enough Expression Language (FEEL)
• Model Decision Logic
• Test Decision Models
• Expose Decisions as Services
• Add Decision Services to Processes
7-4
Chapter 7
Understand the Graph View
External decision: For an external decision, an already modeled, ready to be used, and
activated decision is added. You can directly implement it in the processes of your process
application. See Add Decision Services to Processes.
If required, you can also edit an external decision like any other decision by opening it in the
decision editor canvas.
Toolbar
The decision toolbar provides quick access controls to manage the decision canvas.
7-5
Chapter 7
Add a Decision Logic Type
Canvas
The decision canvas is the central area where you can create a diagram that represents your
decision, using the elements in the diagram palette. The zoom controls at the bottom of the
canvas allow you to zoom in or fit the canvas in your browser.
Diagram palette
From the diagram palette, drag and drop DRD components onto the canvas to use them in
your diagram.
Under Decisions on the palette view all the decision types available for use. You can drag a
particular decision type or add an empty decision element and then associate a decision
notation to it.
7-6
Chapter 7
Add a Decision Logic Type
• Expression
• Function
• If-Then-Else
• List
• Loop
• Relation
2. Select and drag a decision type onto the canvas.
3. Position the cursor at the point you want to add the decision and release the mouse click.
4. To edit decision properties, click the three dots in the decision, and click Edit.
The Decision Properties pane opens. Note that when you add any decision element to the
canvas, a new decision logic with a default name (for example, Decision1) is created and
associated with the element. You can edit the information related to the logic from the
properties pane.
5. Enter the necessary information about the decision logic in the properties pane.
Field Description
Name Enter a unique name for the decision logic you want to create and
associate with the element. You can also select a previously defined
decision logic for the element. Click Expand and select an
implemented logic from the available options.
Note:
If you add a particular decision type to the canvas and select a
different type of logic from the Name drop-down menu, the
element's logic type changes.
Click Edit to edit the decision element's logic. You can also double-
click element on the canvas to view or edit its logic.
Click Delete to delete the decision logic associated with the element.
Logic Change the decision logic type if required. For example, you can add an
empty decision to the canvas and change its logic from the properties
pane.
Note:
If you select a previously implemented decision logic in the
Name field and change its type in the Logic field, the content of
the previous implementation is overwritten.
7-7
Chapter 7
Define Expressions with the Friendly Enough Expression Language (FEEL)
7. To delete the decision element you added to the canvas, select the element and click
and then click Delete.
Data Types
Oracle Cloud Infrastructure Process Automation supports the following FEEL data types that
you can use for input data, expression values, function arguments and return values.
Note:
You can extend these basic data types by defining custom data types. See Define
Custom Data Types.
7-8
Chapter 7
Define Expressions with the Friendly Enough Expression Language (FEEL)
Grammar Rules
Learn about the syntax for commonly-used FEEL expressions through simple examples. For
the complete definition of FEEL syntax, see Decision Model and Notation (DMN), v1.1.
Arithmetic Expressions
Interval Expressions
Note:
In decision table input entry and input/output allowed value cells, you can use
intervals or list of intervals to test against the input data.
Comparison Expressions
Note:
In decision table input entry and input/output allowed value cells, you can use
comparison operators to define unary expressions.
7-9
Chapter 7
Define Expressions with the Friendly Enough Expression Language (FEEL)
Other Expressions
Note:
In decision table input entry and input/output allowed value cells, you can use
comma-separated list of values to specify disjunction.
Built-In Functions
FEEL includes a library of built-in functions that you can use to define expressions.
Oracle Cloud Infrastructure Process Automation supports the following types of built-in
functions:
• Conversion Functions
• Boolean Functions
• String Functions
• List Functions
• Numeric Functions
Conversion Functions
7-10
Chapter 7
Define Expressions with the Friendly Enough Expression Language (FEEL)
Boolean Functions
String Functions
7-11
Chapter 7
Define Expressions with the Friendly Enough Expression Language (FEEL)
List Functions
Numeric Functions
7-12
Chapter 7
Define Expressions with the Friendly Enough Expression Language (FEEL)
Conversion Examples
Examples in this section demonstrate conversion of number or string literals into date, time, or
duration data types.
Example Description
date("2012-12-25") Represents the date 2012-12-25 in the YYYY-MM-DD format
time("23:59:00") Represents the time 23:59:00 in the hh:mm:ss format
time("23:59:00-08:00") Represents the local time 23:59:00 in the hh:mm:ss format; the local time
is 8 hours behind UTC.
date and time("2012-12-25T11:00:00") Represents the date 2012-12-25 and time 11:00:00 in YYYY-MM-DD and
hh:mm:ss formats respectively
date and time("2012-12-25T11:00:00Z") Represents the date 2012-12-25 and time 11:00:00 in YYYY-MM-DD and
hh:mm:ss formats respectively; "Z" represents UTC time
7-13
Chapter 7
Define Expressions with the Friendly Enough Expression Language (FEEL)
Example Description
duration("P1DT12H30M") Represents a duration of 1 day, 12 hours, and 30 minutes
duration("-P120D") Represents a duration of minus 120 days
duration("PT2000H") Represents a duration of 2000 hours
duration("P1Y2M3DT10H30M") Represents a duration of 1 year, 2 months, 3 days, 10 hours, and 30
minutes
7-14
Chapter 7
Define Decision Input and Type
7-15
Chapter 7
Define Decision Input and Type
Note:
If you select a previously defined variable in the Name field, the mode
and other details are auto-populated.
5. Now, create outgoing connections from the input data element to the decisions.
a. Select the element and click Create New Connection and keep the mouse
depressed.
b. Move the cursor to the decision you want to connect to, and then release the click.
You can create multiple outgoing connections from an input data element. To delete a
connection, hover your cursor over the arrow and then double-click.
6. To delete the input element from the canvas, select it and click Delete .
7-16
Chapter 7
Define Decision Input and Type
b. Select the Mode (that is, the data type) for the definition. You can select one of the
built-in data types to create aliases or choose to define a complex data type.
c. To identify the data type as a list, select the Make a list check box.
d. If you select the mode as Text, Number, or Date and Time, you can optionally define
allowed values to restrict the data type definition to enumerated values or ranges.
e. If you select the mode as Complex, define attributes within the type definition.
i. Click to add a new attribute. The New Type Attribute pane opens and an
attribute is created with a default name.
ii. In the pane, edit the attribute's name, select the mode, and enter allowed values or
a range for the attribute.
iii. Select the Make a list check box to identify the attribute as a list.
iv. Click Close to return to the Type Definition pane, and repeat steps i-iii to add
another attribute to the complex type definition.
v. Click on any type attribute to modify the type attribute.
vi. To delete a type attribute, click the row and then click Delete .
4. Now select the input data element on the canvas for which you want to use the custom
variable type.
7-17
Chapter 7
Define Decision Input and Type
5. Double click the element, or click Open Properties to open the Input Properties pane.
6. From the Mode drop-down list, select Other Type.
7. In the resulting Other Type drop-down list, select the type definition you just created.
8. Click Close to save the changes and close the Input Properties pane.
1. In the decision application, click the Types icon to open the Type Definition pane.
2. In the Type pane, click
.
A drop-down appears and shows the options Import from sample and Import from
schema.
7-18
Chapter 7
Model Decision Logic
7-19
Chapter 7
Model Decision Logic
You can also edit the table's logic from the Decision Properties pane. Click the three dots
on the element and select Edit to open the Decision Properties pane of the element. Click
7-20
Chapter 7
Model Decision Logic
Note that when you edit a decision table, the total number of resultant errors and warnings are
displayed on the top-right side area above the decision table. Click the error or warning to view
more details. Additionally, you can also see where the errors or warnings occur in the decision
table cells.
The following image shows the errors and warnings that are displayed when you create an
empty decision table:
7-21
Chapter 7
Model Decision Logic
In an Input Expression cell, press Ctrl+Space to open a drop-down menu. Use the options
available in the menu to define your expression. You can also click on the Enter Allowed
Values cell to enter or edit the input expression.
In the Decision Model editor, the expression language used for all expressions, including input
expressions, is friendly enough expression language (FEEL). Want to learn more about the
expression language syntax? See Define Expressions with the Friendly Enough Expression
Language (FEEL).
Allowed Values
Click on the Enter Allowed Values cell within an Input Expression or Output Label cell to
specify permitted values for cell entries of that column. However, for an input column, the type
of allowed values (or specific allowed values) are automatically populated when you specify
the input expression for the column. For example, if an input expression returns Boolean
values, allowed values for that column are populated as true, false. The options you can
choose from for changing the type of allowed values are listed in the following table. Note that
after you specify the input expression for a column, the type of allowed values you can toggle
between are limited.
Note:
The data type of input entry cells is determined by the data type of the input
expression. Make sure that the type of allowed values you supply is consistent with
the data type of the input clause.
7-22
Chapter 7
Model Decision Logic
Note:
If the data type of an input entry does not match the data type of the column, or if the
input entry is not among the allowed values, an error is displayed within the decision.
Modes
Based on the input expression and/or allowed values you specify, the mode for entry cells is
automatically selected. If required, click on the Mode icons to switch to a different mode. The
following figure shows the Mode Editor window with Text mode selected:
The mode options available to you in the editor is dependent on the data type of the input
expression or allowed values you've specified. The following table details all the available
modes:
Mode Description
Any Use this mode to mark an entry as irrelevant (-).
Text Use this mode to enter strings. In this mode, you can enter a string as a
plain literal without double quotes.
Number Use this mode to enter numbers. Optionally, use the constraint options
available in the Mode editor.
True or False Use this mode to enter Boolean values.
Date and Time Use this mode to enter date and time values. Optionally, use the
constraint options available in the Mode editor.
Advanced Use this mode to enter advanced FEEL expressions and null values.
You can use the constraint options available in the Mode editor to
define an expression.
Want to learn more about the syntax and examples? See Grammar
Rules.
7-23
Chapter 7
Model Decision Logic
column appears by default. To add additional outputs, select the existing output column and
use the column add controls.
To reference a particular output of this multi-output table from another decision, use the
following format: [Link]; for example, [Link].
Configure Rules
Rules are expressed as rows within a table. Every rule consists of one or more input entries
and a corresponding output entry.
Generally, a decision table consists of multiple rules. When the input data matches the input
entries of a rule, the result of the decision table contains the output entry of the rule.
7-24
Chapter 7
Model Decision Logic
1. Single Hit: A single-hit table returns the output of only one rule. Under the single-hit
category, Process Automation supports the following hit policies:
• Unique (U) – Only one of the rules can match.
• Any (A) – Multiple rules can match, but all matching rules must have the same output.
• First (F) – Multiple rules can match; the output of the first rule that matches is
returned.
• Priority (P) – Multiple rules can match; the output value that has the highest priority is
returned.
2. Multiple Hit: A multiple-hit table returns the output of multiple rules. Under this category,
the following hit policies are supported in Process Automation:
• Collect (C) – Multiple rules can match; outputs are returned as an arbitrarily-ordered
list.
• Collect Sum (C+) – Multiple rules can match; the sum of outputs is returned.
• Collect Min (C<) – Multiple rules can match; the smallest output value is returned.
• Collect Max (C>) – Multiple rules can match; the largest output value is returned.
• Collect Count (C#) – Multiple rules can match; the count is returned.
When you create a new table, the Unique (U) hit policy is selected by default. To change the
policy, click the Hit Policy Indicator cell and choose from the available options in the Hit Policy
drop-down list. If rules within the table violate the selected hit policy, a warning is displayed
within the decision.
7-25
Chapter 7
Model Decision Logic
In this example, for any input value of temperature, only one rule can match.
• Single Hit Any
In a decision table with Any hit policy, multiple rules can match. The overlap is permitted
only if the matching rules have the same output. The decision table returns the output of
any one of the matching rules. The hit policy is breached if matching rules have different
outputs.
Here is a decision table created with the Any hit policy:
In this example, for an input age of 50 and work experience of 20, the first and second
rules match. This overlap is allowed because these rules have the same output. The
decision table returns the output of any one of these rules.
• Single Hit First
In a decision table with First hit policy, multiple rules with different output entries can
match. The output of the lowest-numbered matching rule is the result of the table.
Here is a decision table created with the First hit policy:
7-26
Chapter 7
Model Decision Logic
In this example, if service years are 11, the second and third rules match. The decision
table returns only the second rule’s output.
• Single Hit Priority
In a decision table with Priority hit policy, multiple rules with different output entries can
match. The priority of output values (in descending order) is specified as a list in the
Allowed Values cell of the output column. The decision table returns the output value that
has the highest priority among outputs of all matching rules.
Here is a decision table created with the Priority hit policy:
In this example, the last two rules match for an input age of 61. The decision table returns
the output value that has the highest priority among of these rules, that is, 15; the priority
order is defined in the Allowed Values cell.
• Multiple Hit Collect
In a decision table with Collect hit policy, multiple rules with different output entries can
match. The decision table returns outputs of all matching rules in an arbitrarily ordered list.
Here is a decision table created with the Collect hit policy:
7-27
Chapter 7
Model Decision Logic
In this example, two rules match for an input age of 61. The decision table returns output
values of these rules in a list, that is, 10 and 8.
• Multiple Hit Collect (Sum)
In a decision table with Collect (Sum) hit policy, multiple rules with different output entries
can match. The decision table returns the sum of outputs of all matching rules.
Here is a decision table created with the Collect (Sum) hit policy:
In this example, the last two rules match for an input age of 61. The decision table returns
the sum of output values of these rules, that is, 25.
• Multiple Hit Collect (Min)
In a decision table with Collect (Min) hit policy, multiple rules with different output entries
can match. The decision table returns the smallest output value among all matching rules.
Here is a decision table created with the Collect (Min) hit policy:
In this example, the last two rules match for an input age of 61. The decision table returns
the smallest output value among these rules, that is, 10.
• Multiple Hit Collect (Max)
In a decision table with Collect (Max) hit policy, multiple rules with different output entries
can match. The decision table returns the largest output value among all matching rules.
Here is a decision table created with the Collect (Max) hit policy:
7-28
Chapter 7
Model Decision Logic
In this example, the last two rules match for an input age of 61. The decision table returns
the largest output value among these rules, that is, 15.
• Multiple Hit Collect (Count)
In a decision table with Collect (Count) hit policy, multiple rules with different output entries
can match. The decision table returns the count of matching rules.
Here is a decision table created with the Collect (Count) hit policy:
In this example, the last two rules match for an input age of 61. The decision table returns
the count of matching rules, that is, 2.
Create Expressions
An expression is a logical notation, defined according to the syntax of FEEL, that evaluates to
a single value. It may consist of one or more entities, such as a literal, constant, or variable,
interconnected by zero or more operators. In Oracle Cloud Infrastructure Process Automation,
you can also use outputs of other decisions or built-in functions to define an expression.
To create a decision with the Expression notation:
1. Add a new decision element to the model.
a. From the Diagram palette, under Decisions select Expression, and drag it onto the
canvas.
b. Double-click the element to edit its logic. You can also edit the expression's logic from
the Decision Properties pane. Click the three dots on the element and select Edit to
open the Decision Properties pane of the element. Click Edit next to the Name
field to edit its logic.
7-29
Chapter 7
Model Decision Logic
2. In the Expression field, press Ctrl+Space to view a suggestion list. You can use any
decision outputs, variables, functions, and keywords to form your expression.
3. Changes you make within the decision model are automatically saved and validated from
time to time. Errors and warnings, if any, are displayed within the decision panel.
Following are some examples of decisions created using simple expressions:
• If the age property of the variable applicant is less than 70, then the decision returns true
else it returns false.
• The decision calculates the area using a constant and an input variable, radius.
All fields have the expression notation selected by default. Click Change Value and
select a different notation from the available options for a particular field. Configure logic
for the selected notation.
7-30
Chapter 7
Model Decision Logic
4. Changes you make within the decision model are automatically saved and validated from
time to time. Errors and warnings, if any, are displayed within the decision panel.
In the following example, the input value of temperature determines the output of the If-Then-
Else decision:
The following example uses an additional test statement, precipitation > 50, through Else If to
determine the final output:
7-31
Chapter 7
Model Decision Logic
Create Functions
You can create functions to define specific operations that aren’t available through built-in
functions. In Oracle Cloud Infrastructure Process Automation, decisions created using the
Function notation return a value only when invoked from another decision.
To successfully invoke a function from another decision, the number and type of parameters in
the function invocation must match those in the function definition.
Note:
Because a function decision by itself doesn’t return a result, it’s not an output
decision. Therefore, you can’t add function decisions to a decision service.
7-32
Chapter 7
Model Decision Logic
a. On the Diagram palette, under Decisions select Function, and drag it onto the
canvas.
b. Double-click the element to edit its logic. You can also edit the function's logic from the
Decision Properties pane. Click the three dots on the element and select Edit to open
the Decision Properties pane of the element. In the Decision Properties pane, click
2. Click the Parameter field, and then click Add Parameter to add a new parameter.
Enter a name for the parameter and select a data type for it. See Data Types.
3. In the Body field, click Change Value to change the logical notation. Select the
required notation from available options.
4. Configure the logic for the selected notation. Press Ctrl + Space to view a suggestion list.
You can use input variables or built-in functions from the list to define the logic.
5. Changes you make within the decision model are automatically saved and validated from
time to time. Errors and warnings, if any, are displayed within the decision panel.
Create Contexts
A context is a collection of one or more key-value pairs with an optional result field. Each pair
is called a context entry. The key attribute within a context entry acts as an identifier to its
corresponding value attribute.
You can use a context to collectively document all decision logic related to a particular scenario
or entity. Say you need to determine the loan eligibility of an applicant, based on the applicant’s
net monthly income and expense. For this purpose, you can create a decision named Loan
Eligibility using the Context notation and add expressions or logic for gross monthly income,
monthly expense, and net monthly income. Then, you can add a result field (within the context)
that evaluates the net income and expense for loan eligibility. The result field can be a boxed
expression that contains logic using the keys specified in the context.
7-33
Chapter 7
Model Decision Logic
the Decision Properties pane. In the Decision Properties pane, click Edit next to
the Name field.
An empty Context is created.
2. Click Add entry to create a new context entry. A key-value pair is created with the
expression notation selected by default in the Value field.
3. To change the logical notation for an entry, click Change Value in the Key field to open
the Change Value menu. Select a different notation from the available options.
4. In the Key field of a context entry, enter a unique name.
5. In the corresponding Value field, configure the logic for the selected notation. You can use
input variables or built-in functions to define the logic.
6. Repeat steps 2 to 5 to add another entry into the context.
7. Drag and drop context entries to reorder them within the context.
8. Changes you make within the decision model are automatically saved and validated from
time to time. Errors and warnings, if any, are displayed within the decision panel.
Note:
If you add a function as one of the context entries, the context as a whole doesn’t
return a result. However, you will still be able to invoke results of individual context
entries throughout the decision model.
The following image shows a context with a result field that determines the total income of
applicants:
7-34
Chapter 7
Model Decision Logic
The output of the result field is the context’s output. In this case, the context returns the result
of the boxed expression. You can reference the context’s result in other decisions within the
model using the context name (for example, Total Income).
The following image shows contexts with and without a result field, and a boxed expression
referencing a context and a context entry to determine the loan eligibility of applicants:
7-35
Chapter 7
Model Decision Logic
The output of this context returns a true or false decision that is based on evaluating the
contexts. To reference a particular context entry from another decision, use the format
[Link] (for example, [Link]). Within a context, an entry can only
reference entries that are above it.
7-36
Chapter 7
Model Decision Logic
Create Lists
A list notation is a vertical list of elements, where each element is an independent logical
notation. The output of a list notation contains outputs of all its elements. You can also invoke
the output of a particular list element from another decision.
To create a decision with the list notation:
1. Add a new decision element to the model.
a. On the Diagram palette, under Decisions select List and drag it onto the canvas.
b. Double-click the element to edit its logic. You can also edit the element's logic from the
Decision Properties pane; click the three dots on the element, then select Edit to open
the Decision Properties pane. In the Decision Properties pane, click Edit next to
the Name field.
An empty list is created.
2. Click Add Item to create a new list entry. An entry is created with the expression
notation selected by default.
3. To change the logical notation for an entry, click Change Value for the particular entry.
Select a different notation from the available options.
4. In the entry field, configure the logic for the selected notation. You can use input variables
or built-in functions to define the logic.
5. Repeat steps 2 to 4 to add another entry into the list.
6. Changes you make within the decision model are automatically saved and validated from
time to time. Errors and warnings, if any, are displayed within the decision panel.
To delete a list entry, click Change Value for the particular entry and select Delete.
Note:
• If you add a function as one of the list entries, then the list notation as a whole
doesn’t return a result. However, you will still be able to invoke results of other list
entries throughout the decision model.
• According to the FEEL syntax, you can also define horizontal lists in expression
fields across all notations. For example, a list of all prime numbers less than 10
can be defined as [2,3,5,7].
The following example is a list of simple expressions containing prime numbers that are less
than 10:
7-37
Chapter 7
Model Decision Logic
In a list of n elements, use List_name[n] to invoke the nth element from the beginning of the list,
and use List_name[-n] to invoke the nth element from the end of the list. In this example, to
invoke the list entry of 2, you can either use Prime Numbers[1] or Prime Numbers[-4].
You can also use suitable built-in list functions on a decision containing a List notation. For
example, the following Expression decision returns the sum of all items in the Prime Numbers
decision.
Create Relations
You can use a relation notation as convenient shorthand to represent multiple contexts.
A relation is a vertical list of similar contexts arranged horizontally. In other words, each row of
a relation table is a context and each column consists of context entries, where the column
name is the common key attribute for all cell entries under it that act as value attributes of
respective contexts (rows). For details about contexts and key-value pairs, see Create
Contexts. In a relation, each cell entry is an independent logical notation.
In the output of a relation notation, outputs of all contexts within it are clearly distinguished. You
can also invoke the output of a particular context or context entry from another decision.
To create a decision with the Relation notation:
1. Add a new decision element to the model.
a. On the Diagram palette, under Decisions select Relation, and drag it onto the
canvas.
b. Double-click the element to edit its logic. You can also edit the element's logic from the
Decision Properties pane; click the three dots on the element, then select Edit to open
7-38
Chapter 7
Model Decision Logic
the Decision Properties pane. In the Decision Properties pane, click Edit next to
the Name field.
An empty Relation table is created.
2. Use add row/column buttons above the table to add additional rows or columns. All cells
have expression notation selected by default.
3. Enter a name for each column.
4. Select a cell and click Change Value to change the logical notation for the cell. Select
a different notation from the available options. Note that you cannot insert a decision table
within a relation.
5. Within cells, configure the logic. You can use input variables or built-in functions to define
the logic.
6. Changes you make within the decision model are automatically saved and validated from
time to time. Errors and warnings, if any, are displayed within the decision panel.
Note:
If you add a function as one of the cell entries, then the relation as a whole doesn’t
return a result. However, you will still be able to invoke results of other cell entries or
contexts throughout the decision model.
The following relation contains the stock information for a particular brand of phone in the form
of multiple contexts:
Similar to list notations, use either Phone[1] or Phone[-3] to access the entire context related to
black-colored phones. To access all cell entries of a particular column, use the relation name in
combination with the column name, for example, [Link] returns all entries of the Price
column in a list. To access a particular context entry (for example, “Rose Gold”), use
[Link][3] or [Link][-1].
The following image is the result of the entire relation, which has results of each context listed
separately:
7-39
Chapter 7
Model Decision Logic
Create Loops
Create loops to iterate over lists or arrays. Using the loop logical notation, you can create
three different types of loops, namely For, Some, and Every.
• For: Iterates over a list and returns a new array/list containing calculated results in each
index as per the expression defined in the result field.
• Some: Checks if at least one list item satisfies the test condition defined by an expression
and returns a Boolean value.
• Every: Checks if every list item satisfies the test condition defined by an expression and
returns a Boolean value.
To create a decision with the Loop logic:
1. Add a new decision element to the model.
a. On the Diagram palette, under Decisions select Relation, and drag it onto the
canvas.
b. Double-click the element to edit its logic. You can also edit the element's logic from the
Decision Properties pane; click the three dots on the element, then select Edit to open
the Decision Properties pane. In the Decision Properties pane, click Edit next to
the Name field.
An empty loop decision is created.
2. In the Operation column, choose the type of loop to create from the drop-down menu. In
the corresponding expression field, enter the loop variable.
3. In the in field, enter the list or array over which to iterate. In the return or satisfies fields,
enter the expression to return (For loop) or the test expression (Some and Every loops),
respectively. Press Ctrl+Space to view a suggestion list. You can use any decision
outputs, variables, functions, and keywords in the list to define expressions in the in,
return, and satisfies fields. Use the FEEL syntax to define expressions.
4. If necessary, change the logical notations for return and satisfies fields to create a nested
logic. These fields have the expression notation selected by default. Click Change Value
7-40
Chapter 7
Model Decision Logic
and select a different notation from the available options. Configure logic for the
selected notation.
5. Furthermore, for a For loop, you can add an additional condition, where, using the Add
Condition button.
6. Changes you make within the decision model are automatically saved and validated from
time to time. Errors and warnings, if any, are displayed within the decision panel.
The following example shows a simple For loop that returns the squares of list items:
The following decision contains a Some loop that checks if at least one element in the list is
greater than 50:
The following decision contains an Every loop that checks if every element in the list is greater
than 50:
7-41
Chapter 7
Test Decision Models
1. On the top of the decision editor, click Decision Service to open the Services pane.
Optionally, you can click the Decision Service icon from the right sidebar menu of the
decision editor.
Note that the number within brackets besides the Decision Service icon, indicates the
number of services created for the decision.
2. In the Services pane, click Add new service to open the Add Decision Service pane.
3. Enter a name for the decision service and click OK. The new service appears in the pane
with two fields: Output Decisions and Input Data.
4. Click the Output Decisions field to select the output decision you want to expose through
the service.
5. Click the Input Data field to select the input data to expose through the service.
7-42
Chapter 7
Add Decision Services to Processes
Note:
You can add multiple values for the input data and the output decision.
Get the REST API endpoint URL, the request payload, and the response payload of the
decision model
Once a decision service is set up, you can note down the REST API endpoint URL, the request
payload, and the response payload of the decision model to call a decision service.
1. In the decision editor, click Decision Service to display the Services pane.
2. Click Options next to the service name, and then click Payload.
3. In the Service Payload pane that displays:
a. Click URL and then click Copy to note down the decision service REST API
endpoint URL.
The following is an example of a decision service endpoint URL:
[Link]
versions/<application_version>/active/definition/decision-services/
<decision_service_name>
Where:
• base_url: base URL of your Process Automation instance
• application_name: the name of your process application (in case of local decision)
or the name of your decision application (in case of external decision)
• application_version: the version of your process application or decision
application
• decision_service_name: the name of your decision service
b. Click Request Payload and then click Copy to note down the request payload
JSON schema.
The JSON schema of the request payload provides the format in which you provide
the input data to the decision service.
c. Click Response Payload and then click Copy to note down the response payload
JSON schema.
The JSON schema of the response payload provides the format in which the decision
service provides the output data.
7-43
Chapter 7
Add Decision Services to Processes
Note that if no decision services are available then the Decision Service section won't be
displayed in the Activity palette.
3. Drag a decision service and drop it onto the process flow.
The decision service gets added to the process.
Another way to add a decision service to a process is by adding a decision activity to the
process flow. You can drag and drop a decision activity to the process flow from the System
category in the Activity palette. But in this case, you would need to implement the decision
activity.
To implement a decision activity:
1. Double click the decision activity in the process flow to open the Properties pane.
Optionally, select the decision activity in the process flow, and click Open Properties to
open its Properties pane.
2. Select a decision service from the Decision Service drop-down list.
3. Close the Properties pane to save and implement the changes.
7-44
8
Manage Data
Almost all business processes require some type of data. For example, a purchase order
application requires customer name, contact information, order number, items purchased, and
payment details. Before you can use data in your application, you must define how it’s
structured and stored.
Topics:
• About Managing Data
• Work with Data Objects
• Work with Business Types
• Configure Data Association
• Define Conditions for Data Associations
• Work with Transformations
• Filter Arrays
• Work with Expressions
• Use Business Keys
8-1
Chapter 8
Work with Data Objects
either creating a form or importing a JSON schema/sample in a connector. Which type of data
type you base your data object on depends on the type of data it must handle.
Note:
A default process data object with the name TaskOutcomeDataObject is automatically
created for the human task outcome when a human task is created. The Edit and
Delete links are disabled for this data object.
In the Data pane, you can also edit or delete a data object. After editing or deleting a data
object, validate your application to verify that there are no references to the changed or deleted
data object.
If your process contains an inline/embedded subprocess, then to view the data objects of the
subprocess in the Data pane of the main (parent) process, you have to toggle the Show
subprocess data objects button. Note that you won't be able to edit or delete the subprocess
data objects from the Data pane of the main process. To edit or delete the subprocess data
objects , you have to open the Data pane in the context of the subprocess.
2. Click Data and in the Data pane that opens, expand the list of data objects for your
process.
3. Select the specific data object.
This step activates the Edit and Delete icons.
• To edit the data object, click Edit Data Object , then change the name or data type
as necessary.
8-2
Chapter 8
Work with Business Types
page, click .
The Add Component pane appears.
2. In the Add Component pane, enter the following and click Create.
• Enter a suitable name in the Title field.
• If required, you can update the default unique identifier name in the Identifier field.
• Optionally, enter a suitable description in the Description field.
A confirmation dialog lets you know that the component is being created. After it gets
created, the business type is listed in the Types page.
3. Click the business type to open it in the editor.
8-3
Chapter 8
Work with Business Types
The different data types that you can assign to an attribute are:
• Simple types
• List of values or Enums
• Form data objects
• Data types from connectors
• Data types from linked external UI
• Other business types
If you want to make the selected type as array, select the Make it an array check box.
To delete an attribute click the Delete icon next to the attribute.
Click the Properties icon on the right side of the editor to open the Properties pane and edit
the business type's properties. For example, you can edit the name and description of the
business type.
Click the Tree View icon on the right side of the editor to drill down and view the data
structure of the business type. For example, the image below shows the tree view of a
business type Customer. It is configured with simple data types (firstName, lastName), another
business object (address), and a list of values (customerType).
8-4
Chapter 8
Work with Business Types
You can toggle and enable Show all Types to view all types (business types and list of values)
present in your application. Expand each type to view the details.
page, click .
The Add Component pane appears.
2. In the Add Component pane, enter the following information and click Create.
• Enter a suitable name in the Title field.
• If required, you can update the default unique identifier name in the Identifier field.
• Optionally, enter a suitable description in the Description field.
• Select a data type (String, Number, or Integer) from the Data Type drop-down list.
A confirmation dialog lets you know that the component is being created. After it gets
created, the list of values is listed in the Types page.
3. Click the list of values to open it in the editor.
4. Under Add New, enter a label in the Label field and a corresponding value in the Value
field.
The item gets added to the List of Values pane.
Add the required number of items to create the list of values.
8-5
Chapter 8
Work with Business Types
You'll get inline validation error if you enter incorrect values. For example, you've created a
list of values with integer data type but enter string while setting its values.
Click the Properties icon on the right side of the editor to open the Properties pane and edit
the list of values' properties. For example, you can edit the name, description or the data type
of the list of values.
Click the Tree View icon on the right side of the editor to drill down and view the data
structure of the list of values.
You can toggle and enable Show all Types to view all types (business types and list of values)
present in your application. Expand each type to view the details.
8-6
Chapter 8
Work with Business Types
• A CustomerType list of values for containing the predefined values - New Customer
and Registered Customer
• A Customer business type for containing data such as customer's first and last name,
address (using the Address business type), and the type of customer (using the
CustomerType list of values).
3. Use the business types that you created in the following ways:
a. Use business types in a form: For the customer onboarding form, use the Customer
business type. Business types that you've created are available under Types in the
form palette. Drag and drop the business type from the form palette onto the form's
canvas. You don't have to configure individual form fields but the form fields get
automatically configured with the business type. Thus business types can be used to
quickly build a complex form with its presentation.
b. Use business types for configuring conditional flow: You can use the
CustomerType list of values to configure the conditional flow of the process.
• If the customer is new then move to the next task to gather the new customer
details.
• Else, if the customer is already registered then move to the next task of
maintaining the existing customer's information.
c. Use business types in data association: With business types, you can easily
configure data associations. You can bind the process data objects directly to the form
data objects that were created with the business type. You don't need to bind individual
form data objects in your process, as you would have to do with normal form fields.
8-7
Chapter 8
Work with Business Types
the Components tab to open the Types page. On the Types page, click .
The Add Component pane appears.
2. In the Add Component pane, enter the following and click Create.
• Enter a suitable name in the Title field.
• If required, you can update the default unique identifier name in the Identifier field.
• Optionally, enter a suitable description in the Description field.
A confirmation dialog lets you know that the component is being created. After it gets
created, the business exception is listed in the Types page.
3. Click the business exception to open it in the editor.
4. Add the attribute details to your business exception.
• Select a data type from the Type drop-down list if you want to change the default data
type.
The different data types that you can assign to an attribute are:
• String
• Integer
• Boolean
8-8
Chapter 8
Configure Data Association
• Date
• Time
• Number
Click the Properties icon on the right side of the editor to open the Properties pane and edit
the business exception's properties. For example, you can edit the name and description of the
business exception.
Click the Tree View icon on the right side of the editor to drill down and view the data
structure of the business exception.
task or service task, click and then select Open Data Association . (This option is
active when the selected activity needs association.)
The data association editor opens. Use its center pane as a canvas for mapping
associations, by dragging and dropping elements from the left and right panes. Any data
associations already configured display below Data Association. You use the empty pair
of fields to create a new association.
Note:
Oracle Cloud Infrastructure Process Automation creates data associations for
you in some cases, such as when you create a human task or start event with a
form.
a. Notice that the Input tab is selected. The left pane displays source objects (Data
Objects) in an expandable tree. The right pane displays the payload, or entry
parameters the activity needs to perform its function.
b. Click the Output tab and notice how the left and right panes change. Now the left pane
displays the task’s payload, and the right pane displays the variables available in the
process.
2. For a dynamic process, select a human task activity or a service activity. Click , select
Data Association and then select Input to configure input data association. (This option is
active when the selected activity needs association.)
You can configure output data association by selecting Output.
8-9
Chapter 8
Configure Data Association
3. In the Input tab begin creating a new association by dragging an input object from the
Data Objects tree and dropping it in the input field titled New Association. You can also
begin typing and select from auto-complete options that appear using the inline expression
builder. To specify attributes within objects, enter a . (period) and select from the list that
displays.
See Work with Expressions.
The input source provides the value or expression to assign to the target. You select
variables related to the process (such as data objects) to map to the specific parameters
the activity needs to perform its function (its entry parameters).
4. Complete the association by dragging an output object from the payload tree and dropping
it in the output field. You can also begin typing and select from auto-complete options that
appear using the inline expression builder.
Oracle Cloud Infrastructure Process Automation validates the new association and
displays a green association icon if valid, or a red association icon and error if invalid:
8-10
Chapter 8
Configure Data Association
Association icon that is present at the top right of the process editor.
8-11
Chapter 8
Define Conditions for Data Associations
Process Variables
The following process variables are supported in output data associations:
8-12
Chapter 8
Define Conditions for Data Associations
2. Define the new condition by entering values directly in the given field.
3. Alternatively, use the inline expression builder to define a condition using standard
functions and operators.
See Work with Expressions.
4. If the condition is valid a green icon is displayed next to the Data Association icon.
5. If the configured condition is invalid, the icon turns red indicating an error
.
Note that you can also view the error details when you click the process validation error
from the process editor canvas.
6. Finally, click Apply to save all data associations including the data associations with
conditions set on them.
In runtime, the data associations for which you have defined conditions execute only if the
conditions fulfill. In case of our example, if the first passenger name was entered in the Start
activity form, then its value will be passed on as payload to the primary passenger field in the
8-13
Chapter 8
Work with Transformations
next activity of the process. Otherwise, the travel agent name will appear in the primary
passenger field.
with data associations, the transformation icon is green when valid. When invalid, the
icon is red and its error displays.
You can create and apply data transformations in the following ways:
• Create and apply transformations while configuring data associations
• Create individual transformations and then apply them to data associations
To create and apply transformations while configuring data associations:
1. Select an activity in a process that needs data association and click More Options.
2. Select Data Association and choose either Input or Output.
3. Drag and drop the data objects into the input and output fields to configure an association.
You can also begin typing and select from auto complete entries that display.
4. Click the data association icon, and in the resulting dialog toggle the Transform button.
The data association can be valid or invalid.
5. The Transformations window (named based on the objects you selected) displays the list
of transformations that match the source and target types.
Click Create to create a new transformation.
6. In the Transform dialog box, enter a name, and click Create.
The Transform window displays. It looks and functions much like the data association
editor, except that its left and right panes reflect the fields from the selected objects to
transform.
8-14
Chapter 8
Work with Transformations
Note:
You can also create transformations within transformations, that is, nested
transformations. To create nested transformations, repeat steps 4 to 6 in the
Transform window, and click Save.
8-15
Chapter 8
Append to Array
Note:
Select Filter to create a filter. See Filter Arrays.
Additionally, you can either edit or delete an existing transformation. To do so, click the edit
or delete icon next to the transformation in the All Actions window.
2. In the Transform dialog, enter a name for the transformation and select the source and
target data objects.
3. Click Create.
In the Transform window, configure the transformation.
4. Click Save.
You've now created a transformation.
5. In the data association editor, click the data association icon, and in the resulting dialog
toggle the Transform button.
6. The Transformations window displays the list of data transformations in the process
application. Select a transformation that is applicable for the association and click OK.
7. To apply a different transformation for an already configured transformation:
a. In the data association editor, click the data transformation icon. The resulting dialog
lists the transformations applicable for the association. Click change next to the
transformation you want to update.
b. Select another transformation from the Transformations window and click OK.
Append to Array
An array is a series or list of data elements of the same type. You can add a single data
element to an array with the append action available in the data mapper. For example, you can
append strings to a string array.
The append action is available in the Data Association editor for both structured and dynamic
processes.
Ensure the following:
• The target expression type must be always an array.
• The source expression type must be of the same data type as the target array.
8-16
Chapter 8
Filter Arrays
Filter Arrays
While defining data associations between process components, you can selectively filter
elements from a source array and assign them to a target array object.
In the Data Association editor of a structured or dynamic process, an option to define a filter
appears if the following conditions are met:
• The target expression type is an array.
• The source expression type is an array. The base type of the source is assignable to the
base type of the target (for example, integer to double assignments).
• Both the source and target expressions are valid.
To define a new filter:
1. Click the Data Association icon.
2. In the Actions pop-up, toggle the Filters button.
3. In the resulting dialog, click Create.
You can also do the following:
• Select and use an already existing filter.
• Search for an existing filter by entering its name in the Search field.
• Edit a filter, by selecting it and then clicking the Edit icon.
• Delete a filter, by selecting it and then clicking the Delete icon.
4. Enter a name for the filter in the Name field, and click Create. A window to define the filter
condition appears.
5. Based on the type of your array, define a filter condition.
a. For a simple array object (of the type integer, string, or double), an element named
VALUE is present in the window, which represents each element of the source array.
Drag and drop the VALUE element into the Condition field to define an expression.
b. For a complex array data object, you can define a condition comprising all attributes it
contains.
8-17
Chapter 8
Work with Expressions
You can use the inline expression builder to create and define expressions in the filter
Condition field. See Work with Expressions.
6. Click Save to save the filter condition.
7. Note that the Data Association icon changes to show that a filter was applied to the data
association.
8. Click Apply.
In runtime, target arrays are populated according to the filter conditions you’ve defined.
To create an expression for a flow element, click from the flow element’s properties field.
This enables the expression mode and you can use the inline expression builder which gives
auto-complete options for you to create and build your expression.
To create an expression while configuring data associations, enter the expression directly in
the input or output fields of the data association editor. You can use the inline expression
builder which gives auto-complete options for you to create and build your expression.
The following is an example image of the inline expression builder being used while configuring
data association.
8-18
Chapter 8
Work with Expressions
• Create expressions with data objects, operators, and functions. As soon as you put the
cursor in the expression field, you get a list of suggested objects using which you can build
the expression.
• As you choose the object, related suggestions for the next level are displayed below the
field. The suggestions are context sensitive. For example, suggestions displayed for a Title
field will be different from that of a Due Date field.
• Use Ctrl + Space to get more tabs and suggestions. A search field also displays that you
can use to search data objects under the various tabs such as Process or Activity.
• The type that is expected to be entered into the expression field is auto-suggested at the
top right of the field.
• If an expression is invalid, for example, if you type a number in a string field, an error
message indicating the details of the error is displayed.
• If the configured expression is too long, you can expand the field by using Ctrl + Enter
keys.
8-19
Chapter 8
Work with Expressions
• Addition, Subtraction
• Multiplication, Division, Remainder
• Plus, Minus
• Less than, Greater than, Less than or equal to, Greater than or equal to
• Equals, Not equals
• Not
• Conditional And
• Conditional Or
The following sections lists Operators and Functions per type.
Unary
Conditional
String
8-20
Chapter 8
Work with Expressions
Numeric
The following table includes operators for both Integer and Number.
8-21
Chapter 8
Work with Expressions
In addition to the above, the following specific operators are also available for Number.
Operator Description
+ Addition (valid only when the second argument is a duration)
- Subtraction (valid only when the second argument is a duration)
== Equals
!= Not equals
> Greater than
>= Greater than or equals
< Less than
<= Less than or equals
format Returns the formatted string of date-time using the provided format picture
In addition, Date, Time, and DateTime have specific operators as listed under each of them.
Date
Operator Description
year Returns a number representing the year component of the date-time argument.
8-22
Chapter 8
Work with Expressions
Operator Description
month Returns a number representing the month component of the date-time argument.
day Returns a number representing the day component of the date-time argument.
Time
Operator Description
hours Returns a number between 0 and 23, both inclusive, representing the hours
component of the date-time argument
minutes Returns a number between 0 and 59, both inclusive, representing the minutes
component of the date-time argument.
seconds Returns a number between 0 and 59, both inclusive, representing the seconds
component of the date-time argument.
DateTime
Operator Description
year Returns a number representing the year component of the date-time argument.
month Returns a number representing the month component of the date-time argument.
day Returns a number representing the day component of the date-time argument.
hours Returns a number between 0 and 23, both inclusive, representing the hours
component of the date-time argument.
minutes Returns a number between 0 and 59, both inclusive, representing the minutes
component of the date-time argument.
seconds Returns a number between 0 and 59, both inclusive, representing the seconds
component of the date-time argument.
timezone Returns an interval value, representing the time offset from UTC.
8-23
Chapter 8
Work with Expressions
Operator Description
toTimezone Returns the date-time expressed in the time offset corresponding to the timezone
ID provided.
You have the following options for specifying a timezone ID:
• Provide a fixed offset from UTC/Greenwich, such as "-07:00".
For example:
– [Link]("-07:00") returns
2002-11-30T17:20:00-07:00 when dateTimeDO is
2002-12-01T01:20:00+01:00
• Specify a geographical region, which is an area where a specific set of rules
for finding the offset from UTC/Greenwich apply. A geographical region is
usually represented in the format "{area}/{city}", such as "Europe/
Amsterdam" or "America/New_York".
For example:
– [Link]("America/Los_Angeles") returns
2002-11-30T16:20:00-08:00 when dateTimeDO is
2002-12-01T01:20:00+01:00
Note:
You must include double quotation marks around the
timezone ID value.
For more information about timezone IDs, see Class ZoneId in the Java Platform
documentation.
Boolean
Duration
Operator Description
== Equals
!= Not equals
> Greater than
>= Greater than or equals
< Less than
<= Less than or equals
8-24
Chapter 8
Work with Expressions
Array
Operator Description
[] Access a particular element into the array
== Equals
!= Not equals
length Returns the number of elements contained within
the array
Other
Operator Description
== Equals
!= Not equals
Special Constants
Constants Description
null Null value
true Logical true
false Logical false
‘now’ Current dateTime
Casting
In some cases, it could be desirable to bypass the type validation in order to assign types that
aren't necessarily compatible. For example, you may want to assign an 'int' value to a 'string'
one and in order to do that you can use the conversion operation like this:
<conversionTypeName> ( <valueToConvert> )
where the 'conversionTypeName' is the type you want to see as the value.
Here are some conversion examples:
• string(myIntDO)
• int(myStringDO)
• duration(mystringDO)
Note:
You can only cast to primitive types, so the 'conversionTypeName' will only accept
those that have a valid value.
Assigning two values that are incompatible will result in a runtime error.
Additional Functions
Identity Service
8-25
Chapter 8
Use Business Keys
Get or Else
8-26
Chapter 8
Use Business Keys
Let us see how you can set a business key to a process and propagate it to a child process
that is called by the main process.
1. Set the business key to the process start.
a. Create a structured process that starts with a form.
b. Select the start activity of the process, and open its Properties pane.
c. Under the End User Display section, enter a name for the activity in the Title field.
d. In the UI field, select a form to associate with the activity from the drop-down list.
We’ll use a data object of this form to configure the business key.
e. In the Business key field, enter an expression using the in-built expression builder.
For example, [Link], where orderID is the data object of the Start
form.
8-27
Chapter 8
Use Business Keys
e. From the right Data Objects pane, expand Process Data, then drag and drop the
process data object you want to associate with the business key.
In the example below, the orderID data object is associated with the businessKey
predefined variable.
f. Click Apply.
3. Propagate the business key to the called process.
a. Open the first structured process where you defined the business key to the process
start.
b. In the Activity palette, expand System, and then drag and drop a Call Activity into the
process flow.
c. Select the call activity, then click Open Properties to open its Properties pane.
d. Under Implementation, select the second structured process you created in step 2
from the drop-down list in the Process field.
e. Select the check box Propagate business key when process is called.
The business key that is set at the start of the parent process is propagated to the child
called process.
4. Activate and run the process application to see how it works in run time.
a. Click Activate.
b. In the Activate dialog, click Test in Workspace.
c. From the Start Requests page, select your application instance.
d. In the application start form that appears, enter a value, for example 123456, in the
Order ID field that is configured for the business key.
e. Navigate to the Tracking page. Select Tracking from the workspace navigation menu
options.
f. All the process instances associated with the same reference ID are displayed. The
reference ID’s value is same as the business key value you entered in the start form.
8-28
Chapter 8
Use Business Keys
The business key associated with a task is displayed in the My Tasks page. When you open a
task, you can see if there is a business key associated with it under the More Information
section.
8-29
9
Integrate with Applications and Services
Learn about the possibilities for integrating process applications with other applications and
services.
Topics:
• Work with Connectors
• Work with Integrations
• Embed a Start Form in an External Application
• Embed a Task List in an External Application
• Embed a Task Detail in an External Application
Connectors at a Glance
Start by familiarizing yourself with these connector concepts.
9-1
Chapter 9
Work with Connectors
9-2
Chapter 9
Work with Connectors
• Use Client Credential when invoking a system that requires secured communication but
doesn’t require a user identity to be present in it. The client credential identifies the OAuth
client and not the user.
Example: You may want to invoke Oracle Identity Cloud Service or Oracle Integration APIs
using client credential security, since they typically don’t require a user identity.
• Use JWT Assertion for system-to-system communication that requires invoking on behalf
of a specific user without taking consent from that user.
Example 1: Model a Process-to-customer system process (structured or dynamic) that
invokes endpoints on behalf of the user who creates the process. Use a service task
connector that makes a call on behalf of the initiating user, creating an OAuth token using
that user and JWT Assertion, and invoke the target endpoint.
Example 2: The Process Automation forms connector also supports invoking endpoints on
behalf of the user. Suppose you configure a form with a connector that fetches information
from an HCM system. If the connector is configured to use a JWT assertion credential, it
automatically uses the user identity of the current logged in user accessing the form to
generate an OAuth token to make a call to the HCM system and get information.
9-3
Chapter 9
Work with Connectors
b. Identifier Name: Automatically populated to uniquely identify the connector. This value
can't be changed later.
c. Base URL: Enter the base endpoint you want the connector to access in REST calls.
By default, Process Automation appends .com to the connector’s name and displays
that as the default URL.
4. Click Create.
The REST connector is displayed on the Connectors page as well as on the process
application's main page. You can identify it as a REST connector by the REST icon .
5. Open the new connector.
Click the Open Now link in the creation message that briefly appears or select the new
connector from the connector list.
The REST connector editor opens.
6. If you want to edit the properties of the connector:
a. Click Properties from the side menu.
b. On the Properties pane, you can edit the following:
• Name
• Description
• Base URL
c. Close the Properties pane to save the changes.
9-4
Chapter 9
Work with Connectors
a. In the Operations list, select an operation to expand it. If needed, make changes to the
operation’s Type, Name, and hierarchical Path fields. Optionally, enter a description in
the Documentation field.
b. Click the Request and Response tabs to view the operation's parameter and body
fields. The HTTP method you selected determines the request and response message
combination to complete for the operation. An asterisk displays if one or more required
fields on the tab need to be completed.
Refer to the table below for required and optional parameters for HTTP methods.
Information in this table is based on the Methods definition section of the HTTP/1.1
protocol definition.
9-5
Chapter 9
Work with Connectors
c. In the Body field, add or select a business object to store the message data. You can
create business objects based on JSON files for REST operation payloads or on a
schema. To create a business object by importing or pasting a JSON sample, and
upload or paste JSON sample text. The JSON text or schema is validated, and if
invalid, an error is displayed.
Ensure that the JSON output of the REST connector does not contain elements that
start with a number or contain spaces. These elements may throw up a failed mapping
error during runtime when converted to XML. Element names are case sensitive, and
must start with a letter or underscore.
d. When you select a business object in the Body field, you must also specify the
message’s media type in the Media type field. Process Automation supports
application/json.
e. In the Parameters table, configure one or more parameters for the operation. Click an
empty row to add a line, and complete name, style, and description fields. Depending
on the selected method, supported style options include template, header, body, and
query. When you add, edit, or remove a parameter token in the operation’s path (for
example, {Id}), its corresponding template parameter is automatically created, edited,
or deleted.
f. Click Apply to save the operation. Apply is active only when all required information
has been entered.
9-6
Chapter 9
Work with Connectors
9-7
Chapter 9
Work with Connectors
The application or endpoint requires that users and services provide security credentials for
access.
For an OAuth grant (client credential) flow, you have to know the client ID and client secret
from the OAuth provider. For example, if you’re using an Oracle IDCS-based OAuth client,
determine this information using the IDCS admin console.
See the Security, Authentication and Authorization section in REST API for Oracle Cloud
Infrastructure Process Automation.
1. From a selected process application, click the Connectors tab and open a connector.
2. Click Security from the side menu.
The Security pane is displayed for the connector.
3. Click Edit .
4. In the Security Type field, select OAuth from the drop-down list.
5. In the OAuth Security Info fields, enter the following details:
9-8
Chapter 9
Work with Connectors
Field Description
Grant Type Select JWT Assertion.
Client ID Enter the OAuth client ID.
Private Key Enter the base64-encoded private key
Scope Specify the scope you defined while creating the
OAuth confidential application.
Scope sets limits on an application’s access to a
user’s account. For example, use the scope
parameter to enable the access token to grant
different levels of access to Oracle IDCS APIs.
OAuth Token URL Either select Local Identity Domain or enter the
OAuth token URL from the OAuth provider.
• Select Local Identity Domain to auto-
populate the field with the current service
instance's IDCS OAuth token URL.
• You can also manually enter the IDCS
OAuth token URL in the field. For example:
[Link]
[Link]/
oauth2/v1/token.
X5t Base64 encoded SHA-1 thumbprint of public
certificate.
9-9
Chapter 9
Work with Connectors
Prerequisites
Before you can configure a connector to use OCI Signature Policy, you must perform the
following tasks:
1. Get the user OCID and tenancy OCID. See Where to Get the Tenancy's OCID and User's
OCID.
2. Create an API signing key. See How to Generate an API Signing Key.
3. Get the fingerprint of the key. See How to Get the Key's Fingerprint.
4. Optionally, if you've generated the key with a passphrase, you need to obtain the
passphrase.
To configure OCI Signature Policy security for a connector:
1. From a selected process application, click the Connectors tab and open a connector.
2. Click Security from the side menu.
The Security pane is displayed for the connector.
3. Click Edit .
4. In the Security Type field, select OCI Signature Policy from the drop-down list.
5. Under OCI Signature Security Info, enter the following details:
6. Click Save.
9-10
Chapter 9
Work with Connectors
1. From a selected process application, click the Connectors tab and open a connector.
2. Click Security from the side menu.
The Security pane is displayed for the connector.
3. Click Edit .
4. In the Security Type field, select Global Credential from the drop-down list.
5. Search for and select a global credential.
Only global connectors that use the same base URL display in search results.
6. Click Save.
Note:
Connectors defined in your process application are always visible when editing form
controls that support events. See Add Dynamic Behavior to Forms.
9-11
Chapter 9
Work with Connectors
9-12
Chapter 9
Work with Integrations
Delete a Connector
Before deleting a connector, ensure it’s not being used in a process or form. You can’t delete a
REST service connector that is being called by a service task.
1. From a selected process application, click the Connectors tab.
Connectors configured for your process application are displayed.
2. Hover over the connector to delete, click Options , and choose Delete.
3. In the Delete connector pane, click Delete.
The connector is removed and no longer appears on the Connectors page or the process
application's main page.
Note:
Ensure that the OAuth policy is configured on the REST triggers of the Oracle
Integration.
If a Process Automation instance is enabled with an Oracle Integration 3 instance, you can
navigate between the design-time interfaces of the two instances.
• To navigate to Oracle Integration 3 from Process Automation, open the navigation menu in
Process Automation Designer and click the punch out URL for Oracle Integration. The
Oracle Integration 3 home page opens in another browser tab.
• To navigate to Process Automation from Oracle Integration 3, open the navigation menu in
the Oracle Integration home page, and click the punch out URL for Process Automation.
The Process Automation Designer opens in another browser tab.
9-13
Chapter 9
Work with Integrations
Topics:
• Use Integrations
• View Integration Details
• About Integration Statuses
• Discover and Use Integrations Within Oracle Integration 3 Projects
Use Integrations
To use an integration in your process application, you have to first create a connection to the
integration with a connector, and then implement the integration in structured processes and
forms using the connector.
To use integrations in process applications:
1. Create a Connector with an Integration
2. Implement an Integration in Processes and Forms
Integration icon .
You can also do the following:
• Click the integration connector to view details about the integration. See View Integration
Details.
• Click the Properties icon from the side menu to open the Properties pane and quickly
view the integration connector's properties - name, description, and identifier. Note that you
cannot edit the properties.
• Specify if the connector, resources, and operations linked with the integration are visible
from the Activities palette while designing structured processes. See Specify Connector
Visibility in Process Editors.
9-14
Chapter 9
Work with Integrations
Note:
You can only use integrations in structured processes.
9-15
Chapter 9
Discover and Use Integrations Within Oracle Integration 3 Projects
9-16
Chapter 9
Embed a Start Form in an External Application
For example, in case of an Employee Onboarding application in Oracle HCM Cloud, a new
employee must fill a form with details and submit it. This is the start form that would initiate the
onboarding process. By embedding the start form's URL in the Oracle HCM Cloud application,
the start form can be accessed and opened from Oracle HCM Cloud itself without navigating to
Workspace user interface in Process Automation. The URL of the start form can open in a new
browser window or can be embedded in iFrame.
Process automation lets you load a Process Automation start form with the context of an
existing application by passing data through the URL query parameters. Data in the URL query
parameters can then be used in the On Load events to make API calls to external systems to
get more information. This saves the user the effort of re-entering details required to finish
tasks. Additionally, you can also pass the data in base64 encoded format.
You can only pass first level data in the URL query parameters. For example,
[Link]=Cloud.
For example, Oracle HCM Journeys lets you create an external URL based tasks and pass the
context details of the journey, task and user performing the activity to the URL. This data can
be populated in the Process Automation start form. Subsequently, the Process Automation
start form can trigger an On Load event to query a HCM API to retrieve more information about
the user, and then pre-populate fields such as name, department, and cost center.
Here is an example of how you can send data using URL query parameters:
Here is an example of how you can send data in Base64 encoded format using URL query
parameters:
Note:
In case of a Process Automation instance paired with a Fusion based Oracle Cloud
Application, user authentication is seamless. However for all other applications and
services users would be prompted to authenticate before using the start form.
Base URL:
[Link]
root=startForm&processDefinitionKey=#&reloadOnSubmit=#
9-17
Chapter 9
Embed a Task List in an External Application
[Link]
process/api/v1/process-interfaces
Note:
In case of a Process Automation instance paired with a Fusion based Oracle Cloud
Application, user authentication is seamless. However for all other applications and
services, users are prompted to authenticate before accessing the task list.
Base URL:
[Link]
Process automation lets you load a Process Automation task list with the context of an existing
application by passing data through the URL query parameters. The URL query parameters
can:
• Control the actions that are available to users such as reassign and escalate the task.
• Control the details that are shown in the task details. For example, disable the comments.
• Filter the types of tasks that are shown to the user.
9-18
Chapter 9
Embed a Task List in an External Application
Here is an example of how you can send data using URL query parameters:
9-19
Chapter 9
Embed a Task Detail in an External Application
Note:
In case of a Process Automation instance paired with a Fusion based Oracle Cloud
Application, user authentication is seamless. However for all other applications and
services, users are prompted to authenticate before accessing the task details.
Base URL:
[Link]
root=taskDetail&taskNumber=####
9-20
Chapter 9
Embed a Task Detail in an External Application
Process automation lets you load a Process Automation task details with the context of an
existing application by passing data through the URL query parameters. The URL query
parameters can:
• Control the details of the task that are displayed.
• Show or hide the action buttons
• Show or hide the system action buttons
Here is an example of how you can send data using URL query parameters:
9-21
10
Explore Workspace
Workspace is the runtime environment of Oracle Cloud Infrastructure Process Automation. It
can be accessed by all authenticated users.
You can access Workspace directly from Designer (the design-time environment). Click the
user icon on the top-right of the Designer UI, then click Workspace. The Workspace UI opens
in another tab of your browser.
The way you and others use Workspace depends entirely on how the process application and
tasks are set up. But explore the following topics to learn about things you typically do.
Topics:
• Start an Application
• Work on Tasks
• Track Processes
• Use Analytics
• Set to Out of Office
If you're a Process Automation Administrator, learn about additional options in Workspace
Administration.
Start an Application
In Workspace, open the navigation menu, and then select Start Requests. From the list of
available options on the Start Requests page, click the application you want to start.
Complete the start form, and click Submit. You get a confirmation that an instance has been
created. This initiates the first task in the application.
Note the following:
• If the list of application is extensive, you can also use the Search field to search for the
application you want to start.
• If you want to view default versions of applications, click Default Version.
• If you want to view all available versions of applications, click All.
Note:
If the application you want to start doesn’t appear on the Start Requests page, you
may not have the correct role. Contact the Process Automation Administrator who
can assign the required role to you.
10-1
Chapter 10
Work on Tasks
Work on Tasks
User tasks are listed on the Tasks page in Workspace. To access the Tasks page, open the
Workspace navigation menu and then choose Tasks.
The task list displays the following information about tasks.
• Title: The title of the task.
• Process Name: The process to which the task belongs.
• Reference Id: The business identifier (if any) associated with the task.
• Created Date: The date and time on which the task got created.
• Due Date: The due date (if any) of the task.
• Status: The present state of the task in its lifecycle.
• Actions: Click the Actions icon to display a list of actions that you can perform on the
task. See Perform Task Actions.
You can filter the task list and view specific tasks in the task list. See Find a Task.
To view details about a task and complete it, select and open the task. See View and Complete
Tasks.
Find a Task
There are various options available in the Tasks page using which you can find specific tasks.
Find a task on the Tasks page:
• Use the Search field to search for particular tasks. See Search for a Task.
• Use filter options available to display specific tasks.
– Use the Task Tab Filters
– Use the Task Lifecycle and Due Date Filters
– Apply Advanced Search Filters
Note:
Searches are not case sensitive. For example a search for Task can return results
with matches such as task, TASK, Task, or TasK.
10-2
Chapter 10
Work on Tasks
Operator Description
+ Specifies AND operation.
"" Wraps multiple terms to specify them as exact phrases.
| Specifies OR operation.
- Specifies NOT operation.
* Specifies prefix query if used at the end of a term.
The search result for the above query returns the exact phrase expense report AND the word
limit, and it does NOT contain the word reject.
Advanced query
An advanced query uses complex syntax that can be build with operators, wildcards, as well as
one or more fields. It uses Lucene's full query string syntax. While this type of search is
versatile, the query is strict and returns an error if the query string includes any invalid syntax.
The following table lists some examples of advanced query.
Query Description
status:open The field status contains the term open.
title:expense AND The field title contains the term expense and the field's total value
total:(3000 TO 4000) should be between 3000 and 4000.
hotel_name:(hotel NOT The field hotel_name contains the term hotel and doesn't contain the
motel) AND term motel; and the field category matches Resort and Spa.
category:'Resort and
Spa'
book.\*:(quick OR Any of the fields such as [Link], [Link] or [Link]
brown) contains quick or brown.
Auto-suggestion
Auto-suggestion enables real-time suggestion of fields that are configured with business data.
As you type, a list of business search enabled fields will be displayed that you can use to
query. For example, if you want to search by using a patient’s name, then on entering the
patient name, a list of possible fields that you may want to use is suggested. Selecting one of
the fields will then prompt you for the value that you want to search in this field.
10-3
Chapter 10
Work on Tasks
Boosting a term
Term boosting refers to ranking a match higher if it contains the boosted term, relative to others
that don't contain the term. To boost a term, use the caret ^ symbol with a boost factor (a
number) at the end of the term you're searching. Note that the default boost factor is 1.
For example: make: nissan^10 OR city: "new york"
In the above query make: nissan receives a boost factor of 10 as compared to city: "new
york" with boost factor of 1. Hence in the search result, matches that contain make as nissan
will get higher relevance and ranking.
Fuzzy search
Fuzzy search matches on terms that are similar, including misspelled words. To do a fuzzy
search, use the tilde ~ symbol at the end of a single word. An optional parameter of value
between 0 and 2 can specify the maximum number of edits allowed. If no value is specified,
then the default value is 2.
For example to search for a term similar in spelling to "book" use the fuzzy search: book~1. The
search will return terms like books and cook.
10-4
Chapter 10
Work on Tasks
Advanced search
In the above use case where you do a free text search with phrases, you may still end up with
undesirable search results. For example, john doe may occur in some comments or in fields
other than the targeted field. Or, there's a record where an orderid or telephone number ends
with 1234.
To eliminate such cases, you can refine the search to specific field names. In the search field,
you can enter a query of field: value, where field is the fieldName and value is the value
that fieldName should contain. Each field: value combination is called a clause. You can
have as many clauses as you want with nested hierarchy in the search query.
For example: +( field1: (value1 OR value1`)) + ( field2: value2 OR field3: value3)
- (field4: value4)
where:
MUST field1 should have value1 or value1`
MUST
MUST field2 should have value2 OR field3 should have value3
NOT field4 to have value4 (This field with value shouldn't be present at all)
For our hospital use case, the search query can be: name: "john doe" AND ssn: *1234 which
should return the exact matching result where the name of the patient is John Doe whose SSN
ends with the number 1234.
You can expand the above queries using number and date ranges.
Filter Description
My tasks Displays tasks claimed by you or tasks that others have assigned to you.
10-5
Chapter 10
Work on Tasks
Filter Description
Team tasks Displays tasks that are assigned to a number of users, including the
group that the user belongs to.
To work on a task that is displayed on the Team tasks tab, you need to
first claim the task. On the task row, click Actions, and then click Claim.
In the Claim task dialog, click Claim again. The task now gets displayed
under the My tasks tab and you can work on it.
Started by me Displays tasks from process instances you started.
Managed by me Displays tasks from process instances you have started, and other tasks
that you interacted in the past, for example, a task that you may have
reassigned to someone.
Filter Description
Assigned Displays all tasks assigned to you. The assigned state indicates a task
has been assigned to a user or role and it is ready to be acted upon.
High priority Displays all tasks marked as high priority.
Info requested Displays all tasks for which further information have been requested.
Overdue Displays tasks for which due dates are over. A red Overdue tag is
displayed under Due Date for such a task, along with the number of days
that are overdue.
Due soon Displays all tasks for which due date is soon.
10-6
Chapter 10
Work on Tasks
• After
• Between
4. Select a particular date and time in the Select Date field.
5. You can also specify a particular date and time range in the Created Since and Created
Until fields.
6. Click Filter.
If you're on the business search page where search based on business data is enabled, then
you can use various operators for each of the Filter by fields to do a more accurate search for
those fields. Additionally, you can also filter the search using the configured searchable fields
that you defined in design-time. You can add as many filters as you want using configured
searchable fields by clicking the Add filter option.
The tasks that meet the criteria you defined in the Advanced search dialog are displayed in the
task list.
The applied filters are also displayed as filter chips below the Search field.
Action Description
SUBMIT Submit a task.
Click SUBMIT from the Actions menu, and in the resulting dialog, click SUBMIT.
Optionally, review the task form and enter information in any required fields of the
form by clicking the View Details link. You can also add your comments in the
Comments field before you perform the submit action.
10-7
Chapter 10
Work on Tasks
Action Description
APPROVE Approve a task.
Click APPROVE from the Actions menu, and in the resulting dialog, click
APPROVE. Optionally, review the task form and enter information in any required
fields of the form by clicking the View Details link. You can also add your
comments in the Comments field before you perform the submit action.
REJECT Reject a task.
Click REJECT from the Actions menu, and in the resulting dialog, click REJECT.
Optionally, review the task form and enter information in any required fields of the
form by clicking the View Details link. You can also add your comments in the
Comments field before you perform the submit action.
Claim If a task is assigned to multiple users or a group, the task will appear as Unclaimed
to all the users or group in the Team tasks page. Any of the users can claim the
task to act upon it. After a user claims a task, other assignees won't be able to
access the task as the task will disappear from the Team tasks page.
The task will be available under the My tasks page of the user who claimed the
task, and the status of the task changes to Assigned.
Withdraw If you don't want a task, you can withdraw it.
Once withdrawn, the task disappears from the task list. The next activity of the
process instance becomes available to be acted upon.
From the My tasks, Started by me, and Managed by me pages, you can do a bulk
withdrawal of tasks.
• Select the tasks that you want to withdraw.
• Click Withdraw.
Escalate You can escalate a task to other users and/or roles.
Click Escalate from the Actions menu. In the resulting Escalate Tasks dialog,
select one or more user and/or role in the drop-down list available from the Select
members field. Add a comment in the Comment field to let users know the reason
for escalation. Click Escalate.
The task will be escalated to the specified users and/or roles. If the task is
escalated to a single user then it will appear as an Assigned task in the task list of
the user, and the task's status will be displayed as Escalated. If the task is
escalated to more than one user and/or role then it will be in Unassigned state,
with the sub-state Escalated.
Note that escalation can also be automatically triggered for a task if it hasn't been
acted upon even after a certain time interval has elapsed. To do so, you have to
define the escalation policy for the human task in design-time. See Configure Task
Escalation or Expiration.
Request Info You can request for more information on a task assigned to you.
Click Request Info from the Actions menu, and in the resulting Request more
information dialog, select a user from the User drop-down list from whom you want
more information. Add a comment in the Comment field. Click Request Info.
The task will be available to the user from whom you requested information. The
status of the task changes to Info Requested.
Submit Info You can provide the information requested for a task.
You can act upon a task with the status Info Requested by selecting Submit Info
from the Actions menu of the task. Provide the required information in the resulting
dialog, and click Submit Info.
The task will be available to the user who requested for the information. The status
of the task changes to Info Submitted.
10-8
Chapter 10
Work on Tasks
Action Description
Reassign You can reassign a task assigned to you to a different user or role.
Select the task, and then click Reassign from the Actions menu.
From the My tasks, Started by me, and Managed by me pages, you can do a bulk
reassign of tasks.
• Select the tasks that you want to reassign.
• Click Reassign .
In the resulting Reassign Tasks dialog, select a user or a role in the drop-down list
available from the Select members field. Optionally, add a comment in the
Comment field. Click Reassign. Note that the task/tasks disappear from your task
list.
The task/tasks will appear as Assigned task/tasks in the task list of the user to
whom you had reassigned.
Release Suppose you realize that you don't need to act upon an assigned task, you can
release the task and make it available in the Team task page so that other users
can act upon it as required.
The task will be available in the Team task page. Its status changes to Unclaimed.
Additionally, you can also select and open the task and perform actions from the task's details
window. See View and Complete Tasks.
10-9
Chapter 10
Track Processes
Section Description
Forms View details and fill required information on the form attached to the task. If
required, you can use the Expand Form/Collapse Form button.
Click SUBMIT from the Actions menu, and in the resulting dialog, click SUBMIT.
Optionally, review the task form and enter information in any required fields of the
form by clicking the View Details link. You can also add your comments in the
Comments field before you perform the submit action.
Comments Enter a comment for the task. Click Post to post the comment so that others can
view the comment.
Note that by default the All Comments radio button is selected, and you can view
all process level comments. If you want to view comments only for that particular
task, select the Task Comments radio button.
Documents Attach required documents to the task.
History View the task's history. The task history also displays the comments provided by
the users on custom actions and system actions so that you can understand the
reason why the action was taken.
More information View general information about the task such as its state, Task Id, Instance Id, the
user to whom the task is assigned, the due date (if any) for the task, the date on
which the task was created, if any business identifier is associated with the task,
and so on.
Track Processes
Workspace provides the Tracking page where you can track structured and dynamic processes
that are part of activated applications.
Click the Workspace navigation menu, and from the options click Tracking to open the
Tracking page. All structured and dynamic processes that belong to applications activated by
you are displayed in the process list. You can identify structured and dynamic processes by the
icons displayed besides their names.
• Structured Process
• Dynamic Process
You can do a number of things on the Tracking page:
• Search and find a process. See Find a Process.
• Apply filters to display specific processes on the process list. See Filter Processes.
• Sort the process list. Sort Processes.
• View the state of a process. About Process States.
• Work on structured and dynamic processes. See Work on Processes.
Find a Process
There are various options available in the Tracking page using which you can find specific
process/processes.
Find a process on the Tracking page:
• Use the Search field to search for a specific process. You can do a simple search or switch
to an advanced search mode by clicking Try business search on top right of the Tracking
10-10
Chapter 10
Track Processes
page. Business search works in the same way in both Tasks and Tracking pages. The only
difference is that in the task page it is used for searching specific tasks, while in the
Tracking page it is used for searching specific processes. See About Business Search and
Search Use Cases.
• Use the filter options available to display specific processes. See Filter Processes.
You can also sort the process list on the Tracking page by using the various sorting options.
See Sort Processes.
Filter Processes
You can filter processes in the Tracking page by using the different process status filters and
also by applying advance filters.
• Use the Process Status Filters
• Apply Advanced Filters
Filter Description
In progress Displays all structured and dynamic processes that are in progress.
Completed Displays all structured and dynamic processes that have been completed.
Terminated Displays all structured and dynamic processes that are terminated.
Suspended Displays all structured and dynamic processes that are suspended.
Faulted Displays all structured and dynamic processes that fails to complete due to internal
error of the system.
10-11
Chapter 10
Track Processes
7. Click Filter.
The process/processes that meet the criteria you defined in the Advanced search dialog is
displayed in the search results. The applied filters are also displayed as filter chips below
the Search field.
If you're on the business search page where search based on business data is enabled, then
you can use various operators for each of the Filter by fields to do a more accurate search for
those fields. Additionally, you can also filter the search using the configured searchable fields
that you defined in design-time. You can add as many filters as you want using configured
searchable fields by clicking the Add filter option.
Sort Processes
You can sort the process list on the Tracking page by using the different sorting options
available.
Click the Sort order icon to sort the task list in ascending or descending order. You can
click the field next to the Sort order icon and select any of the sort by options available from
the drop-down list.
Sort By Description
Created On Sort the processes based on their date of creation
Application Name Sort the processes based on the name of their application.
Created By Sort the processes based on their creator.
Process Title Sort the processes based on their title.
State Description
In progress A process that is still ongoing.
A user can terminate or suspend a process that is in the In progress state.
Completed A process that has been completed. All tasks associated with the process has
been completed successfully, and no more further action is required.
10-12
Chapter 10
Track Processes
State Description
Terminated The Terminated state indicates that the process was stopped abruptly without all
tasks associated with the process being completed successfully.
A process can be terminated manually by a user action or REST API. A dynamic
process can also be terminated through conditions defined for stage or activity or
manually. See Define Conditions for Stage or Activity and End Dynamic Processes
and Activities.
Suspended A process can be suspended manually by a user action or REST API.
A user can either terminate or resume a process that is in the Suspended state.
When resumed the suspended process transitions into the Active state. If a
process was suspended from a faulted state, when resumed it transitions back to
the Faulted state.
Faulted A process that fails to complete due to internal error of the system.
Work on Processes
You can work on a process from the process instance details window.
In the Tracking page, click a process to open its process instance details window. You can do
the following from the process instance details window:
• View Process Details
• Work with Activities
• View Process Audit
• Post and View Comments
• Upload and View Documents
• View Process Data
• View Process Information
• End Dynamic Processes and Activities
10-13
Chapter 10
Track Processes
5. If there are milestones and stages defined for a dynamic process, expand Milestones and
Stages to view details about them.
The progress bar at the top shows the status of the dynamic process instance.
• Click a milestone in the status bar to view details about the milestone.
• View details about stages. You can view the number of available, active, and
completed stages.
Note:
When you submit the form, any validation issues are displayed at the top.
You can expand the banner to see the list of errors. Click an error to navigate
to the corresponding control where the error occurs.
10-14
Chapter 10
Track Processes
e. Click Cancel to exit the form and return back to the process instance details window.
2. For a dynamic process, expand Activities. All open, running, and completed activities are
listed under it.
a. Click the Actions icon (three dots) on a completed activity to open and view the form
associated with the activity.
b. Click the Actions icon (three dots) on a running activity to open the form associated
with the activity and perform certain actions. For example, you can terminate or
suspend a service task activity. Click the Actions button on the form and select an
option from the drop-down list.
c. Click the Actions icon (three dots) on an available human task activity to open the
form associated with the activity. You can perform actions such as the following on the
form.
i. View the form.
ii. Edit and fill required information in the form.
iii. If you want to save the form and submit it later, click Save.
Note:
When you submit the form, any validation issues are displayed at the
top. You can expand the banner to see the list of errors. Click an error to
navigate to the corresponding control where the error occurs.
v. Click Cancel to exit the form and return back to the process instance details
window.
d. You can search for an activity by clicking the Search icon and entering the name of the
activity in the search field.
e. Use the Filter by Stage drop-down list to filter activities by a stage.
f. Click Filter/Sort to choose which activities to display (Activated, Running, or
Completed) and to sort the activities by stage or status.
Note that non-actionable activities such as service tasks and milestones are displayed under
Audit. See View Process Audit.
10-15
Chapter 10
Track Processes
10-16
Chapter 10
Track Processes
10-17
Chapter 10
Track Processes
You can also end child processes linked to a dynamic process with REST APIs by
setting the terminateChildInstances property flag to true. See Perform an Action on
Process Instance in REST API for Oracle Cloud Infrastructure Process Automation.
5. Click Terminate.
10-18
Chapter 10
Track Processes
The process instance is suspended and the Alter Flow window of the process instance
opens.
4. In the Reason field, enter a suitable description for altering the flow of the process.
5. Move the process execution from a current activity to another activity in the process flow.
For example, you have a process instance with User Task 1, User Task 2, and User Task
3. The normal flow of the process will be that once User Task 1 completes, the process
moves to User Task 2 and then to User Task 3. But for some specific reason you want to
skip User Task 2, and want the process to move directly to User Task 3 from User Task 1.
You can do so by using the Alter Flow action to move the process execution from the
current activity (User Task 2) to the new activity (User Task 3) in the process flow.
a. Note that by default the current activity of the process instance is displayed in the
Current activities drop-down field.
b. In the New activities drop-down field, choose the activity to which you want to move
the process execution from the current activity. It is possible to move either forward or
backward in the process flow depending on your requirement. So you can choose an
activity that is either before or after the current activity in the process flow.
10-19
Chapter 10
Use Analytics
Use Analytics
In Process Automation, using Analytics you can get statistical data in the form of graphs,
charts, and maps to monitor business processes. Starting from a summary view of analytics
report for all your applications, you can drill down to get granular data for process instances
and activities. This in turn helps you in understanding and getting insights into the performance
of applications, processes, activities and also in identifying potential bottlenecks.
To view analytics data for a process application, you must have Manage permission for the
process application. Typically, Process Owners and Process Automation Designers can view
10-20
Chapter 10
Use Analytics
analytics data for the process applications that they work on. So they can view analytics data
for some but not all the process applications in a Process Automation instance.
If you want to view analytics data for all the process applications in a Process Automation
instance, you've to be assigned the Process Application Administrator role. To know more
about the Process Application Administrator role, see About Process Application Roles.
In Workspace, open the navigation menu and click Analytics to open the Analytics main page.
The Analytics page is divided into two areas. On top of the page are the search and filter fields,
and in the main area of the page is the visualization of data derived from process instances in
the form of colored graphs, charts, and maps.
10-21
Chapter 10
Use Analytics
Note:
The terms status and states have been used interchangeably to describe instance
status in the visualization area.
Instances by Status
The Instances by Status section is on the left of the visualization area and shows a bar graph
representation of a summary of process applications. Each application lists total process
instances by status. The X-axis lists the applications. The Y-axis represents the number of
instances.
The colored bars represent the total number of instances by status: Completed, Faulted, In
progress, New, Suspended, and Terminated. For more information on instance status, see
About Instance Status.
In the following example, the Onboarding application has 200 Completed, 140 Faulted, 150 In
progress, 10 New, 80 Suspended, and 50 Terminated instances in the past week.
10-22
Chapter 10
Use Analytics
Note that if an application has multiple versions, all the different versions will be represented as
separate applications in the X-axis of the bar graph.
Various options are available to further refine the view of the bar graph and get more details:
• Sort by: The Sort by drop-down field allows you to sort application data represented in the
bar graph in descending order based on the state that you select. For example, if you
select Faulted instances, the bar graph changes with data represented in the descending
order of the state (Faulted) selected. The application with the maximum number of
instances in Faulted state will be represented first in the bar graph, the application with the
second highest instances in Faulted state will be represented second, and so on.
10-23
Chapter 10
Use Analytics
• Interactive legends and bars: When you hover over a legend on top or hover over a state
bar in the bar graph, the other states dim, and the selected state gets highlighted in the bar
graph.
In the example below, hovering over the Faulted state bar in the Onboarding application,
dims the other state bars in the applications. Also a tool tip on the selected bar is shown
with the application name, the state, and the total count of instances in the Faulted state in
the Onboarding application.
10-24
Chapter 10
Use Analytics
• Filter by State: Suppose you want to view process instances that are in Completed and
Faulted state only, click the other state legends on top to hide the states represented by
them. The bar graph will only show the total number of Completed and Faulted process
instances for the applications.
10-25
Chapter 10
Use Analytics
• Horizontal scroller: By default, four applications are displayed on the X-axis of the bar
graph. If you want to view more applications, use the horizontal scroller to scroll to your
right and see all the applications present. Click the end of the scroller and expand it to see
more applications in the bar graph.
10-26
Chapter 10
Use Analytics
Average Time
The Average Time section is present on the right of the visualization area and shows a
Treemap view of the average time that the applications have taken to complete. Based on the
average time taken by each application, the relative rectangular box for the application is
created. The application that takes the maximum time appears in the biggest rectangle and so
on. Hover over a rectangular box to get a tool tip with the application name and average
duration that instances took to complete.
10-27
Chapter 10
Use Analytics
You can use the maximize icon on the top right to get a clearer view of the analytics
visualization area.
10-28
Chapter 10
Use Analytics
Status by process
The Status by process section is on the left where each process within the selected
application is represented by a stacked bar chart. The stacked bar shows the cumulative count
of a process in different instance states.
The following options are available to further refine the view of the stacked bar chart and get
more details:
• Interactive legends and stacked bars: When you hover over a state legend or a state in
the stacked bar chart, then the other states dim, and the selected state gets highlighted in
the stacked bar chart.
10-29
Chapter 10
Use Analytics
• Filter by State: Suppose you want to view process instances that are in Completed and In
progress state only, click the other state legends on top to hide the states represented by
them. The stacked bar chart will only show the total number of In progress and Completed
process instances for the processes.
10-30
Chapter 10
Use Analytics
10-31
Chapter 10
Use Analytics
10-32
Chapter 10
Use Analytics
For example, if the period selected is past week, then you can view the total instance counts
for different states on a given day in that week.
You can hover over a plotted point in a line graph to view the total instances in the selected
state on that particular day.
Instances by status
The Instances by status section is represented by a doughnut chart. By default, a summary
view is shown in the doughnut chart based on the duration selected. The percentage value for
the different instance states in the selected duration is shown on the rings of the doughnut
chart.
You can hover over a state ring in the doughnut chart to view the total instance count for that
state.
10-33
Chapter 10
Use Analytics
10-34
Chapter 10
Use Analytics
Note that if there are no Completed instances present in the process, then the Average time
to complete section won't show any data.
As in the application and process level views, in the daily view too the state legends are
interactive. Hover over a state legend on top or a state line graph of the Status over time
section to highlight that state in the graph. The state also gets highlighted in the doughnut chart
of the Instances by status section.
If you want to filter and view the instances in a particular state then disable the other states by
clicking the state legends.
In the following example, the In progress, New, Suspended and Terminated states are disabled
to get a visualization with only the Completed and Faulted states.
10-35
Chapter 10
Use Analytics
10-36
Chapter 10
Use Analytics
11. The time period for which the analytics report is displayed. Click the drop-down field to
choose another time period option from the list. The options are Past week, Past month,
Past year, and Custom.
10-37
Chapter 10
Use Analytics
1. The application to which the process (whose activities are displayed) belongs. If you want
to switch to another application, click the drop-down field and choose a different application
from the list.
2. The process whose activities are displayed in the list view. All processes available in the
selected application version are listed when you click the drop-down field. If you want to
switch to another process, choose it from the list.
3. The average time taken by the process to complete.
4. Different icons are used to denote different types of activities. In this case, the form start
event icon is highlighted. Hovering over an icon reveals the type of activity that the icon
denotes.
5. An eye icon is displayed on selecting a human task, service task, upload form and
integration activity. The eye icon indicates that you can view detail analytics report for the
activity. See View Analytics for a Human Task Activity and View Analytics for a Service
Task Activity.
6. Use the View Instances icon to navigate to the Tracking page. See Analytics: Instance
Tracking.
7. Use the Graphical view or the List view icons to switch between the two views. In this
example, the list view is selected.
8. The time period for which the analytics report is displayed. Click the drop-down field to
choose another time period option from the list. The options are Past week, Past month,
Past year, and Custom.
10-38
Chapter 10
Use Analytics
By status
The By status section presents the different states of the human task instances represented
by a colored bar chart. The colored bars on the X-axis represents the different states of the
task. The Y-axis represents the instance counts of the task. The legends for the different states
of the task are present on top. If you hover over a state legend or a state bar on the chart, the
other states dim and the selected state gets highlighted in the bar chart.
Hover over a task state bar to know the total task instance count for that state. For example,
hovering over the Unclaimed task state bar shows that 58 instances of the human task are
unclaimed.
If you select Due, the bar chart view changes to display human task instances that are On
track, Overdue or Expired.
10-39
Chapter 10
Use Analytics
By assignee
The By assignee section is represented by a stacked bar graph visualization of task instances
in their different states assigned to particular users. You can use the Sort by option to sort the
stacked bars either by total task counts (Total tasks) or by name of the assignee (Name). If
there are more than 8 users assigned to the task, you can use the horizontal scroller to display
analytics for other assignees.
10-40
Chapter 10
Use Analytics
If you select Due, you get a stacked bar graph visualization of task instances that are On track,
Overdue or Expired and assigned to different users. The X-axis represents users assigned the
task, and the Y-axis represents the total task instance counts. You can sort the visualization
data according to total tasks or name of the assignee.
Outcome
The Outcome section is displayed only for human task activities of type Approve. It shows the
percentage of the human task instances that were approved or rejected. If there are any
custom actions that were configured during design time for the activity, then the percentage of
task instances for the custom action is also shown. If there are multiple custom actions
configured for the human task activity, then you can use the right arrow to scroll to the right and
view the percentage of instances for those custom actions.
10-41
Chapter 10
Use Analytics
2. Error types
Note:
If a service task has any instance that was retried after it failed to run, a badge
Retried will be shown for the service task activity under the Started column in the
Activity list.
Total requests
The Total requests section is a line chart with area that shows the total number of instances
and the number of instances that has errors. The X-axis represents the time duration, and the
Y-axis represents the total instance counts.
Error types
The Error types section is shown as a stacked bar chart. The stacked bar categorizes the
errors that occurred in a particular duration into different error types and shows the cumulative
count of errors. The X-axis represents the time duration and the Y-axis represents the total
error instances.
For example, if on Jan 3 there were 9 error instances in total, then the stacked bar gives a
visualization of those errors according to the different error types - 2 of those errors were 403
Forbidden, 4 errors were 404 Not found, 2 errors were 503 Service unavailable, and 1
error was 504 Timeout.
10-42
Chapter 10
Use Analytics
You can also choose to hide a particular error type by clicking the corresponding error legend.
Note that if a service task fails due to REST API error, instead of the visualization charts an
error message is shown along with the OPC (Open Platform Communications) request ID
using which you can track the error.
Status Description
New The number of instances started for a particular process on a given
date.
This metric shows process demand.
10-43
Chapter 10
Use Analytics
Status Description
Terminal This status indicates the final state of a process instance.
For the purposes of analytics, we consider all other process states apart
from New and In-progress to be terminal.
The following process states are considered to be in Terminal state in
analytics.
• Completed
• Faulted
• Suspended
• Terminated
Note:
Usually a Terminal state will not change to
other states such as Completed or Faulted.
However, in some cases the terminal state
can change to another terminal state or to
the in progress state. For example, a
Suspended process can be resumed and
Completed.
In progress This state indicates that the process instance is still running or is active.
It hasn't completed yet.
This metric indicates workload.
10-44
Chapter 10
Use Analytics
• Selecting the View instances icon on top right of the process details graphical or list
view in the Activity list page.
The filters that are applied in the Analytics page are propagated to the Tracking page when you
navigate to the instance Tracking page from the Analytics report view. So you can always
contextually navigate to the Tracking page from an instance's analytics report view.
Suppose you're in the analytics view of an application for a selected duration. When you
navigate to the Tracking page from the analytics view of that application by clicking the View
instances link, then the same filters (application and duration) will be applied to the Tracking
page too. If a user navigates to the Tracking page by clicking any of the process instance
status bars in the Analytics page, then along with the application and duration period filters, the
process name and the instance status filters also are propagated and applied to the Tracking
page.
10-45
Chapter 10
Set to Out of Office
Similarly, filters that are applied in the Tracking page are also propagated to the Analytics page
when the user navigates to the Analytics user interface from the Tracking page.
Note:
• The out of office feature does not work on role based task assignments.
• You cannot create multiple out of office periods that have overlapping dates. The
start and end date of each out of office period must be exclusive to the dates in
any other out of office period.
• Process Automation does not allow you to create an out of office period if you are
assigning it to a user who has also created an out of office leave for the same
period.
Click the user icon on the top-right of the Workspace UI, then click Out of office.
10-46
11
Workspace Administration
Process Automation Administrators (assigned the ServiceAdministrator IDCS application role)
have access to the Administration pages in Workspace to manage and work on various
administrative tasks.
On the Workspace navigation pane, expand Administration and choose an option under it to
manage roles, notifications, credentials, and much more.
Topics:
• Manage Roles in Workspace
• Manage Notifications
• Manage Credentials in Workspace
• Enable Break Glass
• Specify Data Management Settings
• Register Services
11-1
Chapter 11
Manage Roles in Workspace
3. Select the role to open and view its users/groups, permissions, and the process
application/applications that the role is used.
You can also click Actions and choose Edit to open and view the role's details.
To delete a role, click Actions and choose Delete. Note that the Process Application
Administrator global role is a system generated role and can't be deleted.
4. You can do the following in the role's details window:
a. Add users or groups to the role.
i. In the Search by field, select Users, Groups, or External applications from the
drop-down list.
ii. In the search field, search and select the user, group or external application that
you want to add to the role. A tick mark next to the user, group, or external
application indicates that it has been selected, and the newly added user, group or
external application gets listed under Add members to this role.
Note:
Changing a global role’s users, groups, or external application changes them
for every application in which the global role is used.
ii. Click in the Action column and choose a permission from the list to change the
permission level.
This changes the user or group's permission level for the application in which the role
is used.
c. Additionally for global roles, you can assign permissions to applications.
i. In the Search field, search for the application to which you want to assign the
permission or select it from the list of applications that display.
ii. By default, the Read permission is assigned. You can update the permission level
if required.
Note:
Permissions assigned to a global role can be deleted. However permission
assigned (during design-time) to an application role cannot be deleted.
5. Click Save.
11-2
Chapter 11
Manage Roles in Workspace
Note:
You need to be a Process Automation Administrator (assigned the
ServiceAdministrator IDCS application role) to assign users and groups to the
Process Application Administrator role.
1. From the Workspace navigation pane, click and expand Administration and choose
Roles.
11-3
Chapter 11
Manage Roles in Workspace
a. Select the role to open its details window. You can also click Actions and choose
Edit to open and view the role's details.
b. Expand Permissions, and view the applications that use the role.
c. Close the window by clicking Cancel.
4. Delete the role by selecting the role, then clicking Actions and then selecting Delete.
The role is deleted and it no longer displays in the Roles page.
11-4
Chapter 11
Manage Notifications
Manage Notifications
Configure Oracle Cloud Infrastructure Process Automation to use emails for notifying task
assignees when events such as assignment and reassignment occur. You can also view the
status of the notifications that are sent and resend or delete them if issues occur.
Note:
• To manage notifications, you must have the Service Administrator IAM role.
• To use your own from address like no-reply@[Link], configure Sender
Policy Framework (SPF) and DomainKeys Identified Mail (DKIM) on the sender
domain [Link]. To configure DKIM, contact Oracle Support to create a
service request. Configuring SPF and DKIM helps validate emails, avoid
spoofing, and reduce fraud attacks. For more details on configuring DKIM and
SPF, see Configure Email Authentication Settings for SPF and DKIM.
Additionally, you can also see Troubleshoot Oracle Cloud Infrastructure
Notification Email Configuration to Ensure Proper Delivery.
• Incorrect configuration of SPF and DKIM on the sender's domain server (DNS)
can result in soft or hard bounces depending on the severity of the issue. This
may lead to the email addresses being added to the suppression list.
Email Delivery in Oracle Cloud Infrastructure (OCI) automatically adds email
addresses with bounce codes showing permanent failures, or user complaints to
the suppression list to protect the sender reputation. Email Delivery doesn't send
any messages to these recipients in the future. To remove email addresses from
the suppression list, see Managing Suppression List and Deleting an Email
Address from Suppression List in Oracle Cloud Infrastructure (OCI).
Before enabling email notifications in runtime, make sure you customize them, including their
content, template, attachments, and subject lines in design time. See Customize Notification
Emails. After enabling email notifications, you can view the notification logs and resend emails
to all or some of the original recipients.
1. Enable email notifications.
a. Open the navigation menu in Workspace, expand Administration and choose
Notification.
The Notification page is displayed.
b. Click Approved Sender.
An approved sender is a resource that enables Oracle Cloud Infrastructure Process
Automation to send email with the registered From email address.
c. On the Register Approved Sender pane, enter the email address in the From
Recipient field to set it as the default sender for all email notifications.
Note that you cannot use certain reserved domains such as @[Link], @[Link],
@[Link], and @[Link] as approved senders. To learn more, see Managing
Approved Senders in Oracle Cloud Infrastructure documentation.
11-5
Chapter 11
Manage Credentials in Workspace
Note:
If the From address is not configured on the Notifications page, the From
address defaults to the approved sender address of
noreply@processautomation.<region>.[Link]. For example, if
your region is Ashburn, the address is noreply@[Link]-
[Link].
d. Click Register.
The default sender email address is registered with Oracle Cloud Infrastructure in your
customer tenancy.
2. Test email notifications.
a. Click Test Notifications.
b. On the Test Notifications pane:
• Enter the email address of the person to whom the notification email has to be
sent in the Recipient field.
• Enter the email's subject in the Subject field.
• Enter the email's content in the Content field.
c. Click Send.
d. Verify that the email was sent as expected.
3. View notification status and troubleshoot as needed.
You can view the status of notifications; if they have been successfully sent, if sent failed
and you need to retry sending them, and also if any error occurred for the notifications.
Email notifications may fail due to lack of network availability, wrong email address, or
temporarily unavailable email servers. By default, a resend is automatically attempted for
all failed notifications after an interval of fifteen minutes.
To manually retry or delete a notification, select the notification and click Actions.
• Retry: Click Retry to retry sending the notification. Confirm when prompted to confirm
the retry.
• Delete: Click Delete to delete the notification. Confirm when prompted to confirm
deletion.
About Credentials
Credentials are used by connectors to authenticate and securely call other services.
11-6
Chapter 11
Manage Credentials in Workspace
You can use either application credentials or global credentials to secure your connector.
• Application credentials are specific to a particular process application and can be used
only in connectors configured for that particular process application. They can't be shared
with other process applications. These credentials are usually created by Process
Automation Designers while creating and securing connectors for a process application in
design-time. See Secure the REST Connector.
• Global credentials can be used in connectors across many process applications. These
credentials are created by Process Automation Administrators in Workspace.
– Add Global Basic Credential
– Add Global OAuth Credential (Client Credential)
– Add Global OAuth Credential (JWT Assertion)
– Add Global OCI Signature Policy Credential
It is recommended that you use global credentials. Once created these credentials can be
used in connectors across many process applications in design-time. See Use Global
Credentials. Also, when you update a global credential, the update is applied to all the
connectors (across process applications) where the global credential is used.
As a Process Automation Administrator, you can edit application credentials, and manage
global credentials from Workspace.
• Edit Application Credentials
• Manage Global Credentials
Note:
Credentials are stored centrally. They are separate from a process application’s
metadata and aren’t exported or imported with a process application.
11-7
Chapter 11
Manage Credentials in Workspace
11-8
Chapter 11
Manage Credentials in Workspace
5. Click Submit.
The global credential is listed under the Global tab. Process Automation Designers can now
find and select the global credential when creating connectors that use the same base URL.
See Use Global Credentials.
Field Description
Grant Type Select Client Credentials from the drop-down menu.
Folder Name Specify the folder in which to store the credential. This single level
folder structure enables you to organize credentials by grouping them
in folders.
• To save the credential in the default Common folder, leave
Common selected.
• To save the credential in a new folder, click the Create new link
and enter a new folder name.
You can’t change a global credential’s folder later.
Credential Name Enter a name to identify the credential. You can’t change a global
credential’s name later.
Target URL Enter the base URL the connector will access in connector calls.
Client Id Enter the OAuth client ID that you obtained while configuring the
confidential application in Oracle Identity Cloud Service (IDCS).
Client Secret Enter the OAuth client secret that you obtained while configuring the
confidential application in Oracle Identity Cloud Service (IDCS).
Scope Specify the scope you defined while creating the confidential
application in IDCS.
Scope sets limits on an application’s access to a user’s account. For
example, use the scope parameter to enable the access token to
grant different levels of access to Oracle IDCS APIs.
OAuth Token URL Either select Local Identity Domain or enter the token URL from the
OAuth provider. For example: [Link]
[Link]/oauth2/v1/token.
For other fields, see Configure OAuth Security with Client Credential.
11-9
Chapter 11
Manage Credentials in Workspace
5. Click Submit.
The global credential is listed under the Global tab. Process Automation Designers can now
find and select the global credential when creating connectors that use the same base URL as
described in Use Global Credentials.
11-10
Chapter 11
Manage Credentials in Workspace
5. Click Submit.
The global credential is listed under the Global tab. Process Automation Designers can now
find and select the global credential when creating connectors that use the same base URL, as
described in Use Global Credentials.
11-11
Chapter 11
Manage Out of Office Records
5. Click Submit.
The global credential is listed under the Global tab. Process Automation Designers can now
find and select the global credential when creating connectors that use the same base URL as
described in Use Global Credentials.
Note:
A global OCI Security Policy credential cannot be re-used across different Oracle
Cloud Infrastructure (OCI) services.
11-12
Chapter 11
Enable Break Glass
When a task is reassigned to a role, the status of the task changes to unclaimed state and
anyone with the assigned role can work on the task. The new task assignee can view the
comment provided by the original user in the out of office configuration settings.
Note:
• The out of office feature does not work on role based task assignments.
• You cannot create multiple out of office periods that have overlapping dates. The
start and end date of each out of office period must be exclusive to the dates in
any other out of office period.
• Process Automation does not allow you to create an out of office period if you are
assigning it to a user who has also created an out of office leave for the same
period.
11-13
Chapter 11
Enable Break Glass
Such access is time limited. Any temporary access credentials are automatically reset after
the agreed upon time.
Such access is logged and detailed reports are available.
• The option to provide your own Transparent Data Encryption (TDE) master
encryption key.
By default, your data in the Oracle Cloud environment is encrypted at rest using TDE.
With Break Glass, you can upload your own TDE master encryption key and manage its
lifecycle. If you provide your own key, your data will also be protected and audited using
Data Vault. You can also periodically update the keys.
Note:
When you first switch to using your own key, you need to allow some time for your
instance to be out of service. You should also back up any key artifacts in your
instance.
11-14
Chapter 11
Enable Break Glass
1. In Workspace, open the navigation menu, and expand Administration. Click Break
Glass.
2. On the Provide Your Own Key page, click + Provide Your Own Key.
3. In the Add Key dialog, click Public Key. Copy and note the key value that is displayed.
4. Use OpenSSL to generate and encrypt your key:
a. Create a new directory for the key and assign it to an environment variable:
mkdir –p dir_of_key
touch $KEYPATH/wrappingkey
Paste the public key value that you obtained in step 3 in the wrapping key.
b. Make sure the directory is restricted:
d. Encrypt your generated TDE master key with the Oracle public wrapping key that you
downloaded in step 3:
mv $KEYPATH/wrappedkey1 $KEYPATH/wrappedkey
5. In the External Key Data Source field, upload the encrypted TDE master key
( wrappedkey, as in the above example).
6. In the Email Address field, enter the email address of the person to notify when the
reconfiguration of the Oracle Cloud Infrastructure Process Automation instance has
finished and the instance is ready to be used again.
7. Click Submit and then Confirm.
11-15
Chapter 11
Specify Data Management Settings
mkdir –p dir_of_key
d. Encrypt your generated TDE master key with the Oracle public wrapping key that you
downloaded in step 3:
5. In the External Key Data Source field, upload the encrypted TDE master key.
6. Click Submit and then Confirm.
Note:
Once you create or update your key, you have to wait 16 days or more before you
can update it again.
11-16
Chapter 11
Register Services
2. In the Purge retention days field under Purge data settings, enter the number of days that
data should be retained for completed process instances.
• By default the number of retention days for data of completed process instances is
180.
• The number of retention days that you specify can be any number that is equal to or
greater than 1.
• Data for completed process instances will be automatically purged after the retention
days specified in the Purge data settings.
3. Click Save.
4. If you want to reset the purge retention days, then click Reset and enter a new number.
Register Services
You can register a new service and view already registered services from the Registered
Services page in Workspace. When you register a service, Process Automation (client) can
access the OAuth protected REST API endpoints of the service (resource) and start
communicating with the service.
You have to be a Process Automation Administrator to access the Registered Services page in
Workspace.
If there are services which are already registered with your Process Automation instance or
associated with your Process Automation instance from the Oracle Cloud Infrastructure (OCI)
console, then those services are listed on the Registered Services page. You can view details
about a service such as the name, description, and date on which the service was created.
Note the following:
• Services that are registered from the Registered Services page in Workspace can be
edited or deleted. Select the service, click the Options icon and then click Edit to edit its
settings. You can update the name, description, and client credentials of the service. Click
the Options icon and click Delete to delete the registered service.
• Services that are associated with your Process Automation instance from the OCI console
can only be viewed but can't be edited or deleted from the Registered Services page in
Workspace. Associated services are listed as attached services.
Before registering a service, you need to complete certain prerequisite tasks. After you've
completed the prerequisites, you can register the service from Workspace.
• Prerequisites for Registering a Service
• Register a New Service
11-17
Chapter 11
Register Services
11. Activate the application. Click Activate and when prompted click Activate application.
11-18
Chapter 11
Register Services
2. Search for the IDCS application of the service instance that you want to register. For
example, if you want to register Oracle Integration, search for the IDCS application of the
Oracle Integration service instance.
3. Select the application to open the application details page.
4. Under Resources, click Application roles.
5. Under the Application roles section, select the ServiceDeveloper role and click the
expand arrow.
6. Next to Assigned applications, click the Manage link.
7. In the Manage application assignment window, click the Show available applications link.
8. Search for the application (OPAOAuth) that you created.
9. Select the application and click Assign.
10. Click Close.
Notice that when you expand the ServiceDeveloper role under the Application roles section,
you'll see a number (1 ) besides Assigned applications, indicating that an application is
assigned to the role.
Get the client ID, client secret, and scope to register the service
Now that you've created, configured, and activated an application, and assigned the
ServiceDeveloper role to the application, you can obtain the client ID, client secret, and scope
for registering the service from Workspace.
1. Navigate to the Applications page.
2. On the Applications page, search for the application (OPAOAuth) that you created.
3. Select and click the application to open its details page.
4. Under OAuth configuration, scroll to the General Information section.
5. Copy and note the client ID.
6. Click the Show secret link and then copy and note the client secret.
7. Scroll to the Token issuance policy section, and copy the scope under Resources.
You're all set to register the service now from Workspace. See Register a New Service.
11-19
Chapter 11
Register Services
5. Click Register.
The service now gets displayed as a registered service on the Registered Services page.
Once the service is registered, you can start using the service with Process Automation. For
example, if you have registered an Oracle Integration service instance, then you can view
integrations that are configured in Oracle Integration and start using REST based activated
integrations into your process applications. See Work with Integrations.
Note:
• If you are using your organization’s email server, ensure email server connectivity
by appropriately configuring the firewall settings.
• To configure an inbound email account, you can either use a basic authentication
with application password or Oauth2 with client credentials grant type.
When a human task process containing task actions is started, Process Automation triggers a
task email notification to the task assignee who opens the email and views the notification. The
notification contains links of the task actions such as APPROVE, REJECT, and SUBMIT.
Clicking on the task action link opens the default email client and displays the compose email
page. The task assignee sends the email without modifying the contents of the email.
11-20
Chapter 11
Register Services
Note:
• The compose email page includes a NID code. Do not delete or modify the NID
code.
• Do not modify or delete any content below the following note:
"-----Do not edit below this line-----"
• Additionally, you can add comments for the task action in the beginning section
of the mail body before the following note:
"------Please type your comments above this line------".
If comments are mandatory for a task action, the following note appears in the
mail body:
"Note: Comments are mandatory for this task action"
Process Automation receives the incoming email and processes the NID along with any
comment to update the task with the corresponding task assignee's action and comment.
To configure an inbound email account in Workspace Administration:
1. In Workspace, open the navigation pane and expand Administration. Click Registered
Services..
The Registered Services page displays.
2. Click the Register new service drop-down.
Process Automation displays
• The available cloud services that you can register with the process instance.
• Email Inbound
3. Choose Email Inbound.
4. Enter the following information to register a new inbound email account.
Field Information
Note:
By default, Process
Automation supports only
client credentials grant type for
OAuth2.
11-21
Chapter 11
Register Services
Note:
11-22
Chapter 11
Register Services
Note:
You cannot register the service until the test connection is successful.
6. Click Register.
Note:
• You cannot delete an email inbound account. To delete the email inbound
account, contact Oracle Support.
• You can register only one email account for each process service instance.
Repeat these steps for every instance for which you want to configure the
email based approval functionality. It is preferred to use environment specific
email account names. For example, claims_approvals@<company
[Link]>, employee_leave_approvals@<company [Link]>
• After you register the email inbound service, you can view the account details
using the View option. If required, the Administrator can use the edit option to
modify all the fields except the Mail id field.
11-23
A
Quick Reference
The steps and commands below provide quick reference on how to get the required
information for creating a trusted OAuth client and working with it. The information below can
also be found through Google searches.
# you can optionally provide the keystore type ( JKS or PKCS12 format ) -
( for example -storetype pkcs12 )
2. Extract the public certificate and private key from the key store. (For all operations, provide
the Import password when prompted.)
a. Extract the public key certificate from the JKS.
keytool -export -alias keyalias -keystore [Link] -rfc -file
[Link]
b. To export the private key from JKS, convert the JKS to PKCS12 format.
keytool -v -importkeystore -srckeystore [Link] -srcalias keyalias
-destkeystore myp12file.p12 -deststoretype PKCS12
#extract private keyopenssl pkcs12 -in myp12file.p12 -nodes -nocerts -out
private_key.pem
c. Extract the private key from the PKCS12 Keystore.
openssl pkcs12 -in myp12file.p12 -nodes -nocerts -out private_key.pem
d. Extract the public certificate from the PKCS12 Keystore.
openssl pkcs12 -in myp12file.p12 -nokeys -out [Link]
A-1
Appendix A
A-2