プレイブックエクスペリエンス :スコープ対象

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:27分
  • 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 実行をキャンセルします。

    表 : 1. パラメーター
    名前 タイプ 説明
    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。

    表 : 2. 返される内容
    タイプ 説明
    オブジェクト キャンセルされた Playbook 実行と、キャンセルできなかったスキップ済み Playbook 実行を含むオブジェクト。
    {
      "canceledPlaybookContext": [Array],
      "skippedPlaybookContext": [Array]
    }
    
    <Object>.canceledPlaybookContext キャンセルされた Playbook 実行のリスト。それぞれの Playbook 実行はアレイ内のオブジェクトです。

    データタイプ:アレイ

    "canceledPlaybookContext": [
        {
          "can_read": Boolean,
          "canceled_by": "String",
          "cancellation_reason": "String",
          "errors": [Array],
          "parent_record": "String",
          "parent_table": "String",
          "playbook_id": "String",
          "playbook_table": "String",
          "scoped_name": "String",
          "state": {Object},
          "sys_id": "String",
          "title": "String"   
        }
    ]
    <Object>.canceledPlaybookContext.can_read

    現在のユーザーが Playbook 実行レコードを読み取ることができるかどうかを示すフラグ。Playbook 実行レコードを読み取ることができるようにするには、現在のユーザーが親レコードへの読み取りアクセス権を持っている必要があります。

    有効な値:
    • true:現在のユーザーは Playbook 実行レコードへの読み取りアクセス権を持っています。
    • false:現在のユーザーは Playbook 実行レコードへの読み取りアクセス権を持っていません。

    データタイプ:ブール

    <Object>.canceledPlaybookContext.canceled_by Playbook の実行をキャンセルしたユーザーのユーザー ID

    データタイプ:文字列

    <Object>.canceledPlaybookContext.cancellation_reason Playbook の実行をキャンセルしたユーザーによって入力されたキャンセル理由。

    データタイプ:文字列

    <Object>.canceledPlaybookContext.errors キャンセルエラーのリスト。各エラーはアレイ内のオブジェクトです。

    データタイプ:アレイ

    "errors": [
        {      
          "message": "String",
          "type": "String"  
        }
    ]
    <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 実行のステータス。

    データタイプ:オブジェクト

    "state": {    
       "displayValue": "String",    
       "value": "String"
    }
    <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 アレイを参照してください。

    データタイプ:アレイ

    "skippedPlaybookContext": [
        {
          "can_read": Boolean,
          "canceled_by": "String",
          "cancellation_reason": "String",
          "errors": [Array],
          "parent_record": "String",
          "parent_table": "String",
          "playbook_id": "String",
          "playbook_table": "String",
          "scoped_name": "String",
          "state": {Object},
          "sys_id": "String",
          "title": "String"   
        }
    ]

    この例では、指定されたインタラクションレコードの特定の 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 実行のリストを取得します。

    表 : 3. パラメーター
    名前 タイプ 説明
    parentRecord GlideRecord Playbook の実行を取得する対象の親レコード。親レコードは、インタラクションレコードやオンボーディングケースレコードなど、Playbook 実行を含められるレコードであればどれにでも設定できます。
    表 : 4. 返される内容
    タイプ 説明
    アレイ 親レコードに対する Playbook 実行のリスト。それぞれの Playbook 実行はアレイ内のオブジェクトです。
    [
        {
          "can_read": Boolean,
          "canceled_by": "String",
          "cancellation_reason": "String",
          "errors": [Array],
          "parent_record": "String",
          "parent_table": "String",
          "playbook_id": "String",
          "playbook_table": "String",
          "scoped_name": "String",
          "state": {Object},
          "sys_id": "String",
          "title": "String"   
        }
    ]
    <Array>.can_read

    現在のユーザーが Playbook 実行レコードを読み取ることができるかどうかを示すフラグ。Playbook 実行レコードを読み取ることができるようにするには、現在のユーザーが親レコードへの読み取りアクセス権を持っている必要があります。

    有効な値:
    • true:現在のユーザーは Playbook 実行レコードへの読み取りアクセス権を持っています。
    • false:現在のユーザーは Playbook 実行レコードへの読み取りアクセス権を持っていません。

    データタイプ:ブール

    <Array>.canceled_by Playbook の実行をキャンセルしたユーザーのユーザー ID。Playbook がキャンセルされていない場合は空です。

    データタイプ:文字列

    <Array>.cancellation_reason Playbook の実行をキャンセルしたユーザーによって入力されたキャンセル理由。Playbook がキャンセルされていない場合は空です。

    データタイプ:文字列

    <Array>.errors エラーのリスト。各エラーはアレイ内のオブジェクトです。

    データタイプ:アレイ

    "errors": [
        {      
          "message": "String",
          "type": "String"  
        }
    ]
    <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 実行のステータス。

    データタイプ:オブジェクト

    "state": {    
       "displayValue": "String",    
       "value": "String"
    }
    <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 実行があるかどうかを確認します。

    表 : 5. パラメーター
    名前 タイプ 説明
    parentRecord GlideRecord Playbook 実行を確認する対象の親レコード。親レコードは、インタラクションレコードやオンボーディングケースレコードなど、Playbook 実行を含められるレコードであればどれにでも設定できます。
    scopedName 文字列 オプション。確認する Playbook のスコープ名。スコープ名は、プロセス定義 [sys_pd_process_definition] テーブルから取得した scope.name 形式の名前です。これを指定すると、この Playbook の実行のみが確認されます。これを指定すると、すべての Playbook の実行が確認されます。
    表 : 6. 返される内容
    タイプ 説明
    ブーリアン

    親レコードに Playbook 実行があるかどうかを示すフラグ。

    有効な値:
    • true:親レコードに Playbook 実行がある。
    • false:親レコードに 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)

    実行を最初から (プレイブック全体) またはプレイブックの特定のステージまたはアクティビティから再開します。

    注:
    [In Progress (進行中)]、[Queued (キューに格納)]、または [Pending Cancel (保留中のキャンセル)] ステータスのプレイブックのみを再開できます。
    表 : 7. パラメーター
    名前 タイプ 説明
    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]

    表 : 8. 戻り値
    プロパティ 説明
    オブジェクト 再起動されたプレイブック実行の詳細を含むオブジェクト。
    {
     "can_add_activity": Boolean,
     "can_cancel": Boolean,
     "can_read": Boolean
     "can_restart": Boolean,
     "canceled_by": "String",
     "cancellation_reason": "String",
     "errors": [Array]
     "is_archived": Boolean
     "parent_record": "String",
     "parent_table": "String",
     "playbook_id": "String",
     "playbook_table": "String",
     "scoped_name": "String",
     "state": {Object},
     "sys_id": "String",
     "title": "String",
    }
    can_add_activity ユーザーがプレイブックにオプションのアクティビティを追加できるかどうかを示すフラグ。
    有効な値:
    • true:現在のユーザーは、オプションのアクティビティをプレイブックに追加できます。
    • false:現在のユーザーは、プレイブックにオプションのアクティビティを追加できません。

    データタイプ:ブーリアン

    can_cancel ユーザーがプレイブックをキャンセルできるかどうかを示すフラグ。
    • true:非アクティブ化されたプレイブックのプロセス定義がアクティブです。
    • false:非アクティブ化されたプレイブックのプロセス定義は非アクティブです。

    データタイプ:ブーリアン

    can_read 現在のユーザーが Playbook 実行レコードを読み取ることができるかどうかを示すフラグ。Playbook 実行レコードを読み取ることができるようにするには、現在のユーザーが親レコードへの読み取りアクセス権を持っている必要があります。
    • true:現在のユーザーは Playbook 実行レコードへの読み取りアクセス権を持っています。
    • false:現在のユーザーは Playbook 実行レコードへの読み取りアクセス権を持っていません。

    データタイプ:ブーリアン

    can_restart ユーザーがプレイブック、ステージ、またはアクティビティを再開できるかどうかを示すフラグ。
    • true:現在のユーザーは、プレイブック、ステージ、またはアクティビティを再開できます。
    • false:現在のユーザーは、プレイブック、ステージ、またはアクティビティを再起動できません。

    データタイプ:ブーリアン

    canceled_by プレイブックの実行をキャンセルしたユーザーのユーザー ID

    データタイプ:文字列

    cancellation_reason プレイブックの実行をキャンセルしたユーザーが入力したキャンセル理由。

    データタイプ:文字列

    エラー 再起動エラーのリスト。各エラーはアレイ内のオブジェクトです。

    データタイプ:アレイ

    "errors": [
     {      
      "message": "String",
      "type": "String"  
     }
    ]
    is_archived プレイブックコンテキストレコードをアーカイブするかどうかを示すフラグ。
    可能な値:
    • true:プレイブックコンテキストレコードがアーカイブされます。
    • false:プレイブックコンテキストレコードはアーカイブされません。

    データタイプ:ブーリアン

    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 形式の名前です。指定した場合、指定された親レコードに対してこのプレイブックの実行のみが再開されます。指定しない場合、指定された親レコードのすべてのプレイブックの実行が再開されます。

    データタイプ:文字列

    状況 アクティブ化の要求が成功したかどうかを示します。

    データタイプ: オブジェクト

    可能な値:
    • 成功:プレイブックが正常にアクティブ化されました。
    • エラー:プレイブックの ID が見つかりませんでした。
    "state": [
        {      
          "displayValue": "String",
          "value": "String"  
        }
    ]
    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 を開始します。

    表 : 9. パラメーター
    名前 タイプ 説明
    scopedName 文字列 開始する Playbook のスコープ名。スコープ名は、プロセス定義 [sys_pd_process_definition] テーブルから取得した scope.name 形式の名前です。
    parentRecord GlideRecord 開始する Playbook の親レコード。親レコードは、インタラクションレコードやオンボーディングケースレコードなど、Playbook 実行を含められるレコードであればどれにでも設定できます。
    表 : 10. 返される内容
    タイプ 説明
    文字列 親レコードに対して作成されたプロセス実行 [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