PDAutomationProvider - Scoped, Global
The PDAutomationProvider API enables inserting an optional activity into a process while it's executing.
This API is part of the Playbooks plugin (com.glide.pad.core) and runs in the sn_pad namespace.
- The caller must be in the same scope in which the optional activity trigger was created.
- Admin privileges.
A process is a series of activities ordered by lanes. An optional activity is predefined during process design. The activities aren't scheduled to run at a precise time. An activity can be assigned to a lane and made available to run during lane execution. An activity can be assigned to a process and made available to run during lane execution.
To create an optional activity, it must have the Start rule set to Manual in the Activities [sys_pd_activity] table. Playbooks doesn't currently support creating manual activities.
An agent adds the optional activity to a lane or activity relative to another activity. The process must be running to insert an optional activity.
PDAutomationProvider – activateProcess(String processDefinitionSysId)
Activates a playbook.
| Name | Type | Description |
|---|---|---|
| processDefinitionSysId | String | Sys_id of a playbook. Table: Process Definitions [sys_pd_process_definition] |
| Property | Description |
|---|---|
| Object | Object containing process definition activation details. |
| errors | List of errors. Empty if successful. Data type: Array of String(s) |
| process_definition | The activated playbook and its properties. Data type: Object |
| process_definition.active | Flag that indicates whether the process definition for the deactivated playbook is active. Find process definitions in the Process Definitions [sys_pd_process_definition] list. Valid values:
Data type: Boolean |
| process_definition.snapshot | Contains details about the process definition at the time of activation. Data type: Object |
| process_definition. snapshot. created | The date that the playbook was created. Data type: String |
| process_definition. snapshot. processDefinitionSysId | The sys_id of the activated playbook. Data type: String |
| process_definition.status | Indicates the publishing status of the playbook. Possible values:
Data type: String |
| state | Indicates whether your request to activate was successful or not. Possible values:
Data type: Object |
The following example shows how to activate a playbook.
var myPlaybook = sn_pad.PDAutomationProvider.activateProcess('cdd1b85e43000210d96e29c28ab8f275');
gs.info(JSON.stringify(myPlaybook));Output: {
"process_definition": {
"active": true,
"snapshot": {
"processDefinitionId": "cdd1b85e43000210d96e29c28ab8f275",
"created": "2024-02-19 22:58:12"
},
"status": "published"
},
"state": "SUCCESS",
"errors": []
}PDAutomationProvider – addOptionalActivityRelativeToActivityContext(String contextID, String activityId, String where, String relativeToId)
Adds a specified optional activity to a process to be run relative to another activity during process execution.
An activity context is created for each activity when a process executes. The context also handles how the activity handles execution. For information, see Process Automation Designer lanes and activities.
| Name | Type | Description |
|---|---|---|
| contextID | String | Sys_id of the activity execution in which to add the optional activity. To access, click the process listed in the Process Executions [sys_pd_context] table. The execution selected must be in a state of In Progress. |
| activityId | String | Sys_id of the optional activity listed in the
Activities [sys_pd_activity] table. Note: To create an optional activity, it must have
the Start rule set to Manual in
the Activities [sys_pd_activity] table. |
| where | String | Indicates where to place the activity in the
process.
Valid values:
|
| relativeToId | String | ID of the relative activity context that the optional activity will run after or with. Listed in the Activity Context [sys_pd_activity_context] table. |
| Type | Description |
|---|---|
| Boolean | Flag that indicates whether the activity was successfully scheduled to run.
Possible values:
If errors, list of one or more error messages. Message stating Array of 0 or more elements otherwise. |
| Array | If errors, list of one or more error messages.
Message stating Array of 0 or more elements
otherwise.
Possible error messages:
|
The following example shows how to run an optional activity simultaneously with the relative activity context.
var contextId = '<context_id>';
var optionalActivityId = '<optional_activity_id>';
var where = 'WITH'; // options AFTER, WITH
var relativeToId = '<relative_activity_context_id>'; // relative activity context ID
var response = sn_pad.PDAutomationProvider.addOptionalActivityRelativeToActivityContext(contextId, optionalActivityId, where, relativeToId);
gs.info(JSUtil.describeObject(response));
success: boolean = true
errors: Array of 0 elementsPDAutomationProvider – addOptionalActivityRelativeToLaneContext(String contextID, String activityId, String where, String relativeToId)
Assigns an optional activity to a lane to run during that lane's execution context.
A lane context is created for each lane when a process executes. The context also handles how the lane handles execution. For information, see Process Automation Designer lanes and activities.
| Name | Type | Description |
|---|---|---|
| contextID | String | Sys_id of the activity execution in which to add the optional activity. To access, click the process listed in the Process Executions [sys_pd_context] table. The execution selected must be in a state of In Progress. |
| activityId | String | Sys_id of the optional activity listed in the
Activities [sys_pd_activity] table. Note: To create an optional activity, it must have
the Start rule set to Manual in
the Activities [sys_pd_activity] table. |
| where | String | Indicates where to place the activity in the
process.
Valid values:
|
| relativeToId | String | ID of the relative lane context in which the optional activity is to run. Listed in the Lane Context [sys_pd_lane_context] table. |
| Type | Description |
|---|---|
| Boolean | Flag that indicates whether the activity was successfully scheduled to run.
Possible values:
|
| Array | If errors, list of one or more error messages.
Message stating Array of 0 or more elements
otherwise.
Possible error messages:
|
The following example shows how to run an optional activity as the final activity in a lane context.
var contextId = '<context_id>';
var optionalActivityId = '<optional_activity_id>';
var where = 'LAST'; // options LAST, NEXT
var relativeToId = '<relative_lane_context_id>'; // relative lane context ID
var response = sn_pad.PDAutomationProvider.addOptionalActivityRelativeToLaneContext(contextId, optionalActivityId, where, relativeToId);
gs.info(JSUtil.describeObject(response));
success: boolean = true
errors: Array of 0 elementsPDAutomationProvider – deactivateProcess(String processDefinitionSysId)
Deactivates a playbook.
| Name | Type | Description |
|---|---|---|
| processDefinitionSysId | String | Sys_id of a playbook. Table: Process Definitions [sys_pd_process_definition] |
| Property | Description |
|---|---|
| Object | Object containing process definition deactivation details. |
| errors | List of errors. Empty if successful. Data type: Array of String(s) |
| process_definition | The deactivated playbook and its properties. Data type: Object |
| process_definition.active | Indicates whether the process definition for the deactivated playbook is active. Find process definitions in the Process Definitions [sys_pd_process_definition] list. Possible values:
Data type: Boolean |
| process_definition.description | Details about your deactivated playbook. Data type: String |
| process_definition.label | The name of the deactivated playbook that users see in the interface. Data type: String |
| process_definition.name | The name for the deactivated playbook in the code. Only used as a request parameter in scripting. Data type: String |
| process_definition.scope | The sys_id of the application scope that your playbook is deactivated for. Data type: String |
| process_definition.status | If the playbook is published, it changes back to a draft. Data type: String |
| state | Indicates whether deactivation was successful. Possible values:
Data type: String |
Deactivate the playbook.
sn_pad.PDAutomationProvider.deactivateProcess('cdd1b85e43000210d96e29c28ab8f275')
Outputs:
{"process_definition":{"scope":"global","name":"test","active":true,"description":"","label":"test","status":"draft"},"state":"SUCCESS"}
PDAutomationProvider – duplicateProcess(String processDefinitionSysId, String label, String description, String scopeId, String triggerTypeId)
Duplicates a playbook.
| Name | Type | Description |
|---|---|---|
| processDefinitionSysId | String | Sys_id of a playbook. Table: Process Definitions [sys_pd_process_definition] |
| label | String | The name of the duplicated playbook. |
| description | String | Optional. Add details about your playbook. |
| scopeId | String | The sys_id of the application scope that you want your playbook to run in. The scoped name is from the Process Definition [sys_pd_process_definition] table in the format scope.name. Entering the sys_id
for the global scope lets your playbook run in any application scope. |
| triggerTypeId | String | The sys_id of the trigger from which to initiate playbook runs. Find the trigger type in the Trigger Type [sys_pd_trigger_type] table and copy its sys_id. |
| Property | Description |
|---|---|
| Object | Object containing process definition duplication details. |
| errors | List of errors. Empty if successful. Data type: Array of String(s) Possible error messages:
|
| processDefinitionSysId | The sys_id of the new playbook in the Process Definitions [sys_pd_process_definition] table. Data type: String |
| state | Indicates whether playbook duplication was successful. Possible values:
Data type: Object |
This example shows how to duplicate a playbook with the sys_id f8ca6192ec210210f8772cbd595eab20. The new playbook is named Playbook 2.0, has an application scope of
Global, and is triggered when a record is created. The Record Create trigger type has a sys_id of ab6951170f1200108c87f4f0ff767e4f.
sn_pad.PDAutomationProvider.duplicateProcess('f8ca6192ec210210f8772cbd595eab20', 'Playbook 2.0', '', 'global', 'ab6951170f1200108c87f4f0ff767e4f');
Output:
{"processDefinitionSysId":"6e4f0b8fece9c210f8772cbd595eabda","state":"SUCCESS"}