> ArcGISで既存の他のShapeファイルを確認するすると、確かにShort型の属性型が存在します。ArcGISで属性新規作追加時もShortかLongかが選べるようになっています。
おそらくこれが全ての混乱の元ですね。
繰り返しますが、Shapeのフォーマット仕様では、属性データ型としてShortやLongは存在しません。数値データ型は、十進数表現での桁数と小数部桁数を指定するN型 (number) だけです。
FMEはフォーマットの仕様に可能な限り忠実に従っているので、Shapeフォーマットの属性データ型としてShortやLongはありません。
ArcGISでShapeファイルのデータ型としてShortやLongが存在する(ように見える)のはユーザーインターフェース上だけのことで、Shapeのフォーマット仕様上のデータ型としてはどちらもN型(ただし桁数は異なる)です。
追記:
ArcCatalogで新規に作成したShapeファイルの「実際の」データ型は次のようになりました。
ArcCatalogでのデータ型設定 | 作成されたShapeファイルのデータ型 | FMEが翻訳したデータ型
Long Integer | N(9,0) | fme_decimal(9,0)
Short Integer | N(4,0) | fme_decimal(4,0)
Float | N(13,11) | fme_decimal(13,11)
Double | N(19,11) | fme_decimal(19,11)
Text | C(50) | fme_char(50)
Date | D | fme_date
FMEはShapeファイルに定義されているデータ型を正確に翻訳しています。
GDBのShort型は本当のshort(2バイト整数)型なので、-32768~32767の値が格納できます。
しかし、ArcGISがShapeファイルについて表示するShort型はウソのshort型で、実際に設定されるデータ型は N(4,0): 4桁以下の整数(厳密にいえば「十進数表現で4桁以下、小数部桁数が0の数」)です。
GDBのShort型属性には4桁より大きい数値が格納されうるので、その属性値の移行先のShapeファイル属性のデータ型が"Short"=「4桁以下の整数」だと、4桁より大きい値があったときに正しく移行できないというリスクが生じる、というわけです。