AS400/IBMi IBMiへのデータ転送.FDFファイル

IT関連

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などのエディタで開くのが望ましい。

 

コメント

タイトルとURLをコピーしました