Designing Subprocesses

A subprocess is a type of task that represents a previously defined process. You can reuse existing processes by dragging them onto subprocess entities in the Process editor. The process associated with the subprocess task is triggered by the evaluation of a rule. You can use a subprocess task within a process or it can be executed outside the process, as another process on its own.

To design a subprocesses:

  1. From the Studio Projects view, drag one or multiple existing processes onto the subprocess entity in the Process editor.

  2. Right-click the subprocess and select Assign Order.

    The Order Selection dialog box is displayed.

  3. Select the order type to associate with the subprocess.

  4. Click OK.

  5. Right-click the subprocess entity and select Show Properties.

  6. In the Properties view General tab, define the basic information about the subprocess.

    For example, you can define subprocess description and display name. See "Subprocess Properties General Tab" for more information.

  7. In the Properties view Process tab, associate the subprocesses to the rules that trigger their execution.

    You define process and rule combinations that determine which process the system initiates when a rule evaluates to True. The system evaluates each rule in the order that you specify. When a rule evaluates to True, the system runs the corresponding process and ignores the remaining processes. See "Subprocess Properties Process Tab" for more information.

  8. In the Properties view Exception Map tab, define how the subprocess task handles process exceptions.

    For example, you can map subprocess exceptions to the completion statuses of the subprocess task, or to exceptions on the parent process. See "Subprocess Properties Exception Map Tab" for more information.

  9. Click Save.

Note:

Do not deploy updated process flows (for example, adding additional parallel tasks to a subprocess) to an OSM run-time environment until all orders submitted to the process have completed.

Related Topics

Subprocess Properties General Tab

Subprocess Properties Process Tab

Subprocess Properties Exception Map Tab

Designing Exception Paths

Working with Processes

Working with Orders

Subprocess Properties General Tab

You use the Subprocess Properties General tab to define general information about the subprocess, such as the description and display name.

Field Use
Description Enter a description of a task to help differentiate between tasks used more than once in the same process flow.
Display Name Enter the name that you want to appear in the subprocess task entity in the Process editor.
Process History Select True if you want this task to appear in the Process History - Summary Table window in the Task web client. Otherwise, select False.
X, Y coordinates Coordinates that indicate where in the Process editor the subprocess task exists.

Related Topics

Designing Subprocesses

Working with Processes

Subprocess Properties Process Tab

When creating a subprocess task, you can associate the subprocess with a list of process and rule combinations, and sequentially order them. The first rule an order satisfies defines the process that is used as the subprocess.

Select the Properties view Process tab to define the values for the following:

Field Use
Pivot Node Click Select to access the Order Template Selection dialog box, where you can select the data element on which OSM will spawn the individual instances. For example, if you have subprocess that will create an email address for every person in a list, you might select the node Person as the pivot node, so that the subprocess repeats, spawning an instance for each person.
Sequential If you anticipate that a large number of task instances will appear in the Task web client Worklist, and you prefer that the system display the instances in the worklist one at a time, you can specify a sorting option.

Specifying a sorting option here causes OSM to execute the task instances sequentially, instead of in parallel, and to display the individual instances in the worklist one at a time, in the specified order. As you complete each task instance, OSM spawns the next instance.

You can select one of the following sorting methods:

Non Sequential: The subprocess initiates every instance simultaneously.

No Sorting: The Task web client Worklist displays the instances of the task in the order that they are spawned.

Ascending: The Task web client Worklist displays the instances of the task in ascending order, based on the attribute (date, alpha, or numeric) of the data element that you select in the Sort Element field.

Descending: The Task web client Worklist displays the instances of the task in descending order, based on the attribute (date, alpha, or numeric) of the data element that you select in the Sort Element field.

Sort Element If you selected a reusable structure as the pivot node, click Select to identify which of the data elements the system should use to determine the order in which to display the individual task instances in the Task web client Worklist. This option is available only when you sort the task instances in descending or ascending order.

