RemedialActionEngine - スコープ指定

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:15分
  • RemedialActionEngine API には、修復アクションを操作するためのメソッドが用意されています。

    この API は修復アクションフレームワークの一部であり、次のアクションを実行するために使用できます。
    • 修復アクションを開始します。
    • 修復アクションの実行をトリガーします。
    • 修復アクションを実行するログインユーザーの権限を確認します。
    • ターゲットレコードに対する修復アクションの適用性を確認します。
    • ターゲットアクションの現在の実行ステータスと出力ペイロードを取得します。

    この API には修復アクションフレームワーク (com.snc.sn_reacf) ストアアプリケーションが必要であり、 sn_reacf 名前空間内で提供されます。

    RemedialActionEngine - beginRemediation (文字列 remedialAction, 文字列 parentTable, 文字列 parentRecord, オブジェクト actionParams, 文字列 targetRecord, 文字列 originRecord)

    ターゲットレコードに対して親レコードから修復アクションを開始します。このメソッドは、「準備完了」ステータスで新しい修復アクション実行レコードを作成します。

    注:
    要求パラメーターを定義するときは、次の点に注意してください。
    • パラメーターの型がオブジェクトまたは配列の場合は、各プロパティとその型を定義します。
    • パラメータータイプが GlideRecord の場合は、関連するテーブルを要求に含めます。
    表 : 1. パラメーター
    名前 タイプ 説明
    修復アクション 文字列または GlideRecord femedial action [sn_reacf_remedial_action] テーブルの Sys_id または internal_name または GlideRecord。
    parentTable 文字列 親レコードのテーブル名。
    parentRecord 文字列 親レコードの sys_id。
    actionParams オブジェクト

    オプション。修復アクションパラメーターの名前と値のマップ。

    {
        “<parameter name>”: <parameter value>
    }
    注:
    パラメーター値は、修復アクションパラメーター [sn_reacf_remedial_action_parameter] テーブルで定義されたタイプである必要があります。
    targetRecord 文字列または GlideRecord オプション。設定されたターゲットテーブルの Sys_id または GlideRecord。
    originRecord 文字列または GlideRecord オプション。修復アクション作成元 [sn_reacf_remedial_action_origin] テーブルの Sys_id または GlideRecord。
    表 : 2. 返される内容
    タイプ 説明
    オブジェクト
    {
        "statusCode": "String",
        "actionExecutionRequestId": "String",
        "parentRecord": "String",
        "parentTable": "String"
    }
    <Object>.statusCode 修復アクション実行要求のステータスコード (成功、duplicate_request、失敗)
    <Object>.actionExecutionRequestId 新しい修復アクション実行レコードまたは重複する同時修復アクション実行レコードのSys_id
    <Object>.parentRecord 重複する同時修復アクション実行レコードの親レコードのSys_id。
    <Object>.parentTable 重複する同時修復アクション実行レコードの親レコードのテーブル名。

    次の例は、修復アクションを開始する方法を示しています。ここで、修復アクションは CI アクションを内部的に使用して CI のプロセスを強制終了します。

    var remedialAction = "9ef9924c436521101a24ff53e9b8f2d2" //sys_id of the Action
    var parentTable = "incident"; //table name of the Parent record
    var parentRecord = "62733787871e25105763ec6d0ebb3579" //sys_id of the Parent record
    var actionParams = {
        process_id: "322113"
    }
    var targetRecord = "af57a3418775e5105763ec6d0ebb356d"; //sys_id of the Target record
    var originRecord = "26e78022c3d525104f1a722e3f40dd99"; //sys_id of the Origin record
    
    var remedialActionEngine = new sn_reacf.RemedialActionEngine();
    var response = remedialActionEngine.beginRemediation(remedialAction, parentTable, parentRecord, actionParams, targetRecord, originRecord);
     
    gs.info(JSON.stringify(response));
    

    出力オブジェクト:

    Case 1 :successful : 
    {
      ‘statusCode’: ‘successful’,
      ‘actionExecutionRequestId: ‘979b6060a5954300964fa3aa92874155’
    
    }
    
    Case 2 :Duplicate : 
    {
      ‘statusCode’: ‘duplicate_request,
      ‘actionExecutionRequestId’: ‘552c48888c033300964f4932b03eb092’,
      ‘parentRecord’ : ‘1a14620f973be110539e35d11153afc8’,
      ‘parentTable’: ‘incident’
    
    }
    
    Case 3 : Failed 
    {
      ‘statusCode’: ‘failed,
    }
    

    RemedialActionEngine - canCancel(文字列 remedialActionExecution)

    このメソッドは、現在のユーザーが指定された修復アクションの実行をキャンセルできるかどうかを確認するために使用されます。

    注:
    要求パラメーターを定義するときは、次の点に注意してください。
    • パラメーターの型がオブジェクトまたは配列の場合は、各プロパティとその型を定義します。
    • パラメータータイプが GlideRecord の場合は、関連するテーブルを要求に含めます。
    表 : 3. パラメーター
    名前 タイプ 説明
    修復アクション実行 文字列または GlideRecord 修復アクション実行 [sn_reacf_remedial_action_execution] テーブルの Sys_id または GlideRecord。
    表 : 4. 返される内容
    タイプ 説明
    ブール

    修復アクション実行要求をキャンセルできるかどうかを示すフラグ。

    有効な値:
    • true:指定された修復アクション実行要求をキャンセルできます。
    • false:指定された修復アクション実行要求をキャンセルできません。

    次の例は、現在のユーザーが現在のステータスで修復アクションの実行をキャンセルできるかどうかを検証する方法を示しています。

    var remedialActionExecutionId = "9ef9924c436521101a24ff53e9b8f2d2" //sys_id of sn_reacf_remedia_action_execution record
    
    var remedialActionEngine = new sn_reacf.RemedialActionEngine();
    var canCancel = remedialActionEngine.canCancel(remedialActionExecutionId)
    
    gs.info("canCancel: " + canCancel);
    

    出力:

    canCancel: true

    RemedialActionEngine - cancelExecution(文字列 remedialActionExecution)

    修復アクション実行要求をキャンセルし、実行レコードを「キャンセル」ステータスに更新して、成功した場合は true を返します。

    注:
    要求パラメーターを定義するときは、次の点に注意してください。
    • パラメーターの型がオブジェクトまたは配列の場合は、各プロパティとその型を定義します。
    • パラメータータイプが GlideRecord の場合は、関連するテーブルを要求に含めます。
    表 : 5. パラメーター
    名前 タイプ 説明
    修復アクション実行 文字列または GlideRecord 修復アクション実行 [sn_reacf_remedial_action_execution] テーブルの Sys_id または GlideRecord。
    表 : 6. 返される内容
    タイプ 説明
    ブール

    修復アクション実行要求をキャンセルできるかどうかを示すフラグ。

    有効な値:
    • true:指定された修復アクション実行要求が正常にキャンセルされました。ステータスが true の場合、実行レコードのステータスが [キャンセル] に更新されます。
    • false:指定された修復アクション実行要求は正常にキャンセルされませんでした。

    次の例は、修復アクションの実行を現在の状態からキャンセルする方法を示しています。

    var remedialActionExecutionId = "9ef9924c436521101a24ff53e9b8f2d2" //sys_id of sn_reacf_remedia_action_execution record
    
    var remedialActionEngine = new sn_reacf.RemedialActionEngine();
    var cancelExecution = remedialActionEngine.cancelExecution(remedialActionExecutionId)
    
    gs.info(‘cancelExecution: ’ + cancelExecution);

    出力:

    cancelExecution : true

    RemedialActionEngine - executeRemedialAction (文字列 remedialActionExecution)

    開始され、現在準備完了ステータスになっている修復アクションの実行をトリガーします。このメソッドは、ターゲットアクション (CI アクションなど) を開始し、修復アクションの実行ステータスを [対応中] に移行します。

    表 : 7. パラメーター
    名前 タイプ 説明
    修復アクション実行 文字列または GlideRecord 修復アクション実行 [sn_reacf_remedial_action_execution] テーブルの Sys_id または GlideRecord。
    表 : 8. 返される内容
    タイプ 説明
    オブジェクト

    オブジェクトには、修復アクション実行のaction_execution_tableとaction_execution_idが含まれています。

    {
       “action_execution_table”: “String”,
       “action_execution_id”: “Sys_id”
    }
    

    次の例は、修復アクションを実行する方法を示しています。

    var remedialActionExecution = "8ed58be387d2a5100295ebd73cbb35a3"; //Sys_id of the Remedial Action Execution record 
     
    var remedialActionEngine = new sn_reacf.RemedialActionEngine(); 
    var response = remedialActionEngine.executeRemedialAction(remedialActionExecution); 
    gs.info("Response: " + JSON.stringify(response, null, 2));

    出力:

    { 
      "action_execution_table": "sn_cimaf_action_request", 
      "action_execution_id": "2d7843a787d2a5100295ebd73cbb35d4" 
    }

    RemedialActionEngine - getRemedialActionOutput (文字列 remedialActionExecution)

    ターゲットアクションの現在の実行ステータスと出力ペイロードを取得します。

    表 : 9. パラメーター
    名前 タイプ 説明
    修復アクション実行 文字列または GlideRecord 修復アクション実行 [sn_reacf_remedial_action_execution] テーブルの Sys_id または GlideRecord。
    表 : 10. 返される内容
    タイプ 説明
    オブジェクト

    オブジェクトには、ターゲットアクションステータスの値と表示値を持つステータスオブジェクトと、修復アクション実行の一部として実行されるターゲットアクション出力を持つペイロードアレイが含まれています。

    データタイプ:文字列

    {
      "status": {
        "value": "completed",
        "displayValue": "Completed"
      },
      "payload": [
        "{\"output\":\"SUCCESS: The process with PID 19604 has been terminated.\\r\\n\",\"cmd\":\"taskkill /pid 19604 /f\"}"
      ]
    }

    次の例は、ターゲットアクションの現在の実行ステータスと出力ペイロードを取得する方法を示しています。

    var remedialActionExecution = "8ed58be387d2a5100295ebd73cbb35a3"; //sys_id of the Remedial Action Execution record
    
    var remedialActionEngine = new sn_reacf.RemedialActionEngine();
    var response = remedialActionEngine.getRemedialActionOutput(remedialActionExecution);
    
    gs.info("Response: " + JSON.stringify(response, null, 2));
    

    出力:

    {
      "status": {
        "value": "completed",
        "displayValue": "Completed"
      },
      "payload": [
        "{\"output\":\"SUCCESS: The process with PID 19604 has been terminated.\\r\\n\",\"cmd\":\"taskkill /pid 19604 /f\"}"
      ]
    }

    RemedialActionEngine - isApplicable (文字列 remedialAction, 文字列 targetRecord)

    ターゲットレコードに対する修復アクションの適用性を確認します。

    表 : 11. パラメーター
    名前 タイプ 説明
    修復アクション 文字列または GlideRecord 修復アクション [sn_reacf_remedial_action] テーブルの Sys_id、internal_name、または GlideRecord。
    targetRecord 文字列または GlideRecord 設定されたターゲットテーブルの Sys_id または GlideRecord。
    表 : 12. 返される内容
    タイプ 説明
    ブール
    修復アクションに対するターゲットレコードの適用性を示すフラグ。
    • true:修復アクションは指定されたターゲットレコードに適用できます。
    • false:修復アクションは指定されたターゲットレコードに適用できません。

    次の例は、ターゲットレコードに対する修復アクションの適用性を確認する方法を示しています。

    var remedialAction = "9ef9924c436521101a24ff53e9b8f2d2"; //Sys_id of the Remedial Action Execution record 
    var targetRecord = "df3799a387a921100295ebd73cbb35c4"; //Sys_id of the Target Record 
     
    var remedialActionEngine = new sn_reacf.RemedialActionEngine(); 
    var isApplicable = remedialActionEngine.isApplicable(remedialAction, targetRecord); 
    gs.info("Is applicable: " + isApplicable);

    出力:

    Is applicable: true

    RemedialActionEngine - isAuthorized(文字列 remedialAction)

    ユーザーに修復アクションの実行権限があるかどうかを確認します。

    表 : 13. パラメーター
    名前 タイプ 説明
    修復アクション 文字列または GlideRecord 修復アクション [sn_reacf_remedial_action] テーブルの Sys_id、internal_name、または GlideRecord。
    表 : 14. 返される内容
    タイプ 説明
    ブール

    ユーザーの認可の結果の成功ステータスを示すフラグ。

    • true:ユーザーの認証が成功しました。
    • false:ユーザーの認証に失敗しました。

    次の例は、修復アクションを実行するための承認を確認する方法を示しています。

    var actionSysId = "e62f550843e121101a24ff53e9b8f23b"; //Sys_id of the Action 
     
    var remedialActionEngine = new sn_reacf.RemedialActionEngine(); 
    var isAuthorized = remedialActionEngine.isAuthorized(actionSysId); 
    gs.info("Is user authorized: " + isAuthorized);

    出力:

    Is user authorized: true