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

アプリケーションアクセスをCI/ユーザーリレーションシップタイプテーブルに変更する
システム定義 > テーブルモジュールに移動します。
値
cmdb_rel_user_typeで名前で検索します。
アプリケーションアクセスタブに移動し、すべてのスコープでCan read、Can create、Can updateを有効にします。

ServiceNowでインポートセットテーブルを作成する
インポートセットテーブルは、レコードインポートのステージング場所として機能します。 システムはこれらのテーブル上にインポートされたデータに基づいて自動的にフィールドを生成するため、手動での変更は行わないでください。
Service Nowでは、必要に応じて使用できる標準インポートセットテーブルが提供されています。 詳細については、ServiceNowドキュメントを参照してください。
インポートセットの作成は必須であり、データエクスポーターのリソースを構成するために使用されます。
インポートセットテーブルを作成するには2つの方法があります:
CSVファイルを使用する
カスタムスクリプトを使用する
CSVファイルを使用してインポートセットテーブルを作成する:
CMDBに送信されるアセットまたはリレーションシップを含むNQLクエリを選択します。 たとえば、すべてのMicrosoft Windowsラップトップとデスクトップ:
Nexthink Webインターフェースの調査モジュールでNQLクエリを実行し -
limit 1を追加します。結果をエクスポートボタンを使用してCSVファイルをエクスポートします。
ServiceNowでフィルタナビゲータからAll > System Import Sets > Administration > Data Sourcesに移動します。
新規をクリックします。
フォームを完成させます**。** 下記の表に従ってフィールドに記入してください:
名前
このデータソースを識別するための一意の名前。
インポートセットテーブルラベル
使用するインポートセットステージングテーブルのラベル。 たとえば、nexthink_workstations 。
インポートセットテーブル名
これは以前に設定されたテーブルラベルを使用して自動生成されます (u_nexthink_workstations)。 既存のテーブルとの名前空間の競合を防ぎます。
タイプ
ファイル
フォーマット
CSV
CSVデリミタ
,
エクスポートしたCSVファイルを添付します。
すべてのレコードをロードをクリックします。
詳細な手順については、ServiceNowドキュメントを参照してください。
カスタムスクリプトを使用して新しいインポートセットテーブルを作成する
フィルタナビゲータからAll > System Import Sets > Administration > Data Sourcesに移動します。
新規をクリックします。
フォームを完成させます。 下記の表に従ってフィールドに記入してください:
名前
このデータソースを識別するための一意の名前。
インポートセットテーブルラベル
使用するインポートセットステージングテーブルのラベル。 たとえば、nexthink_workstations 。
インポートセットテーブル名
これは以前に設定されたテーブルラベルを使用して自動生成されます (u_nexthink_workstations)。 これは既存のテーブルとの名前空間の競合を防ぎます。
タイプ
カスタム (スクリプトでロード)。
データローダー
これは通常、ステージングテーブルにデータをロードするためのスクリプトを提供するために使用されます。 Nexthinkが送信するすべてのフィールドは、マップ変数の一部として追加されなければなりません。 フィールドは次のように見えるはずです:
})(import_set_table, data_source, import_log, last_success_import_time); |
すべてのレコードをロードをクリックします。
送信をクリックします。
詳細な手順については、ServiceNowドキュメントを参照してください。
システムがインポートセットテーブルを作成したことの検証
All > System Import Sets > Import Set Tablesに移動します。
ステップ3で作成したインポートセットテーブルがリストに含まれていることを確認します。
変換マップの作成
ServiceNow documentation では、変換マップは次のように定義されています:
変換マップは、インポートセット内のフィールドと、イベント
incidentやユーザーsys_userなどの既存のServiceNowテーブル内のフィールド間の関係を決定するフィールドマップのセットです。
データソースまたは変換マップモジュールから変換マップを作成します。
データソースからページの下部に移動し、新規ボタンをクリックします。

または、System Import Sets > Create Transform Mapに移動することもできます。
どちらのオプションも、必須フィールドをすべて記入する必要があるフォームのあるページにリダイレクトします。

