ServiceNow CMDB へのエクスポート
このドキュメントには外部ソースへの参照があります。 Nexthink はサードパーティのドキュメントの正確性や、このページに記載されている情報に矛盾を生じさせる可能性のある外部の更新または変更を制御することはできません。 エラーや矛盾をNexthink サポートに報告してください。
このページでは、HTTP API エクスポーターをServiceNow構成管理データベース(CMDB)と統合する方法について説明しています。 したがって、このドキュメントの設定サンプルは次のコンテキストに従っています。
api/now/import/<staging_table>/insertMultipleエンドポイントを使用して Nexthink データを ServiceNow CMDB にエクスポートするNexthink Web インターフェース内の単一のデータエクスポーターに各アセットとリレーションシップを追加する。
配信構造を配列を持つJSONオブジェクトとして設定する。
開発チームだけがアクセスできるNexthinkインスタンス上で、空のCMDBを使ってテストを実施する。
前提条件
ServiceNow統合を実行するには、次のコンポーネントが必要です。
Nexthink プラットフォームのインスタンス。
ServiceNowのインスタンス。
Nexthink Web インターフェースでの ServiceNow エンドポイント insertMultiple 用のコネクタ認証情報。
Nexthink Web インターフェースでのHTTPデータエクスポーター。
CMDB ストラテジー。 MDBストラテジーと計画のドキュメントを参照してください。
データインポートプロセスに関与するユーザーの目標テーブル ACL ルールに必要な役割の遵守。
ServiceNow CMDB 用の Nexthink 推奨設定
以下の表は、データエクスポートスケジューリングとデータボリュームの推奨組み合わせを示しています。
Nexthinkは、下記の推奨制限を超えるボリュームの次のデータエクスポーターを実行する前に、データの取り込みが完了することを保証できません。
これは、1週間で Nexthink から ServiceNow に直接3.5百万レコードを超えてエクスポートすべきではないことを意味します。
毎時間
最大25Kレコードまで
毎日
最大600Kレコードまで
毎週
最大3.5Mレコードまで
ServiceNow が Nexthink データをインポートするために推奨する設定
Nexthinkは、ServiceNowでのデータインポートには、箱から出してすぐに使えるトランスフォームマップ手順を使用することを推奨しています。
さらに、ServiceNow統合において一般的なAPIコールを設定するために、アップデートセットパッケージを使用することができます。 ServiceNowでの一般的なAPIコールのインストールガイドを参照してください。
ServiceNow基本設定
以下のステップは、基本のServiceNow設定の簡単な概要です:
ServiceNowインスタンス内でのタイムアウト設定の変更
システム定義 > トランザクション割り当てルールモジュールに移動します。
RESTインポートセットAPIリクエストのタイムアウトおよびRESTとJSONキャッチオールを探します。 **最大持続時間(秒)**の値を少なくとも_300_(5分)に変更します。

アプリケーションのアクセスをCI/ユーザー関係タイプテーブルに変更中
システム定義 > テーブル モジュールに移動します。
cmdb_rel_user_typeの値で名前を検索します。.
アプリケーションアクセスタブに移動し、すべてのスコープに対して読み取り可能、作成可能、および更新可能を有効にします。.

ServiceNowでのインポートセットテーブルの作成
インポートセットテーブルは、レコードのインポートをステージングする場所として機能します。 システムはインポートされたデータに基づいてこれらのテーブルにフィールドを自動生成するため、手動での変更は行わないでください。
必要に応じて使用できる標準のインポートセットテーブルをService nowが提供しています。 さらに詳しくは、ServiceNowのドキュメントを参照してください。
インポートセットテーブルを作成する方法は次の2つです。
CSVファイルを使用
カスタムスクリプトを使用
CSVファイルを使用してインポートセットテーブルを作成:
CMDBに送信するアセットまたは関連性を含むNQLクエリを選択します。 例として、すべての Microsoft Windows ノートパソコンとデスクトップ:
Nexthink のウェブインターフェイスにある調査モジュールで NQL クエリを実行し、
limit 1を追加します。結果をエクスポートボタンを使用して CSV ファイルをエクスポートします。
ServiceNow では、フィルターナビゲーターで すべて > システムインポートセット > 管理 > データソース に移動します。
新規をクリックします。
フォームを記入します**。** 必要なフィールドを下の表に従って記入します。
名前
このデータソースを識別するための一意の名前。
インポートセットテーブルラベル
使用するインポートセットステージングテーブルのラベル。 例えば、nexthink_workstations。
インポートセットテーブル名
これは事前に定義したテーブルラベルを使用して自動生成されます(例: u_nexthink_workstations)。 既存テーブルとの名前空間衝突を防ぎます。
タイプ
ファイル
形式
CSV
CSV区切り記号
,
エクスポートした CSV ファイルを添付します。
すべてのレコードを読み込むをクリックします。
詳細な手順については、ServiceNow ドキュメントを参照してください。
カスタムスクリプトを使用して新しいインポートセットテーブルを作成する
フィルターナビゲーターで すべて > システムインポートセット > 管理 > データソース に移動します。
新規をクリックします。
フォームを記入してください。 下の表に従って必要なフィールドを記入します。
名前
このデータソースを識別するための固有の名称。
インポートセットテーブルラベル
使用するインポートセットステージングテーブルのラベル。 例えば、nexthink_workstations 。
インポートセットテーブル名
これは、前に設定したテーブルラベル (u_nexthink_workstations) を使用して自動生成されます。 これは、既存のテーブルとの名前空間の衝突を防ぎます。
タイプ
カスタム (スクリプトによる読み込み)。
データローダー
通常、ステージングテーブルにデータをロードするためのスクリプトを提供するために使用されます。 Nexthinkが送信するすべてのフィールドは、マップ変数の一部として追加する必要があります。 フィールドは次のように見えるべきです:
})(import_set_table, data_source, import_log, last_success_import_time); |
すべてのレコードを読み込むをクリックします。
提出をクリックします。
詳細な手順については、ServiceNow ドキュメントを参照してください。
すべて > システムインポートセット > インポートセットテーブル に移動します。
ステップ3で作成したインポートセットテーブルがリストされていることを確認します。
ServiceNowのドキュメントは、変換マップを次のように定義しています:
変換マップとは、インポートセットのフィールドと既存の ServiceNow テーブル(例:インシデント
incidentやユーザーsys_user)のフィールドとの関連を決定するフィールドマップのセットです。
データソースまたは変換マップモジュールから変換マップを作成します。
データソースから、ページの下部に移動して新規ボタンをクリックします。

