BPMN summary event formats

BPMN summary events are JSON objects that result from the aggregation of BPMN time series.

IBM Business Automation Insights handles two kinds of BPMN summaries.
  • Process summaries result from the aggregation of process time series, or from the aggregation of business data. BPMN process summaries convey information at the level of a process to identify the instance of the process, its state, and the business data.
  • Activity summaries result from the aggregation of activity time series and tasks events, or from the aggregation of business data. BPMN activity summaries convey information at the level of an activity to identify the activity and the tasks execution, the activity state, and the business data that is handled at activity level.
Important:

Defining a high number of fields in an Elasticsearch index might lead to a so-called mappings explosion which might cause out-of-memory errors and difficult situations to recover from. The maximum number of fields in Elasticsearch indices created by IBM Business Automation Insights is set to 1000. Field and object mappings, and field aliases, count towards this limit. Ensure that the various documents that are stored in Elasticsearch indices do not lead to reaching this limit.

By design, IBM Business Automation Insights defines 77 field mappings in Elasticsearch indices that store BPMN summaries. The overall number of fields in an index grows as you add tracking groups to retrieve business data.
  • Each tracking group adds four new fields.
  • Each new piece of business data adds one new field, or two new fields if the business data is a string (text and keyword field data types).
Ensure that you do not create too many tracking groups or tracked business data, so that the limit of 1000 fields per index is not exceeded.

Process summary format

A summary for a BPMN process is a JSON object with the following attributes. In the following table, the name, processId, processVersionId, processInstanceId, and shortProcessInstanceId attributes refer to the top-level process in the execution flow context. The value of the id attribute is relative to the top-level process in the execution flow context.
Note: The state for a process summary is changed to Deleted only when the process instance is deleted before it runs to completion.
Table 1. Process summary attributes
Attribute Description Optional or required Type
version The process summary version Required A string constant, in the V.R.M format
type The process summary type Required The string constant "process"
timestamp The timestamp of the last aggregated event to produce this summary Required A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
bpmCellName The name of the IBM Business Automation Workflow cell that emits raw events Required String
processApplicationSnapshotName The name of the process application snapshot. Empty for the current (TIP) snapshot Required String
processApplicationVersionId The identifier of the process application snapshot Required String
processApplicationName The process application name Required String
processApplicationId The process application identifier Required String
id The unique identifier of this process instance. This identifier results from the concatenation of the processId value, the bpmSystemId value, and the process instance identifier that is assigned by the BPM runtime. Required String
processInstanceId The unique identifier of this process instance. This identifier results from the concatenation of the processId value, the bpmSystemId value, and the process instance identifier assigned by the BPM runtime Required String
shortProcessInstanceId The non-fully qualified process instance identifier that corresponds to the process instance identifier assigned by the BPM runtime. Required String
name The full name of the process (not the acronym) Required String
state The state of the process, based on the latest aggregated event Required String constant. Possible values: Active, Completed, Terminated, Failed, Suspended, Resumed, Migrated, Deleted The state for a process summary is changed to Deleted only when the process instance is deleted before it runs to completion.
processId The identifier of the BPMN process Required String
processVersionId The snapshot identifier of the BPMN process Required String
processSnapshotName The name of the process. Empty for the current (TIP) snapshot Required String
bpmSystemId The IBM Business Automation Workflow system identifier that uniquely identifies a Workflow Server environment Required String
startTime The time at which the process started Optional - Present if the process has been started A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
completedTime The time at which the process completed Optional - Present if the process has been completed A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
terminatedTime The time at which the process was terminated Optional - Present if the process has been terminated A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
suspendedTime The time at which the process was suspended Optional - Present if the process has been suspended A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
migratedTime The time at which the last process was migrated Optional - Present if the process has been migrated at least once A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
resumedTime The time at which the process resumed Optional - Present if the process has been resumed A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
atRiskDateAssignedTime The date at which the process is considered at risk Optional - Present if the process has been allocated at least one at-risk date A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
dueDateAssignedTime The due date for the process Optional - Present if the process has been allocated at least one at-risk date or if the due date was modified. A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
failedTime The time at which the process failed Optional - Present if the process has failed A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
deletedTime The time at which the process was deleted Optional - Present if the process has been deleted A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
duration The process duration, in milliseconds. Optional - Present if the difference between the startTime value and either the completedTime or terminatedTime or failedTime value can be computed. Number
data The business data Optional - Present if the tracking group information is available. JSON object
lastBusinessDataUpdateTime The time at which the business data was last updated Optional - Present if the business data has been updated. A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
lastBusinessDataUpdateActivity The name of the latest activity that updated the business data Optional - Present if a raw event type that modified the business data was aggregated in this summary. String
lastBusinessDataUpdateEvent The raw event type of the latest raw event that updated the business data Optional - Present if a raw event type that modified the business data was aggregated in this summary. String
lastBusinessDataUpdatePerformer The name of the latest performer who updated the business data Optional - Present if a performer modified the business data. String
Table 2. Work context attributes for process summaries
Attribute Description Optional or required Type
span-id The span identifier corresponding to the process Required String
parent-span-id The parent span identifier Optional String
trace-id The trace identifier Required String

