Difference between revisions of "Process Models"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 42: Line 42:
::* '''Due Date -''' Specify an interval in hours or days
::* '''Due Date -''' Specify an interval in hours or days
::* The person (or people) who can do the approval:
::* The person (or people) who can do the approval:
:::* '''Team -''' Identify people who can carry out the task (or do the approval) as people who are members of a designated team, people who have a designated Role, or both.
:::* '''Team -''' Identify people who can do the approval as people who are members of a designated team, people who have a designated Role, or both.
::::* '''Role -''' Anyone with that role can view the task and claim it. Default is '''Any Role'''.)
::::* '''Role -''' Anyone with that role can approve or reject. Default is '''Any Role'''.)
::::* '''Team -''' Any member of the team can view the task and claim it. Default is '''Any Team'''.
::::* '''Team -''' Any member of that team can approve or reject. Default is '''Any Team'''.
::::* '''Role''' and '''Team -''' Only members of the team who have the specified role can view the task and claim it.
::::* '''Role''' and '''Team -''' Only members of the team who have the specified role can approve or reject.
:::* '''Individual -''' Select one of the fields that targets a [[User]] record
:::* '''Individual -''' Select one of the fields that targets a [[User]] record
:::* '''Using Rule Set -''' Choose a [[Rule Set]] that returns a [[Rules_and_Rule_Sets#return_type|Step Owner]]--a value that resolves to one of the options above.
:::* '''Using Rule Set -''' Choose a [[Rule Set]] that returns a [[Rules_and_Rule_Sets#return_type|Step Owner]]--a value that resolves to one of the options above.

Revision as of 19:38, 7 November 2013

About Process Models

Process Models are sequences of tasks (or steps) that are carried out to achieve a goal. The sequence of tasks, or process flow can do conditional branching based on record data.

Working with Process Models

Creating or Modifying a Process Model

To create or modify a Process Model:

  1. Click [New Process Model] or click an existing Model.
    The editor window opens.
  2. Drag process elements from the sidebar (the Palette, below) into the main panel
  3. Use the editor to perform other tasks (below)
  4. Before saving, click the Check Syntax icon to be sure the Process Model is correct:
    ProcessIcon CheckSyntax.png
    This is an important step. It's possible for a flow line to look as though it goes to the right place, without actually being connected to the target step. Performing a syntax check helps to guard against such errors.
  5. Press Ctrl+S or click the disk icon (BPM discIcon.png) to save your changes and close the window,
    or simply close the window to exit without saving changes.
    ProcessIcon Save.png

Notepad.png

Note:
If a process model is modified while it's in use:

  • A process that is in progress continues to completion using the old version of the process model
  • A newly-launched process use the new version of the process model

Process Steps and Flow Control

The Process Element Palette contains things you can drag into the canvas as you define a process model:

  • User Task - This is a task that will be carried out by a user.
  • Instructions - Additional information that will be presented to users when the task is completed using a Form (see below)
  • Due Date - Specify an interval in hours or days
  • The person who needs to perform the task (or a collection of people, one of whom needs do it):
  • Team - Identify people who can carry out the task (or do the approval) as people who are members of a designated team, people who have a designated Role, or both.
  • Role - Anyone with that role can view the task and claim it. Default is Any Role.)
  • Team - Any member of the team can view the task and claim it. Default is Any Team.
  • Role and Team - Only members of the team who have the specified role can view the task and claim it.
  • Individual - Select one of the fields that targets a User record
  • Using Rule Set - Choose a Rule Set that returns a Step Owner--a value that resolves to one of the options above.
(Click the plus icon (Btn-add.gif) to create a new, empty Rule Set that can be filled in later.)
  • Form - Choose a Form for the object the Task is attached to, allowing the user to view and modify data in the record the task is attached to. If the process is defined on the Cases Object, for example, then Case data can be modified as the Task is completed. (Typically a small form is created for the purposed, showing only the data the user needs to complete the task.)
  • Comment Required? - When this box is checked, the user is required to provide a comment.
  • Change Status to - This option appears for a Cases object model. Use it to automatically change case status when a task is completed.
  • Approval Step (Approval Task)- This task requires someone to click a button to Approve or Reject something. A Decision Switch attached to the Approval Step has an additional field, Approved, that can be tested to find out which button they clicked. (To learn more, see the description of the Decision Switch that follows. Then see Using an Approval Step, below.)
  • Instructions - Additional information that is presented to users when the approval step is completed using a Form (see below)
  • Due Date - Specify an interval in hours or days
  • The person (or people) who can do the approval:
  • Team - Identify people who can do the approval as people who are members of a designated team, people who have a designated Role, or both.
  • Role - Anyone with that role can approve or reject. Default is Any Role.)
  • Team - Any member of that team can approve or reject. Default is Any Team.
  • Role and Team - Only members of the team who have the specified role can approve or reject.
  • Individual - Select one of the fields that targets a User record
  • Using Rule Set - Choose a Rule Set that returns a Step Owner--a value that resolves to one of the options above.
(Click the plus icon (Btn-add.gif) to create a new, empty Rule Set that can be filled in later.)
  • Form - Choose an object Form to include in the dialog when the user clicks Approve, allowing the user to view and modify data in the record the task is attached to. For a rejection, only the comment box is displayed. (Typically a small form is created for the purposed, showing only the data needed to issue an approval or a rejection.)
  • Comment Required? - When this box is checked, the approver is required to provide a comment.
  • Send an Email - Send out an automated notification using one of the Email Templates.
(Click the plus icon (Btn-add.gif) to create a basic new template that can be modified later.)
  • Execute RuleSet - Execute Rules in a Rule Set, to carry out a number of tasks.
(Click the plus icon (Btn-add.gif) to create a new, empty Rule Set that can be filled in later.)

  • Execute Web Service - Invoke one of the Web Services configured for the application.
  • Input Mapping - Specify values used for input to the web service
  • Use Object Field - Select a field from the current record
  • Use Fixed Value - Type in the value to use
  • Use Expression - Click in the field to bring up an expression-builder dialog:
  • Click the Field link to choose a WSDL output field
  • Click in the dropdown area to add an operator
  • Click the Functions link to add a function
  • When done, click [Insert] to add the contents of the expression builder to the expression field
  • Use Variable - Select a Process Variable created by an upstream Web Service
  • Specify the WSDL input field to map the data to
  • Output Mapping - Map Web Service outputs storage locations
  • Use WSDL Field - Select a WSDL output field
  • Use Expression - Click in the field to bring up an expression-builder dialog:
  • Click the Field link to choose a WSDL output field
  • Click in the dropdown area to add an operator
  • Click the Functions link to add a function
  • When done, click [Insert] to add the contents of the expression builder to the expression field
  • Specify the data storage destination:
  • Use Object Field - Store the data in the current record
  • Use Variable - Store the data in a Process Variable
  • Decision Switch - Create a branch in the process flow, depending on criteria you specify.
After creating the decision-switch node, click on the arrows coming from the node to specify criteria. When the specified criteria evaluate as true, that branch is taken.
For compound conditions, chain one Decision Switch into another. So if the branch from the first Decision Switch is taken when order_amount >= 10000 and a branch from the second is taken when order_amount < 100000, then the second branch is taken when the order is between $10,000 and $100,000.
  • Parallel Gateway
  • A point from which parallel paths branch out, and a point at which they merge once again. (The same element is used for both points.)
  • This gateway creates a branch in the flow, allowing two sequences of tasks to proceed in parallel.
  • Inclusive Gateway
  • A point from which conditional parallel paths branch out, and a point at which they merge once again. (The same element is used for both points.)
  • This gateway creates a branch in the flow, and allows a condition to be attached to each branch.
  • An inclusive gateway allows multiple paths to be in operation simultaneously, as long as their conditions are satisfied. Flow then proceeds from the join point, but only after each path that was started runs to completion.
  • Start Event - Specify the starting point for the process. (The start point is required.)
  • End Event - Specify an endpoint for the process. (At least one end point is required.)
  • Sequence Flow - Draw a connector between two tasks, to create a sequence.

Making Connections

In the main panel, click a Task or Event
. Several elements appear next to it. Hover over them to see a description:

ProcessConvenienceElements.png
  • Decision Switch - A Decision Switch element is added to the process (see below), with a connection from the task
  • End Event - An End Event element is added to the process, connected to the task

The final element is the connection arrow. To draw an arrow between two elements in the diagram, drag that arrow to another element:

ProcessHighlightedTarget.png

Using the Process Editor

In addition to the Save icon seen earlier, the toolbar provides other icons that help you build Process Models:

ProcessEditIcons.png
  • Cut, Copy, Paste, Delete - The standard editing operations to move or copy the selected element(s) to the clipboard (cut/copy), to copy the contents of the clipboard to the process (paste), or remove the selected element(s).
  • Undo, Redo - Take back the last change, or reinstate it.
  • Alignment and Sizing - Align the middles or centers of elements, or make them the same size.
  • Line "Bend Points" - A red dot appears at the corner of any line that isn't totally straight. You change the shape of a line by dragging that dot. Use these controls to add an extra dot to an already-bent line, or to add a dot to a straight line. You can also use the controls to remove a dot, straightening the line at that point.
  • Zoom Controls - Zoom in or out. Set page size.
  • Syntax Check - Click this button to check the drawing. A large red "X" appears below any element that has a problem. Hover over the element to get an error message.

Here are some other keys you can use:

  • Click and drag -Move an element to a new location.
  • Ctrl+A - Select all. Good for repositioning all elements at once.
  • Ctrl+Click - Add an element to the set of selected elements, or remove it if already selected.

Using a Decision Switch

When you double click on an arrow coming from a Decision Switch, you can specify criteria for that branch. The criteria take the form {field} {operator} {value}.

ProcessDecisionCriteria.png

You can add multiple criteria to that dialog. All must evaluate to true for the branch to be taken. In other words, the criteria specified for that branch represent an AND condition.

To create an OR condition, you can add a separate branch.

Warn.png

Important: When you add a second arrow, it overlays the first. Immediately move it, so you can see them both:

ProcessOffsetBranch.png

Using an Approval Step

When you add an Approval Step, a Task is generated for the person it is assigned to. While other Tasks have a [Complete] button, an Approval task has two buttons: [Approve] and [Reject]. The button that was clicked is recorded in a special field called Approved, with values Yes or No. When a decision switch follows an Approval Step, that field is available for testing, as shown here:

ProcessModelApprovalStep.png

Reject could go back to a previous step. Approve will generally go forward to a new task or to the end of the process.

Using Process Variables

Process Variables can be used to store values gathered from a Web Service so the data doesn't have to be stored in a record. Later, those variables can be used:

  • as input to another Web Service
  • when specifying the criteria for a branch from a Decision Switch.

To create a process variable and store a value:

  1. Add an Execute Web Service step to the model.
    The service configuration dialog opens.
  2. In the Output Mapping section, select a field returned by the Web Service.
  3. Choose Use Variable, and give the variable a name.
  4. When done configuring the service, click [Save].
    The data returned in that field is stored in the named variable when the process runs.

To use a process variable as input to another service:

  1. Add another Execute Web Service step, downstream from other Web Services.
  2. In the Input Mapping section, select Use Variable.
  3. Select the process variable and map it to an input field for the Web Service.
  4. When done configuring the service, click [Save].
    The data stored in the named variable is sent to the Web Service when the process runs.

To use a process variable in a Decision Switch:

  1. Add or edit a Decision Switch that is downstream from a Web Service.
  2. Edit a branch coming from that switch.
  3. The list of fields available for comparison includes variables defined in previous steps.
  4. Select the variable and specify the comparison expression to select the branch.
  5. Click [Save].
    The data returned from the Web Service now helps to determine when a process branch is taken.