WebSphere Lombardi Edition 7.2 > Modeling processes > Helpful reference information


Route activities

For any activity with a Lombardi service implementation, you can designate the end users who should receive the run-time task using the Routing option in the activity's properties. You can also control how the run-time task is distributed to designated users.

The routing options are available only for those activities with a Lombardi service implementation.

  1. In the Designer view, click an activity in a BPD diagram to display its properties.

  2. Click the Routing option.

  3. From the Assign To drop-down list, chose one of the following options:

    Last User in Lane Routes the run-time task to the user who completed the activity that immediately precedes the selected activity in the swim lane. Do not select this option for the first activity in a lane unless the activity is a service in a top-level BPD and a Start Event is in the lane. In this case, the run-time task is routed to the user who started the BPD.
    Lane Participant Routes the run-time task to the participant group assigned to the swim lane in which the selected activity resides. This is the default selection.
    Route Policy Routes the run-time task according to the policy that you establish.
    List of Users Routes the run-time task to an ad-hoc list of users.
    Custom Routes the run-time task according to the JavaScript expression that you provide in the corresponding text field. To select one or more variables for your expression, click the variable selection icon next to the text field. The JavaScript expression should produce results such as USER:<user_name> or ROLE:<group_name>, where user_name is the name of a Lombardi user (such as tw_author) and group_name is the name of a Lombardi security group (such as tw_authors).

  4. From the User Distribution drop-down list, choose one of the following options:

    None Lombardi assigns the run-time task to all potential users. This is the default setting.
    Load Balance From the potential users who can receive the run-time task, Lombardi assigns to the users who have the fewest number of open tasks.
    Round Robin From the potential users who can receive the run-time task, Lombardi assigns to users in a round-robin fashion. For example, if the users in the Call Center participant group should receive the run-time task, Lombardi assigns each task (created by each process instance) in a series–to one user in the group after another.


Set up a routing policy

One of the options when routing the run-time tasks that are generated by activities, is to establish a routing policy. When you define a policy, the users who receive the run-time task are determined by the conditions that you specify.

Before you can configure a routing policy, you must variables for your BPD.

  1. In the Designer view, open the diagram of your BPD and select the activity that you want to route.

    The activity that you choose must already have an attached service.

  2. Click the Routing option in the properties.

  3. From the Assign To drop-down list, select Route Policy.

  4. Under Routing Conditions (If), click Add a column to select the variable to use to begin specifying conditions.

    When defining routing conditions, you create a table in which each column represents a variable and each row represents a rule.

  5. From the displayed list, choose the variable for which you want to specify a condition.

  6. In the first field in row 1, enter the value to compare to the variable.

    For example, if you choose a variable called customer (String) in the preceding step and that variable holds customer names, enter a customer name in the field.

  7. To add another variable to the routing condition, click Add a column and choose a variable from the displayed list. Enter the value to compare to the second variable.

    If you add two columns (variables) and two rows (rules), your routing conditions table resembles the following figure:

    The following examples illustrate the syntax for possible values in the variable columns:

    Enter... To match...
    "ok" The exact string, ok (no quotes)
    >100 Any number greater than 100
    <100 Any number less than 100
    !=3 All numbers except 3

  8. To establish advanced routing rules, click the Adv check box to enable it. When you establish routing rules, you create specifications that determine who will receive the run-time task, such as only those users who have a previously defined user attribute.

    To establish rules, click Add Rule in the Advanced Assigned To (Then) section of the Routing properties

    Lombardi creates only one set of rules under Advanced Assigned To (Then) for the entire Routing Conditions table. To remove a rule after you define it, click on Advanced Lane Participant in the Assign To field in the routing conditions table to display the rule or rules for that routing condition. Under Advanced Assigned To (Then), click the bullet before the rule that you want to remove and then click Remove.

  9. If you do not click the Adv check box, the Assign To field in the routing table shows the default assignee, Swimlane, which means that the run-time task is routed to the participant group assigned to the swimlane in your BPD. If you have multiple participant groups defined in your current process application, you can click the drop-down indicator in this field to pick one of those groups as show in the following figure:

