前回のように設定すると4つほど問題が発生。
1. 前回指定したコマンドが動かないRUNRMTCMD CMD(’D:CMDSAS400MAIL 1.BAT’) RMTLOCNAME(’192.168.xxx.xxx’ *IP) CCSID(943)
これでエミュレータ上では正常に呼び出せていたが、iSeriesナビゲータを経由するせいなのか、「必要なユーザー ID がないかまたは無効です。」と言われる。結局、下記のように修正した。RUNRMTCMD CMD(’D:CMDSAS400MAIL 1.BAT’) RMTLOCNAME(’192.168.xxx.xxx’ *IP) RMTUSER(TEST) RMTPWD(TEST) CCSID(943)
2. パスが認識されない
困ったことに、iSeriesナビゲータ上のコマンド呼び出しでは¥(ほんとは半角)が使えない模様。
物は試しということで、/(スラッシュ)にしたらOKだった。RUNRMTCMD CMD(’D:/CMDS/AS400MAIL 1.BAT’) RMTLOCNAME(’192.168.xxx.xxx’ *IP) RMTUSER(TEST) RMTPWD(TEST) CCSID(943)
3. CSCRIPTが応答メッセージを返す
BATファイルでいうところの@echo offをvbs呼び出し時に指定していなかったので、標準出力に下記のメッセージの大文字の箇所だけ出力されていた。Microsoft (R) Windows Script Host Version 5.7 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
よってAS400MAIL.BATを下記のように修正cscript //B AS400Mail.vbs
4. RUNRMTCMDが邪魔する
ここまでの対応で晴れて標準出力(?)へ出力されるメッセージが無くなった。すると・・・
というメッセージを親切に出してくれる。ググって出てきた結果、「OVRPRTF QYSPRTをHOLDしDLTSPLFして下さい。 」が理解できない・・・というか、影響範囲が解らずやっていいか判断できず。
今はメッセージモニタの実行ユーザーを別途作成し、そのユーザーが出力する先に仮想PRTデバイスを指定してます。が、すごく暫定的な対応で残念過ぎる。今回の手法はすごくお薦めできません(涙)
もし設定した人が居たらごめんなさい。
Comments