Process Models
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:
- Create a new Process, or visit an existing process and click Open Process Model.
The editor window opens.- Important:
To edit a process model, use Firefox or Chrome. Other browsers may work poorly, or not all.
- Important:
- Drag process elements from the sidebar (the Palette, below) into the main panel
- Use the editor to perform other tasks (below)
- Before saving, click the Check Syntax icon to be sure the Process Model is correct:
- Press Ctrl+S or click the disk icon () to save your changes,
or simply close the window to exit without saving changes.
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.
- 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.
- 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.
- Execute RuleSet - Execute Rules in a Rule Set, to carry out a number of tasks.
- 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.
- Double click on an arrow coming from a Decision Switch to specify criteria for that branch.
- When the specified criteria evaluate as true, that branch is taken. For compound conditions, add parentheses and insert AND/OR operations:
- 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:
-
- 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:
Using the Process Editor
In addition to the Save icon seen earlier, the toolbar provides other icons that help you build Process Models:
-
- 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 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:
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:
- Add an Execute Web Service step to the model.
The service configuration dialog opens. - In the Output Mapping section, select a field returned by the Web Service.
- Choose Use Variable, and give the variable a name.
- 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:
- Add another Execute Web Service step, downstream from other Web Services.
- In the Input Mapping section, select Use Variable.
- Select the process variable and map it to an input field for the Web Service.
- 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:
- 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.
- Select the variable and specify the comparison expression to select the branch.
- Click [Save].
The data returned from the Web Service now helps to determine when a process branch is taken.