PlaybookExperience - スコープ指定
PlaybookExperience API は、Playbook の実行を処理するためのメソッドを提供します。
この API には Playbook Experience Core プラグイン (com.glide.playbook_experience.config) が必要です。この API は sn_playbook 名前空間内で提供されます。
この API では、プロセス定義 [sys_pd_process_definition] テーブルに 1 つ以上の Playbook が必要です。この API を使用するには、Process Automation Designer で実行中のプロセスを表示およびキャンセルするために必要なロールを持っている必要があります。詳細については、「 Process Automation Designer」を参照してください。
PlaybookExperience - cancelPlaybooksByParentRecord(GlideRecord parentRecord, 文字列 cancellationReason, 文字列 scopedName, 文字列 playbookExperienceId)
指定された親レコードに対する Playbook 実行をキャンセルします。
| 名前 | タイプ | 説明 |
|---|---|---|
| parentRecord | GlideRecord | Playbook の実行をキャンセルする親レコード。親レコードは、インタラクションレコードやオンボーディングケースレコードなど、Playbook 実行を含むレコードであればどれにでも設定できます。 |
| cancellationReason | 文字列 | Playbook の実行をキャンセルする理由。 |
| scopedName | 文字列 | オプション。キャンセルする Playbook のスコープ名。スコープ名は、プロセス定義 [sys_pd_process_definition] テーブルから取得した scope.name 形式の名前です。これを指定すると、指定された親レコードに対するこの Playbook の実行のみがキャンセルされます。指定しないと、指定された親レコードに対するすべての Playbook の実行がキャンセルされます。 |
| playbookExperienceId | 文字列 | オプション。キャンセルに使用する Playbook Experience [sys_playbook_experience] テーブルの Playbook Experience レコードの sys_id。カスタムのアクティビティステータスマッピングを定義した場合は、このパラメーターを使用します。「Playbook アクティビティステータスのマッピング」を参照してください。 デフォルト:グローバルの Playbook Experience レコードの sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | キャンセルされた Playbook 実行と、キャンセルできなかったスキップ済み Playbook 実行を含むオブジェクト。 |
| <Object>.canceledPlaybookContext | キャンセルされた Playbook 実行のリスト。それぞれの Playbook 実行はアレイ内のオブジェクトです。 データタイプ:アレイ |
| <Object>.canceledPlaybookContext.can_read | 現在のユーザーが Playbook 実行レコードを読み取ることができるかどうかを示すフラグ。Playbook 実行レコードを読み取ることができるようにするには、現在のユーザーが親レコードへの読み取りアクセス権を持っている必要があります。 有効な値:
データタイプ:ブール |
| <Object>.canceledPlaybookContext.canceled_by | Playbook の実行をキャンセルしたユーザーのユーザー ID。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.cancellation_reason | Playbook の実行をキャンセルしたユーザーによって入力されたキャンセル理由。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.errors | キャンセルエラーのリスト。各エラーはアレイ内のオブジェクトです。 データタイプ:アレイ |
| <Object>.canceledPlaybookContext.errors.message | エラーメッセージ。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.errors.type | エラーのタイプ。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.parent_record | Playbook の実行がキャンセルされた親レコードの sys_id。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.parent_table | 親レコードが含まれているテーブルの名前。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.playbook_id | プロセス定義 [sys_pd_process_definition] テーブルからの Playbook の sys_id。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.playbook_table | Playbook が含まれているテーブルの名前。通常は、プロセス定義 [sys_pd_process_definition] テーブル。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.scoped_name | プロセス定義 [sys_pd_process_definition] テーブルからの Playbook のスコープ対象名。scope.name の形式です。データタイプ:文字列 |
| <Object>.canceledPlaybookContext.state | プロセス実行 [sys_pd_context] テーブルからの Playbook 実行のステータス。 データタイプ:オブジェクト |
| <Object>.canceledPlaybookContext.state.displayValue | Playbook 実行ステータスの表示値。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.state.value | Playbook 実行ステータスの値。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.sys_id | プロセス実行 [sys_pd_context] テーブルからの Playbook 実行の sys_id。 データタイプ:文字列 |
| <Object>.canceledPlaybookContext.title | プロセス実行 [sys_pd_context] テーブルからの Playbook 実行のラベル。 データタイプ:文字列 |
| <Object>.skippedPlaybookContext | スキップされた Playbook 実行のリスト。それぞれの Playbook 実行はアレイ内のオブジェクトです。オブジェクトプロパティの説明については、canceledPlaybookContext アレイを参照してください。 データタイプ:アレイ |
この例では、指定されたインタラクションレコードの特定の Playbook (ここでは Playbook Experience デモ) のすべての実行をキャンセルする方法を示します。このメソッドを UI アクションまたはビジネスルールで使用するには、現在のオブジェクトを parentRecord として渡します。
var parentRecord = new GlideRecordUtil().getGR("interaction", "d91742531b343010a26c98a1b24bcbe0");
var cancellationReason = "Cancelling this playbook";
// demo playbook from Process Automation Experience Demo store app
var scopedName = "sn_pad_demo.playbook_experience_demo";
// demo playbook experience from Process Automation Experience Demo store app
var playbookExperienceId = "a56d8d93ff311010cc0853ea793bf1a6";
var cancelPlaybookReturn = sn_playbook.PlaybookExperience.cancelPlaybooksByParentRecord(parentRecord, cancellationReason, scopedName, playbookExperienceId);
gs.info(JSON.stringify(cancelPlaybookReturn, null, 2));
出力:
{
"canceledPlaybookContext": [
{
"can_read": true,
"sys_id": "d02782533d343010ac50ee17e75d3466",
"scoped_name": "sn_pad_demo.playbook_experience_demo",
"canceled_by": "admin",
"playbook_table": "sys_pd_process_definition",
"state": {
"displayValue": "Pending Cancel",
"value": "PENDING_CANCEL"
},
"title": "Playbook Experience Demo",
"parent_record": "d91742531b343010a26c98a1b24bcbe0",
"playbook_id": "0d35ee1807301010cc08d9630ad3002a",
"cancellation_reason": "Cancelling this playbook",
"parent_table": "interaction",
"errors": []
}
],
"skippedPlaybookContext": []
}
PlaybookExperience:getPlaybooksForParentRecord(GlideRecord parentRecord)
指定された親レコードに対する Playbook 実行のリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| parentRecord | GlideRecord | Playbook の実行を取得する対象の親レコード。親レコードは、インタラクションレコードやオンボーディングケースレコードなど、Playbook 実行を含められるレコードであればどれにでも設定できます。 |
| タイプ | 説明 |
|---|---|
| アレイ | 親レコードに対する Playbook 実行のリスト。それぞれの Playbook 実行はアレイ内のオブジェクトです。 |
| <Array>.can_read | 現在のユーザーが Playbook 実行レコードを読み取ることができるかどうかを示すフラグ。Playbook 実行レコードを読み取ることができるようにするには、現在のユーザーが親レコードへの読み取りアクセス権を持っている必要があります。 有効な値:
データタイプ:ブール |
| <Array>.canceled_by | Playbook の実行をキャンセルしたユーザーのユーザー ID。Playbook がキャンセルされていない場合は空です。 データタイプ:文字列 |
| <Array>.cancellation_reason | Playbook の実行をキャンセルしたユーザーによって入力されたキャンセル理由。Playbook がキャンセルされていない場合は空です。 データタイプ:文字列 |
| <Array>.errors | エラーのリスト。各エラーはアレイ内のオブジェクトです。 データタイプ:アレイ |
| <Array>.errors.message | エラーメッセージ。 データタイプ:文字列 |
| <Array>.errors.type | エラーのタイプ。 データタイプ:文字列 |
| <Array>.parent_record | 親レコードの sys_id。 データタイプ:文字列 |
| <Array>.parent_table | 親レコードが含まれているテーブルの名前。 データタイプ:文字列 |
| <Array>.playbook_id | プロセス定義 [sys_pd_process_definition] テーブルからの Playbook の sys_id。 データタイプ:文字列 |
| <Array>.playbook_table | Playbook が含まれているテーブルの名前。通常は、プロセス定義 [sys_pd_process_definition] テーブル。 データタイプ:文字列 |
| <Array>.scoped_name | プロセス定義 [sys_pd_process_definition] テーブルからの Playbook のスコープ対象名。scope.name の形式です。データタイプ:文字列 |
| <Array>.state | プロセス実行 [sys_pd_context] テーブルからの Playbook 実行のステータス。 データタイプ:オブジェクト |
| <Array>.state.displayValue | Playbook 実行ステータスの表示値。 データタイプ:文字列 |
| <Array>.state.value | Playbook 実行ステータスの値。 データタイプ:文字列 |
| <Array>.sys_id | プロセス実行 [sys_pd_context] テーブルからの Playbook 実行の sys_id。 データタイプ:文字列 |
| <Array>.title | プロセス実行 [sys_pd_context] テーブルからの Playbook 実行のラベル。 データタイプ:文字列 |
この例は、指定されたインタラクションレコードに対する Playbook 実行を取得する方法を示しています。このメソッドを UI アクションまたはビジネスルールで使用するには、現在のオブジェクトを parentRecord として渡します。
var parentRecord = new GlideRecordUtil().getGR("interaction", "148776e5818d7410f87701eb89fdc824");
var playbook = sn_playbook.PlaybookExperience.getPlaybooksForParentRecord(parentRecord);
gs.info(JSON.stringify(playbook, null, 2));
出力:
[
{
"can_read": true,
"sys_id": "bd87bae50b8d7410807a8ffed6d0909e",
"scoped_name": "sn_pad_demo.playbook_experience_demo",
"canceled_by": "",
"playbook_table": "sys_pd_process_definition",
"state": {
"displayValue": "In Progress",
"value": "IN_PROGRESS"
},
"title": "Playbook Experience Demo",
"parent_record": "148776e5818d7410f87701eb89fdc824",
"playbook_id": "0d35ee1807301010cc08d9630ad3002a",
"cancellation_reason": "",
"parent_table": "interaction",
"errors": []
}
]
PlaybookExperience - parentRecordContainsPlaybook(GlideRecord parentRecord, 文字列 scopedName)
親レコードに Playbook 実行があるかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| parentRecord | GlideRecord | Playbook 実行を確認する対象の親レコード。親レコードは、インタラクションレコードやオンボーディングケースレコードなど、Playbook 実行を含められるレコードであればどれにでも設定できます。 |
| scopedName | 文字列 | オプション。確認する Playbook のスコープ名。スコープ名は、プロセス定義 [sys_pd_process_definition] テーブルから取得した scope.name 形式の名前です。これを指定すると、この Playbook の実行のみが確認されます。これを指定すると、すべての Playbook の実行が確認されます。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 親レコードに Playbook 実行があるかどうかを示すフラグ。 有効な値:
|
この例では、指定されたインタラクションレコードに特定の Playbook (ここでは Playbook Experience デモ) の実行があるかどうかを確認する方法を示します。このメソッドを UI アクションまたはビジネスルールで使用するには、現在のオブジェクトを parentRecord として渡します。
var parentRecord = new GlideRecordUtil().getGR("interaction", "148776e5818d7410f87701eb89fdc824");
// demo playbook from Process Automation Experience Demo store app
var scopedName = "sn_pad_demo.playbook_experience_demo";
var hasPlaybooks = sn_playbook.PlaybookExperience.parentRecordContainsPlaybook(parentRecord, scopedName);
gs.info(hasPlaybooks);
出力:
true
PlaybookExperience - triggerPlaybook(文字列 scopedName, GlideRecord parentRecord)
親レコードの Playbook を開始します。
| 名前 | タイプ | 説明 |
|---|---|---|
| scopedName | 文字列 | 開始する Playbook のスコープ名。スコープ名は、プロセス定義 [sys_pd_process_definition] テーブルから取得した scope.name 形式の名前です。 |
| parentRecord | GlideRecord | 開始する Playbook の親レコード。親レコードは、インタラクションレコードやオンボーディングケースレコードなど、Playbook 実行を含められるレコードであればどれにでも設定できます。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 親レコードに対して作成されたプロセス実行 [sys_pd_context] テーブルからの Playbook 実行の sys_id。Playbook 実行が正常に作成されなかった場合は null です。 |
この例は、指定されたインタラクションレコードに対して Playbook を開始する方法を示しています。このメソッドを UI アクションまたはビジネスルールで使用するには、現在のオブジェクトを parentRecord として渡します。
var parentRecord = new GlideRecordUtil().getGR("interaction", "148776e5818d7410f87701eb89fdc824");
// demo playbook from Process Automation Experience Demo store app
var scopedName = "sn_pad_demo.playbook_experience_demo";
var playbookExecution = sn_playbook.PlaybookExperience.triggerPlaybook(scopedName, parentRecord);
gs.info(playbookExecution);
出力:
f059958267cdb410952864f0fed358cc