バージョンはVancouverです。
問題概要
Easy Import機能を使ったデータの更新で文字列が切り捨てられる
問題の再現
Company項目(最大長40)で再現します。
Easy Importで10件のサンプルデータを投入しました。
1行目の会社名をEasy Importで修正します。
修正後の会社名:株式会社未来創造型総合ソリューションサービス・イノベーション&デベロップメント研究所(42字)
修正する会社名が長いので、Company項目の最大長を100に修正してからEasy Importで更新します。
インポート直後です。
インポート時にエラーなどは出ませんが、会社名が40字までで切り捨てられています。
原因
1回目のインポート時に自動で生成されるインポートセットテーブルによって、Company項目の最大長が40に定義されるため起きた問題でした。
2回目のインポートでは1回目に作成されたインポートセットテーブルが使われるため、40字を超える文字列を投入しようとすると40字から溢れる分は切り捨てられるようです。
テーブル定義のCompany項目の最大長を修正しても、インポートセットテーブルの最大長は修正されません。
対応:クリーンアップ
1回目のインポートで作成されたインポートセットテーブルを手動で削除することで、2回目のインポート時の文字列の切り捨てを防ぐことができます。
以下の手順でクリーンアップを実施します。
参考:インポートセットテーブルを削除する
-
[All] > [System Import Sets] > [Import Set Tables] > [Cleanup] に移動
-
「Delete related transform maps」にチェックを入れ、「Delete data only(preserve table structure)」のチェックを外す
確認
クリーンアップ後に再度データを投入すると文字列が切り捨てられず更新されます。
注意
インポートセットテーブルの修正、列の追加は推奨されていません。
今回のような場合はインポートセットテーブルの変更は避け、クリーンアップで対応するのが良いかと思います。
インポートセットテーブルのフィールドは、インポートされたデータに基づいて自動的に生成されるため、手動で変更しないでください。
引用元:インポートセットの主要な概念
余談
こちらは実務で実際に起きた問題です。
文字列が切り捨てられていてもインポート時にエラーは出ないので、VLOOKUPでデータのチェックをしてみて初めて気づくことができました。
Easy Importでテストデータを投入した後に本番データを投入する場合などはとくに注意が必要です。