BusinessServiceManager - グローバル

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む16読むのに数分
  • BusinessServiceManager API は、手動で作成されたサービスをアプリケーションサービスに変換し、アプリケーションサービスを設定し、構成アイテムと接続を追加/削除することによって、サービス管理を統合します。

    グローバルサーバースクリプトで BusinessServiceManager メソッドを使用します。アプリケーション サービス管理者の [app_service_admin] の役割が必要です。

    BusinessServiceManager - BusinessServiceManager()

    BusinessServiceManager オブジェクトをインスタンス化します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    var bsManager = new SNC.BusinessServiceManager();

    BusinessServiceManager - addCI(文字列 service_id, 文字列 source_id, 文字列 target_id)

    手動で作成されたアプリケーションサービスに CI を追加します。

    表 : 2. パラメーター
    名前 タイプ 説明
    service_id 文字列 CI を追加するアプリケーションサービスのSys_id。cmdb_ci_service_discovered タイプである必要があります。
    source_id 文字列 発信接続がターゲット CI に参加する CI のSys_id。
    target_id 文字列 サービスに追加する CI のSys_id。除外アイテムにすることはできません。除外アイテムは、手動 CI 包含/除外 [svc_manual_ci_exclusions_inclusions.list] テーブルで設定された CI です。
    表 : 3. 返される内容
    タイプ 説明
    なし
    //Application service is 'PeopleSoft Portals'
    //Source CI is windows server 'PS Apache01'
    //Target CI is 'SAP WEB01'
    
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.addCI('2fce42d80a0a0bb4004af34d7e3984c8','3a27d4370a0a0bb4006316812bf45439', '3a6cadc1c0a8ce01001f1e5d0d7d68fa');

    新しいエントリーポイントを追加

    addCI() メソッドを使用して、要求に次のパラメーター値を指定することにより、サービスに新しいエントリーポイントを追加します。
    • 通常どおりservice_IDを指定します。
    • source_ID値は空のままにします。たとえば、 '' を使用します。
    • [target_ID] には、新しいエントリーポイントを追加する CI の Sys ID を入力します。
    その結果、 addCI() メソッドは、指定されたターゲット CI への接続を持つ新しいエントリーポイントを作成します。新しいエントリ ポイントを追加する方法の例を次に示します。
    //Application service sys_id is '49de2b3187cd9d50d5c8a6880cbb35ea' 
    //Source CI is passed as an empty string as '' 
    //Target CI sys id is '15ca5fb187129910d5c8a6880cbb3537'   
    
    var bsManager = new SNC.BusinessServiceManager(); 
    var appService = bsManager.addCI('49de2b3187cd9d50d5c8a6880cbb35ea','', '15ca5fb187129910d5c8a6880cbb3537');

    BusinessServiceManager - addEntryPoint(serviceId, endpointGr)

    アプリケーションサービスにエントリーポイントを追加し、エントリーポイントで検出を開始します。

    表 : 4. パラメーター
    名前 タイプ 説明
    serviceId スティング 接続を追加するアプリケーションサービスのSys_id。
    endpointGr 文字列 アプリケーションサービスに追加する CI エンドポイント [cmdb_ci_endpoint] テーブルまたはその子テーブルの Glide レコードオブジェクト。
    表 : 5. 返される内容
    タイプ 説明
    ブーリアン

    エントリーポイントがアプリケーションサービスに正常に追加されたことを示すフラグ。

    可能な値:
    • true:追加に成功しました。
    • false:追加は成功しませんでした。

    次の addEntryPoint() メソッドは、アプリケーションサービスに新しいエントリーポイントを追加する方法を示しています。

    var now_GR = new GlideRecord("cmdb_ci_endpoint_tcp");
    now_GR.initialize(); 
    now_GR.setValue("host", "10.196.39.251");
    now_GR.setValue("port", "8080");
    now_GR.insert();
    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    bsManager.addEntryPoint(serviceId,now_GR);
    

    出力:

    true

    BusinessServiceManager - addEntryPointWithoutStartDiscovery(serviceId, endpointGr)

    検出を開始せずに新しいエントリーポイントを追加します。

    表 : 6. パラメーター
    名前 タイプ 説明
    serviceId 文字列 接続を追加するアプリケーションサービスのSys_id。
    endpointGr 文字列 アプリケーションサービスに追加する CI エンドポイント [cmdb_ci_endpoint] テーブルまたはその子テーブルの Glide レコードオブジェクト。
    表 : 7. 返される内容
    タイプ 説明
    ブーリアン

    エントリーポイントがアプリケーションサービスに正常に追加されたことを示すフラグ。

    可能な値:
    • true:追加に成功しました。
    • false:追加は成功しませんでした。

    次の例は、addEntryPointWithoutStartDiscovery() メソッドを使用して、検出を開始せずにアプリケーションサービスに新しいエントリーポイントを追加する方法を示しています。

    var now_GR = new GlideRecord("cmdb_ci_endpoint_tcp");
    now_GR.initialize(); 
    now_GR.setValue("host", "10.196.39.251");
    now_GR.setValue("port", "8080");
    now_GR.insert();
    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    bsManager.addEntryPointWithoutStartDiscovery(serviceId,now_GR);
    

    出力:

    true

    BusinessServiceManager - addManualConnection(文字列 source_id, オブジェクト manual_endpoint, 文字列 service_id)

    手動で作成した接続をアプリケーションサービスに追加します。

    表 : 8. パラメーター
    名前 タイプ 説明
    source_id 文字列 接続に追加する CI のSys ID
    manual_endpoint オブジェクト アプリケーション サービスに追加する cmdb_ci_endpoint_manual table テーブルの GlideRecord オブジェクト
    service_id 文字列 接続を追加するアプリケーションサービスのSys ID
    表 : 9. 返される内容
    タイプ 説明
    なし
    var now_GR = new GlideRecord("cmdb_ci_endpoint_manual");
    now_GR.initialize(); 
    now_GR.name='myEndpoint'; 
    now_GR.insert();
    
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.addManualConnection("3a307c930a0a0bb400353965d0b8861f", now_GR, "2fce42d80a0a0bb4004af34d7e3984c8");

    BusinessServiceManager - isReadingPermitted(オブジェクト gr, 文字列 userSysID)

    指定されたユーザーのロールと、指定されたサービス/サービスグループに設定されている権限データを確認し、ユーザーがサービス/サービスグループを表示できるかどうかを示すブール値を返します。

    以下に、ユーザーがサービス/サービスグループを表示できるかどうかを判断するためにメソッドが使用するプロセスフローを定義します。

    1. 指定されたレコードがサービス グループの場合、ユーザ ロールとグループ ポリシーを確認します。サービス グループにアサインされるロールの詳細については、「」を参照してください Assign a role to a service group
    2. ロールリストに「itil」が含まれていても、「app_service_admin」と「sam_core_user」が含まれていない場合は、true を返します。
    3. ロールリストに「maint」が含まれている場合は、true を返します。
    4. ロールリストに "app_serivce_user" が含まれていても、"app_service_admin" と "sm_app_owner" が含まれておらず、サービスが動作していない場合は、false を返します。
    5. サービスのグループを確認します。
      1. サービスが 1 つのグループに属し、グループが "all" の場合は、true を返します。
      2. 「すべて」のグループ以外のグループについては、 で指定されたルール Assign a role to a service groupに基づいて、ユーザーロールとグループのポリシーをチェックします。いずれかが true を返す場合は、true を返します。
    表 : 10. パラメーター
    名前 タイプ 説明
    gr GlideRecord サービス/サービスグループの GlideRecord。この GlideRecord は、次のいずれかのテーブルから取得できます。
    • アプリケーションサービス [cmdb_ci_service_auto]
    • アプリケーションサービスグループ [cmdb_ci_service_group]
    • ダイナミック CI グループ [cmdb_ci_query_based_service]
    • 手動サービス [cmdb_ci_service_manual]
    • マップ済みアプリケーションサービス [cmdb_ci_service_discovered]
    • サービス [cmdb_ci_service]
    userSysId 文字列 ユーザーレコードの Sys_id。ユーザー [sys_user] テーブルにあります。
    表 : 11. 返される内容
    タイプ 説明
    ブーリアン ユーザーが指定されたサービス/サービスグループを表示する権限を持っているかどうかを示すフラグ。
    可能な値:
    • true:ユーザーは指定されたサービス/サービスグループを表示できます。
    • false:ユーザーは指定されたサービス/サービスグループを表示できません。

    次のコード例は、このメソッドを呼び出して、指定したユーザーが指定したサービス グループにアクセスできるかどうかを確認する方法を示しています。

    var cmdbServGr = new GlideRecord('cmdb_ci_service_discovered');
    cmdbServGr.addQuery('sys_id', "123123123123123123123123");
    cmdbServGr.query();
    var userId = gs.getUserID();
    
    var bsManager = new SNC.BusinessServiceManager();
    while (cmdbServGr.next()) {
      var answer = bsManager.isReadingPermitted(cmdbServGr, userId);
    
      //do something with / according to the answer
    
    }

    BusinessServiceManager - migrateManualToApplicationService(文字列 service_id)

    手動サービスをアプリケーションサービスに変換します。

    表 : 12. パラメーター
    名前 タイプ 説明
    service_id 文字列 変換する手動サービスのSys ID
    表 : 13. 返される内容
    タイプ 説明
    ブーリアン アプリケーションサービスへの移行が成功した場合は true。
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.migrateManualToApplicationService("451047c6c0a8016400de0ae6df9b9d76");

    BusinessServiceManager - populateApplicationService(文字列 service_id, 数値 levels, 文字列 black_listed_relation_types)

    指定されたエントリーポイントからの関係および CI でアプリケーションサービスを追加します。

    表 : 14. パラメーター
    名前 タイプ 説明
    service_id 文字列 追加するアプリケーションサービスのSys ID
    レベル 番号 CMDB から追加する CI のレベル数
    black_listed_relation_types 文字列 アプリケーションサービスを追加するときに除外する関係のタイプ
    表 : 15. 返される内容
    タイプ 説明
    ブーリアン 操作が成功した場合は true。
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.populateApplicationService("5bf65ebeedb91300964f6fa662989533", 10, "Depends on::Used by");

    BusinessServiceManager - removeCI(文字列 service_id, 文字列 target_id)

    アプリケーションサービスから手動で作成された CI を削除します。

    表 : 16. パラメーター
    名前 タイプ 説明
    service_id 文字列

    CI を削除するアプリケーションサービスのSys ID

    注:
    GlideRecord オブジェクトを渡すこともサポートされています。
    target_id 文字列

    アプリケーションサービスから削除する CI のSys ID

    注:
    GlideRecord オブジェクトを渡すこともサポートされています。
    表 : 17. 返される内容
    タイプ 説明
    なし
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeCI("2fce42d80a0a0bb4004af34d7e3984c8", "3a290cc60a0a0bb400000bdb386af1cf");

    BusinessServiceManager - removeEntryPoint(serviceId, endpointSysId)

    アプリケーションサービスから既存のエントリーポイントを削除します。

    表 : 18. パラメーター
    名前 タイプ 説明
    serviceId 文字列 接続を追加するアプリケーションサービスのSys_id。
    endpointSysID 文字列 削除するエントリーポイントエンドポイントのSys_id。
    表 : 19. 返される内容
    タイプ 説明
    ブーリアン

    エントリーポイントがアプリケーションサービスから正常に削除されたことを示すフラグ。

    可能な値:
    • true:更新に成功しました。
    • false:更新は成功しませんでした。

    次の例では、Sys_id「aa65ebeedb91300964f6fa6629895ss」に関連付けられたエントリーポイントを、指定されたアプリケーションサービスから削除します。

    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    var entrypointId = “aa65ebeedb91300964f6fa6629895ss”;
    bsManager.removeEntryPoint(serviceId, entrypointId);
    

    出力:

    true

    usinessServiceManager - removeManualConnection(String source_id, String endpoint_id, String service_id)

    手動で作成された接続と接続された CI をアプリケーションサービスから削除します。

    表 : 20. パラメーター
    名前 タイプ 説明
    source_id 文字列 エンドポイントに接続されている CI のSys ID
    endpoint_id 文字列 アプリケーションサービスから削除するために手動で作成された接続のSys ID
    service_id 文字列 接続を削除するアプリケーションサービスのSys ID
    表 : 21. 返される内容
    タイプ 説明
    なし
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeManualConnection("3a307c930a0a0bb400353965d0b8861f", "60ce3176edb91300964f6fa6629895d1", "2fce42d80a0a0bb4004af34d7e3984c8");

    BusinessServiceManager - updateEntryPoint(serviceId, endpointGr)

    アプリケーションサービスの既存のエントリーポイントを更新します。

    表 : 22. パラメーター
    名前 タイプ 説明
    serviceId 文字列 接続を追加するアプリケーションサービスのSys_id。
    endpointGr オブジェクト アプリケーションサービスに追加する CI エンドポイント [cmdb_ci_endpoint] テーブルまたはその子テーブルの Glide レコードオブジェクト。
    表 : 23. 返される内容
    タイプ 説明
    ブーリアン

    更新がエントリーポイントに正常に適用されたことを示すフラグ。

    可能な値:
    • true:更新に成功しました。
    • false:更新は成功しませんでした。

    次の updateEntryPoint() の例は、新しいエントリーポイントで接続を更新する方法を示しています。

    var now_GR = new GlideRecord("cmdb_ci_endpoint_http");
    now_GR.get(“11f65ebeedb91300964f6fa66298951”);
    now_GR.setValue(“protocol”, “https”);
    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    bsManager.updateEntryPoint(serviceId,now_GR);
    

    出力:

    true