Help Center>Foundation Help

Applies to:

  • Winshuttle Foundation

Working with transitions

A transition represents the movement from one node to another in a workflow.

On this page

Transitions define the sequence of steps in a workflow by connecting nodes. Each node can have an unlimited number of transitions originating from it or going to it. You can set properties for a transition that define the conditions that must be met before moving from one node to another.

Transition properties enable you to define conditions that must be met before moving from one node to the next. For example, you can set conditions based on SharePoint column values such as Priority or Amount, or based on the current workflow state such as Approved or Rejected. (Note: Before you can use form fields on your condition, the field must first be promoted to SharePoint.)

Note: You can right-click anywhere in the Composer Workflow canvas to open a context menu that enables you to turn off/on Transition text for improved readability.
Toggle Transition Text menu

Note: See Transition properties for more information about transition properties and shortcuts you can use when setting them.

Adding/deleting transitions

Back to top
  1. Click in the center of the node where you want to create the transition.
  2. Drag the mouse to draw a transition to the next node in the workflow.

Deleting a transition

  1. Click the transition.
  2. Press the Delete key on the keyboard, or on the ribbon click .

Setting transition properties

Back to top
  1. In the canvas, click on the transition.
  2. The Properties pane displays properties for the selected transition.
  3. Under Transition, next to Condition, click the options button […]
  4. In the Edit Condition dialog box, type the expression/condition, and then click OK. See Working with Expressions for additional help creating and using expressions.

    See the table below for a list of Transition relational operators, and see Transition properties for more detailed information about using Transition properties.

Transition functions

Back to top

Functions enable processing of SharePoint and workflow data to branch conditionally from node to node. Arguments to functions can be literal values or specified as SharePoint column names. In the latter case, the argument values are retrieved from the given SharePoint column. The following table lists and describes transition functions.

Note: Some functions require a node name as an argument. To specify a node name, you can type it in the Edit Condition dialog box, or right-click in the Edit Condition dialog box and choose from the Nodes pop-up menu.

Function

Description

Approved

Returns true if the node specified as the argument was approved by the assigned user. For example, Approved ("Manager Approval") returns true if the user assigned to the Manager Approval node chose Approve when completing the assignment.

AutoApproved

Returns true if the specified node was approved and it was done via the Default Approval Period associated with the task. Takes the name of the node as an argument. AutoApproved will also trigger Approved, because Approved is a superset of AutoApproved and ExplicitlyApproved.

ExplicitlyApproved

Returns true if the specified node was approved and it was done by the user either clicking the Approve button in the SharePoint UI or by an email approval. Takes the name of the node as an argument.

InSiteGroup

Returns true if the person assigned to the given Swim Lane exists in the given SharePoint group. Takes two arguments, the first is the Swim Lane name, and the second is the name of the SharePoint group for consideration. Example: InSiteGroup("Approvers", "Managers") returns true if the person assigned to the Approvers Swim Lane is in the Managers SharePoint group.

IsAssignmentValid

Returns true if the Swim Lane passed as the single argument has someone assigned to it. This function is useful if you have a process where all Swim Lanes might not be assigned.

Example: IsAssignmentValid("Optional Approvers") will return true if anyone has been assigned to the Optional Approvers Swim Lane, false otherwise.

Match

Returns true if the first argument is matched by the regular expression passed as the second argument.

Example: Match("Invoice Line Items",".*Drill Bits.*") returns true if the SharePoint column Invoice Line Items contains Drill Bits anywhere in its value.

Otherwise

This is a catch-all for all other conditions. If no other emanating transition matches when the workflow engine is evaluating the next nodes to process, then any transition marked with Otherwise will be traversed. Otherwise takes no arguments.

ProcessInfo

Takes one of Name, Description, StartDate, DueDate, CompletionDate, Status, or Originator as the argument and returns the respective process information.

Rejected

Returns true if the node specified as the argument was rejected by the assigned user. For example, Rejected("Manager Approval") returns true if the user assigned to the Manager Approval node chose Reject when completing the assignment.

Swim LaneParticipants

Returns a comma-separated list of the users assigned to the specified Swim Lane. For example, Swim LaneParticipants("Managers") returns all users assigned to the Managers Swim Lane.

Task Info

Takes a task name as the first argument, and then one of Name, Description, StartDate, DueDate, CompleteDate, Status, Note, Participant, or Swim Lane and returns the respective assignment information for the given task.

Example transition conditions

The following table shows examples for frequently used conditions on transitions. You can modify them as needed for your workflow.

For This Condition:

Use This Expression:

Dollar amount less than $2,500

[Amount] < 2500

Manager approved and priority is urgent

Approved("Manager Approval") && [Priority] == "Urgent"

Form is re-submitted

Resubmit == ‘true’

Transition relational operators table

Back to top

The following table lists the operational operators you can use in Workflow transitions/expressions.

Rational Operators Description Logical Operators Description
== Equal && And
!= Not Equal || Or
> Greater ! Not
>= Greater than or equal    
< Less    
<= Less than or equal    
= Assignment