Example of a process summary

{
    "version": "1.0.2",
    "type": "process",
    "timestamp": "2018-07-01T06:22:41.628-07:00",
    "bpmCellName": "PCCell1",
    "bpmSystemId": "5de24de3-6984-4a02-82b9-2696c6f1b7c3",
    "processApplicationSnapshotName": "v1.0.4",
    "processApplicationVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306",
    "processApplicationName": "Extreme Tracking",
    "processApplicationId": "085b1c62-5be1-4fc1-adf2-7ed44445e0a0",
    "id": "b0279d9d-4286-4196-b273-0e2fb953f64b.5de24de3-6984-4a02-82b9-2696c6f1b7c3.936",
    "trace-id": "d80cf208-d15f-43ce-a22c-7996cf1399fa",
    "span-id": "dda9662471079ab3",
    "processInstanceId": "b0279d9d-4286-4196-b273-0e2fb953f64b.5de24de3-6984-4a02-82b9-2696c6f1b7c3.936",
    "shortProcessInstanceId": "936",
    "processId": "b0279d9d-4286-4196-b273-0e2fb953f64b",
    "processVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306",
    "processSnapshotName": "v1.0.4",
    "name": "Extreme Tracking Process",
    "state": "Active",
    "atRiskDateAssignedTime": "2018-07-01T06:22:41.628-07:00",
    "startTime": "2018-07-01T06:22:41.170-07:00",
    "data": {
        "XTGPOST": {
            "@ids": {
                "trackingGroupId": "413ae9db-6f15-4bb7-b7fe-f919c74a301e",
                "trackingGroupVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306T"
            },
            "id.string": "POST User Task"
        },
        "XTGPRE": {
            "@ids": {
                "trackingGroupId": "360e3383-1530-47e5-b84f-f83ae7fec1f3",
                "trackingGroupVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306T"
            },
            "id.string": "PRE User Task"
        },
        "XAutoTrackTG": {
            "@ids": {
                "trackingGroupId": "guid:1ec0babf3f0670c6:8671dd3:163bd1a0a90:1869",
                "trackingGroupVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306"
            },
            "autoId.string": "User Task"
        }
    },
    "lastBusinessDataUpdateTime": "2018-07-01T06:23:07.407-07:00",
    "lastBusinessDataUpdateActivity": "User Task",
    "lastBusinessDataUpdateEvent": "EVENT_THROWN",
    "lastBusinessDataUpdatePerformer": "admin"
}

Activity summary format

A summary for BPMN activities is a JSON object with the following attributes. In the following table, the name attribute refers to the top-level process, a subprocess, or a linked process, depending on the execution flow context. The processId, processVersionId, processInstanceId, shortProcessInstanceId, and processName attributes refer to the top-level process in the execution flow context. The value of the id attribute is relative to the top-level process in the execution flow context.

For reference information about the completedTime, terminatedTime, and failedTime fields for processing BPMN ACTIVITY_COMPLETED, ACTIVITY_TERMINATED and ACTIVITY_FAILED events, see the Activity monitoring events page of the IBM Business Automation Workflow documentation.

