Process and Report Data

The Data tab of the Expression Editor lets you select from variables, properties, and metrics to add to your expression. Clicking on an item in the Search pane adds it to your expression.

Only data options associated with what you're creating the expression for appear in the list. For example, Tasks Metrics would only appear when creating a report related to tasks.

The sections in this article define all possible items as categorized in the Expression Editor.

Process Variables

If you accessed the Expression Editor through the Process Modeler, all variables defined and added to the process model display.

If you accessed it through the Reports tab of the Designer Interface, all variables from the Report Context process model display.

NOTE: If after adding the variable to your expression you do not create an expression for the variable, its current value is read.

Activity Class Parameters

These variables are displayed when the Expression Editor is accessed through an activity in the Process Modeler. All activity class parameters (or node inputs) defined for the activity are listed. Unlike process variables, node inputs created in one node do not appear in another node.

In an expression, you can type the name of a node input by prefixing it with ac!, such as ac!myNodeInput, or select the name of the node input (such as ac!myNodeInput) to list it in your expression.

If you need to access node data in a report, you must first save the data into a process variable.

Task Properties

When editing a task view or data in a task report you can reference properties that are specific to a task in a process. The task properties below are listed in the Expression Editor 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.
  • Task IDs are unique within the system and valid until the task is deleted and/or its process is archived. When a task is deleted or its process archived, its task ID is no longer valid and may be reused for new tasks. If you unarchive a process, the process tasks receive new task IDs.
  • When retrieving the Task ID in a report, an absolute ID that is relative to the execution engine on which the task resides is returned by the process engine. In all other cases, the Task ID property returns the relative ID of the task. This ID can be used to reference the task throughout the application.
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.
  • When a task is assigned, the Task Owner property has a null value until the assigned user views the task or until a user in the assigned group accepts the task.
  • The Task Owner property can only be used to identify the user who completed a given task. If the task has been assigned to more than one user (if there were multiple users or a group of users) the Assignees property should be used to determine the users that accepted the task.
assignees tp!assignees List of users and groups who have been assigned the task.
  • The object returned takes the User or Group data type.
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.
  • When multiple node instances are spawned for an activity, each activity is assigned an index number (starting with 1). This property allows you to reference the current index number of the spawned activity in an expression. It is particularly useful when you spawn one activity for each value in a multiple-value process variable.
  • When storing the result of each instance into a process variable, use the is stored as or the is appended to list operators, not the is stored at index operator. Use the index() function to match each process variable value with the index of the spawned activity. For example, the following expression could be used to call each element in a multiple value process variable: index(pv!processVariable,tp!instanceIndex)

See also: Multiple Node Instances and the tp!instanceIndex Property and index()

Task Metrics

The task metrics below are available for selection through the Expression Editor when 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.
  • Time elapsed due to pausing the task is not accounted for.
Net Completion Duration NetCompletion() Net elapsed time, taking into account working hours, between assignment and completion of the task.
  • All non-working hours (until the next working hour) are added to any completion duration (according to the process calendar) if the task is completed after the end of any working day.
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.
  • If the net delay passes a working-hour threshold specified on the process calendar, the Net Lag includes all time that would elapse until the next working hour. For example, say 5:00 pm is the end of a working day on the process calendar, and a task is assigned at 4:49 pm. If the task is accepted at 5:01 pm, the Net Lag Time is calculated as if the task were accepted at 9:01 am the next working day (this could be several days later if several subsequent non-working days are designated in the process calendar).
Net Work Time NetWork() Net elapsed time between acceptance and completion of a task.
  • The times must fall within the working hours on the process calendar. If a completion takes place in non-working time, the completion time is advanced to the next working time open on the calendar. Any fraction of a minute is considered to be a full minute worked.
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:
  • Not Active
  • Active
  • Completed
  • Cancelled
  • Paused
  • Paused by Exception
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.

Process Properties

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. If not present in the Expression Editor, they can be referenced in written form, though they are not always populated with data.

To reference a process property, use the process property domain (pp!) in front of the property's reference (pp!<reference>). All properties in the below table can be referenced this way. For example, to reference the process Start Time, use pp!startTime.

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

Process Model Properties

These variables are used internally (in Appian) and are available for selection in the Expression Editor for you to use in processes and report columns.

To reference a process model property, use the process property domain (pm!) in front of the property's reference (pm!<reference>). All properties in the below table can be referenced this way. For example, to reference the process model's Time Zone, use pm!timeZone.

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.

Process Metrics

When editing a process view in the application, or editing process reports, you are given the option of referencing properties that are specific to a processes of a given process model(s). 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.

  • Process reports allow you to create and configure reports on all processes for a given process model.
  • Process Metrics only appear when editing a process or process model report.
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.
  • Process models selected using this metric do not display the Star marker when shown in a report.
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.
  • It is used to determine which end event in a process caused it to complete. If a process ends due to execution of another node, this metric is not populated with a value.
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.
  • If the process is not a sub-process, it returns a `null` value.
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.
  • If a task is not yet accepted, completion time is calculated using the current time.
Running Lag Time running_lag_time() Total delay between task assignment and task acceptance for all tasks of this process.
  • If a task is not yet accepted, lag time is calculated using the current time.
Running Work Time running_work_time() Total elapsed time between task acceptance and task completion for all tasks of this process.
  • If a task is not yet accepted, work time is calculated using the current time.
Sub-Process Id List sub_process_ids() List of ID numbers of sub-processes 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.

Process Model Functions

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 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.
FEEDBACK