CMDBQueryBuilderAPI - グローバル
サーバーサイドスクリプトで 構成管理データベース (CMDB) クエリビルダー操作を実行するメソッドを提供します。
この API には、 構成管理データベース (CMDB) アプリケーション (com.snc.cmdb) が必要です。
この API はグローバルスコープでのみ使用できます。スコープ対象のアプリケーションでこれらのメソッドを使用するには、「 CMDBQBScopedScriptableAPI :スコープ指定」を参照してください。
CMDBクエリビルダーの詳細については、「CMDB Query Builder」を参照してください。
CMDBQueryBuilderAPI - createReport(文字列 savedQueryId, 文字列 savedQueryName)
構成管理データベース (CMDB)クエリビルダークエリの結果を表示し、レポートの URL を返すレポートを作成します。
スコープ対象のアプリケーションの場合は、 CMDBQBScopedScriptableAPI - createReport(文字列 savedQueryId, 文字列 savedQueryName)を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| savedQueryId | 文字列 | レポートに使用するクエリのSys_id。 クエリ名が指定されている場合、このパラメーターは必要ありません。 テーブル:保存済みクエリ [qb_saved_query] |
| savedQueryName | 文字列 | レポートに使用するクエリの名前。 クエリー sys_idが指定されている場合、このパラメーターは必要ありません。 テーブル:保存済みクエリ [qb_saved_query] テーブルの [名前 ] フィールドに保存されます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 作成されたレポートとエラーの詳細。 |
| <Object>。エラー | エラーコード。レポートの作成に失敗した場合、または無効な入力パラメーターが指定された場合に返されます。 考えられるエラー:
データタイプ:文字列 |
| <Object>.message | レポート作成の成功または失敗に関する詳細を含むメッセージ。 可能なメッセージ:
データタイプ:文字列 |
| <Object>.status | ステータスコード。更新が成功すると返されます。 値: データタイプ:文字列 |
この例では、保存済みクエリ名を渡してレポートを作成する方法を示します。
var queryReport = SNC.CMDBQueryBuilderAPI.createReport('', 'CMDBQueryTest1');
gs.info(JSON.stringify(JSON.parse(queryReport), null, 2));
出力:
{
"message":"\/sys_report_template.do?sysparm_report_source_id=6d299cf81bbd4210bccf42a3b24bcb7a&sysparm_type=list&sysparm_title=CMDBQueryTest1&sysparm_source_type=source&sysparm_from_list=true&sysparm_chart_size=large&sysparm_manual_labor=true",
"status":"success"
}
この例は、指定されたクエリ名が無効である場合のエラーを示しています。
var queryReport = SNC.CMDBQueryBuilderAPI.createReport('', 'Test');
gs.info(JSON.stringify(JSON.parse(queryReport), null, 2));
出力:
{
"error":"INVALID_PARAM",
"message":"Invalid Parameters. Please provide either a valid sysId or a valid name of a saved query"
}
CMDBQueryBuilderAPI - deleteQuery(String savedQueryId, String savedQueryName)
構成管理データベース (CMDB)クエリビルダークエリを削除します。
スコープ対象のアプリケーションの場合は、 CMDBQBScopedScriptableAPI - deleteQuery(文字列 savedQueryId, 文字列 savedQueryName)を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| savedQueryId | 文字列 | 削除するクエリのSys_id。 クエリ名が指定されている場合、このパラメーターは空の文字列として指定できます。 テーブル:保存済みクエリ [qb_saved_query] |
| savedQueryName | 文字列 | 削除するクエリの名前。 クエリー sys_idが指定されている場合、このパラメーターは必要ありません。 テーブル:保存済みクエリ [qb_saved_query] テーブルの [名前 ] フィールドに保存されます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 削除されたクエリとエラーの詳細。 |
| <Object>。エラー | エラーコード。削除操作が失敗した場合、または無効な入力パラメーターが指定された場合に返されます。 考えられるエラー:
データタイプ:文字列 |
| <Object>.message | 削除操作の成功または失敗に関する詳細を含むメッセージ。 可能なメッセージ:
データタイプ:文字列 |
| <Object>.status | ステータスコード。更新が成功すると返されます。 値: データタイプ:文字列 |
この例では、クエリ名を渡して保存済みクエリを削除する方法を示します。
var delQuery = SNC.CMDBQueryBuilderAPI.deleteQuery('', 'CMDBQueryTest1');
gs.info(JSON.stringify(JSON.parse(delQuery), null, 2));
出力:
{
"message":"Successfully deleted the saved query",
"status":"success"
}
CMDBQueryBuilderAPI - getSavedQueryExecutionDetails(文字列 savedQueryName, ブール executeQuery, 数値 timeout)
構成管理データベース (CMDB)クエリビルダークエリの実行の詳細を返します。
必要に応じて、クエリを実行して、現在の実行の詳細を返すこともできます。
クエリの実行中にタイムアウトまたはメモリの問題が発生した場合は、クエリのバッチサイズを微調整して、これらの問題を軽減することができます。詳細については、「 クエリ ビルダの保存済みクエリのバッチ サイズ」を参照してください。
スコープ対象のアプリケーションの場合は、 CMDBQBScopedScriptableAPI:getSavedQueryExecutionDetails(String savedQueryName, Boolean executeQuery, Number timeout)を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| savedQueryName | 文字列 | 実行の詳細を取得するクエリの名前。 テーブル:保存済みクエリ [qb_saved_query] テーブルの [名前 ] フィールド。 |
| executeQuery | ブーリアン | オプション。指定されたクエリを実行するかどうかを示すフラグ。 有効な値:
デフォルト値:False |
| タイムアウト | 番号 | オプション。デフォルトのクエリー実行タイムアウト制限の 5 分を上書きする整数値。 単位:秒 デフォルト:5 分 |
| タイプ | 説明 |
|---|---|
| オブジェクト | クエリの実行とエラーの詳細。 |
| <Object>。エラー | エラーコード。クエリー実行が失敗した場合、または指定されたクエリーが見つからない場合に返されます。 考えられるエラー:
データタイプ:文字列 |
| <Object>.execution_batch_size | クエリの実行に割り当てられたバッチサイズ 100。この値は、 executeQuery パラメーターが true の場合にのみ返されます。「Batch size for CMDB Query Builder queries」も参照してください。 データタイプ:数値 |
| <Object>.message | エラーコードの詳細を含むメッセージ。クエリー実行が失敗した場合、または指定されたクエリーが見つからない場合に返されます。 可能なメッセージ:
データタイプ:文字列 |
| <Object>.query_id | クエリ実行のSys_id。 データタイプ:文字列 テーブル:クエリステータス [qb_query_status] |
| <Object>.status | クエリー実行のステータス。
データタイプ:文字列 |
| <Object>.table_name | クエリ実行の詳細を含むテーブルの名前。 データタイプ:文字列 |
この例では、保存済みクエリの実行状況を取得する方法を示します。
var savedQuery = SNC.CMDBQueryBuilderAPI.getSavedQueryExecutionDetails('CMDBQueryTest1');
gs.info(JSON.stringify(JSON.parse(savedQuery), null, 2));
出力:
{
"query_id":"024fd53a7773330033b5270bba106141",
"table_name":"u_cmdb_qb_result_598918aacb4dbf3f1a8dcf03fce6a5d57151a4e2",
"status":COMPLETE
}
この例では、保存済みクエリを実行し、クエリ実行タイムアウト値を 10 分に設定する方法を示します。
var savedQuery = SNC.CMDBQueryBuilderAPI.getSavedQueryExecutionDetails('CMDBQueryTest2', true, 600);
gs.info(JSON.stringify(JSON.parse(savedQuery), null, 2));
出力:
{
"execution_batch_size": 100,
"query_id": "e73428b4939baa50779bfdfb5cba1047",
"table_name": "u_cmdb_qb_result_f0eed95be923bf3d439c87c028ae3c3af53aa739",
"status": "COMPLETE"
}
次の例は、前の例の保存済みクエリ CMDBQueryTest2 の結果テーブルの情報にアクセスする方法を示しています。結果のフィルターで、結果テーブル名の後に .list を使用することもできます。
var resultTableName = 'u_cmdb_qb_result_f7593958e298869427726be96f88155cce269806';
var queryId = '76bd283c931bee502285f4cc5cba10da'; // insert the query ID here
var gr = new GlideRecord(resultTableName);
gr.addQuery('query', queryId);
gr.query();
if (gr.next()) {
gs.info(gr.getDisplayValue('u_server_1')); // field name in the result table
}
出力:
PS LoadBal01
CMDBQueryBuilderAPI - saveQuery(String savedQueryName, String queryJson)
構成管理データベース (CMDB)クエリビルダーのクエリを保存し、保存されたクエリのsys_idを返します。
スコープ対象のアプリケーションの場合は、 CMDBQBScopedScriptableAPI - saveQuery(String savedQueryName, String queryJson)を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| savedQueryName | 文字列 | クエリを保存する名前。 テーブル:保存済みクエリ [qb_saved_query] テーブルの [名前 ] フィールドに保存されます。 |
| クエリ JSON | 文字列 | クエリを定義する JSON。 テーブル:保存済みクエリ [qb_saved_query] テーブルの [クエリ ] フィールドに保存されます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 保存済みクエリとエラーの詳細を含むオブジェクト。 |
| <Object>。エラー | エラーコード。保存操作が失敗した場合、または無効な入力パラメーターが指定された場合に返されます。 考えられるエラー:
データタイプ:文字列 |
| <Object>.message | 保存操作の成功または失敗に関する詳細を含むメッセージ。 可能なメッセージ:
データタイプ:文字列 |
| <Object>.status | ステータスコード。保存操作が成功したときに返されます。 値: データタイプ:文字列 |
この例では、保存済みクエリ [qb_saved_query] テーブルにクエリを追加する方法を示します。
var queryJson = "{\"type\":\"cmdb\",\"nodes\":[{\"label\":\"Server\",\"unique_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_server\",\"ci_type_label\":\"Server\",\"sys_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"x\":72,\"y\":337,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":true,\"nodeId\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"name\":\"Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"className\":\"cmdb_ci_server\"},{\"label\":\"Database\",\"unique_id\":\"b640269c1b310210bccf42a3b24bcb36\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/database.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_database\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_database\",\"ci_type_label\":\"Database\",\"sys_id\":\"b640269c1b310210bccf42a3b24bcb36\",\"x\":510,\"y\":340,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":false,\"nodeId\":\"b640269c1b310210bccf42a3b24bcb36_4_23_2024_5_50_57\",\"name\":\"Database 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"b640269c1b310210bccf42a3b24bcb36_4_23_2024_5_50_57\",\"className\":\"cmdb_ci_database\"}],\"edges\":[{\"id\":\"Server 1_Database 1\",\"from\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"to\":\"b640269c1b310210bccf42a3b24bcb36_4_23_2024_5_50_57\",\"isDotted\":false,\"type\":\"relation\",\"isReverse\":false,\"direction\":\"outbound\",\"hiddenLevel\":0,\"relations\":[\"607ad1b2c0a8010e01941856b365af90\",\"1a9cb166f1571100a92eb60da2bce5c5\"]}],\"usedNames\":{\"cmdb_ci_server\":1,\"cmdb_ci_database\":1}}";
var newQuery = SNC.CMDBQueryBuilderAPI.saveQuery('CMDBQueryTest1', queryJson);
gs.info(JSON.stringify(JSON.parse(newQuery), null, 2));
出力:
{
"message":"Successfully saved the query with sysId d93f96981b310210bccf42a3b24bcb41",
"status":"success"
}
CMDBQueryBuilderAPI - updateQuery(String savedQueryId, String savedQueryName, String queryJson)
構成管理データベース (CMDB)クエリビルダークエリの JSON を更新します。
スコープ対象のアプリケーションの場合は、 CMDBQBScopedScriptableAPI - updateQuery(String savedQueryId, String savedQueryName, String queryJson)を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| savedQueryId | 文字列 | 更新するクエリのSys_id。 クエリ名が指定されている場合、このパラメーターは必要ありません。 テーブル:保存済みクエリ [qb_saved_query] |
| savedQueryName | 文字列 | 更新するクエリの名前。 クエリー sys_idが指定されている場合、このパラメーターは必要ありません。 テーブル:保存済みクエリ [qb_saved_query] テーブルの [名前 ] フィールドに保存されます。 |
| クエリ JSON | 文字列 | クエリーの更新に使用する JSON。 テーブル:保存済みクエリ [qb_saved_query] テーブルの [クエリ ] フィールドに保存されます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 更新されたクエリとエラーの詳細。 |
| <Object>。エラー | エラーコード。更新が失敗した場合、または無効な入力パラメーターが指定された場合に返されます。 考えられるエラー:
データタイプ:文字列 |
| <Object>.message | 更新の成功または失敗に関する詳細を含むメッセージ。 可能なメッセージ:
データタイプ:文字列 |
| <Object>.status | ステータスコード。更新が成功すると返されます。 値: データタイプ:文字列 |
この例では、クエリ名を渡して保存済みクエリを更新する方法を示します。
var queryJson = "{\"type\":\"cmdb\",\"nodes\":[{\"label\":\"Server\",\"unique_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_server\",\"ci_type_label\":\"Server\",\"sys_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"x\":72,\"y\":336,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":true,\"nodeId\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"name\":\"Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"className\":\"cmdb_ci_server\"},{\"label\":\"Web Server\",\"unique_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/web_server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_web_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_web_server\",\"ci_type_label\":\"Web Server\",\"sys_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"x\":446,\"y\":330,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":false,\"nodeId\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"name\":\"Web Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"className\":\"cmdb_ci_web_server\"}],\"edges\":[{\"id\":\"Server 1_Web Server 1\",\"from\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"to\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"isDotted\":false,\"type\":\"relation\",\"isReverse\":false,\"direction\":\"outbound\",\"hiddenLevel\":0,\"relations\":[\"607ad1b2c0a8010e01941856b365af90\"]}],\"usedNames\":{\"cmdb_ci_server\":1,\"cmdb_ci_database\":1,\"cmdb_ci_web_server\":1}}";
var queryUpdate = SNC.CMDBQueryBuilderAPI.updateQuery('', 'CMDBQueryTest1', queryJson);
gs.info(JSON.stringify(JSON.parse(queryUpdate), null, 2));
出力:
{
"message":"Successfully updated the saved query",
"status":"success"
}
この例は、クエリsys_idと名前の両方がメソッド呼び出しにない場合のエラーを示しています。
var queryJson = "{\"type\":\"cmdb\",\"nodes\":[{\"label\":\"Server\",\"unique_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_server\",\"ci_type_label\":\"Server\",\"sys_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"x\":72,\"y\":336,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":true,\"nodeId\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"name\":\"Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"className\":\"cmdb_ci_server\"},{\"label\":\"Web Server\",\"unique_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/web_server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_web_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_web_server\",\"ci_type_label\":\"Web Server\",\"sys_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"x\":446,\"y\":330,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":false,\"nodeId\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"name\":\"Web Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"className\":\"cmdb_ci_web_server\"}],\"edges\":[{\"id\":\"Server 1_Web Server 1\",\"from\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"to\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"isDotted\":false,\"type\":\"relation\",\"isReverse\":false,\"direction\":\"outbound\",\"hiddenLevel\":0,\"relations\":[\"607ad1b2c0a8010e01941856b365af90\"]}],\"usedNames\":{\"cmdb_ci_server\":1,\"cmdb_ci_database\":1,\"cmdb_ci_web_server\":1}}";
var queryUpdate = SNC.CMDBQueryBuilderAPI.updateQuery('', '', queryJson);
gs.info(JSON.stringify(JSON.parse(queryUpdate), null, 2));
出力:
{
"error":"INVALID_PARAM",
"message":"Invalid Parameters. Please provide either a valid sysId or a valid name of a saved query"
}