プロが教えるわが家の防犯対策術!

AS400初心者です。
RPGのプログラムにてメッセージファイルを利用するにはどのようにしたら良いのでしょうか?

たとえば・・・
(RPG)
  'メッセージID’CHAIN メッセージファイル
  'メッセージファイルのFIELD?' MOVEL ’画面のFIELD?’

あるいは
  RPGからCLを呼び出して・・
 (CL)
   SNDMSG メッセージID  メッセージファイル
   取得したメッセージを何らかの方法でRPGに返す?

初心者で質問の仕方も悪いかもしれませんが、よろしくお願いします。

    

A 回答 (3件)

1つの例ですが


画面ファイル
WSMSG 79A O 24 1MSGID(USR &CMIC OHAIMSGF)

RPGの場合
MOVEL'E004' CMIC

CLの場合
CHGVAR VAR(&CMIC) VALUE('E004')

このようにしてメッセージファイルのメッセージを
取得して表示しています。
    • good
    • 0
この回答へのお礼

ありがとうございます。
上記のように試したところできました。

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

お礼日時:2003/11/26 17:19

画面ファイルが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を取得する方法です。

この回答への補足

返事遅れてすみません。
>画面ファイルがRPGにある場合はこれで大丈夫です。
のこれは何処にあたるでしょうか?

当方、画面はRPG側に存在し、処理後、画面下に

&1 件のデータが更新されました。

と出したいですが上記拝見して理解できなかったです。
すみません。

現在は、taranko のNO1の回答のおかげで
’ ’件のデータが更新されました。
まで表示可能です。

補足日時:2003/12/08 00:56
    • good
    • 0

パラメータを渡すというのは、「○件データが更新


されました」の○の部分の数値をその都度変化
させたいという事でしょうか。
現在取り扱っているシステムではメッセージがすべて
固定になっていてそこまでの事はしていないです。
できるかどうかもわかりません。
少し考えてみたのですが次の方法はいかがでしょう。

画面ファイル
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の中で
直接メッセージを指定する方法です。
    • good
    • 0
この回答へのお礼

早速のレスありがとうございます。
しばらく試すことができないかもしれませんが
結果を後ほどご報告いたします。

以前はLANSAを使って開発してたものですからRPGになると
結構わずらわしさを感じたりもします。

お礼日時:2003/12/09 01:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!