まだ具体的な試行はやっていないので、調べ物のメモです。
HULFTで、ファイル転送を行った後にそのファイルについて何かしら手を入れる必要がある場合の方策について調べています。やりたいのは
- 配信が成功した時のみ、配信したファイルを特定して処理を行う。
ということ。
選択肢としては
の2つ。前者は、UTLSENDの戻り値が成功時には0になることを利用してバッチのコマンドを組めばよいのですが、バッチ処理の中で処理を増やすことになるので少々複雑になる可能性が。また、後者のHULFT配信後ジョブの機能があるにも関わらずそれを使わないということなので、将来的なメンテなどを考えると設計資料などにきちんとそちらの選択をした理由なども含めて明記しないと「どこでやってるのかわからない」となる可能性があります。
後者の配信後ジョブを利用した場合ですが、問題が1点。処理したい対象ファイルの情報は、UTLSENDを呼び出す側はわかっていますが、配信後ジョブを実行するHULFT自体はそのファイルIDなどを特に情報としてもらっていません(UTLSENDは知っていますが、配信を監視しているHULFTの監視機能は結果やログ情報を受け取っているだけでしょう)。なので、配信後ジョブに、処理対象ファイルを特定するための情報を何かしらの方法で引き渡す必要があります。
それについて少し検索したところ、HULFTのサイトで答えがありました。
これが使えるのではないかと。UTLSENDに引数「-msg0」~「-msg5」までの5種類のメッセージを指定でき、指定されたメッセージは配信後ジョブ呼び出し定義の文中で「$MSG0」~「$MSG5」のような変数として利用できるようです。なので、UTLSENDを呼ぶ側でこのパラメータを「-msg0 filename.csv」のように指定しておき、そこにファイル名を特定する情報を渡し、後続の配信後ジョブ呼び出し時にジョブスクリプトの引数として「script.bat $MSG0」のようにすればファイル名を引数として取得できそうです。
配信後ジョブの設定方法については下記のページに説明があります。
まだ試していませんが、この方式で実現できないか検討してみます。
- 作者: 伊藤忠テクノソリューションズ
- 出版社/メーカー: 日経BP社
- 発売日: 2008/03/06
- メディア: 単行本
- 購入: 2人 クリック: 12回
- この商品を含むブログ (4件) を見る