以下の表に従ってフォームを完成させます:
名前
変換マップの一意の名前
ソーステーブル
データがソースを介してインポートされた前の手順で作成されたステージングテーブル
ターゲットテーブル
すべてのデータが保存される最終テーブル
送信をクリックし、フィールド用の変換を作成する準備が整います。
ページの下部にあるフィールドマップセクションで、新規をクリックします。
新しいフィールドマップセクションでは、ソーススクリプトを使用のボックスをチェックするかチェックしないかで、2通りの変換を構成できます。
ソーススクリプトオプション未チェックの状態での変換

ソースフィールドからターゲットフィールドに値をそのままコピーします。
以下の表に従ってフィールドを記入してください:
ソース式
選択されたステージングテーブルから値を取得するフィールド。
ターゲットフィールド
選択されたターゲットテーブル(最終テーブル)から値を格納するフィールド。
集約
これによりレコードの一意性が判断されます。 このボックスにチェックを入れると、そのフィールドはレコードが挿入または変更される必要があるかどうかを検出するための主キーとして使用されます。
ソーススクリプトオプションをチェックした状態での変換
このオプションでは、ソーススクリプトがターゲットフィールドの値を定義します。

以下の表に従ってフィールドを記入してください:
ターゲットフィールド
選択されたターゲットテーブル(最終テーブル)から値を格納するフィールド。
集約
これによりレコードの一意性が判断されます。 このボックスにチェックを入れると、そのフィールドはレコードが挿入または変更される必要があるかどうかを検出するための主キーとして指定されます。
ソーススクリプト
このJavaScriptメソッドは、値を返し、対象となるフィールドに保存します。
変数sourceを使用して、ソーステーブルから情報を取得します。
さらに詳しい情報は、このページのカスタム変換セクションを参照してください。
選択アクションフィールド
ターゲットテーブルのいくつかのフィールドは、他のテーブル(会社、ユーザー、その他の参照)への外部参照である可能性があります。 これらのフィールドのいずれかを選択すると、選択アクションという新しいオプションが有効になります。
選択アクションの値を作成に設定します。

作成
システムは、参照テーブル(メーカー、ユーザー、その他。)に新しいレコードを作成します。 ソースフィールドの値を使用して。 ターゲットテーブルはこの新しいレコードを参照します。
無視する
システムは値を無視し、最終テーブルで列は空のままになります。
拒否する
システムはソーステーブルから全レコードを省略します。
送信をクリックすると、システムは変換マップ詳細ページにリダイレクトします。 必要なだけのフィールドを追加するか、直接変換マップを保存することができます。
詳細はServiceNowのドキュメントを参照してください。
さらに、ServiceNowインストールガイドの一般API呼び出しで利用可能な更新セットパッケージも確認できます。
NexthinkでのServiceNow CMDBへのHTTP APIデータエクスポーターの設定
新しいデータエクスポーターを、HTTP API Exporterドキュメントで説明された手順に従って作成します。
一般タブで次のパラメータを設定します:
資格情報: 対象インスタンスのServiceNow認証情報です。
メソッド: POST。
リソース:
api/now/import/<import_set_table>/insertMultiple。import_set_tableは、ServiceNowで作成および設定されたインポートセットテーブルの名前です。
データタブで次のパラメータを設定します:
NQLクエリ: アセットまたは関係をエクスポートするクエリを挿入します。
ペイロード構造: 配列を持つJSONオブジェクト。
ペイロード: エクスポートする要素に対応するプレースホルダーをNQLクエリから取り込んで、1つの要素のみを指定してペイロードを作成します。 以下のJSON例を参照してください。
データエクスポーターを保存します。
ペイロード内のフィールド名は、インポートセットテーブルで定義されたものと一致する必要があります。
エンドツーエンドのを実行する
ワークステーションのために、全体の設定をテストするためにエンドツーエンドを実行します。
エンドツーエンドのためのNexthinkおよびServiceNowの設定
NexthinkのWebインターフェースでこれらのコンポーネントを設定します:
ServiceNowの資格情報
ワークステーションのためのデータエクスポーター
ServiceNowでこれらのコンポーネントを設定します:
ワークステーション用のインポートセットテーブル
ワークステーションを作成/更新するための変換マップ
HTTPデータエクスポーターをテストする
最大20件のレコードをテストロードするボタンをクリックして、データタブで構成されたクエリを実行します。
20件までのレコードのテストロードに関する詳細はHTTP API Exporterのドキュメントを参照してください。
インポートテーブルのコンテンツとServiceNowでの変換結果を確認する
インポートセットテーブルの名前をコピーします。 例:
x_nexsa_g_api_call_import_set_workstation。ServiceNowインターフェースの左側のエクスプローラーフィールドにインポートセットと入力します。
高度なオプションのインポートセットをクリックします。
そのテーブルを参照するすべてのインポートセットを表示するために、フィルターにインポートセットテーブルを挿入します:

