Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Activity Types

Workflow activities are the building blocks of a workflow definition. Each activity type serves a different purpose, from waiting for user input to calling microflows or branching execution.

User Task

A user task pauses the workflow until a user completes it. Each outcome resumes the workflow down a different path.

USER TASK <name> '<caption>'
  [PAGE <Module>.<Page>]
  [TARGETING MICROFLOW <Module>.<Microflow>]
  OUTCOMES '<outcome>' { <activities> } ['<outcome>' { <activities> }] ...;
ElementDescription
<name>Internal activity name
<caption>Display label shown to users
PAGEThe page opened when the user acts on the task
TARGETING MICROFLOWMicroflow that determines which users see the task
OUTCOMESNamed outcomes, each with a block of follow-up activities

Example:

USER TASK ReviewTask 'Review the request'
  PAGE Approval.ReviewPage
  TARGETING MICROFLOW Approval.ACT_GetReviewers
  OUTCOMES 'Approve' {
    CALL MICROFLOW Approval.ACT_Approve;
  } 'Reject' {
    CALL MICROFLOW Approval.ACT_Reject;
    END;
  };

Call Microflow

Execute a microflow as part of the workflow. Optionally specify a comment and outcomes:

CALL MICROFLOW <Module>.<Name> [COMMENT '<text>']
  [OUTCOMES '<outcome>' { <activities> } ...];

Example:

CALL MICROFLOW HR.ACT_SendNotification COMMENT 'Notify the applicant';

Call Workflow

Start a sub-workflow:

CALL WORKFLOW <Module>.<Name> [COMMENT '<text>'];

Example:

CALL WORKFLOW HR.BackgroundCheck COMMENT 'Run background check sub-process';

Decision

Branch the workflow based on a condition. Each outcome contains a block of activities:

DECISION ['<caption>']
  OUTCOMES '<outcome>' { <activities> } ['<outcome>' { <activities> }] ...;

Example:

DECISION 'Order value over $1000?'
  OUTCOMES 'Yes' {
    USER TASK ManagerApproval 'Manager must approve'
      PAGE Shop.ApprovalPage
      OUTCOMES 'Approved' { } 'Rejected' { END; };
  } 'No' { };

Parallel Split

Execute multiple paths concurrently. The workflow continues after all paths complete:

PARALLEL SPLIT
  PATH 1 { <activities> }
  PATH 2 { <activities> }
  [PATH 3 { <activities> }] ...;

Example:

PARALLEL SPLIT
  PATH 1 {
    USER TASK LegalReview 'Legal review'
      PAGE Legal.ReviewPage
      OUTCOMES 'Approved' { };
  }
  PATH 2 {
    USER TASK FinanceReview 'Finance review'
      PAGE Finance.ReviewPage
      OUTCOMES 'Approved' { };
  };

Jump To

Jump to a named activity elsewhere in the workflow (creates a loop or skip):

JUMP TO <activity-name>;

Example:

JUMP TO ReviewTask;

Wait for Timer

Pause the workflow until a timer expression evaluates:

WAIT FOR TIMER ['<expression>'];

Example:

WAIT FOR TIMER 'addDays([%CurrentDateTime%], 3)';

Wait for Notification

Pause the workflow until an external notification resumes it:

WAIT FOR NOTIFICATION;

End

Terminate the current workflow path:

END;

Typically used inside an outcome block to stop the workflow after a rejection or cancellation.

Summary Table

ActivityPurposePauses Workflow?
USER TASKWait for human actionYes
CALL MICROFLOWExecute server logicNo
CALL WORKFLOWStart sub-workflowDepends on sub-workflow
DECISIONBranch on conditionNo
PARALLEL SPLITConcurrent executionYes (waits for all paths)
JUMP TOGo to named activityNo
WAIT FOR TIMERDelay executionYes
WAIT FOR NOTIFICATIONWait for external signalYes
ENDTerminate pathN/A

See Also