1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ServiceNow】Easy Importで文字列が切り捨てられる

Posted at

バージョンはVancouverです。

問題概要

Easy Import機能を使ったデータの更新で文字列が切り捨てられる

問題の再現

Company項目(最大長40)で再現します。
Easy Importで10件のサンプルデータを投入しました。

image.png

1行目の会社名をEasy Importで修正します。
修正後の会社名:株式会社未来創造型総合ソリューションサービス・イノベーション&デベロップメント研究所(42字)
修正する会社名が長いので、Company項目の最大長を100に修正してからEasy Importで更新します。

image.png

インポート直後です。
インポート時にエラーなどは出ませんが、会社名が40字までで切り捨てられています。
image.png

原因

1回目のインポート時に自動で生成されるインポートセットテーブルによって、Company項目の最大長が40に定義されるため起きた問題でした。
2回目のインポートでは1回目に作成されたインポートセットテーブルが使われるため、40字を超える文字列を投入しようとすると40字から溢れる分は切り捨てられるようです。
テーブル定義のCompany項目の最大長を修正しても、インポートセットテーブルの最大長は修正されません。

対応:クリーンアップ

1回目のインポートで作成されたインポートセットテーブルを手動で削除することで、2回目のインポート時の文字列の切り捨てを防ぐことができます。
以下の手順でクリーンアップを実施します。
参考:インポートセットテーブルを削除する

  1. [All] > [System Import Sets] > [Import Set Tables] > [Cleanup] に移動
    image.png

  2. 削除したいインポートセットテーブルを選択し「Delete these tables」に移動させる
    image.png
    image.png

  3. 「Delete related transform maps」にチェックを入れ、「Delete data only(preserve table structure)」のチェックを外す
    image.png

  4. Cleanupをクリックする
    image.png

確認

クリーンアップ後に再度データを投入すると文字列が切り捨てられず更新されます。
image.png

注意

インポートセットテーブルの修正、列の追加は推奨されていません。

今回のような場合はインポートセットテーブルの変更は避け、クリーンアップで対応するのが良いかと思います。

インポートセットテーブルのフィールドは、インポートされたデータに基づいて自動的に生成されるため、手動で変更しないでください。

引用元:インポートセットの主要な概念

余談

こちらは実務で実際に起きた問題です。
文字列が切り捨てられていてもインポート時にエラーは出ないので、VLOOKUPでデータのチェックをしてみて初めて気づくことができました。
Easy Importでテストデータを投入した後に本番データを投入する場合などはとくに注意が必要です。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?