FTPのrcmdでユーザプログラムを実行する際、CPExxxxのようなメッセージコードを返却する方法を教えて下さい。 下記の003行目のようなメッセージです。001: ftp> quote rcmd CALL MYLIB/MYPGM PARM('TEST.CSV', 1234)002: 550-ERROR OCCURD ON COMMAND CALL MYLIB/MYPGM PARM('TEST.CSV', 1234).003: 550 CAUSE CODE IS CPE3025; MESSAGE TEXT NOT AVAILABLE.004: ftp> bye 以前、AS400に詳しい方に設定して頂いたのですが、その方と連絡が取れず、やり方が分からないでいます。 確か、以下の方法だったと思いますがAS400に詳しくないので、具体的な方法が分かりません。 ・ユーザプログラムを異常復帰(ABEND)させる ・スプールのメッセージを取得して呼び出し元に返却する よろしくお願いします。
「返却する」とは、どのようなことを意味しておられるのでしょうか ?Ftp の RCMD で例えば、存在しないプログラムを呼び出してみるとquote rcmd CALL MYLIB/MY001550-ERROR OCCURRED ON COMMAND CALL MYLIB/MY001550-CAUSE CODE IS CPF0001; MESSAGE TEXT NOT AVAILABLE.のように出力されますが ( CPE エラーではなく CPF エラーです。)「MESSAGE TEXT NOT AVAILABLE」に対してこのメッセージを取得したいという意味なのでしょうか ?それとも他の意味でしょうか ?
> 「返却する」とは、どのようなことを意味しておられるのでしょうか ?> > Ftp の RCMD で例えば、存在しないプログラムを呼び出してみると> コメントありがとうございます。 おっしゃる通り、存在しないプログラムを呼び出すとエラーになるのですが、存在するプログラムで「正常復帰」と「エラー復帰」の区別が付くようにしたいのと、また、「エラー復帰の場合のメッセージコード」をFTPクライアントに返却したいのです。 よろしくお願いします。
(1) 「返却する」とは ? 「返却するとは」前出のFtpのコマンド・プロンプト画面で 550-CAUSE CODE IS CPF0001; MESSAGE TEXT NOT AVAILABLE のように画面上に、表示したいということなのでしょうか ?(2) 現状は ? 現状では表示されていないのでしょうか ? CALL で呼び出すプログラムが終了するときにエラーで終わったのであれば *ESCAPE メッセージを戻すようにすれば上記の(1)のように メッセージID を表示することができます。
何度もすいません。> (1) 「返却する」とは ?> 「返却するとは」前出のFtpのコマンド・プロンプト画面で> > 550-CAUSE CODE IS CPF0001; MESSAGE TEXT NOT AVAILABLE> > のように画面上に、表示したいということなのでしょうか ? はい。その通りです。> (2) 現状は ?> > 現状では表示されていないのでしょうか ?> > CALL で呼び出すプログラムが終了するときにエラーで終わったのであれば> *ESCAPE メッセージを戻すようにすれば上記の(1)のように> メッセージID を表示することができます。 現状は、ユーザコマンドが1(正常)で復帰しても、2(異常)で復帰しても「250 COMMAND .... SUCCESSFUL.」が表示されてしまいます。 異常復帰させる方法が間違っているのでしょうか? よろしくお願いします。
1(正常)と2(異常)とは何を指していますか ?ユーザー・コマンドを実行しているプログラム(恐らくはCLP) がメッセージ・タイプ *ESCAPE のメッセージを戻すようにすれば先にご説明したように エラー・メッセージID が戻されます。そのユーザー・コマンドを実行している CLP を調べてエラーのときは *ESCAPE メッセージを戻すように修正してください。
ありがとうございます。 以下のようにメッセージを発行するということですね。 SNDPGMMSG ...... MSGTYPE(*ESCAPE) 実機で確認してみます。
そのとおりです。ただし *ESCAPE で SNDPGMMSG するには MSGID も必要となります。
> そのとおりです。> ただし *ESCAPE で SNDPGMMSG するには MSGID も必要となります。 SNDPGMMSGで*ESCAPEを指定することで、正常と異常の区別を付けることができるようになりました。 ただ、AS400で日本語メッセージを出力した場合、FTPのコマンドプロンプトで、文字化けしてしまいます。 以下のコマンドを実行しても文字化けは解消されません。ftp> quote type c 943 どうすれば文字化けしないのでしょう? よろしくお願いします。