WebSphere Lombardi Edition 7.2 > Modeling processes > Advanced modeling tasks


Use nested processes

Use nested processes to encapsulate activities that are related to each other within a parent process. Using nested processes enables you to manage the complexity of any business process while retaining the high-level view of the overall process represented in the parent process definition. Each activity in a BPD can have a nested process attached to it, and each activity in the nested process can have a nested process attached to it, and so forth.

When an activity that is implemented by a nested process is triggered at run time, the attached nested process is executed. After the nested process has run to its completion, the parent process resumes execution.

When you implement an activity using a nested process, the BPD diagram displays the activity with the icon shown in the following image:

The following procedure illustrates how an activity can be implemented using a nested process:

  1. Open the parent business process definition (BPD) in the Designer.

    If you followed the steps in Basic modeling tasks to create the Expense Reimbursement BPD, open it to use as the parent process.

  2. Click the Approval activity in the BPD diagram.

  3. Click the Implementation tab in the properties.

  4. Under Implementation, select the Lombardi Nested Process option from the drop-down menu.

  5. Click the New button to create a nested process.

    If the nested process has already been created, you can click the Select button to choose the BPD from the library.

  6. In the New Business Process Definition dialog, type a name for the BPD and click the Finish button.

    For this example, type Expense Review.

    Use a nested process ensures that the review and approval step in the parent process is flexible enough to meet the needs of a growing organization. For example, using a nested process ensures that you can add lanes with additional participant groups should the review need to grow into a larger multi-stage, multi-organization implementation.

    The plan for the new Expense Review BPD is to include activities where first senior management and then HR can review the submitted expenses. To implement these activities, you can build Human services with Coaches.

  7. Click the Variables tab in the properties to map the variables from the parent process to the nested process.

  8. Click the Add Input button. Adding input enables the parent process to pass variable values to the nested process.

  9. Replace Untitled in the Name field with request.

  10. Click the Select button next to Variable Type and select the EmployeeReimbursement type from the list. (The EmployeeReimbursement variable type is available only if you first implement the steps in Add process variables to a BPD.)

  11. Click the Add Output button. Adding output enables the nested process to pass variable values back to the parent process so that execution can continue.

  12. Replace Untitled in the Name field with request.

  13. Click the Select button next to Variable Type and select the EmployeeReimbursement type from the list. (The EmployeeReimbursement variable type is available only if you first implement the steps in Add process variables to a BPD.)

    The following image shows the variable mapping from the parent process to the nested process:

  14. Go back to the BPD for the Expense Reimbursement parent process.

  15. Click the Approval activity to select it.

  16. Click the Data Mapping tab in the properties.

    Because you already created the input and output variables for the nested process, the Data Mapping tab for the Approval activity in the parent process includes those variables :

  17. Under Input Mapping, click the auto-map icon highlighted in red in the preceding image and then click the auto-map icon in the Output Mapping section.

    The Designer shows tw.local.request as the input and output variables for the Approval activity.

  18. Save these changes and then you can continue by adding the activities and building the implementations for the nested process if you want to test the implementation.

For more information about mapping variables, see Manage and mapping variables. See the following section if you want to call a nested process dynamically.


Calling a nested process dynamically

When you choose to use a nested process as the implementation for an activity, an advanced option in the Implementation properties enables you to supply a predefined variable to dynamically call one of many nested processes, depending on your needs. To use the dynamic option for a nested process, you must first complete the following tasks:

Follow these steps to configure an activity to dynamically call one of many potential nested processes:

  1. Open the parent business process definition (BPD) in the Designer.

  2. Click the activity that you want in the BPD diagram.

  3. Under Implementation, select the Lombardi Nested Process option from the drop-down menu.

  4. Click the Select button to choose one of the predefined nested BPDs from the library.

    You must initially select one of the predefined nested BPDs for the dynamic configuration to function properly.

  5. Click the Data Mapping tab in the properties.

    Because you already created the input and output variables for the nested process, the Data Mapping tab for the activity in the parent process includes those variables.

  6. Under Input Mapping, click the auto-map icon in the upper-right corner and then click the auto-map icon in the upper-right corner of the Output Mapping section.

  7. Click the Implementation tab in the properties.

  8. Click the indicator next to the Advanced section heading to expand the section.

  9. Click the variable icon next to the Dynamic Sub-Process field to choose the previously defined variable that provides the name of the selected process :

    At run-time, the value of this variable cannot be null and it must exactly match the name of an existing BPD.

  10. Save the configuration.

Parent topic: Advanced modeling tasks

+

Search Tips   |   Advanced Search