For example, consider that you have three levels of DSL service: Regular, Gold, and Platinum. You want to ensure that customers ordering the Platinum level of service have priority over the lower two levels. In the Pivot Node field, you might select the reusable structure called service_type, which contains the attributes regular, gold, and platinum. In the Sequential field, you can select ascending, then select the value platinum in the Sort Element field to ensure that the orders with the Platinum level of service are initiated first.

Continue if rule failed Select if want the process to continue if none of the rules associated with the subprocesses equate to True.
Association The Association table lists the process and rule combinations that determine which process the system will initiate when a rule in the table evaluates to True. The system evaluates each rule in the order that they appear in the Association table. When a rule evaluates to True, the system runs the corresponding process and ignores the remaining processes. You can prioritize the processes listed in the table by using the Move Up and Move Down buttons.

Click Add to display the Add Rule and Process Association dialog box. In the dialog box, indicate which rule and process combination triggers the subprocess. To change the order of the process rule combinations, highlight a combination and click the Move Up or Move Down button. Select a process rule combination and click the Modify button to change the combination pair, or click the Remove button to delete from the list.

If you drag a process from the Studio Projects view on to a subprocess entity, the system automatically adds that process to the Association table, and uses null_rule as the default rule. Select the table row and click Modify to change the rule and process combination.

Note: You can manipulate ordered tables in Design Studio using keyboard controls. For example, you can launch the Add Rule and Process Association dialog box by pressing the Insert key on your keyboard. You can highlight a table row and press the Delete key to delete a process and rule combination from the table. Use the Control key in conjunction with the arrow keys to select one or multiple table rows and move those rows up or down in the index order.


Related Topics

Designing Subprocesses

Working with Processes

Subprocess Properties Exception Map Tab

When you use a subprocess task in a process, you can define how the subprocess task handles process exceptions. You can map subprocess exceptions to the completion statuses of the subprocess task, or to exceptions on the parent process. Using the subprocess mappings, a parent process can raise a process exception or complete the subprocess task. Additionally, a parent process can set the exception status, terminate the subprocesses, and set the process status. The list of subprocess mappings is ordered by priority. If a lower priority subprocess exception occurs after a higher priority exception, the lower priority exception is ignored. The subprocess task does not complete until all subprocess tasks are completed or terminated.

For example, consider that you have a process called create_vpn. Within that process, there is a subprocess called validate_address. The subprocess validate_address can throw an exception when an address is invalid. Using the exception mapping functionality, you can instruct the parent process and subprocesses to take specific actions when the subprocesses throw exceptions. When validate_address throws the invalid_address exception, you can instruct it to complete or to raise an exception. If you are creating a VPN for a business that contains multiple physical locations, you might have multiple instances invoked for the validate_address subprocess. Exception mapping enables you to indicate whether the parent process create_vpn should terminate all of the invoked instances, terminate only the offending instance, or ignore the exception altogether.

Use the Properties view Exception Map tab to define values for the following:

Field Use
Process Select the subprocess for which you want to map exceptions. You can map exceptions to any of the subprocesses included in the Association table on the Properties view Process tab.
Exception Select an exception to associate with the subprocess. Only those exceptions defined for the subprocess you selected in the Process field are available for mapping.
Action Select an option to determine what action the parent process should take when the subprocess defined in the Process field throws the exception defined in the Exception field. Select:
  • Complete Task to complete the task and indicate normal flow.

  • Raise Exception to raise an exception status defined in the parent process. If you select this option, you must also select an exception throw value. The values available in the Throw field are those exception options that are defined at the parent process level.

Terminate Define how invoked threads should be affected by the exception. Select from the following options:
  • All instances (All): Select to instruct the system to stop all subprocess threads.

  • Excepting instance only (One): Select to instruct the system to stop the subprocess thread that raised the exception.

  • None (Ignore): Select to instruct the system to continue normal execution.


Related Topics

Designing Subprocesses

Working with Processes