IFSエリアに空ファイルを作成したい
Question
当社では、IBM i (AS/400)とWindowsサーバーとの連携に、IFSエリアを使用しようと考えています。調べてみたところ、「CRTDIR」でディレクトリの作成はできるようですが、空ファイルの作成方法までは見つけられませんでした。
また、CPYTOIMPFというコマンドでも同様の結果が得られると考えましたが、コピー元のファイルを用意する必要があり余計な処理が増えるので、出来れば上記コマンド以外の方法で対応したいのですが、何か方法はありませんでしょうか。
Answer
CPYTOIMPF以外の方法としては、シェルコマンドを使用する方法が考えられます。
IBM i (AS/400)でも、ライセンス「5770SS1 オプション30」がインストールされていれば、シェルコマンドを実行することが可能です。
「STRQSH(またはQSH)」を実行しますと、シェル・セッションが開きます。
例えば、すでにディレクトリ「/RENKEI」が存在する環境で「TOUCH /RENKEI/FLG.FLG」を実行いただきますと、IFS上では「/RENKEI」の配下に「FLG.FLG」というファイルが作成されます。
このコマンドは、プログラムにも組み込むことが可能です。
例:
・STRQSH CMD('TOUCH /RENKEI/FLG.FLG')
・QSH CMD('TOUCH /RENKEI/FLG.FLG')
上記のどちらかをプログラムに組み込むことで、空ファイルを作成することができるでしょう。
なお、ファイル作成には「ECHO」も使用可能なようですので、要件に合わせてご利用いただければと思います。
なお、シェル・セッションを使用する場合、コード化文字セットID(CCSID)を「5035」または「1399」である必要がございます。
もし貴社環境のシステム値「QCCSID」が「65535(または5026)」の場合には、シェルコマンド実行前にCCSIDを変更してください。
また後続処理がある場合には、CCSIDを元の設定に戻すことを忘れないよう、注意してください。
by かんぴょう木綿さん