概要
ServiceNowでテーブルを一括更新する場合はServiceNowにログインしてインポートセットからファイルをアップロードする場合が多い。しかし、定期的にインポートする場合はWebサービスインポートセットを利用することができる。
WebサービスインポートセットとはServiceNowのREST APIを利用してデータを作業用インポートセット用テーブルに保存して、そこから普通のインポートセットと同じようにトランスフォームマップ(変換マップ)を利用してServiceNowの実テーブルに反映する仕組みである。
REST APIを利用するのでExcelマクロなど外部ツールを利用することが可能である。また、ServiceNowの変換マップを利用するのでServiceNowページから重複チェックなどで利用するキーなど変換ルールを定義することができる。
実装
ServiceNowでの実装
システムWebサービスの作成
先ずは会社情報を登録するWebサービスインポートセットを作成します。
1.アプリケーションナビゲータから「システム Web サービス」を検索して「新規作成」を選択

2.次の情報を入力して「作成」ボタンを押下
| 項目 | 値 |
|---|---|
| ラベル | Import company_data |
| ターゲットテーブルからフィールドをコピー | チェック |
| ターゲットテーブル | core_company |
![]() |
変換マップの作成
入力データとServiceNowテーブル列のマッピングルールを定義します。
3.ServiceNowのテーブルから項目を取得します。
「Auto Map Matching Fields」リンクをクリックします。ページの下に会社テーブルのフィールド一覧が追加されます。

4.インポートするフィールド以外は削除します。
今回は「notes」,「manufacturer」,「vendor」,「name」,「vendor_type」のみを残します。それ以外のフィールドをチェックします。

5.チェックした後に「Actions on selected rows」を選択して「Delete」を選択します。

6.削除確認が情報されるので「Delete」ボタンを押下

7.削除すると残りのフィールドが表示されます。今回、不要な項目をすべてチェックして削除します。

8.同じようにフィールドを削除します。

9.続けて削除します。

10.インポートするフィールドのみが表示されていることを確認します。
今回は企業名をキーにします。キーでレコードを識別されます。インポートセットテーブルにはすべてのレコードは追加されますが、実テーブルに再インポートした場合で既に同じキーのレコードがある場合は新しいレコードを追加せずに内容が更新されます。
名前をキーにするので、u_nameのCoalesceセルをクリックします。

11.内容を「true」に変更して、右のチェックをクリックします。

12.設定が変更されたことを確認した後に「Update」ボタンを押下して保存します。

通信テスト
ServiceNowのREST API Explorerを利用して作成したWebサービスインポートセットを試します。
先ずはインポートセットテーブルに接続できるか試します。
13.アプリケーションナビゲータから「REST」を検索して、「REST API Explorer」を選択します。

14.「Retrieve records from a table (GET)」を選択します。
検索するテーブル名は先ほど作成したWebサービスインポートセットの「source table」です。今回は「Import company data (u_import_company_data)」です。

15.ページの下の方にある「送信」ボタンを押下してGETリクエストをServiceNowに送ります。

16.問題がなければ「200 OK」を表示されます。まだデータを登録していないのでデータはありません。

17.接続できることを確認できたのでデータをPOSTして登録して見ます。
左側のメニューから「レコードの作成(POST)」を選択して再びtable nameに作成した「Import company data(u_import_company_data)」を指定します。

18.ページ下の方に「要求本文」セクションがあります。「ビルダ」タブを選択して「フィールドを追加してください」ボタンを押下します。

19.ServiceNowに送信するフィールドを指定します。フィールドを定義するとその下に送られるJSONが表示されます。
場所テーブル
| 名前 | 値 |
|---|---|
| Webサービスインポートセット名 | Import location data |
| ソーステーブル | Import location data [u_import_location_data] |
| ターゲットテーブル | cmn_location |
| フィールド名 | 値 | インポートセットのフィールド名 | 結合 |
|---|---|---|---|
| 名前 | test location | u_name | true |
モデルテーブル
| 名前 | 値 |
|---|---|
| Webサービスインポートセット名 | Import model data |
| ソーステーブル | Import modeldata [u_import_model_data] |
| ターゲットテーブル | cmdb_model |
| フィールド名 | 値 | インポートセットのフィールド名 | 結合 |
|---|---|---|---|
| メーカー | test manufacturer | u_manufacturer | false |
| 名前 | test model | u_name | true |
| モデル番号 | test model number | u_model_number | false |
| モデルカテゴリ | Network Gear | u_cmdb_model_category | false |
ハードウエア資産テーブル
| 名前 | 値 |
|---|---|
| Webサービスインポートセット名 | Import hardware asset data |
| ソーステーブル | Import hardware asset data [u_import_hardware_asset_data] |
| ターゲットテーブル | alm_hardware |
| フィールド名 | 値 | インポートセットのフィールド名 | 結合 |
|---|---|---|---|
| 表示名 | test display name | u_display_name | false |
| 会社 | test company | u_company | false |
| 名前 | test department | u_department | false |
| 部門 | 1 | u_install_status | false |
| シリアル番号 | test serial number | u_serial_number | true |
| 場所 | test location | u_location | false |
| モデル | test model | u_model | false |
| モデルカテゴリ | test vendor | u_vendor | false |
以上