When you define routing conditions, Lombardi evaluates the conditions in the table from top to bottom. Lombardi implements the first condition that matches. If no conditions match, Lombardi assigns the activity to the default assignee, Swimlane. (You can change the default assignee to any participant group in the current process application.)

When working with the routing conditions table, the set of icons on the left control the columns (variables) and the icons on the right control the rows (rules). See the following figure for more detail.


Defining rules

When you establish a Routing Policy for an activity, you can establish rules to determine the users who receive the activity as a run-time task. Using rules, your task assignments can be dynamic, which helps guarantee that activities are routed to the proper individuals.

When defining rules, you have the following types from which to choose:

Swimlane Allows you to route activities to users based on whether they are the default lane participants.
Participant Rule Allows you to select users according to participant group membership.
User Attribute Rule Allows you to select users based on user attributes.
Expression Rule Allows you to select users who match a particular expression that you provide.

  1. Under Advanced Assigned To (Then), click all in the following statement:

    Advanced Lane Participants are users who match all of the following rules:

    Choose all or any.

    If you choose all, the run-time task is assigned to users who match all specified rules. If you choose any, the run-time task is assigned to users who match at least one of the specified rules.

    If none of the conditions that you specify are met, Lombardi assigns the task to the Swimlane for the rule to which this Advanced Assignment applies.

  2. Click Add Rule to choose the type of rule you want.

    The following figure shows three routing rules established for an Advanced Assignment:

  3. Supply the necessary information for the type of rule that you choose.

    • For a Swimlane rule, supply the input that you want for the following specification:

      Who belong to lane participant.

      belong

      Click belong to choose either belong or do not belong.

    • For a Participant Rule, supply the input that you want for the following specification:

      Who belong to participant group select participant.

      belong Click belong to choose either belong or do not belong.
      select participant Click select participant to choose a participant group from the library.

    • For a User Attribute Rule, supply the input that you want for the following specification:

      Who have an attribute select user attribute equal to enter value.

      select user attribute Click select user attribute to select a user attribute definition from the library.
      equal to Click equal to to choose from: equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to.
      enter value Click enter value to display a field in which you can enter either a Lombardi variable or a JavaScript expression that produces the value that you want to compare. Surround any strings in the expression with double quotation marks.

    • For an Expression Rule, supply the input that you want for the following specification:

      Who match expression enter value.

      match Click match to choose either match or do not match.
      enter value Click enter value to display a field in which you can enter either a Lombardi variable or a JavaScript expression that produces the value that you want to compare. Surround any strings in the expression with double quotation marks. The variable or expression must evaluate to a specific user name.


Route to an ad-hoc list of users

When you need to route an activity to a group of users that is defined dynamically when a BPD instance is running, Lombardi enables you to route to an ad-hoc list of users. The ad-hoc group (or list) of users is maintained as long as the process instance exists on the runtime Process Server.

To route to an ad-hoc list of users, you must create an activity with an underlying service (that is upstream from the activity to be routed) to dynamically generate the list of users. The activity that generates the list of users must include an output variable to identify the list of users to the follow-on activity that you want to route.

  1. In the Designer view, open the diagram of your BPD and select the activity that you want to route.

  2. Click the Routing option in the properties.

  3. From the Assign To drop-down list, select List of Users.

  4. Click the Select button next to Binding.

  5. Choose the variable to use to bind the list to the activity to be routed.

    For example, you can define a new complex variable that is a list (array) to pass the list of users from the service that generates the list to the activity to be routed as shown in the following example:

    Use the complex variable shown in the preceding example, you can pick the id parameter to bind the list to the activity that you are currently routing :

Parent topic: Modeling processes

+

Search Tips   |   Advanced Search