• ベストアンサー

RPGでメッセージファイル利用

AS400初心者です。 RPGのプログラムにてメッセージファイルを利用するにはどのようにしたら良いのでしょうか? たとえば・・・ (RPG)   'メッセージID’CHAIN メッセージファイル   'メッセージファイルのFIELD?' MOVEL ’画面のFIELD?’ あるいは   RPGからCLを呼び出して・・  (CL)    SNDMSG メッセージID  メッセージファイル    取得したメッセージを何らかの方法でRPGに返す? 初心者で質問の仕方も悪いかもしれませんが、よろしくお願いします。     

質問者が選んだベストアンサー

  • ベストアンサー
  • taranko
  • ベストアンサー率21% (516/2403)
回答No.3

パラメータを渡すというのは、「○件データが更新 されました」の○の部分の数値をその都度変化 させたいという事でしょうか。 現在取り扱っているシステムではメッセージがすべて 固定になっていてそこまでの事はしていないです。 できるかどうかもわかりません。 少し考えてみたのですが次の方法はいかがでしょう。 画面ファイル WSMSG1 4A O 24 2DSPATR(HI BL) WSMSG 68A O 24 9DSPATR(HI BL) 配列 E TB1 1 2 4 E TB2 1 2 68 変数部分設定 C MOVE AAAA WSMSG1 キー取得 C MOVE '1003' MSGKEY メッセージ表示 C MSGKEY LOKUPTB1,M 88 C *IN88IFEQ '1' C MOVE TB2,M WSMSG C ENDIF ** TB1 ERR1 1003 ** TB2 ERR1 得意先マスタに登録されていません。 1003 更新完了 ※メッセージファイルを使用せず、RPGの中で 直接メッセージを指定する方法です。

max-min
質問者

お礼

早速のレスありがとうございます。 しばらく試すことができないかもしれませんが 結果を後ほどご報告いたします。 以前はLANSAを使って開発してたものですからRPGになると 結構わずらわしさを感じたりもします。

その他の回答 (2)

  • taranko
  • ベストアンサー率21% (516/2403)
回答No.2

画面ファイルがRPGにある場合はこれで大丈夫です 画面ファイルがCLにある場合はエラーフラグを 作成し、RPGにフラグを渡しエラーの時に メッセージを出す(パラメータの指定はCLでする) DCL VAR(&EFLG) TYPE(*CHAR) LEN(1) VALUE('0') IF  COND(&IN01 *EQ '1') THEN(DO) CALL PGM(ライブラリ/プログラム) PARM(&EFLG &WSHAID) IF COND(&EFLG *EQ '1') THEN(DO) CHGVAR VAR(&CMIC) VALUE('E004') CHGVAR VAR(&IN30) VALUE('1') GOTO START ENDDO 以上の方法と直接RPGからIDを取得する為の パラメータを渡す方法があります。 DCL VAR(&PACMIC) TYPE(*CHAR) LEN(4) VALUE(' ') CALL PGM(プログラム) PARM(&PAERR &PACMIC) IF COND(&PAERR = '1') THEN(DO) CHGVAR VAR(&CMIC) VALUE(&PACMIC) GOTO START ENDDO 一応、上はエラーフラグも渡し、エラーの時のみ パラメータで渡したIDを取得する方法です。

max-min
質問者

補足

返事遅れてすみません。 >画面ファイルがRPGにある場合はこれで大丈夫です。 のこれは何処にあたるでしょうか? 当方、画面はRPG側に存在し、処理後、画面下に &1 件のデータが更新されました。 と出したいですが上記拝見して理解できなかったです。 すみません。 現在は、taranko のNO1の回答のおかげで ’ ’件のデータが更新されました。 まで表示可能です。

  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

1つの例ですが 画面ファイル WSMSG 79A O 24 1MSGID(USR &CMIC OHAIMSGF) RPGの場合 MOVEL'E004' CMIC CLの場合 CHGVAR VAR(&CMIC) VALUE('E004') このようにしてメッセージファイルのメッセージを 取得して表示しています。

max-min
質問者

お礼

ありがとうございます。 上記のように試したところできました。 そこでつづけて質問したいのですが、 RPGからメッセージIDの指定方法はわかったのですが メッセージファイルパラメータはどのようにして渡せば よいのでしょうか??

関連するQ&A