9
2

More than 3 years have passed since last update.

ServiceNow - Webサービスインポートセットを利用してテーブルを更新する

Posted at

概要

ServiceNowでテーブルを一括更新する場合はServiceNowにログインしてインポートセットからファイルをアップロードする場合が多い。しかし、定期的にインポートする場合はWebサービスインポートセットを利用することができる。
WebサービスインポートセットとはServiceNowのREST APIを利用してデータを作業用インポートセット用テーブルに保存して、そこから普通のインポートセットと同じようにトランスフォームマップ(変換マップ)を利用してServiceNowの実テーブルに反映する仕組みである。
REST APIを利用するのでExcelマクロなど外部ツールを利用することが可能である。また、ServiceNowの変換マップを利用するのでServiceNowページから重複チェックなどで利用するキーなど変換ルールを定義することができる。

実装

ServiceNowでの実装

システムWebサービスの作成

先ずは会社情報を登録するWebサービスインポートセットを作成します。
1.アプリケーションナビゲータから「システム Web サービス」を検索して「新規作成」を選択
master_data_entry_create_web_service_1.png
2.次の情報を入力して「作成」ボタンを押下

項目
ラベル Import company_data
ターゲットテーブルからフィールドをコピー チェック
ターゲットテーブル core_company

master_data_entry_create_web_service_2.png

変換マップの作成

入力データとServiceNowテーブル列のマッピングルールを定義します。
3.ServiceNowのテーブルから項目を取得します。
「Auto Map Matching Fields」リンクをクリックします。ページの下に会社テーブルのフィールド一覧が追加されます。
master_data_entry_create_web_service_3.png
4.インポートするフィールド以外は削除します。
今回は「notes」,「manufacturer」,「vendor」,「name」,「vendor_type」のみを残します。それ以外のフィールドをチェックします。
master_data_entry_create_web_service_4.png
5.チェックした後に「Actions on selected rows」を選択して「Delete」を選択します。
master_data_entry_create_web_service_5.png
6.削除確認が情報されるので「Delete」ボタンを押下
master_data_entry_create_web_service_6.png
7.削除すると残りのフィールドが表示されます。今回、不要な項目をすべてチェックして削除します。
master_data_entry_create_web_service_7.png
8.同じようにフィールドを削除します。
master_data_entry_create_web_service_8.png
9.続けて削除します。
master_data_entry_create_web_service_9.png
10.インポートするフィールドのみが表示されていることを確認します。
今回は企業名をキーにします。キーでレコードを識別されます。インポートセットテーブルにはすべてのレコードは追加されますが、実テーブルに再インポートした場合で既に同じキーのレコードがある場合は新しいレコードを追加せずに内容が更新されます。
名前をキーにするので、u_nameのCoalesceセルをクリックします。
master_data_entry_create_web_service_10.png
11.内容を「true」に変更して、右のチェックをクリックします。
master_data_entry_create_web_service_11.png
12.設定が変更されたことを確認した後に「Update」ボタンを押下して保存します。
master_data_entry_create_web_service_12.png

通信テスト

ServiceNowのREST API Explorerを利用して作成したWebサービスインポートセットを試します。
先ずはインポートセットテーブルに接続できるか試します。
13.アプリケーションナビゲータから「REST」を検索して、「REST API Explorer」を選択します。
master_data_rest_explorer_get_1.png
14.「Retrieve records from a table (GET)」を選択します。
検索するテーブル名は先ほど作成したWebサービスインポートセットの「source table」です。今回は「Import company data (u_import_company_data)」です。
master_data_rest_explorer_get_2.png
15.ページの下の方にある「送信」ボタンを押下してGETリクエストをServiceNowに送ります。
master_data_rest_explorer_get_3.png
16.問題がなければ「200 OK」を表示されます。まだデータを登録していないのでデータはありません。
master_data_rest_explorer_get_4.png
17.接続できることを確認できたのでデータをPOSTして登録して見ます。
左側のメニューから「レコードの作成(POST)」を選択して再びtable nameに作成した「Import company data(u_import_company_data)」を指定します。
master_data_rest_explorer_post_1.png
18.ページ下の方に「要求本文」セクションがあります。「ビルダ」タブを選択して「フィールドを追加してください」ボタンを押下します。
master_data_rest_explorer_post_2.png
19.ServiceNowに送信するフィールドを指定します。フィールドを定義するとその下に送られるJSONが表示されます。

フィールド名 インポートセットのフィールド名
メーカー test manufacturer u_manufacturer
ベンダー test vendor u_vendor
名前 test company u_name
Vendor type Hardware u_vendor_type

master_data_rest_explorer_post_3.png
19.次のようにフィールドを定義します。
master_data_rest_explorer_post_4.png
20.フィールドを定義した後に送るデータを登録します。登録した後に「送信」ボタンを押下します。
master_data_rest_explorer_post_5.png
21.送信すると戻りメッセージが下に表示されます。正しく登録された場合は「201 Created」です。
master_data_rest_explorer_post_6.png
22.実際にインポートセットテーブルを閲覧して登録されたことを確認します。
アプリケーションナビゲータから作成したインポートセットテーブル名+「.list」を入力します。今回は「u_import_company_data.list」です。
master_data_rest_explorer_post_10.png
23.設定したデータのレコードが登録されているはずです。
master_data_rest_explorer_post_11.png
24.次に会社テーブルに登録されていることを確認します。
アプリケーションナビゲータに「core_company.list」を入力します。「core_company」は会社テーブル名です。
master_data_rest_explorer_post_20.png
25.正しく動作している場合は設定したデータのレコードが作成されています。
今回は「test company」を登録したので、名前欄に「test」を入力するとレコードが表示されます。
実テーブルに登録されているので削除します。
「test company」の左のチェックボックスをチェックします。
master_data_rest_explorer_post_21.png
26.「選択した行のアクション」を選択して、「削除」を選択します。
master_data_rest_explorer_post_22.png
27.確認ダイアログが表示されるので「削除」ボタンを押下します。
master_data_rest_explorer_post_23.png
28.同じように次のWebサービスインポートセットも作成します。

場所テーブル

名前
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

以上

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2