BusinessServiceManager - グローバル
BusinessServiceManager API は、手動で作成されたサービスをアプリケーションサービスに変換し、アプリケーションサービスを設定し、構成アイテムと接続を追加/削除することで、サービス管理を統合するメソッドを提供します。
グローバルサーバースクリプトで BusinessServiceManager メソッドを使用します。この API を呼び出すには、アプリケーションサービスアドミニストレーター [app_service_admin] ロールが必要です。
BusinessServiceManager - BusinessServiceManager()
BusinessServiceManager オブジェクトをインスタンス化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
var bsManager = new SNC.BusinessServiceManager();
BusinessServiceManager - addCI(文字列 service_id, 文字列 source_id, 文字列 target_id)
手動で作成されたアプリケーションサービスに CI を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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 です。 |
| タイプ | 説明 |
|---|---|
| なし |
//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');
新しいエントリーポイントを追加
- 通常どおりにservice_IDを指定します。
- source_ID値は空のままにします。たとえば、「
」を使用します。 - [target_ID] に、新しいエントリーポイントを追加する CI の Sys ID を入力します。
//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)
アプリケーションサービスにエントリーポイントを追加し、エントリーポイントでディスカバリーを開始します。
| 名前 | タイプ | 説明 |
|---|---|---|
| serviceId | 刺す | 接続を追加するアプリケーションサービスのSys_id。 |
| endpointGr | 文字列 | アプリケーションサービスに追加する CI エンドポイント [cmdb_ci_endpoint] テーブルまたはその子テーブル内の Glide レコードオブジェクト。 |
| タイプ | 説明 |
|---|---|
| ブール | エントリーポイントがアプリケーションサービスに正常に追加されたことを示すフラグ。 可能な値:
|
次の 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)
ディスカバリーを開始せずに新しいエントリーポイントを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| serviceId | 文字列 | 接続を追加するアプリケーションサービスのSys_id。 |
| endpointGr | 文字列 | アプリケーションサービスに追加する CI エンドポイント [cmdb_ci_endpoint] テーブルまたはその子テーブル内の Glide レコードオブジェクト。 |
| タイプ | 説明 |
|---|---|
| ブール | エントリーポイントがアプリケーションサービスに正常に追加されたことを示すフラグ。 可能な値:
|
次の例は、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)
手動で作成した接続をアプリケーションサービスに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| source_id | 文字列 | 接続に追加する CI のSys ID |
| manual_endpoint | オブジェクト | アプリケーション サービスに追加する cmdb_ci_endpoint_manual table テーブルの GlideRecord オブジェクト |
| service_id | 文字列 | 接続を追加するアプリケーションサービスのSys ID |
| タイプ | 説明 |
|---|---|
| なし |
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)
指定されたユーザーのロールと、指定されたサービス/サービスグループに構成された権限データを確認し、ユーザーがサービス/サービスグループを表示できるかどうかを示すブール値を返します。
次に、ユーザーがサービス/サービスグループを表示できるかどうかを判断するためにメソッドが使用するプロセスフローを定義します。
- 指定されたレコードがサービスグループの場合、ユーザーロールとグループポリシーを確認します。サービスグループに割り当てられたロールの詳細については、「 Assign a role to a service group」を参照してください。
- ロールリストに「itil」が含まれていても、「app_service_admin」と「sam_core_user」が含まれていない場合は、true を返します。
- ロールリストに「maint」が含まれている場合は、true を返します。
- ロールリストに「app_serivce_user」は含まれているが「app_service_admin」と「sm_app_owner」は含まれておらず、サービスが動作していない場合は、false を返します。
- サービスのグループを確認します。
- サービスが単一のグループに属し、そのグループが「all」である場合は、true を返します。
- 「すべて」でないグループの場合、 Assign a role to a service groupで指定されたルールに基づいてユーザーロールとグループのポリシーをチェックします。いずれかが true を返す場合は、true を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| gr | GlideRecord | サービス/サービスグループの GlideRecord。この GlideRecord は、次のいずれかのテーブルから取得できます。
|
| userSysId | 文字列 | ユーザーレコードの Sys_id。 テーブル: ユーザー [sys_user] |
| タイプ | 説明 |
|---|---|
| ブール | ユーザーが指定されたサービス/サービスグループを表示する権限を持っているかどうかを示すフラグ。 可能な値:
|
次のコード例は、このメソッドを呼び出して、指定されたユーザーが指定されたサービス グループにアクセスできるかどうかを確認する方法を示しています。
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)
手動サービスをアプリケーションサービスに変換します。
| 名前 | タイプ | 説明 |
|---|---|---|
| service_id | 文字列 | 変換する手動サービスのSys ID |
| タイプ | 説明 |
|---|---|
| ブーリアン | アプリケーションサービスへの移行が成功した場合は true。 |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.migrateManualToApplicationService("451047c6c0a8016400de0ae6df9b9d76");
BusinessServiceManager - populateApplicationService(文字列 service_id, 数値 levels, 文字列 black_listed_relation_types)
指定されたエントリーポイントからの関係および CI でアプリケーションサービスを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| service_id | 文字列 | 追加するアプリケーションサービスのSys ID |
| レベル | 番号 | CMDB から追加する CI のレベル数 |
| black_listed_relation_types | 文字列 | アプリケーションサービスを追加するときに除外する関係のタイプ |
| タイプ | 説明 |
|---|---|
| ブーリアン | 操作が成功した場合は true。 |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.populateApplicationService("5bf65ebeedb91300964f6fa662989533", 10, "Depends on::Used by");
BusinessServiceManager - removeCI(文字列 service_id, 文字列 target_id)
アプリケーションサービスから手動で作成された CI を削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| service_id | 文字列 | CI を削除するアプリケーションサービスのSys ID 注: GlideRecord オブジェクトを渡すこともサポートされています。 |
| target_id | 文字列 | アプリケーションサービスから削除する CI のSys ID 注: GlideRecord オブジェクトを渡すこともサポートされています。 |
| タイプ | 説明 |
|---|---|
| なし |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.removeCI("2fce42d80a0a0bb4004af34d7e3984c8", "3a290cc60a0a0bb400000bdb386af1cf");
BusinessServiceManager - removeEntryPoint(serviceId, endpointSysId)
アプリケーションサービスから既存のエントリーポイントを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| serviceId | 文字列 | 接続を追加するアプリケーションサービスのSys_id。 |
| endpointSysID | 文字列 | 削除するエントリーポイントエンドポイントのSys_id。 |
| タイプ | 説明 |
|---|---|
| ブール | エントリーポイントがアプリケーションサービスから正常に削除されたことを示すフラグ。 可能な値:
|
次の例では、指定されたアプリケーションサービスから「aa65ebeedb91300964f6fa6629895ss」Sys_idに関連付けられているエントリーポイントを削除します。
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 をアプリケーションサービスから削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| source_id | 文字列 | エンドポイントに接続されている CI のSys ID |
| endpoint_id | 文字列 | アプリケーションサービスから削除するために手動で作成された接続のSys ID |
| service_id | 文字列 | 接続を削除するアプリケーションサービスのSys ID |
| タイプ | 説明 |
|---|---|
| なし |
var bsManager = new SNC.BusinessServiceManager();
var appService = bsManager.removeManualConnection("3a307c930a0a0bb400353965d0b8861f", "60ce3176edb91300964f6fa6629895d1", "2fce42d80a0a0bb4004af34d7e3984c8");
BusinessServiceManager - updateEntryPoint(serviceId, endpointGr)
アプリケーションサービスの既存のエントリーポイントを更新します。
| 名前 | タイプ | 説明 |
|---|---|---|
| serviceId | 文字列 | 接続を追加するアプリケーションサービスのSys_id。 |
| endpointGr | オブジェクト | アプリケーションサービスに追加する CI エンドポイント [cmdb_ci_endpoint] テーブルまたはその子テーブル内の Glide レコードオブジェクト。 |
| タイプ | 説明 |
|---|---|
| ブール | 更新がエントリーポイントに正常に適用されたことを示すフラグ。 可能な値:
|
次の 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