各インポートセットは、挿入されるすべてのレコードを含む番号を持っています。
詳細については、インポートセット番号リンクをクリックします。
詳細ページで、インポートセットに関する情報を確認します:
インポートセットテーブルが作成されたときのことを確認します。
ロード完了時間を確認します。
実行時間を確認します。

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

インポートセット行: 最終テーブルの内容。 これらの行のいずれかをクリックして、最終的に保存されたレコードを確認します。

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

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

カスタム変換
ServiceNowのドキュメント は、変換マップを次のように定義しています:
変換マップは、インポートセットのフィールドと既存のServiceNowテーブル(例: Incident
incidentやUsersys_user)のフィールド間の関係を決定するフィールドマップのセットです。
ソーススクリプトオプションがチェックされている変換事項 で説明されているように、変換マップ内でソーススクリプトを有効にして、Nexthinkからの入力データを変更することができます。
たとえば、NexthinkはRAMメモリデータをバイト単位で格納しますが、ServiceNowは同じデータをメガバイト単位で格納します。 データを正しく格納するには、バイトからメガバイトに変換する必要があります。
以下に、受信データを変換するための基本的なスクリプトの例を紹介します:
バイトをメガバイトに変換
バイトをギガバイトに変換
2つのフィールドを連結
文字列の前半を挿入
上記のカスタム変換は、ServiceNowインストールガイドの一般API呼び出し内の更新セットパッケージに含まれています。
ターゲットテーブルでの空フィールドのトラブルシューティングガイド
統合プロセスの終わりには、フィールドが値を持っていることが期待されますが、フィールドは空です。
この問題は、統合の各段階での名前付けの問題によっている可能性が高いです。 すべてが正しく名付けられており、予期される情報が適切な場所にあることを確認するために、以下の手順に従ってください。
デモンストレーション用に、以下の例ではフィールドdevice.group_nameを使用しています。
Nexthinkでのトラブルシューティング
問題のフィールドが、ペイロード(JSON)の一部であり、データモデルから正しいフィールドによって埋められていることを確認します。 この情報は、Nexthink Data Exporterページ>データタブで入手可能です。

Nexthink Investigationsで、問題のフィールドにいくつかの情報が含まれていることを確認します。

ServiceNowでのトラブルシューティング
問題のフィールドが中間テーブルに存在し、その名前がペイロードの名前と一致していることを確認します。
システム定義>テーブルに移動します。 望むインポートセットテーブルを検索し、その名前リンクをクリックします。
ServiceNow詳細ページの下部で、リスト内のフィールドを検索します。
フィールドの名前をクリックします。 カラムラベルは、Nexthink Data Exporterで設定されたペイロードのプロパティと同じでなければなりません。

そのフィールド用の変換セットがあることを確認します。
管理者>変換マップにあるステージングテーブルの関連する変換マップを見つけ、名前リンクをクリックします。
次のページで、望むフィールドをリスト内で検索し、その名前をクリックします。 ソースフィールドとターゲットフィールドがステージングテーブルと最終テーブルでそれぞれ設定されているアイテムが1つ以上存在するはずです。
ソーススクリプトが値を返していることを確認するために、コードにログ追跡を追加します。 以下のJavaScriptを確認してください:

インポートセットテーブル内のフィールドにデータが含まれていることを確認します。 エンドツーエンドセクションで説明されている段階を実行します。

FAQ
CIタイプをインポートするにはどうすればよいですか?
CIタイプをインポートするには、この文書のConfiguring Data Exporter in Nexthinkセクションで説明されているようにデータエクスポーターを設定する必要があります。 生成されたペイロードが変換マップで設定されたフィールドに一致することを確認してください。
Nexthink WebインターフェースがPOSTリクエストをトリガーすると、システムはServiceNowインスタンスにインポートセットを作成し、設定されたフィールドマップに従ってターゲットテーブルを自動的にポピュレートします。
NexthinkとServiceNow間のペイロードフィールドにエラーがある場合はどうなりますか?
Nexthink Webインターフェースに設定されたNexthinkペイロードにdevice.nameのような値が含まれている一方で、ServiceNow側でデータソースがdevice_nameを使用して作成されている場合、リクエストが送信されたときにその値は空のままになります。
新しいレコードが最終テーブルで作成されたときに特定の値を検証するビジネスルールがある場合、これはエラーを引き起こす可能性があります。
この種のエラーを避けるために、エクスポーターの自動実行をスケジュールする前に20レコードのテストロードを実行することが重要です。
エンドツーエンドを設定して実行した後に新しいフィールドを追加した場合はどうなりますか?
このプロセスは、Creating an import set table in ServiceNowセクションで説明されているものと非常に似ています。
インポートセットテーブルを設定するために使用したデータソースを開きます。
インポートセットテーブルを修正します:
インポートセットテーブルの作成にファイルを添付した場合、Nexthink Webインターフェースから新しい列を含む新しいファイルを添付し、再び20レコードのテストロードを実行します。
カスタムスクリプトを使用してインポートセットテーブルを作成した場合、マップ変数内に列を追加し、再び20レコードのテストロードを実行します。
インポートセットテーブルの一部として最終テーブルに新しい列が追加された変換マップを修正します。
Nexthinkデータエクスポーター内のペイロードを修正して、新しいフィールドを含むようにします。
Nexthink Webインターフェースで20レコードのテストロードを実行します。
ServiceNowのインポートセットテーブルに新しい列が追加され、それに応じてポピュレートされていることを確認します。
ServiceNowの最終テーブルがその列を適切にポピュレートしたことを確認します。
データをインポートしたとき、sys_choiceフィールドはどうなるのでしょうか?
参照フィールドと同様に、sys_choiceテーブルは、挿入された値がターゲットクラスのsys_choiceテーブルにすでにエントリーを持っている場合、異なった動作をします。
2つの異なるケースがあります:
ターゲットクラス用の
sys_choiceテーブルに挿入された値がエントリーを持っていない場合、ServiceNowは値をテーブルに挿入し、フォントカラーは青色です。 これは、挿入された値がレコードにはありますが、そのフィールドの選択コンボボックスから手動で選択することはできません。\
青のケース選択
挿入された値がターゲットクラス用の
sys_choiceテーブルにすでにエントリーを持っている場合、ServiceNowは値をテーブルに挿入し、フォントカラーは黒色です。 これは、そのフィールドの選択コンボボックスメニューから値を選択する資格があることを意味します。 この段階で、その値がsys_choiceテーブルに存在しない場合、Choice fieldセクションで説明されているように、その挿入前に作成することが可能です。\
同時に他のインポートメカニズムが実行されている場合はどうなりますか?
異なるコネクタからCMBDテーブルにデータをインポートする場合、統制フィールドが正確に構成されていることを確認してください。
変換マップの作成セクションで説明されているように、変換マップの動作は、照合チェックボックスに依存します。 ServiceNowがターゲットテーブルに任意のレコードと一意にマークされたフィールドを見つけた場合、CIは最後のインポートセットの情報で更新されます。
Last updated
Was this helpful?