IBM i Access Client Solutions(ACS)データ転送の裏技・フィールド指定アップロード
Question
IBM i Access Client Solutions(ACS)のデータ転送で特定のフィールドにだけデータを転送する裏技って無いでしょうか。
データ項目(フィールド)が3つ(aaaa,bbbb,cccc)のエクセルのデータをアップロードしたいのですが、IBM i (AS/400)側のファイルレイアウトがフィールド6つ(AAAA,aaaa,BBBB,bbbb,CCCC,cccc)という形になっています。
上図の通りaaaa,bbbb,ccccの部分にデータ転送し、他はブランクのままにしたいのですがそのまま転送してしまうとAAAA~BBBBまでの頭の3フィールドに格納されてしまいます。
アップロードした後にRPGで入れ替える方法もあるかと思いますが、ユーザーからの要望でそのひと手間を削減出来ないか検討しています。
初回だけ、ちょこっと設定すればユーザーはデータ転送するだけ、という裏技は無いでしょうか?
Answer
今回のように、フィールドの順序がアップロードしたいエクセルファイルと同じ順序であれば、転送定義ファイル(.fdfx)を編集することでデータ転送のみでご要望を叶えることができます。
まずは、既にご用意があるかもしれませんが、転送定義ファイル(.fdfx)を用意します。データ転送のIBM i(AS/400)からPCへダウンロードする画面を開き、"出力装置"項目横の"詳細"ボタンをクリックします。
"クライアント・ファイル記述を保存(S)"にチェックを入れ、"参照"ボタンから保管する場所を指定し、末尾に転送定義ファイル名を入力します。
※ここでは、EBELLTEST.fdfxとしました。
フィールドの数が6個の転送定義です。A2=aaaa,B2=bbbb,C2=ccccのフィールド名です。
この中から抜きたい項目A1、B1、C1を消していき、"FieldCount=6"の数値部分を残ったフィールド数に変更します。
また各項目の頭の[Fxxxx]は連番になるように値を変えてください。
例えば、[F0001]はAAAAのフィールドなので転送したくないので消します。
[F0002]が先頭になってしまうので、[F0002]→[F0001]に書き換えます
[F0003]も同様にBBBBのフィールドなので消して、次の[F0004]→[F0002]に、フィールドを消す分だけこの作業を続けます。
変更したら保存してください。
※元ファイルとは別名で保存することをお勧めします
後はこの転送定義ファイル(.fdfx)をアップロード時に指定すると、上記に編集した項目にのみデータをアップロードできます。
例として下記のようなエクセルをアップロードします。
アップロード時の指定は下記のとおりです。
データ転送アップロード画面を開きます。
必要事項を記入し"ライブラリー/ファイル(メンバー)"項目下の"詳細"ボタンをクリックしてください。
"クライアント・ファイル記述を使用する"にチェックを入れて編集後の転送定義ファイル(.fdfx)を指定しOKをします。
データ転送(アップロード)の画面に戻りましたら、"転送の開始"ボタンをクリックすることで、データがアップロードできます。
アップロードした結果は下記のようになります。
ただし、指定できるのは何処に入れるか、ということだけで、どの順番で入れるか考慮していません。
例えばファイルのレイアウトがAAAA→bbbb→BBBB→aaaa...と、エクセルの第一セルと第二セルの順番が逆のような場合にはMOVELをご利用いただく事になるでしょう。
ちょこっと転送定義ファイルを編集することで毎度のひと手間を削減でき、効率化に貢献出来る裏技ではないでしょうか。
by 大熊猫橋