システムインポートセット > 変換マップの作成に移動します。
どちらのオプションも、すべての必須フィールドを記入しなければならないページにリダイレクトされます。

下の表に従って必要なフィールドを記入します。
名前
変換マップのための一意の名前
ソーステーブル
データソースからデータがインポートされるときに作成されたステージングテーブル
ターゲットテーブル
すべてのデータが保存される最終的なテーブル
提出をクリックすると、フィールド変換の作成を進めることができます。
ページの下部にあるフィールドマップセクションで、新規をクリックします。
新しいフィールドマップセクションでは、ソーススクリプトを使用するオプションをチェックすることで、2つの方法で変換を構成できます。
ソーススクリプトオプションを未チェックでの変換

ソースフィールドからターゲットフィールドに、変更なしで値をコピーします。
下表に従って必要なフィールドを記入します。
ソース式
選択したステージングテーブルからの値を取得するためのフィールドです。
ターゲットフィールド
選択されたターゲットテーブル(最終テーブル)に値を保存するためのフィールドです。
コアレス
レコードの一意性を決定します。 このボックスにチェックを入れると、フィールドがプライマリキーとして使用され、レコードを挿入または変更するかどうかを検出します。
ソーススクリプトオプションをチェック済みでの変換
このオプションでは、ソーススクリプトがターゲットフィールドの値を定義します。

下表に従って必要なフィールドを記入します。
ターゲットフィールド
選択されたターゲットテーブル(最終テーブル)に値を保存するためのフィールドです。
コアレス
レコードの一意性を決定します。 このボックスにチェックを入れると、フィールドがプライマリキーとして使用され、レコードを挿入するか変更するかを検出します。
ソーススクリプト
この JavaScript メソッドは、目的のターゲットフィールドに保存する値を返す必要があります。 ソーステーブルから情報を取得するには、変数 source を使用します。
詳細については、このページのカスタム変換セクションを参照してください。
選択アクションフィールド
ターゲットテーブルの一部のフィールドは、CompanyやUsers、その他の参照のように外部参照を持つ場合があります。 これらのフィールドのいずれかを選択すると、選択アクションという新しいオプションがアクティブになります。
選択アクションの値を作成に設定します。

作成
選択すると、現在のフィールドがターゲットテーブル内で対応する JS コードの出力値に関する参照レコードを作成します。 ソースフィールドの値を使用して、 ターゲットテーブルは、この新しいレコードを参照します。
無視
システムは値を無視し、最終テーブルの列を空のままで残します。
拒否
システムは、ソーステーブル全体のレコードを省略します。
提出をクリックすると、システムは変換マップの詳細ページにリダイレクトします。 必要なだけ多くのフィールドを追加することも、直接変換マップを保存することもできます。
詳細については、ServiceNowのドキュメントを参照してください。
さらに、ServiceNow におけるジェネリック API コールのインストールガイドで提供されているアップデートセットパッケージを確認することもできます。
HTTP API エクスポーター ドキュメントで説明されている手順に従って、新しいデータエクスポーターを作成します。
一般タブで以下のパラメーターを設定します:
資格情報: 対象のServiceNowインスタンスの資格情報。
メソッド: POST。
リソース:
api/now/import/<import_set_table>/insertMultiple。import_set_tableは、ステップ3で作成および設定されたインポートセットテーブルの名前です。
データタブで以下のパラメーターを設定します:
NQLクエリ: 資産または関係をエクスポートするクエリを挿入。
ペイロード構造: 配列を持つJSONオブジェクト。
ペイロード: 出力すべき要素と、NQL クエリから取得するプレースホルダーを一つのみ指定してペイロードを作成します。 以下のJSON例を参照してください。
データエクスポーターを保存します。
エンドツーエンドを実行する
エンドツーエンドを実行し、ワークステーション設定全体をテストします。
Nexthink と ServiceNow のエンドツーエンド の設定
Nexthink ウェブインターフェイスで次のコンポーネントを設定します:
ServiceNow の資格情報
ワークステーション用データエクスポーター
ServiceNowで次のコンポーネントを設定します:
ワークステーション用インポートセットテーブル
ワークステーションの作成/更新用変換マップ
HTTP データエクスポーターをテストする
データ タブに設定されたクエリを実行するには、20 レコードまでの読み込みテスト ボタンをクリックします。
ServiceNow のインポートテーブルの内容と変換結果を確認する
インポートセットテーブルの名前をコピーします。 例えば、
x_nexsa_g_api_call_import_set_workstation。ServiceNow インターフェイスの左側のエクスプローラーフィールドに、「インポートセット」と入力します。
詳細オプションからインポートセットをクリックします。
フィルタにインポートセットテーブルを挿入して、そのテーブルに参照しているすべてのインポートセットを表示します。

