こんにちは
SCSKの庄司です。
今回は、ServiceNowにおけるインポートセットについて紹介します。
インポートセットとは
インポートセットとは、外部のデータをServiceNowに取り込んでレコード化するための機能です。
一般的にはExcelやCSVのデータをインポートします。
特徴としては、ファイル内容を読み込んで直接テーブルに叩き込むのではなく、一度「インポートセットテーブル」というデータの仮置き場を経由する点があります。
ここでデータの不備をチェックしたりできます。
そのあとに、「変換マップ」という、インポートセットテーブル上の項目とターゲットとなるテーブル上の項目を紐づけるマップを通して実際のテーブル上にレコードをインポートします。
変換マップ内ではスクリプトを実行することもできるので、ServiceNow上のレコードとして登録するためのデータ成型なども可能です。
インポートセットの実行手順
インポートセットのおおまかな手順は下記です。
1.データソースの作成
まずは システムインポートセット>データのロード に遷移し、ExcelやCSVファイルをアップロードし、[送信]を押下します。
インポートセットテーブルで「テーブルの作成」を選択すれば、インポートセットテーブルが自動で作成されます。事前に手動で作成することや、以前自動作成したものを再利用することも可能です。
2.変換マップの作成
システムインポートセット>変換マップの作成 に遷移して[作成]を押下して、ファイル内の列とターゲットテーブルの列との紐づけを行い、各種データの行き先を指定します。

前述の通り、ここではスクリプトを設定することもできます。
スクリプトでは、例えばddmmyyyyの形式で送られてきた日付データをyyyy/mm/dd形式に成形したり、特定の値の場合は取り込みをスキップしたり、様々なことが出来ます。

3.変換
システムインポートセット>変換の実行 に遷移して、対象のインポートセットと変換マップを選択します。

[変換]ボタンを押すと、データが本番テーブルへと流し込まれます。
txt形式のファイル取込み
番外編です。
今回はこの機能の紹介をしたくてこの記事を書き始めたといっても過言ではないです。
ExcelかCSV形式での取込みが一般的ですが、「独自の区切り文字を使った .txtファイルしか出せないシステムからの取り込みを実行したい」ということもあるかもしれません。
その際、txtファイルをインポートできるかの検証をしようとしてみても、データのロード画面からではエラーとなって取り込むことが出来ません。

この画面を見て「.txtは対応してないから無理です」と断る前に、これを試してみてください。
txtファイル取り込み手順
1.データソースの作成
システムインポートセット>アドミニストレーション>データソース に遷移します。


[新規]を押下し、下記条件で新しいレコードを作成します。
- インポートセットテーブル名:任意のインポートセットテーブル名(既存でも新規でも可、新規の場合は自動でテーブル作成される)
- タイプ:ファイル
- フォーマット:CSV
- ファイル取得方法:添付ファイル
- CSV区切り文字:該当txtファイルで使用されている区切り文字(タブの場合は入力不要)
2.txtファイルの取り込み
データソースレコードにtxtファイルを添付します。

今回は、以下のような内容のファイルで取り込みます。
区切り文字は「^」です。
user_id^first_name^last_name^email^department tanaka.taro^Taro^Tanaka^tanaka.taro@example.com^IT sato.hanako^Hanako^Sato^sato.hanako@example.com^Sales suzuki.ichiro^Ichiro^Suzuki^suzuki.ichiro@example.com^HR takahashi.ken^Ken^Takahashi^takahashi.ken@example.com^Finance ito.maki^Maki^Ito^ito.maki@example.com^Marketing
ファイル添付後、「すべてのレコードをロード」関連リンクを押下し、レコード取込みを実行します。
3.変換マップの作成
ここから先は通常のインポートセットと変わりません。
必要に応じて変換マップを作成します。
変換マップは同じインポートセットテーブルやターゲットテーブルが同じであれば使いまわすこともできます。
4.変換
インポートセットと変換マップを紐づけ、変換を実行します。
ユーザーテーブルを確認しに行くと、レコードが作成されていることが確認できます。
以上がtxtファイルをインポートする手順です。
今回は手動でインポートする方法でしたが、API経由でもtxtファイルを取り込むことは可能です。
気になる方はpostman等のAPIを叩くことが出来るツールを使って試してみてください。
まとめ
以上、今回はServiceNowの基本機能である「インポートセット」の使い方と、意外と知られていない「txt形式ファイルの取り込み方法」をご紹介しました。
インポートセットはマスタデータの連携などで利用することも多い機能ですので、是非参考にしてみてください。




