出力される行数が一定でないマルチラインメッセージのマイナーラインを解析することを考えています。
例えば、D C,Aコンソールコマンドを実行すると、実行環境によって出力行数が一定ではないマルチラインメッセージが出力されますが
出力行数にかかわらずマルチラインメッセージ中、特定のマイナーラインの内容を確認できるAOF Ruleのサンプルはありますか。
Release : 14.0
msg.text.nでマルチラインメッセージの情報を入手できます。
n に指定できるのは、0から始まる整数もしくはインデックス用の変数として使用するアルファベットです。
<ご参考:指定例>
msg.text.0 : マルチラインメッセージの出力行数
msg.text.1 : マルチラインメッセージの1行目 メインライン
msg.text.2 : マルチラインメッセージの2行目 マイナーライン
(2以降、3、4、5、、、と特定のマイナーラインとなります。)
msg.text.n : nには、yやw等をインデックス変数として使用できます。
指定例 : msg.text.y、msg.text.w
<ご参考:サンプルルール>
仕様 : D C,Aを発行すると出力されるCNZ4100Iメッセージ(マルチライン)を検出して
コンソール CONSOL1、CONSOL2がACTであれば、そのコンソールにメッセージを出力する
)MSG CNZ4100I MLWTO
)PROC
CON1 = 'MCS001'
CON2 = 'MCS002'
CONT = 'MCS'
CONS = 'ACT'
SAY '**Total Number of lines in message='msg.text.0
DO y = 1 TO msg.text.0
SAY ' **Line 'y' contents =>'msg.text.y
DO w = 1 TO WORDS(msg.text.y)
CONX = WORD(msg.text.y,w)
CONTX = SUBSTR(WORD(msg.text.y,2),6,3)
CONSX = SUBSTR(WORD(msg.text.y,3),8,3)
IF CON1 = CONX & CONT = CONTX & CONS = CONSX
THEN DO
ADDRESS "WTO"
"MSGID(TEST100)",
"TEXT('TEST MESSAGE *** MCS001 ***')",
"HILITE CNNAME(MCS001)"
END
IF CON2 = CONX & CONT = CONTX & CONS = CONSX
THEN DO
ADDRESS "WTO"
"MSGID(TEST200)",
"TEXT('TEST MESSAGE *** MCS002 ***')",
"HILITE CNNAME(MCS002)"
END
END
END
Old Japanese Knowledge document ID: JTEC003246
OPS/MVSのその他FAQについては、以下のリンクからご確認ください。