各インポートセットには、挿入されるすべてのレコードを含む番号があります。
詳細については、インポートセット番号リンクをクリックします。
詳細ページに、インポートセットに関する情報を見つけます:
インポートセットテーブルが作成された時点を確認します。
読み込みが完了した時間を確認します。
読み込み実行時間を確認します。

詳細ページの下部に、次の情報を含む3つのタブがあります:
インポートセットの実行: 挿入/更新されたレコードの数、エラーの数、適用された変換マップなどのプロセスに関する統計。

インポートセットの行: 最終テーブルのコンテンツ。 これらの行のいずれかをクリックすると、最終保存されたレコードが表示されます。

インポートログ:テスト中に追跡されたログ。

ServiceNow の最終テーブルを確認してエンドツーエンドテストの結果を検証
ServiceNow の最終テーブルを確認してデータが正しく挿入されていることを確認します。

カスタム変換
ServiceNowのドキュメントは、変換マップを次のように定義しています:
変換マップは、インポートセットのフィールドと ServiceNow の既存のテーブル(例:インシデント
incidentもしくはユーザーsys_user)のフィールド間の関係を定義するフィールドマップのセットです。
使用ソーススクリプト オプションを選択した変換セクションと説明されているように、Nexthink からの入力データを変更するソーススクリプトを有効にすることができます。
たとえば、Nexthink は RAM メモリデータをバイト単位で保存しますが、ServiceNow は同じデータをメガバイト単位で保存します。 データを正しく保存するには、バイトからメガバイトに変換する必要があります。
以下に、入力データを変換するために使用できる基本的なスクリプトの例を示します。
バイトをメガバイトに変換
バイトをギガバイトに変換
2 つのフィールドを連結
文字列の前半を挿入
上記で説明したカスタム変換は、ServiceNow インストールガイドでの一般 API 呼び出しの更新セットパッケージに含まれています。
ターゲット テーブルの空フィールドに関するトラブルシューティング ガイド
統合プロセスの終わりまでにフィールドに値があると期待されるかもしれませんが、そのフィールドは空のままです。
この問題は、統合のさまざまな部分での命名の問題が原因である可能性が最も高いです。 以下の手順を実行して、すべてが正しく命名され、期待される情報が正しい位置にあることを確認してください。
Nexthink のトラブルシューティング
環境フィールドがペイロード (JSON) の一部であり、データモデルからの正しいフィールドで埋められていることを確認します。 この情報は、Nexthink データエクスポーターのページ > データ タブで確認できます。

Nexthink 調査で、対象のフィールドに情報が含まれていることを確認します。

ServiceNow のトラブルシューティング
問題のフィールドがステージング テーブルに存在し、名前がペイロードの名前と一致していることを確認します。
システム定義 > テーブルに移動します。 目的のインポートセットテーブルを検索し、その名前のリンクをクリックします。
ServiceNow 詳細ページの下部で、リスト内のフィールドを検索します。
フィールドの名前をクリックします。 カラムラベルが Nexthink データエクスポーターで構成されたプロパティと等しいことを確認します。

そのフィールドに対する変換セットがあることを確認します。
ステージング テーブルに関連付けられた目的の変換マップを、システムインポートセット > 管理 > 変換マップで検索し、名前リンクをクリックします。
次のページで、目的のフィールドをリストで検索して、その名前をクリックします。 ステージング テーブルと最終テーブルにそれぞれ構成されたフィールドを一致させたソースフィールドとターゲットフィールドが一致する項目が 1 つ存在するはずです。
ソーススクリプトが値を返していることを確認するために、コードにログトレースを追加します。 以下のJavaScriptをご覧ください:

インポート セット テーブル内のフィールドにデータが含まれていることを確認してください。 end-to-end セクションで説明された手順に従ってください。\

FAQ
Last updated
Was this helpful?

