Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

参照先フィールドを含むレコードのXMLインポートについて

Fagi
Tera Contributor

コミュニティの皆様

いつもお世話になっております。

 

私は本番環境のインスタンスのデータを開発環境のインスタンスにXMLインポートを行いたいと

考えております。

インポートするレコードは参照フィールドを含んでおり、各参照先のテーブルのレコードのsysidが異なった場合に

参照先が正しく設定されないのではないかと懸念しております。

以下の記事で、Display Vlalueが適切である限り、正しく参照先が設定されるとの記載を見つけました。

Display Vlalueが同じ、レコードが複数存在した場合は、どうような結果になるのでしょうか?

https://www.servicenow.com/community/itsm-forum/xml-import-of-references/m-p/589198

 

XMLインポートを行う上で、他に考慮すべき懸念点が他にありましたら、ご教授頂けると幸いです。

どうか宜しくお願い致します。

 

3 REPLIES 3

iwai
Giga Sage

「Display Vlalueが同じ、レコードが複数存在した場合は、どうような結果になるのでしょうか?」

実際にXMLファイルとユーザーを作成して実験してみました。

  • Name: Test User, sys_id: id123
    • <caller_id display_value="Test User">id123</caller_id>
  • Name: Test User, sys_id: id456
    • <caller_id display_value="Test User">id456</caller_id>
  1. DisplayValue 重複する名前、sys_id 存在するID
    <caller_id display_value="Test User">id123</caller_id>
    1. 結果、sys_idが示すユーザーとして取り込まれる。
  2. DisplayValue 重複する名前、sys_id なし
    <caller_id display_value="Test User"></caller_id>
    1. 結果、取り込まれずempty
  3. DisplayValue 重複する名前、sys_id 存在しないID
    <caller_id display_value="Test User">idaaa</caller_id>
    1. 結果、重複する名前のまま誰かに一致して取り込まれる。(毎回変わることはなく何らかの規則で最初に見つかったひとりに決定する)
  4. DisplayValue 存在しない名前、sys_id 存在するID
    <caller_id display_value="aaaa">id123</caller_id>
    1. 結果、sys_id が示すユーザーとして取り込まれる。

このような結果となりました。

Fagi
Tera Contributor

 

iwai さん

いつもお世話になっております。

回答ありがとうございます。

 

Userテーブルを参照する、参照フィールドを持つ、レコードをXMLインポートをしたいと考えております。

UserテーブルにデフォルトでDisplay valueに設定されている、Nameフィールドは一意の値になっておらず、

重複したい値があった場合に、別のUserレコードが参照フィールドに設定されるのが懸念点です。

他のテーブルに影響が大きいので、UserテーブルのDisplay valueは変更したくありません。

UserテーブルのDisplay valueを変更せずに、Userテーブルを参照する、参照フィールドのDisplay valueとして別の値をXMLエクスポートすることは可能でしょうか?

上記の要件を実現する事の出来る、カスタム機能などがあれば、ご教授頂けると幸いです。

  • UserテーブルのDisplay valueを変更せずに、Userテーブルを参照する、参照フィールドのDisplay valueとして別の値をXMLエクスポートすることは可能でしょうか?」
    • XMLファイルを作成するScriptは様々な方法で作成可能です。今回の要件を満たすScriptも可能です。ではサンプルスクリプトを作ってくださいと言われると、何時間もかけて作成することになるので、いつか気が向いたときでよければ。
    • Excelを使ってXMLを読み込み、書き換えることも出来ます。ExcelでXMLを扱う方法は検索してみてください。
    • 後はXMLはそのままで、ImportSetでXMLを読み込み、Scriptで読み替えてImportすることで、要件を満たせると思います。