This page describes the domain prefixes and functions you can use to access process-related data in the Expression Editor during process model design and process report configuration.
To learn more about the Expression Editor in process models, see Expressions.
Use the domain prefixes described in this section to reference process data in expressions.
Some process-only prefixes return process-level data, while others return node-level data. The level for each prefix is indicated in the table below.
Prefix | Data | Level |
---|---|---|
pm! |
Process model properties | Process |
pp! |
Process properties | Process |
pv! |
Process variables | Process |
ac! |
Activity class parameters | Node |
tp! |
Task properties | Node |
msg! |
Message properties | Node |
Note: Process report data is based on attended task nodes in the process model. Unattended task nodes aren't included in the data. In this page, tasks refers to attended tasks, which require user input.
Process model properties are variables that used internally (in Appian). These variables are supported for use in the Expression Editor when configuring processes or process report columns, and in a record type that uses a process model as the source.
Use the pm!
prefix to reference a process model property. For example, to reference the process model's Time Zone, use pm!timeZone
.
To reference a process model property in a record type, use pm.
in front of the property reference. You must also use the record value (rv!
) domain. For example: rv!record[recordType!Case.fields.pm.timeZone]
.
Process model properties include:
Process Model Property | Reference | Type | Description |
---|---|---|---|
ID | id |
Integer | System-assigned ID for the process model. Not to be confused with the UUID. |
Name | name |
Text | Name of the process model. |
Description | description |
Text | Description of the process model. |
Version | version |
Text | Version of the process model. |
Creator | creator |
User | Creator of the process model. |
Time Zone | timeZone |
Text | Time zone the process model was created in. |
UUID | uuid |
Text | Unique identifier for the process model application object. |
You can easily add process model properties to your expression using the DATA tab in the process model Expression Editor.
Process properties are variables that are used internally within the system to reference certain items associated with a process instance.
These properties may be available for selection in the expression editor for you to use in rules, expressions, and report columns. You can also reference process properties in a record type that uses a process model as the source.
Use the pp!
prefix to reference a process property. For example, to reference the process Start Time, use pp!startTime
.
To reference a process property in a record type, use pp.
in front of the property reference. You must also use the record value (rv!
) domain. For example: rv!record[recordType!Record.fields.pp.startTime]
.
Consider using the pp!
prefix when designing process models and when configuring column data in Process and Task types of process reports.
Process properties include:
Process Property | Reference | Type | Description |
---|---|---|---|
ID | id |
Integer | System-assigned ID for the process. Process IDs are unique within an Appian instance. They are not reused, and can be used to reference the process throughout the application. |
Name | name |
Text | Name of the underlying process model. |
Priority | priority |
Text | The value set as the process priority. Note: this is a descriptive property. It is available to designers to use how they see fit, but the property itself does not affect how Appian handles the process. |
Initiator | initiator |
User | The user who started this process. |
Designer | designer |
User | Owner of the underlying process model. If there are multiple process administrators, the user who last updated the process model becomes the owner. |
Start Time | startTime |
Date/Time | Time the process was started. |
Deadline | deadline |
Date/Time | The date/time value set as deadline. Note: this is a descriptive property. It is available to designers to use how they see fit, but the property itself does not affect how Appian handles the process. |
Time Zone | timeZone |
Text | Time zone context used by the process. This value may differ from the configured process model time zone, such as when the designer selects the option to override the configured process model time zone with the process initiator's time zone. See also: Time Zone Context |
You can easily add process properties to your expression using the DATA tab in the process model Expression Editor.
If you accessed the Expression Editor through the Process Modeler, you can use the pv!
prefix to reference all variables defined and added to the process model.
If you accessed the Expression Editor while configuring a column in a process report, you can reference all variables from the Report Context process model.
Note: If after adding the variable to your expression, you do not create an expression for the variable, its current value is read.
You can easily add process variables to your expression using the DATA tab in the process model Expression Editor.
Activity class parameters (or node inputs) are variables that can be used within a single node. Unlike process variables, activity class parameters cannot be passed to other nodes in a process model. If you need to access node data in a process report, you must first save the data into a process variable.
Use the ac!
prefix to reference data from expressions configured in process model nodes.
You can easily add activity class parameters to your expression using the DATA tab in the process model Expression Editor.
When editing a task view or data in a task report, you can use the tp!
prefix to reference properties that are specific to a task in a process. You can reference the task properties in the table below when editing Task report data columns.
If you need to report on a task property in a process report, you can save its value to a process variable using a custom output when designing the task in the Process Modeler.
See also: Creating a Custom Node Output
Select | or Type | To Return... |
---|---|---|
id | tp!id |
System-assigned ID number that can be used to reference the task.
|
uuid | tp!uuid |
This property returns a system-assigned universally-unique ID that can be used to reference the task. |
name | tp!name |
This property returns the task name (the name that appears on the designer canvas). |
description | tp!description |
Task description. |
display | tp!display |
Task display name (the name that appears in the Task view in Appian). |
priority | tp!priority |
Task priority. |
owner | tp!owner |
Task owner.
|
assignees | tp!assignees |
List of users and groups who have been assigned the task.
|
starttime | tp!starttime |
Date and time when the task was issued. |
deadline | tp!deadline |
Date and time by which the task should be completed. |
instance Index | tp!instanceIndex |
Index number of the current spawned activity.
See also: Multiple Node Instances and the tp!instanceIndex Property and index() |
You can easily add task properties to your expression using the DATA tab in the process model Expression Editor.
If a Receive Message event is configured in a process model, you can use the msg!
prefix to reference message properties that are unique to that event. The available message properties depend on the message type.
Adding functions to expressions in your process model is easy. Use the FUNCTIONS tab in the process model Expression Editor to quickly search, browse, and add functions to your expression.
Task metric functions allow you to access task data when creating a process report related to tasks. These functions are only supported when you're defining a task report column of data.
Select | or Type | To Return... |
---|---|---|
Average Completion Duration | task_avg_completion() |
Average elapsed time between assignment and completion of this task across all processes. |
Completion Duration | Completion() |
Absolute elapsed time between assignment and completion of this task. |
Completion Time | task_completion_time() |
Date and time when the task was completed. |
Is Process On-Time | is_process_ontime() |
true if the process this task belongs to is currently on-time (or was completed on-time) according to the process deadline. |
Is Process Overdue | is_process_overdue() |
true if the process this task belongs to is currently past due. |
Is Task On-time | is_task_ontime() |
true if the deadline for the task has *not* elapsed prior to task completion. |
Is Task Overdue | is_task_overdue() |
true if the deadline for the task elapsed prior to task completion. |
Is Task Starred [Deprecated] | is_task_favorite() |
true if this task is one of the current user's favorites. |
Lag Time | Lag() |
Absolute delay between assignment and acceptance of this task.
|
Net Completion Duration | NetCompletion() |
Net elapsed time, taking into account working hours, between assignment and completion of the task.
|
Net Lag Time | NetLag() |
Net delay (taking into account working hours) between assignment and acceptance of a task.
Any fraction of a minute is considered to be a full minute worked.
|
Net Work Time | NetWork() |
Net elapsed time between acceptance and completion of a task.
|
Process Completion Time | process_completion_time() |
Date and time when the process (which issued the task) was completed. |
Process Deadline | process_deadline() |
Completion deadline of the process that this task belongs to. |
Process Execution Engine Id | process_ee_id() |
ID of the Execution Engine that the task's process is running on. |
Process Model Average Completion Time | pm_avg_completion() |
Average elapsed time between task assignment and completion across all tasks in all process instances of the parent process model of this task. |
Process Model Average Lag Time | pm_avg_lag() |
Average delay between task assignment and acceptance across all tasks in all process instances of the parent process model of this task. |
Process Model Average Work time | pm_avg_work() |
Average elapsed time between task acceptance and completion across all tasks in all process instances of the parent process model of this task. |
Process Start Time | process_start_time() |
Start date and time of the process that this task belongs to. |
Task Assignees/Owner | task_assignee_owner() |
Assignee(s) before a task has been accepted or the task owner after the task is accepted. |
Task Assignment Time | task_assignment_time() |
Time that this task was assigned. |
Task Attributed To | task_attributed_to() |
Specific user from the context that is assigned to this task. It is only applicable for task reports that have a user context. |
Task Average Lag Time | task_avg_lag() |
Average delay between task assignment and acceptance across all tasks in all process instances of this model. |
Task Average Work Duration | task_avg_work() |
Average elapsed time between task acceptance and completion across all tasks in all process instances of this model. |
Task Deadline | task_deadline() |
Completion deadline of the task. |
Task Execution Engine Id | task_ee_id() |
ID of the Execution Engine this task is running on. |
Task Status | task_status() |
Current status of this task. The following values are valid:
|
Total Completion Time (Process) | total_completion_time() |
Total elapsed time between assignment and completion of all completed tasks in the process that this task belongs to. |
Total Lag Time (Process) | total_lag_time() |
Total delay between assignment and acceptance of all running or completed tasks in the process that this task belongs to. |
Total Work Time (Process) | total_work_time() |
Total elapsed time between acceptance and completion of all completed tasks in the process that this task belongs to. |
Work Duration | Work() |
Elapsed time between acceptance and completion of this task. |
When editing a process view in the application, or editing process reports, you can reference properties that are specific to a process in a given process model. The different process metrics that are available for selection through the Expression Editor are explained in further detail.
Process metrics only appear in the Expression Editor in certain instances:
Select | or Type | To Return... |
---|---|---|
# of Active Tasks | num_active_tasks() |
Number of active tasks in this process. |
# of Cancelled Tasks | num_cancelled_tasks() |
Number of canceled tasks in this process. |
# of Completed Tasks | num_completed_tasks() |
Number of completed tasks in a process. |
# of On-time Tasks | num_ontime_tasks() |
Current number of active tasks for this process, which are not past their deadline. |
# of Overdue Tasks | num_overdue_tasks() |
Current number of active and past due tasks for this process. |
# of Problem Tasks | num_problem_tasks() |
Number of problematic tasks in this process. Problematic tasks are canceled by exception. |
Average Completion Time | pm_avg_completion() |
Average elapsed time between task assignment and completion across all tasks in all process instances of this model. |
Average Lag Time | pm_avg_lag() |
Average delay between task assignment and acceptance across all tasks in all process instances of this model. |
Average Work Time | pm_avg_work() |
Average elapsed time between task acceptance and task completion for all running and completed tasks of this process. |
Is Process Starred [Deprecated] | is_pm_favorite() |
true if the process is selected by the current user as a favorite. |
Is Process Model Starred [Deprecated] | is_process_favorite() |
true if the process model is selected by the current user as a favorite.
|
Is Process On-Time | is_process_ontime() |
true if the process is currently on-time (if running) or if it was completed on-time. |
Is Process Overdue | is_process_overdue() |
true if the process is currently past due, or if it was completed past its deadline. |
Last Node Executed | process_last_node() |
Name of the last node executed prior to process completion.
|
Parent Process ID | parent_process_id() |
ID of the parent process. If the process does not have a parent `null` is returned. |
Parent Process Model ID | parent_pm_id() |
ID of the underlying parent process model. |
Parent Process Model Name | parent_pm_name() |
Name of the parent process model. |
Parent Process Name | parent_process_name() |
Name of the parent process.
|
Process Completion Time | process_completion_time() |
Date and time when the process was completed. |
Process Deadline | process_deadline() |
Completion deadline of the process. |
Process Duration | process_duration() |
Elapsed time between process start and completion. |
Process Execution Engine Id | process_ee_id() |
ID of the Execution Engine this process is running on. |
Process Priority | process_priority() |
Designated priority of the process. |
Process Status | process_status() |
current status of the process. |
Running Completion Time | running_completion_time() |
Total elapsed time between task assignment and task completion for all tasks of this process.
|
Running Lag Time | running_lag_time() |
Total delay between task assignment and task acceptance for all tasks of this process.
|
Running Work Time | running_work_time() |
Total elapsed time between task acceptance and task completion for all tasks of this process.
|
Subprocess Id List | sub_process_ids() |
List of ID numbers of subprocesses of this process. |
Total Completion Time | total_completion_time() |
Total elapsed time between task assignment and task completion for all tasks of this process. |
Total Lag Time | total_lag_time() |
Total delay between task assignment and task acceptance for all tasks of this process. |
Total Work Time | total_work_time() |
Total elapsed time between task acceptance and task completion for all tasks of this process. |
The expression functions below are available in the Expression Editor when the Expression Editor is accessed within the Process Modeler. These expression functions serve to replace certain process model metrics, which are no longer available. They cannot be used when defining a process report column.
Call | To Return ... |
---|---|
numtasksforprocessmodelforstatus() | Number of active tasks in process instances of a process model. |
numprocessesforprocessmodelforstatus() | Number of canceled process instances of a process model. |
numtasksforprocessmodelforstatus() | Number of canceled tasks in process instances of a process model. |
numprocessesforprocessmodelforstatus() | Number of completed process instances of a process model. |
numtasksforprocessmodelforstatus() | Number of completed tasks in process instances of a process model. |
numontimeprocessesforprocessmodel() | Number the count of processes that are on-time (where the deadline has not yet passed) for currently running instances of this process model or the number of process instances that were completed on-time for completed processes. |
numontimetasksforprocessmodel() | Number of tasks in process instances of this process model that are currently on-time (if the task is still active), or completed on-time. |
numoverdueprocessesforprocessmodel() | Number of overdue running process instances of this process model. |
numoverduetasksforprocessmodel() | Number of tasks in process instances of this process model that are currently past due. |
numprocessesforprocessmodelforstatus() | Number of paused process instances of this process model. |
numtasksforprocessmodelforstatus() | Number of tasks with problems in process instances of this process model. |
averagetaskcompletiontimeforprocessmodel() | Average elapsed time between task assignment and task completion for all running and completed tasks of a process model. |
averagetasklagtimeforprocessmodel() | Average delay between task assignment and task acceptance for all running and completed tasks of this process model. |
averagetaskworktimeforprocessmodel() | Average elapsed time between task acceptance and completion across all tasks in all process instances of this model. |
Process and Process Report Data