2020年10月12日月曜日

ServiceNowでインポートした文字列が切れる場合の対処法(長文の文字列インポート)

Servicenowを使いこなすうえでデータのインポートは不可欠である。

が、デフォルト設定だとほぼ必ず躓く問題がある。文字列が40文字までしかインポートできないのだ。数えてみたところ全角半角問わずきっちり40文字までの様だ。
※制限を設けるのは分からないではないが、デフォルト40文字ってちょっと短くない?

このままでは各種の複数行テキストやナレッジの記事等のインポートにおいてはかなり致命的。このデフォルト動作は次の手順で変更できる。

まずはフィルタナビゲータからsys_properties.listを表示させる。

見ても何のことやらさっぱりだが、結論としては↓のエントリを追加する必要がある。

com.glide.loader.verify_target_field_size : true

ちなみに下記のドキュメントを見る限り com.glide.loader.verify_target_field_size のデフォルトの動作は true と書かれていて特に設定の必要はなさそうに見えるのもトラップ。少なくとも現時点では明示的に設定しないとインポートデータは問答無用で40文字で途中で切れる。

https://docs.servicenow.com/bundle/paris-platform-administration/page/administer/import-sets/reference/r_ImportSetsProperties.html

また説明文では↓のように記載がある。

com.glide.loader.verify_target_field_size

Enables dynamic resizing of import set fields. By default, up to 20 records of the source data are sampled to determine the import set field length. If the field is empty in all the sampled records, the default length of 40 is used. Any data loaded that exceeds the import set table field length is truncated.

Type: true | false

Default value: true

Location: Add the property

要するにこれがtrueだとインポートデータの最初の20行を見てインポート可能な文字列長を自動調整するということらしい。

実は私は当初Nameを com.glide.loader.verify_target_field_size でフィルタして探そうとしたのだが、さっぱり見当たらず途方に暮れた。結論としては、リスト画面のNewから作成し、次のように入力しSubmitする。(Default value: trueって記載ミス?それとも英語の理解不足?)


ともあれ、これで長文のインポートでも文字列が切れずにインポートできるようになった。

なお、私が試した範囲では、
・このパラメータを後でFalseに戻しても長文のインポート、それもTrueだった時にインポートした最大文字数より長いデータのインポートが可能だった。
・「up to 20 records of the source data are sampled to determine the import set field length」という割には20レコード以降に最長のデータがあってもインポートできたような気がする。
・「Default value: true」なのになぜエントリ追加が必要?デフォルトってどういう意味?
という様な疑問点があったので、正直なところ今一動きに謎は残っている。

ともあれ、長文のインポートができたので良しとして置くことにする。。。

参考:システムプロパティの追加について
https://docs.servicenow.com/bundle/paris-platform-administration/page/administer/reference-pages/task/t_AddAPropertyUsingSysPropsList.html



0 件のコメント:

ウェブサイトのURLにおけるトレイリングスラッシュの解釈と有無による動作の違い

インターネットが現代社会におけるコミュニケーションの基盤となっている今日、ウェブサイトのURLはビジネスや個人ブランディングにとって重要な役割を果たしています。URLは単にウェブページへの経路を示すだけでなく、SEO(検索エンジン最適化)においても重要な要素です。この記事では、U...