StateManagementScriptableApi - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:14分
  • StateManagementScriptableApi は、構成アイテム (CI) の運用状況を操作し、CI アクションを適用するための一連のメソッドを提供します。

    StateManagementScriptableApi メソッドは、許可されていない CI アクション、互換性のある CI アクション、および許可されていない運用上の移行によって指定された制限と許可に準拠します。メソッドが制限付き操作を実行しようとすると、操作はブロックされ、エラーが記録され、必要に応じてタスクが作成されます。

    StateManagementScriptableApi メソッドは静的メソッドです。SNC を使用してメソッドにアクセスします 。StateManagementScriptableApi グローバルオブジェクト。

    StateManagementScriptableApi - addBulkCIAction(文字列 requestorId, 文字列 sysIdList, 文字列 ciActionName, 文字列 ciActionListOld, 文字列 leaseTime)

    CI アクションを CI のリストに追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストのsys_id、または registerOperator() メソッドから返された GUID。
    sysIdList 文字列 CI sys_idsのカンマ区切りリスト。
    ciActionName 文字列 CI アクション名。
    ciActionListOld 文字列 (オプション)すべての CI を含める必要がある古い CI アクションのカンマ区切りリスト。
    leaseTime 文字列 (オプション)指定された CI アクションに対してリースが有効な期間。「HH:MM:SS」形式で表されます。
    表 : 2. 戻り値
    タイプ 説明
    文字列 の名前と値のペアを含む JSON 形式の文字列
    • 結果:リスト内のすべての CI に対してアクションが設定されている場合は true。それ以外の場合は false です。
    • エラー:エラーのリスト。

    StateManagementScriptableApi - extendCIActionLease( 文字列 requestorId, 文字列 ciSysId, 文字列 ciActionName, 文字列 leaseTime)

    登録されたユーザーの CI アクションリース時間を延長します。前のリース期間が切れている場合は、新しいリース時間が開始されます。

    表 : 3. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストのsys_id、または registerOperator() メソッドから返された GUID。
    ciSysId 文字列 CI のsys_id。
    ciActionName 文字列 CI アクション名。
    leaseTime 文字列 指定された CI アクションに対してリースが有効な期間。「HH:MM:SS」形式で表されます。
    表 : 4. 戻り値
    タイプ 説明
    文字列 の名前と値のペアを含む JSON 形式の文字列
    • 結果:リース時間が設定されている場合は true。
    • エラー:エラーのリスト。

    StateManagementScriptableApi - getCIActions(文字列 ciSysId)

    指定された CI のアクティブな CI アクションのリストを返します。

    表 : 5. パラメーター
    名前 タイプ 説明
    ciSysId 文字列 CI のSys_id。
    表 : 6. 戻り値
    タイプ 説明
    文字列 名前と値のペアを含む JSON 形式の文字列。
    可能な値:
    • ciActions:CI または no_active_action のアクティブな CI アクションのカンマ区切りリスト。
    • errors:エラーのリスト。

    次の例は、構成アイテムのリストのアクティブなアクションを取得する方法を示しています。

    // Store sys_ids of configuration items for which to get data
    var CIArray = ["a9c0c8d2c6112276018f7705562f9cb0","0c43bc4fc61122750182c132411702f2","46bbf419a9fe1981009802288c1eb79d","46a4381ca9fe1981005c3e99af3cd164","0c43bcbdc61122750182c132e9b6565d"];
    
    var output = '';
    
    // looping above array to fetch each sys_id and passing to method
    for(var i=0; i < CIArray.length; i++) {
    
      // passing sys_id of CI stored in array to method
      output = SNC.StateManagementScriptableApi.getCIActions(CIArray[i]);
    
      // print a JSON formatted string with name-value pairs
      gs.print(output);
    }

    出力:

    {"ciActions":["no_active_action"],"result":true}
    {"ciActions":["no_active_action"],"result":true}
    {"ciActions":["no_active_action"],"result":true}
    {"ciActions":["no_active_action"],"result":true}
    {"ciActions":["no_active_action"],"result":true}

    StateManagementScriptableApi - getOperationalState(文字列 ciSysId)

    CI の運用ステータスを返します。

    表 : 7. パラメーター
    名前 タイプ 説明
    ciSysId 文字列 CI のSys_id。
    表 : 8. 戻り値
    タイプ 説明
    文字列 名前と値のペアを含む JSON 形式の文字列。
    可能な値:
    • ciActions:operational_statusフィールドの文字列選択値、 または UNKNOWN
    • errors:エラーのリスト。

    次の例は、指定された構成アイテムのリストの運用ステータスを取得する方法を示しています。

    // Store sys_ids of configuration items for which to get the operational state.
    var CIArray = ["0c43bc4fc61122750182c132411702f2","46bbf419a9fe1981009802288c1eb79d","46a4381ca9fe1981005c3e99af3cd164","0c43bcbdc61122750182c132e9b6565d","a9c0c8d2c6112276018f7705562f9cb0"];
    
    var output = '';
    
    // Loop the array to fetch each sys_id and pass to the method.
    for(var i=0;i<CIArray.length;i++) {
      // Pass sys_id of CI stored in array to the method  
      output = SNC.StateManagementScriptableApi.getOperationalState(CIArray[i]); 
    
      // prints a JSON formatted string with name-value pairs
      gs.print(output);
    }

    出力:

    *** Script: {"operationalState":"Operational","result":true}
    *** Script: {"operationalState":"Operational","result":true}
    *** Script: {"operationalState":"Operational","result":true}
    *** Script: {"operationalState":"Operational","result":true}
    ci_state_management                        : INVALID_SYS_ID: Invalid sys_id [a9c0c8d2c6112276018f7705562f9cb0]: no thrown error
    *** Script: {"errors":[{"error":"INVALID_SYS_ID","message":"Invalid sys_id [a9c0c8d2c6112276018f7705562f9cb0]"}],"operationalState":"unknown","result":false}

    StateManagementScriptableApi - isCompatibleCIAction(文字列 actionName, 文字列 otherActionName)

    指定された 2 つのアクションに互換性があるかどうかを判断します。

    表 : 9. パラメーター
    名前 タイプ 説明
    actionName 文字列 CI アクション名
    その他のアクション名 文字列 CI アクション名
    表 : 10. 戻り値
    タイプ 説明
    ブール 指定された 2 つの CI アクションに互換性がある場合は true を返します。

    StateManagementScriptableApi - isLeaseExpired(文字列 requestorId, 文字列 ciSysId, 文字列 ciActionName)

    指定された CI アクションの要求者のリースが期限切れかどうかを判断します。

    表 : 11. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストのsys_id、または registerOperator() メソッドから返された GUID。
    ciSysId 文字列 CI のsys_id。
    ciActionName 文字列 CI アクションの名前。
    表 : 12. 戻り値
    タイプ 説明
    文字列 の名前と値のペアを含む JSON 形式の文字列
    • 結果:ユーザーのリース期間が切れている場合は true。
    • エラー:エラーのリスト。

    StateManagementScriptableApi - isNotAllowedAction(文字列 ciType, 文字列 opsLabel, 文字列 actionName)

    CI のタイプに応じて、CI アクションが運用ステータスに対して許可されていないかどうかを判断します。

    表 : 13. パラメーター
    名前 タイプ 説明
    ciType 文字列 CI タイプ
    opsLabel 文字列 運用ステータス
    actionName 文字列 CI アクション名
    表 : 14. 戻り値
    タイプ 説明
    ブール 指定された運用ステータスの指定された CI タイプに対してアクションが許可されていない場合に true を返します。

    StateManagementScriptableApi - isNotAllowedOpsTransition(文字列 ciType, 文字列 opsLabel, 文字列 transitionOpsLabel)

    CI のタイプについて、運用ステータスの移行が許可されていないかどうかを判断します。

    表 : 15. パラメーター
    名前 タイプ 説明
    ciType 文字列 CI タイプ
    opsLabel 文字列 開始運用ステータスのラベル。
    transitionOpsLabel 文字列 終了運用ステータスのラベル。
    表 : 16. 戻り値
    タイプ 説明
    ブール 指定された CI タイプで指定された運用ステータスの移行が許可されていない場合は true を返します。

    StateManagementScriptableApi:isValidRequestor(文字列 requestorId)

    指定された要求者が有効でアクティブなワークフローユーザーか登録済みユーザーかを判別します。

    表 : 17. パラメーター
    名前 タイプ 説明
    requestorId 文字列 registerOperator() メソッドから返されたワークフローコンテキストまたは GUID のSys_id。
    表 : 18. 戻り値
    タイプ 説明
    文字列 JSON 形式の名前と値のペア。
    可能な値:
    • result:requestorId が有効な場合は true
    • エラー:エラーのリスト。

    この例では、 isValidRequestor() メソッドを使用して、オペレーターが登録済みユーザーであるかどうかを確認する方法を示します。

    var output = SNC.StateManagementScriptableApi.registerOperator();
    var jsonUtil = new JSON();
    var result = jsonUtil.decode(output);
    var requestorId = result.requestorId; // Fetching requestorId
    
    output = SNC.StateManagementScriptableApi.isValidRequestor(requestorId);
    gs.info(output);

    出力:

    {"result":true}

    StateManagementScriptableApi:registerOperator()

    ワークフロー以外のユーザーのオペレーターを登録します。

    表 : 19. パラメーター
    名前 タイプ 説明
    なし
    表 : 20. 戻り値
    タイプ 説明
    文字列 の名前と値のペアを含む JSON 形式の文字列
    • requestorid:CI アクション/運用状況の設定に使用される登録済みユーザー GUID。
    • 結果:正常に登録された場合は true。
    • エラー:エラーのリスト。
    
    var output = SNC.StateManagementScriptableApi.registerOperator();
    var jsonUntil = new JSON();
    var result = jsonUntil.decode(output);
    var requestorId = result.requestorId;
    

    StateManagementScriptableApi - removeBulkCIAction(文字列 requestorId, 文字列 sysIdList, 文字列 ciActionName)

    CI のリストの CI アクションを削除します。

    表 : 21. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストのsys_id、または registerOperator() メソッドから返された GUID。
    sysIdList 文字列 CI sys_idsのカンマ区切りリスト
    ciActionName 文字列 CI アクション名
    表 : 22. 戻り値
    タイプ 説明
    文字列 の名前と値のペアを含む JSON 形式の文字列
    • 結果:リスト内のすべての CI に対してアクションが削除された場合は true。それ以外の場合は false です。
    • エラー:エラーのリスト。

    StateManagementScriptableApi - setBulkCIOperationalState(String requestorId, String sysIdList, String opsLabel, String opsStateListOld)

    CI のリストの運用ステータスを設定します。

    表 : 23. パラメーター
    名前 タイプ 説明
    requestorId 文字列 ワークフローコンテキストのsys_id、または registerOperator() メソッドから返された GUID。
    sysIdList 文字列 CI sys_idsのカンマ区切りリスト。
    opsLabel 文字列 これはoperational_status選択肢の文字列ラベルです。
    opsStateListOld 文字列 (オプション)古い CI のカンマ区切りリストには、すべての CI が含まれている必要があることが示されています。
    表 : 24. 戻り値
    タイプ 説明
    文字列 の名前と値のペアを含む JSON 形式の文字列
    • 結果:リスト内のすべての CI に対してステータスが設定されている場合は true。それ以外の場合は false です。
    • エラー:エラーのリスト。
    var output = SNC.StateManagementScriptableApi.registerOperator();
    var jsonUntil = new JSON();
    var result = jsonUtil.decode(output);
    var requestorId = result.requestorId;
    
    // list of sys_ids to update
    var sys_ids;
    
    // Set list of sys_ids's Operational State to 'Repair in Progress'
    output = SNC.StateManagementScriptableApi.setBulkCIOperationalState(requestorId, sys_ids,'Repair in Progress');
    gs.print(output);
    

    StateManagementScriptableApi - unregisterOperator(文字列 requestorId)

    ワークフロー以外のユーザーのオペレーターの登録を解除します。

    表 : 25. パラメーター
    名前 タイプ 説明
    requestorId 文字列 registerOperator() メソッドから返されたワークフローコンテキストまたは GUID のSys_id。
    表 : 26. 戻り値
    タイプ 説明
    文字列 JSON 形式の名前と値のペア。
    可能な値:
    • 結果:登録解除に成功した場合は true
    • エラー:エラーのリスト。

    この例では、 unregisterOperator() メソッドを使用して登録済みユーザーの登録を解除する方法を示します。

    var output = SNC.StateManagementScriptableApi.registerOperator();
    var jsonUtil = new JSON();
    var result = jsonUtil.decode(output);
    var requestorId = result.requestorId; // Fetching requestorId
    
    output = SNC.StateManagementScriptableApi.unregisterOperator(requestorId);
    gs.info(output); 

    出力:

    {"result":true}