こんにちは、メケです。
ServiceNowにはCSA(Certified System Administrator)という認定資格があります。
今回はその試験範囲の1つである「データベースの管理」の中の「インポートセット」について解説します。
「インポートセット」ってどんなことができるんだろう??
初期データの構築や外部で管理しているマスタの情報を取り込みたいなど、ServiceNow外でのデータをServiceNowに取り込みたい場面というのは多いです。
そのような時に使用することができるのが今回紹介するインポートセットになります。
非常に便利なものになるのでどのようなことができるか抑えておきましょう。
CSAの試験にはここから出題される問題もあるかもしれません。
インポートセットって何?
インポートセットとは各種データソースからターゲットテーブルにマッピングするためのツールになります。
インポートセットでは大きく以下の4つに分かれます。
- データソース
- インポートセットテーブル
- 変換マップ
- ターゲットテーブル
それぞれどのようなものか、見ていきましょう。
データソース
データソースはServiceNowに取り込みたい元データ(INPUT)にあたるものです。
ローカルで管理しているExcel・CSV・XMLはもちろんのこと、JDBCやHTTP/FTPなども認証情報を指定することで利用することができます。
- JDBC
- HTTP/FTP
- Excel
- CSV
- XML
インポートセットテーブル
インポートセットテーブルは、データソースの情報をServiceNow内にインポートされたレコードのステージング領域になります。
インポートセットのフィールドはデータソースをもとに自動でつけられます。
また、過去に使用したインポートセットテーブルを流用して使用することもできます。
インポートするデータは事前にクレンジング
ローカルでExcel管理などしているデータでは、どうしても不要な行があったり、記載がない項目や平仄が取れていないデータがあったりします。
インポートセットテーブルに取り込んだデータを元に変換処理などを行うことになるため、不要なデータや誤ったデータは事前に取り除いておきましょう。
そうすることで、変換処理がシンプルになり、無駄に頭を悩ませる必要がなくなります。
- 不要なデータは事前に取り除く
- 誤ったデータは事前に修正する
ターゲットテーブル
ターゲットテーブルはOUTPUTに当たるもので、ServiceNowの既存のテーブルを指します。
要はデータソース(INPUT)をどこに入れたいかですね。
変換マップ
変換マップは「インポートセットテーブル」と「ターゲットテーブル」間のデータ関係を定義するもの。
それぞれのテーブルのフィールドをマッピングすることでデータを移動させることができます。
変換ごとに、新しい変換マップを作成するか、既存の変換マップを選択する必要があります。
フィールドのマッピングには以下のユーティリティが用意されています。
- 自動マッピングユーティリティ(Auto Map Matching Fields)
- マッピング支援ユーティリティ(Mapping Assist)
自動マッピングユーティリティ
自動マッピングユーティリティとは、以下のフィールド名が一致する場合に自動的にマッピングがされます。
- インポートセットテーブル
- ターゲットテーブル
ユーザーはマッピングが正しいかだけを確認すれば良いのでかなり楽です。
もし、誤ったマッピングとなっていた場合でも、修正することはできます。
マッピングアシスト(支援)ユーティリティ
マッピング支援ユーティリティは、フィールドマップを使用して直感的な操作でフィールドのマッピングを行えるものになります。
自動マッピングユーティリティを使用したけど、誤ったマッピングになってしまった場合などに使用します。
使ってみよう
試しにincidentテーブルの任意のレコードに対する「short_description」を更新してみます。
インポートするデータの準備
まずはincidentテーブルに更新用のデータを作成します。
次にローカルで以下のようなCSVファイルを作成して下さい。
上がまだ存在しないインシデントの番号なので新規で作成されるもの、
下が先程作成したレコードを更新するためのものです。
"number","short_description" "INC0010058","こっちは新規" "INC0010057","こっちは更新"
Load Data(データのロード)
準備ができたら早速CSVファイルを取り込んでみます。
フィルターナビゲーターにて”Import Set”と入力します。
[System Import Sets]-[Load Data]というのが表示されるのでクリックします。
今回はImport set tableを新たに作り、CSVファイルよりデータをインポートしたいため以下のような設定としました。
- Import set table:Create table
- Label:任意(import_test001)
- Source of the import:File
- File:事前準備したCSVファイルを指定
- Sheet number:1(デフォルトのまま)
- Header row:1(デフォルトのまま)
入力できたら[Submit]ボタンをクリックします。
処理結果が表示されます。
Messageを確認することで2件のInsertがされたことが確認できます。
また、Loaded dataを見るとCSVファイルの内容が取り込まれていることがわかります。
赤枠部のリンクをクリックすると詳細を見ることができます。
Create Transform Map(変換マップを作成)
次に変換マップを作成します。
フィルターナビゲーターにて”Import Set”と入力します。
[System Import Sets]-[Create Transform Map]というのが表示されるのでクリックします。
ソーステーブルとして先程作成したImport set tableを指定し、ターゲットテーブルにIncidentテーブルを指定します。
- Name:任意(trans_map_Imp_test001)
- Source table:import_test001
- Target table:Incident
- ※他はデフォルトにしています。
ヘッダー部を右クリックして[Save]すると、関連リンク(Related Links)が表示されるため、[Auto Map Matching Fields]をクリックします。
Field Mapsタブにマッピングされたフィールドが表示されます。
新規・更新を区別するためにはnumberに対して[Coalesce]を”true”に更新します。
こうすることでインポート中にnumberフィールドが重複するものが見つかった場合は更新(Update)され、新規の場合は登録(Insert)されることになります。
Run Transform(変換の実行)
最後に変換の実行を行います。
フィルターナビゲーターにて”Import Set”と入力します。
[System Import Sets]-[Run Transform]というのが表示されるのでクリックします。
Import set と使用する変換マップをそれぞれ選択。
『インポートセット』と『変換マップ』は一度作成すれば複数回使用可能
[Transform]ボタンをクリックします。
インポートされた内容の情報の詳細は上図の赤枠のリンクから確認できます。
それぞれのStateがInsertedとUpdatedに更新されました。
incidentテーブルを実際に確認すると上図のように以下のCSVファイルの内容がインポートされました。
"number","short_description" "INC0010058","こっちは新規" "INC0010057","こっちは更新"
【補足】文字コードの確認と設定
ServiceNowにてCSVファイルのインポート・エクスポートをする際、デフォルトでは文字コードが共に「windows-1252」となっています。
UTF-8で作成する場合など自身の環境に合わせる必要があります。
フィルターナビゲーター(左上の検索窓)より”import export” などと入力すると[System Properties]-[Import Export]というモジュールがあるのでクリック。
[Export Properties]・[Import Properties] それぞれに[CSV Format]に”〜 Charset”の設定がありますので変更し、【Save】ボタンをクリックします。
文字化けする場合は「Import Export Properties」 から文字コードを確認
まとめ
今回はServiceNowの『インポートセット』について紹介してみました。
ServiceNowにてデータのインポートを行うには大きく以下の3つのステップとなります。
- データのロード
- 変換マップの作成
- データの変換
インポートセットテーブルや変換マップは再利用可能。
取り込み時には結合フィールドを指定することで重複したものは更新、重複しないものは追加登録を行う。
もっと理解を深めるには
文字だけを見て学ぶよりも、実際にServiceNowの環境を触ってみるのが効果的です。
そんなこと言っても家では会社の環境にはアクセスできないよ〜
PDI(個人用開発インスタンス)を使用すれば、誰でもどこからでも無料で自分だけの環境を作ることができるんですよ。
以下の記事を参考にしてみて下さい。
これで、家でこっそりServiceNowのことを勉強して、会社で「できるやつ」って思われるかもね。
それぞれでどんな事ができるかはCSAの試験にも出題されます。
試験対策だけでなく、実際に使用する人や開発する人でもどんな事ができるかは知っておいて損はないかなと思います。
他のCSA対策の記事はこちらでまとめているので、よかったら是非見てやって下さい。
見ていただけると、とても喜びます😆
本記事に書かれていないものでこんな問題も出ていたよなどがあれば、コメント欄に記載頂くかお問い合わせフォームより連絡頂けると幸いです。
連絡いただけたものは随時加筆させていただこうと思います。
最後まで見て頂きありがとうございます。
コメント