AS400のテーブルにアップロードするときDTTというツールを使う。
Data Transfer To AS400なので、DTTという。
逆にダウンロードはData Transfer From AS400なので、DTFという。
ダウンロードはカジュアルに使えるけど、アップロードはDBをぶっ壊しそうで怖いので、基本あまり使ってない。
ダウンロードは.dtfという拡張子のファイルが一つあればいいけど、アップロードには、.dttと.fdfというファイルが必要。
.dttは.dtfと同じ、対象となるAS400のテーブルを指定したり、PCのエクセルやCSVのファイルを指定するもの。
それとは別に必要な.fdfというファイルは、何桁目に何のカラムがあるのかを定義しているファイルみたい。
エクセルやCSVからAS400のテーブルにアップするわけだから、A列に何のレコード、B列に何のレコードが入ってるかをキッチリ定義してあげないといけないようだ。
これがFDFの中身のおよそ。テキストなのでメモ帳で見れる。これはダウンロードの.dtfをしたときに自動で作られる。自動で作られるというか、転送記述の保管というチェックボックスがあるので、それにチェックを入れるだけ。
[Data Transfer File Description]
FieldCount=36
FileType=16
Version=2
[Options]
DateFormat=3
DateSep=1
DcmlSep=1
TimeFormat=1
TimeSep=1
[F0001]
Length=2
Name=MWKBN
Type=20
[F0002]
Length=4
Name=MWDAI
Type=20・
・
FieldCountはフィールド(カラム)の数。
FileTypeはそのままファイルの種類ですね。軽く調べたところBIFF8(MS Excel 8)が16、コンマ区切り可変長CSVが12でした。
Version,DataFormat,DateSep,DcmlSep,TimeFormat,TimeSepはわからない。同じだと思う。
[F0001]というのはカラムの数の連番、上記例は省いたが36カラムあるので、[F0036]まである。
Lengthは桁数ですね。
Nameはカラム名ですね。
Typeは型ですね。
このTypeの型やLengthの桁は、カラムが文字や数値などによって変化するみたいだけど、CSVかExcelかによっても変動するので覚えてもきりがなさそう。
というのは、もしAS400のテーブルのカラムを増やしたとき、.fdfも作り直さなければいけないので、サッとテキストを直せないかなと思ったところ。
アップする対象ファイルは存在するのだから、カラム変更の都度、面倒でもダウンロードして.fdfも作り直した方がよさそう。
もしテキストで直すならば、
- [F????]を追加した場合は、FieldCountの数値も変更しなければならない
- 大文字小文字も区別して認識するため、間違えないように気を付けること
- 最後の行は改行すること。なるべくEOFが見えるTeraPadなどのエディタで開くのが望ましい。
コメント