マルチラインメッセージを解析するサンプルルール
search cancel

マルチラインメッセージを解析するサンプルルール

book

Article ID: 271918

calendar_today

Updated On:

Products

OPS/MVS Event Management & Automation

Issue/Introduction

出力される行数が一定でないマルチラインメッセージのマイナーラインを解析することを考えています。

例えば、D C,Aコンソールコマンドを実行すると、実行環境によって出力行数が一定ではないマルチラインメッセージが出力されますが

出力行数にかかわらずマルチラインメッセージ中、特定のマイナーラインの内容を確認できるAOF Ruleのサンプルはありますか。

Environment

Release : 14.0

Resolution

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                                                             

 

Additional Information

Old Japanese Knowledge document ID: JTEC003246 

OPS/MVSのその他FAQについては、以下のリンクからご確認ください。

JTEC002336 : OPS/MVS FAQ一覧表