Table 3. Activity summary attributes
Attribute Description Optional or required Type
version The version number of the process summary Required A string constant, in the V.R.M format
timestamp The timestamp of the last aggregated event to produce this summary Required A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
name The name of the activity Required String
bpmCellName The name of the IBM Business Automation Workflow cell that emits raw events Required String
type The type of the activity Required A string constant
startedParallelLoops The number of started loops in parallel for an activity Optional. Present on the activity summary that reports the start and the end of the parallel loop Number
processApplicationSnapshotName The name of the process application snapshot. Empty for the current (TIP) snapshot Required String
processApplicationVersionId The identifier of the process application snapshot Required String
processApplicationName The process application name Required String
processApplicationId The process application identifier Required String
activityId The identifier of the activity Required String
activityVersionId The snapshot identifier of the activity Required String
data The business data Optional - Present if business data is collected with the activity. JSON object
taskInstanceId The task instance identifier Optional - Present if option enable-task-api-def is set in the IBM Business Automation Workflow configuration. String
taskRecord The additional information about the current task Optional - Present if options enable-task-api-def and task-record-enabled are set in the IBM Business Automation Workflow configuration JSON object
performerId The identifier of the user who claimed the task Optional - Present for tasks that can be claimed String
performerName The name of the user who claimed the task Optional - Present for tasks that can be claimed String
potentialPerformerId The identifier of the group of users who can claim the task Optional - Present for tasks that can be claimed String
potentialPerformerName The name of the group of users who can claim the task Optional - Present for tasks that can be claimed String
processId The process identifier Required String
processInstanceId The unique identifier of this process instance. This identifier results from the concatenation of the processId value, the bpmSystemId value, and the process instance identifier assigned by the BPM runtime. Required String
shortProcessInstanceId The non-fully qualified process instance identifier that corresponds to the process instance identifier assigned by the BPM runtime. Required String
processName The name of the process Required String
processVersionId The snapshot identifier of the process Required String
state The state of the activity based on the latest aggregated event Required A string constant. Possible values: Created, Unclaimed, Claimed, Active, Changed, Completed, Terminated, Failed
startTime The time at which the activity started Optional - Present if the task has been started. A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
claimedTime The time at which the task was last claimed Optional - Present if the task has been claimed at least once. A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
completedTime The time at which the activity completed Optional - Present is the task has been completed. A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
terminatedTime The time at which the activity was terminated Optional - Present if the task has been terminated. A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
failedTime The time at which the activity failed Optional - Present if the task has failed. A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
duration The activity duration in milliseconds. Optional. Present if the difference between startTime and completedTime or terminatedTime or failedTime can be computed. Number
waitDuration The duration, in milliseconds, between the time when the activity becomes available and the time when it is claimed. If the activity is reassigned to the team or postponed before being worked on, the latest claim time is considered for the calculation of this duration. Optional. Present if the activity has been started and claimed. Number
executionDuration The duration, in milliseconds, corresponding to the effective work on the activity, which is computed from claimed time to completion time. If the activity is reassigned to the team or postponed before being worked on, the latest claim time is considered for the calculation of this duration. Present if the activity has been claimed and completed. Number
bpmSystemId The IBM Business Automation Workflow system identifier that uniquely identifies a Workflow Server environment Required String
id The unique identifier of the activity instance. This identifier results from the concatenation of the value of the processId attribute, the value of the bpmSystemId attribute, and the process instance identifier that was assigned by the IBM Business Automation Workflow runtime. Required String
Table 4. Work context attributes for activity summaries
Attribute Description Optional or required Type
span-id The span identifier corresponding to the activity Required String
parent-span-id The parent span identifier Optional String
trace-id The trace identifier Required String

Example of an activity summary

