Connect to Other Processes and Services

More likely than not, you’ll need to define interactions across business processes within a process-oriented application. For example, your business process may need to invoke an external service, call another process from within the current process, or pass a message to a process outside of the current process. Use these System activities to model communication between processes and services.

Activity Description

Service activity

Service

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.

For example, the following process uses the service activity to save the finalized sales quote to a database.

Description of none-end-example.png follows
Description of the illustration none-end-example.png

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.

Notify activity

Notify

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 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.

Call activity

Call

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 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.

Data Mapper activity

Data Mapper

Use the data mapper activity to assign the value of a process data object, predefined variable, or literal to another data object or variable within the process.

You can use the data mapper activity in scenarios where it is not possible to assign values to certain data attributes through other activities in your process or to override the values assigned to attributes through the defined process flow. To define data associations through other activities, such as human task or service activities, see Configure Data Association.

See Use the Data Mapper Activity.

Decision activity

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 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.

Configure a Multi-instance Activity

You can configure a call or service activity as a multi-instance activity, so that you can run multiple unique instances of the same activity sequentially or in parallel.

Let us see how you can configure a call or service activity to be multi-instance.

  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 a Call or Service activity onto the process flow.
    Notice how a multi-instance icon Multi-instance icon appears on the right side of the process editor. The icon is displayed only for a call or service activity, indicating that you can configure such an activity as multi-instance.
  3. Open the Properties pane of the call or service activity.
    Double click the activity, or select the activity and click menu icon, and then select Open Properties to open the activity's Properties pane.
  4. 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 activity - select the service in the Service field, the resource in the Resource field, and an operation in the Operation field.
  5. Click the Multi-instance icon Multi-instance icon.

    The Multi-instance properties pane appears. By default, Do not repeat is selected under Repetition Cycle.

  6. Select the Generate multiple instance button. A number of fields to specify and manage your multi-instance activity appears.
    1. Define how you want to manage your instance. If you want the instances to occur sequentially, select Sequential. If you want to see all the instances at the same time, select Parallel.
      Notice that the icon for the call or service activity, in the process flow diagram on canvas, changes according to your selection - sequential or parallel.
    2. Specify how you want to create the instances – with a condition or with an array. Depending on the selection, related fields appear.

      For example, if you select Array, a field appears to enter the array. You can use the in-built expression builder to specify the array. If you select Condition, a field appears to specify the number of instances to be created.

      See Work with Expressions.

    3. If you want to terminate the activity execution with a condition, select the checkbox for it, and specify the condition in the Condition field using the in-built expression editor. Otherwise, de-select the checkbox.
    4. Close the multi-instance properties pane to save the configurations.
  7. Configure data association with the variables created for the multi-instance activity.

    In the Data Association window, notice a new container Activity Loop under Data Objects. Expand the Activity Loop container to see all the multi-instance related variables and use them for data association.

    See Configure Data Association.

Use the Data Mapper Activity

You can use the Data Mapper activity in your process to perform data mappings or associations. This activity is available in the Activities palette under System. Drag and drop the activity at the required position on the editor canvas.

To define data mappings through the Data Mapper:

  1. Select the Data Mapper activity, click Menu icon, 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.

  2. 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:

    Description of data-mapping.png follows
    Description of the illustration data-mapping.png

    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.
  3. Optionally, use the Expression Editor to build an input expression using standard functions and operators.

  4. Click Apply to save the data mappings.