Difference between revisions of "Process Models"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 116: Line 116:


'''To create a process variable and store a value:'''
'''To create a process variable and store a value:'''
# Add an '''Execute Web Service'' step to the model.<br>The service configuration dialog opens.
# Add an '''Execute Web Service''' step to the model.<br>The service configuration dialog opens.
# In the '''Output Mapping''' section, select a field returned by the Web Service.
# In the '''Output Mapping''' section, select a field returned by the Web Service.
# Choose '''Use Variable''', a give the variable a name.
# Choose '''Use Variable''', and give the variable a name.
# When done configuring the service, click '''[Save]'''<br>The data returned in that field is stored in the named variable when the process runs.
# When done configuring the service, click '''[Save]'''<br>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:'''
'''To use a process variable as input to another service:'''
# Add a second '''Execute Web Service'' step, downstream from the first.
# Add another '''Execute Web Service''' step, downstream from other Web Services.
# In the '''Input Mapping''' section, the list of choices includes variables defined in previous steps.
# In the '''Input Mapping''' section, select '''Use Variable'''.
# Select an input variable and map it to an input field for the Web Service
# Select the process variable and map it to an input field for the Web Service.
# When done configuring the service, click '''[Save]'''<br>The data stored in the named variable is sent to the Web Service when the process runs.
# When done configuring the service, click '''[Save]'''<br>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:'''
'''To use a process variable in a Decision Switch:'''
# Add or edit the branch from a Decision Switch
# Add or edit a Decision Switch that is downstream from a Web Service.
# Edit a branch coming from that switch.
# The list of fields available for comparison includes variables defined in previous steps.
# The list of fields available for comparison includes variables defined in previous steps.
# Select the variable and specify the comparison expression to select the branch
# Select the variable and specify the comparison expression to select the branch

Revision as of 00:32, 3 October 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

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 as people who are members of a designated team, people who have a designated Role, or both. Any member of the specified team can view the task and claim it as their own, regardless of who it was originally assigned to. The default is Any Team, which means that anyone who can see the case can claim the task.)
  • 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 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.
  • 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.
  • 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.