{
    "version": "1.0.2",
    "timestamp": "2018-07-01T06:23:08.095-07:00",
    "bpmCellName": "PCCell1",
    "bpmSystemId": "5de24de3-6984-4a02-82b9-2696c6f1b7c3",
    "type": "scriptTask",
    "name": "Linked Script Task",
    "activityId": "7bf773a7-2856-43f0-82c0-3ab53f318789",
    "activityVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306",
    "id": "b0279d9d-4286-4196-b273-0e2fb953f64b.5de24de3-6984-4a02-82b9-2696c6f1b7c3.936-34.42",
    "trace-id": "d80cf208-d15f-43ce-a22c-7996cf1399fa",
    "span-id": "dda9662471079ab3",
    "processApplicationId": "085b1c62-5be1-4fc1-adf2-7ed44445e0a0",
    "processApplicationVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306",
    "processApplicationName": "Extreme Tracking",
    "processApplicationSnapshotName": "v1.0.4",
    "processId": "b0279d9d-4286-4196-b273-0e2fb953f64b",
    "processVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306",
    "processInstanceId": "b0279d9d-4286-4196-b273-0e2fb953f64b.5de24de3-6984-4a02-82b9-2696c6f1b7c3.936",
    "shortProcessInstanceId": "936",
    "processSnapshotName": "v1.0.4",
    "processName": "Extreme Tracking Process",
    "state": "Completed",
    "startTime": "2018-07-01T06:23:08.079-07:00",
    "completedTime": "2018-07-01T06:23:08.095-07:00",
    "duration": 16,
    "data": {
        "XTGPRE": {
            "@ids": {
                "trackingGroupId": "360e3383-1530-47e5-b84f-f83ae7fec1f3",
                "trackingGroupVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306T"
            },
            "id.string": "PRE LINKED Script Task"
        },
        "XLinkedAutoTG": {
            "@ids": {
                "trackingGroupId": "guid:1ec0babf3f0670c6:8671dd3:163bd1a0a90:2128",
                "trackingGroupVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306"
            },
            "linkedId.string": "LINKED Script Task"
        },
        "XTGPOST": {
            "@ids": {
                "trackingGroupId": "413ae9db-6f15-4bb7-b7fe-f919c74a301e",
                "trackingGroupVersionId": "2064.090b62c2-66b8-4e86-8da0-38eb409ef306T"
            },
            "id.string": "POST LINKED Script Task"
        }
    }
}

Task record format

The task record is a JSON object that is bound to the taskRecord attribute of an activity summary. This format results from the aggregation of the task records contained in the time series and takes the following attributes.
Table 5. Task record attributes
Attribute Description Optional or required Type
displayName The task subject Required String
status The status of the task Required A string constant
dueDate The date at which the activity instance is due Required A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
description The task narrative Optional - Present if a narrative is specified String
priority The task priority Required A string constant
atRiskTime The time at which the task instance is considered at risk Required A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm
completionTime The date on which the task was closed Optional - Present if the task is closed A string that contains an ISO8601 date in this format: yyyy-mm-ddThh:mm:ss.nnn+|-hh:mm

Business data format

Business data is a JSON object that holds the aggregation of the tracked fields information per tracking groups during the execution of a process or activity. As this JSON object, business data is bound to the data attribute of a process summary or activity summary, with the following format.
"data": {
      "trackingGroupName1": {
           "@ids":{
                 "trackingGroupId": "tracking group ID 1",
                 "trackingGroupVersionId": "tracking group version ID 1"
           },
           "trackedFieldName1.trackedFieldType1": trackedFIeldValue1,
           "trackedFieldName2.trackedFieldType2": trackedFIeldValue2,
           "trackedFieldName3.trackedFieldType3": trackedFIeldValue3,
           …
 
      },
      "trackingGroupName2": {
           "@ids":{
                 "trackingGroupId": "tracking group ID 2",
                 "trackingGroupVersionId": "tracking group version ID 2"
           },
           "trackedFieldName4.trackedFieldType4": trackedFIeldValue4,
           "trackedFieldName5.trackedFieldType5": trackedFIeldValue5,
           "trackedFieldName6.trackedFieldType6": trackedFIeldValue6,
      },
        …
}

Each entry of the business data object corresponds to aggregated information for a tracking group. The key is the tracking group name and the value is a JSON object that contains entries for aggregated tracked fields.

Each tracked field in a tracking group is identified by an entry. The key is the concatenation of the tracked field name and its type (boolean, decimal, double, float, integer, string), separated with a dot. The value is the tracked field value in a format that matches the type. A special key @ids holds additional information about the tracking group.