新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
FTPのrcmd tsunsoft さん [ 4月10日(火) 13時18分 ]

     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)させる
     ・スプールのメッセージを取得して呼び出し元に返却する

     よろしくお願いします。

    RE:FTPのrcmd IKD さん [ 4月10日(火) 15時11分 ]

      「返却する」とは、どのようなことを意味しておられるのでしょうか ?

      Ftp の RCMD で例えば、存在しないプログラムを呼び出してみると

      quote rcmd CALL MYLIB/MY001
      550-ERROR OCCURRED ON COMMAND CALL MYLIB/MY001
      550-CAUSE CODE IS CPF0001; MESSAGE TEXT NOT AVAILABLE.

      のように出力されますが ( CPE エラーではなく CPF エラーです。)
      「MESSAGE TEXT NOT AVAILABLE」に対してこのメッセージを取得したいと
      いう意味なのでしょうか ?
      それとも他の意味でしょうか ?

      RE:FTPのrcmd tsunsoft さん [ 4月10日(火) 15時55分 ]

        > 「返却する」とは、どのようなことを意味しておられるのでしょうか ?
        > 
        > Ftp の RCMD で例えば、存在しないプログラムを呼び出してみると
        > 

         コメントありがとうございます。

         おっしゃる通り、存在しないプログラムを呼び出すとエラーになるのですが、
        存在するプログラムで「正常復帰」と「エラー復帰」の区別が付くようにしたいのと、
        また、「エラー復帰の場合のメッセージコード」をFTPクライアントに返却したい
        のです。

         よろしくお願いします。

      RE:FTPのrcmd IKD さん [ 4月10日(火) 17時19分 ]

        (1) 「返却する」とは ?
             「返却するとは」前出のFtpのコマンド・プロンプト画面で

              550-CAUSE CODE IS CPF0001; MESSAGE TEXT NOT AVAILABLE

              のように画面上に、表示したいということなのでしょうか ?

        (2) 現状は ?

             現状では表示されていないのでしょうか ?

             CALL で呼び出すプログラムが終了するときにエラーで終わったのであれば
             *ESCAPE メッセージを戻すようにすれば上記の(1)のように
           メッセージID を表示することができます。

        RE:FTPのrcmd tsunsoft さん [ 4月10日(火) 19時16分 ]

           何度もすいません。

          > (1) 「返却する」とは ?
          >      「返却するとは」前出のFtpのコマンド・プロンプト画面で
          > 
          >       550-CAUSE CODE IS CPF0001; MESSAGE TEXT NOT AVAILABLE
          > 
          >       のように画面上に、表示したいということなのでしょうか ?

           はい。その通りです。

          > (2) 現状は ?
          > 
          >      現状では表示されていないのでしょうか ?
          > 
          >      CALL で呼び出すプログラムが終了するときにエラーで終わったのであれば
          >      *ESCAPE メッセージを戻すようにすれば上記の(1)のように
          >    メッセージID を表示することができます。

           現状は、ユーザコマンドが1(正常)で復帰しても、2(異常)で復帰しても
          「250 COMMAND .... SUCCESSFUL.」が表示されてしまいます。

           異常復帰させる方法が間違っているのでしょうか?

           よろしくお願いします。

          RE:FTPのrcmd IKD さん [ 4月10日(火) 20時11分 ]

            1(正常)と2(異常)とは何を指していますか ?

            ユーザー・コマンドを実行しているプログラム(恐らくはCLP) が
            メッセージ・タイプ *ESCAPE のメッセージを戻すようにすれば
            先にご説明したように エラー・メッセージID が戻されます。
            そのユーザー・コマンドを実行している CLP を調べて
            エラーのときは *ESCAPE メッセージを戻すように修正してください。

            RE:FTPのrcmd tsunsoft さん [ 4月11日(水) 15時7分 ]

               ありがとうございます。

               以下のようにメッセージを発行するということですね。

               SNDPGMMSG ...... MSGTYPE(*ESCAPE)

               実機で確認してみます。

              RE:FTPのrcmd IKD さん [ 4月11日(水) 15時16分 ]

                そのとおりです。
                ただし *ESCAPE で SNDPGMMSG するには MSGID も必要となります。

                RE:FTPのrcmd tsunsoft さん [ 4月14日(土) 0時18分 ]

                  > そのとおりです。
                  > ただし *ESCAPE で SNDPGMMSG するには MSGID も必要となります。

                   SNDPGMMSGで*ESCAPEを指定することで、正常と異常の区別を付けることが
                  できるようになりました。

                   ただ、AS400で日本語メッセージを出力した場合、FTPのコマンドプロンプ
                  トで、文字化けしてしまいます。

                   以下のコマンドを実行しても文字化けは解消されません。
                  ftp> quote type c 943

                   どうすれば文字化けしないのでしょう?

                   よろしくお願いします。

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス