Adding asynchronous processing to a flow

You can use the Split Join shape to call two or more subprocesses that later rejoin the parent flow. By dividing your independent business requirements into multiple processes, you can model different types of dependencies in your flow.

For example, you can validate tax information and perform a title search as part of a mortgage application flow. Different users can work on the assignments in each subproccess, and the parent flow continues when one or both of the subprocesses return.

Note: Each subprocess runs asynchronously but not in parallel. When a user works on an assignment in one subprocess, the case is locked, which prevents others users from working on assignments in other subprocesses.
  1. Add the Split Join shape to your flow:
    1. Open a flow by searching for it or by using the Application Explorer. For more information, see Finding rules by class.
    2. On the Diagram tab, click the Flow shapes icon and select Advanced > Split Join.
    3. Connect the Split Join shape by dragging connector end points to connection points on different shapes in the flow.
  2. Double-click the Split Join shape to open the property panel.
  3. In the Join list, select one of the available options to define how the parent flow waits to continue processing .
    You can choose from:
    All
    Waits for all subprocesses to return.
    Any
    Waits for one subprocess to return. All other subprocesses that were called from the Split Join shape stop processing when the parent flow resumes.
    Some
    Waits for a when condition to return a true value, or a specific number of flows to return a status value that you provide.
  4. If the parent flow waits for only some subprocesses to return, define the criteria that must be met before processing continues:
    • To wait for when a condition to return a true value:
      1. In the Exit iteration list, select On when.
      2. In the When field, press the Down Arrow key and select the name of a when condition.
    • To wait for a specific number of subprocesses to return:
      1. In the Exit iteration list, select On count.
      2. In the Resulting with flow status field, enter a status value that the parent flow compares with the return value of each subprocess.
      3. In the Number of paths field, enter the minimum number of subprocesses that must finish processing and return a value that equals the status in the Resulting with flow status field.
  • For each subprocess that runs when the parent flow reaches the Split Join shape:
    1. Click + Add a flow.
    2. Expand the Specify a flow rule for this subprocess section.
    3. In the Name field, enter a clear description of the subprocess.
    4. In the Flow rule field, press the Down Arrow key and select the name of a flow to run.
      If the flow supports input parameters, additional fields are displayed for you to define name-value pairs.
    5. On the Subprocess tab, configure the context of the subprocess.
      • To work on the current case, from the Define flow list, select On current page.
      • To work on a specific case, from the Define flow list, select On specific work item. Complete the Work property, Class , and Page name fields.
        Note:

        If the case is open as a page on the clipboard, you can leave the Work property field blank.

        If the case does not already have a page and you do not provide a page name, you application creates a page named pyNextObj, pyNextObj_1, and so on.

      • To work on an embedded page, from the Define flow list, select On embedded page. Complete the Page property and Class field names.
        Note:

        The Page property field must use a mode of Page, Page List, or Page Group.

        If you want to use a class that is not known at design time, in the Class field, you must enter a property reference or expression.

  • When all subprocesses are configurd:
    1. Close the property panel by c lick inh Submit .
    2. Click Save.