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.
Calling scripts with this API requires at least one of the following:
- 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.
See also:
Parent Topic:Server API reference
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: - true: The process definition for the deactivated playbook is active. - false: The process definition for the deactivated playbook is inactive. 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: - draft: The playbook is in draft state. - published: The playbook is in published state. Data type: String |
| state | Indicates whether your request to activate was successful or not.Possible values: - SUCCESS – The playbook was successfully activated. - FAILURE – The ID for the playbook was not found. 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: - AFTER – Execute this activity after the relative activity context. - WITH – Execute the activity at the same time as another relative activity context. |
| 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: - true: Activity is successfully scheduled to run. The output is a string stating `success`. - false: Activity isn't successfully scheduled to run. The output is an array of one or more error messages. 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
|
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));
Output (success):
success: boolean = true
errors: Array of 0 elements
PDAutomationProvider – 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: - LAST – Execute as the final activity in a lane context. - NEXT – Execute in the next activity in a lane context. |
| 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: - true: Activity is successfully scheduled to run. The output is a string stating `success`. - false: Activity isn't successfully scheduled to run. The output is an array of one or more error messages. |
| Array | If errors, list of one or more error messages. Message stating
|
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));
Output (success):
success: boolean = true
errors: Array of 0 elements
PDAutomationProvider – 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: - true: The process definition for the deactivated playbook is active. - false: The process definition for the deactivated playbook is inactive. 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: - SUCCESS – The playbook was successfully deactivated. - FAILURE – The ID for the playbook was not found. 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: - `Scope not found for scopeId: xyz` - `Process definition not found for id: xyz` - `Trigger type not found for triggerTypeId: xyz` |
| 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: - SUCCESS – The playbook was successfully duplicated. - FAILURE – The ID for the playbook, application scope, or trigger was not found. 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"}