CMDB Query BuilderIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } CMDB Query Builder を使用すると、複数の CMDB クラスにまたがり、異なる関係で接続された多数の CI を含む複雑なインフラストラクチャおよびサービスクエリを簡単に構築できます。 ユーザーは左側メニューで「CMDB Query Builder」を検索することにより、この機能へアクセスできます。このモジュールは CI 名に対する多階層の関係をエクスポートできます。これは UI 専用機能であり、モバイルインターフェースはありません。スケジュールを作成して、クエリ結果をメールレポートで受け取ることができます。この機能をサポートする REST API は公開されていません。 この機能はドメイン分離された CMDB をサポートします。ユーザーに表示されるすべての結果は、システム内の ACL ルールに従います。 CMDB Query Builder では、クエリに含めたい CI クラスおよびその他のアーティファクトをドラッグするキャンバスが提供されます。その後、CI クラス間に関係および AND/OR 演算子を追加し、照会する関係プロパティを定義します。 保存済みクエリを使用して CI を含む CMDB グループを作成し、その後 Scriptable API を使用して CI リストを取得し、グループ内のすべての CI に対して一括でアクションを適用できます。 クエリタイプには、CMDB Query と Service Mapping Query の 2 つがあります。これらは個別にも組み合わせても使用してクエリを作成できます。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } FAQs 1. クエリの処理に非常に長い時間がかかる場合、どのようにデバッグできますか? システムプロパティ "glide.cmdb.logger.use_syslog.QueryBuilderProcessor" を値 "*" で追加することにより、詳細デバッグを有効化して発生した内容を確認できます。 処理時間およびエラーメッセージは、ソース名 QueryBuilderProcessor としてログ記録されます。 デフォルトでは、各クエリバッチの処理タイムアウトは 5 分です。 2. この機能で利用可能なシステムプロパティにはどのようなものがありますか? https://docs.servicenow.com/csh?topicname=cmdb-querybldr-sysproprties.html&version=latest 3. クエリにおける「start node」の重要性は何ですか。また、なぜ選択を求められる場合があるのですか? 灰色の背景を持つノードは "Start Node" を示します。これはクエリを開始するノードです。デフォルトでは、キャンバスへ最初に配置されたノードが start node になります。 クエリグラフには start node を 1 つしか持つことができません。 このノードは演算子の共通側に配置される必要があり、可能であれば入力側の接続を持たないようにする必要があります。start node が演算子の複数側に存在する、または入力接続を持つグラフが作成された場合、ユーザーは新しい start node を選択するよう求められます。 4. 2 つのクラス間で提案される関係のドロップダウンはどのように定義されていますか?新しい関係を追加したのに関係タイプが表示されないのはなぜですか? 提案される関係は、有効な結果を返すクエリ作成をユーザーに案内するために追加されています。 CI Relations テーブルは定期スケジュール(30 分ごと)で解析され、各クラスペア間の既存の関係タイプ一覧が作成されます。 結果は cmdb_class_relationships テーブルに保存されます。 新しく作成した関係タイプが表示されるまで 30 分待ちたくない場合は、cmdb_class_relationships テーブルのエントリーを削除できます。 その後 Query Builder UI を再度読み込むと更新されます。 5. Service Query で提案される関係が表示されないのはなぜですか? Service Map では、サービス間の正確な関係タイプはユーザーに表示されません。そのため、ユーザーは要素間の正確な関係タイプを常に認識しているわけではありません。 6. 一部のクエリで「Problem running query. Error parsing edge」というエラーが表示されるのはなぜですか? Query Engine は、演算子による分岐(fan out)または収束(fan in)のいずれかのクエリを解析できます。 演算子の複数側ノードを共有する 2 つの演算子を含むクエリは、このリリースではサポートされていません。 7. その他にサポートされていないクエリはありますか? ループを含むクエリはサポートされていません。 Service Query を作成するには Service Mapping プラグインが必要ですか? はい。Service Query は Service Mapping の Service Map でのみ機能します。 8. Service Mapping Query では接続線が点線になるのはなぜですか? サービスでは、要素間のレベル 1 の関係だけを確認しているわけではありません。 サービス境界が分かっているため、要素同士が接続されているか確認するために n レベル先まで関係を追跡します。そのため線は点線で表示されます。 9. クエリ結果をエクスポートすると CSV 形式になります。ほかの形式でエクスポートできますか? いいえ。エクスポートは CSV 形式のみ対応しています。 10. この機能にはどのようなアクセス制御がありますか? この機能へアクセスするには、cmdb_query_builder ロールが必要です。 11. クエリ内で CMDB_CI クラスを配置できますか? はい。ただし推奨されません。親クラス cmdb_ci を使用したクエリは実行時間が長くなります。 12. クエリに対する追加ログを有効化するにはどうすればよいですか? 詳細ログを有効化するシステムプロパティがあります。 ログソースは QueryBuilderProcessor および QueryBuilderOutput です。 Name: glide.cmdb.logger.use_syslog.QueryBuilderProcessorValue: * Name: glide.cmdb.logger.use_syslog.QueryBuilderOutputValue: * 13. CMDB Query 使用時に ACL は適用されますか? はい、適用されます。例えば次のケースです。 "Xyz" と同じ新しいテストクエリを作成し、Name 列を追加すると正常に動作します。 さらに列を追加すると、結果が表示される代わりに、テストクエリ "Xyz" で「Problem running query」が発生する場合があります。これは、ユーザーが関係するクラス内のフィールド参照先テーブルにアクセスする権限を持っていないことを意味します。 問題の原因となっている列を特定し、その列を結果に追加したい場合は ACL を修正するか、クエリからその列を削除してください。スタックトレースからも、例外がテーブル参照の読み取り時に発生していることが分かります。 ベストプラクティスは、結果に表示する必要がある列のみを追加することです。