プレイブックエクスペリエンス :スコープ対象
PlaybookExperience API は、プレイブックの実行を処理するためのメソッドを提供します。
この API にはプレイブックエクスペリエンスコアプラグイン (com.glide.playbook_experience.config) が必要であり、 sn_playbook 名前空間内で提供されます。
この API では、プロセス定義 [sys_pd_process_definition] テーブルに 1 つ以上の Playbook が必要です。この API を使用するには、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 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 - restartPlaybook(String playbookContextId, String laneContextId, String activityContextId, String playbookExperienceId)
実行を最初から (プレイブック全体) またはプレイブックの特定のステージまたはアクティビティから再開します。
| 名前 | タイプ | 説明 |
|---|---|---|
| playbookContextId | 文字列 | 再起動するプレイブック実行または実行のプレイブックコンテキストレコードのSys_id。 テーブル:プロセス実行 [sys_pd_context] |
| laneContextId | 文字列 | オプション。再起動するステージの実行または実行のステージコンテキストレコードのsys_id。 注: 完了したステージのみ再起動できます。 テーブル:レーン実行 [sys_pd_lane_context] |
| activityContextId | 文字列 | オプション。再起動するアクティビティの実行または実行のアクティビティコンテキストレコードのsys_id。 注: 完了したアクティビティのみ再起動できます。 テーブル:アクティビティの実行 [sys_pd_activity_context] |
| playbookExperienceId | 文字列 | オプション。再起動された実行に使用するプレイブックエクスペリエンスのsys_id。カスタムアクティビティ状況マッピングを定義している場合は、このパラメーターを使用します。「プレイブックアクティビティのステータスマッピング」を参照してください。 デフォルト:グローバルプレイブックエクスペリエンス テーブル:プレイブックエクスペリエンス [sys_playbook_experience] |
| プロパティ | 説明 |
|---|---|
| オブジェクト | 再起動されたプレイブック実行の詳細を含むオブジェクト。 |
| can_add_activity | ユーザーがプレイブックにオプションのアクティビティを追加できるかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン |
| can_cancel | ユーザーがプレイブックをキャンセルできるかどうかを示すフラグ。
データタイプ:ブーリアン |
| can_read | 現在のユーザーが Playbook 実行レコードを読み取ることができるかどうかを示すフラグ。Playbook 実行レコードを読み取ることができるようにするには、現在のユーザーが親レコードへの読み取りアクセス権を持っている必要があります。
データタイプ:ブーリアン |
| can_restart | ユーザーがプレイブック、ステージ、またはアクティビティを再開できるかどうかを示すフラグ。
データタイプ:ブーリアン |
| canceled_by | プレイブックの実行をキャンセルしたユーザーのユーザー ID。 データタイプ:文字列 |
| cancellation_reason | プレイブックの実行をキャンセルしたユーザーが入力したキャンセル理由。 データタイプ:文字列 |
| エラー | 再起動エラーのリスト。各エラーはアレイ内のオブジェクトです。 データタイプ:アレイ |
| is_archived | プレイブックコンテキストレコードをアーカイブするかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| parent_record | プレイブックの実行が再開された親レコードのSys_id。 データタイプ:文字列 |
| parent_table | 親レコードの取得元テーブルの名前。 データタイプ:文字列 |
| playbook_id | プレイブックのSys_id。 データタイプ:文字列 テーブル:プロセス定義 [sys_pd_process_definition] |
| playbook_table | プレイブックの取得元テーブルの名前 (通常はプロセス定義 [sys_pd_process_definition] テーブル)。 データタイプ:文字列 |
| scoped_name | オプション。再起動するプレイブックのスコープ名。スコープ名は、プロセス定義 [sys_pd_process_definition] テーブルから取得した scope.name 形式の名前です。指定した場合、指定された親レコードに対してこのプレイブックの実行のみが再開されます。指定しない場合、指定された親レコードのすべてのプレイブックの実行が再開されます。データタイプ:文字列 |
| 状況 | アクティブ化の要求が成功したかどうかを示します。 データタイプ: オブジェクト 可能な値:
|
| state.displayValue | プレイブック実行ステータスの表示値。 データタイプ:文字列 |
| state.value | プレイブック実行ステータスの値。 データタイプ:文字列 |
| sys_id | プレイブック実行のSys_id。 データタイプ:文字列 テーブル:プロセス実行 [sys_pd_context] |
| title | プレイブック実行のラベル。 データタイプ:文字列 テーブル:プロセス実行 [sys_pd_context] |
この例では、プロセス実行 [sys_pd_context] レコード ID 98e4fe04591b4caca59583f7b8e30b0a を使用してプレイブックの実行全体を再起動する方法を示します。
var gr = new GlideRecord('sys_pd_context');
var found = gr.get('98e4fe04591b4caca59583f7b8e30b0a');
if (found) {
var result = sn_playbook.PlaybookExperience.restartPlaybook(gr);
gs.info(JSON.stringify(result));
}
else
gs.info('invalid pd context');
出力:
{
"scoped_name": "global.restart_scriptable_demo",
"canceled_by": "",
"can_add_activity": true,
"playbook_table": "sys_pd_process_definition",
"can_restart": true,
"can_cancel": true,
"title": "Restart scriptable demo",
"cancellation_reason": "",
"parent_table": "interaction",
"can_read": true,
"sys_id": "98e4fe04591b4caca59583f7b8e30b0a",
"is_archived": false,
"state": {
"displayValue": "In Progress",
"value": "IN_PROGRESS"
},
"parent_record": "b88623beb5e10210f877d783f6f83a46",
"playbook_id": "12d5a7fab5e10210f877d783f6f83aff",
"errors": []
}
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