このステップでは、各JSMステートメントの実行後にステータスとメッセージを保存する作業リストをCHECK_STSサブルーチンに定義し、JSMがさまざまな操作を実行したときのファンクションのステータスを示します。
これは RDMLX ファンクションであるため、DISPLAY コマンドや参照リストは使用できません。次のステップでは、iiiFN01を呼び出してメッセージを含む作業リストを受け取るRDMLファンクションを作成します。CHECK_STSサブルーチンの最後で、JSMSTSフィールドとJSMMSGフィールドを含む作業リストWL_MSGSを定義し、そのリストにエントリーを追加します。
RDMLX コードは以下のようになります。
SUBROUTINE NAME(CHECK_STS) PARMS(#W_HDLE)*DEFINE FIELD(#MSGDTA) TYPE(*CHAR) LENGTH(132)DEFINE FIELD(#W_HDLE) TYPE(*CHAR) LENGTH(4)*IF COND('#JSMSTS *NE OK')*#MSGDTA := 'Error Status Code: ' + #JSMSTSMESSAGE MSGID(DCM9899) MSGF(DC@M01) MSGDTA(#MSGDTA)#MSGDTA := 'Error Message: ' + #JSMMSGMESSAGE MSGID(DCM9899) MSGF(DC@M01) MSGDTA(#MSGDTA)ENDIF*Def_List Name(#WL_MSGS) Fields(#JSMSTS #JSMMSG) Type(*WORKING) ENTRYS(*max)Add_Entry To_List(#WL_MSGS)ENDROUTINE
ファンクション iiiFN01 を呼び出し、作業リストを渡して受け取るには、FUNCTION コマンドを以下のように変更します。
Function Options(*DIRECT) Rcv_List(#WL_MSGS)
ファンクション iiiFN01 を保存してコンパイルします。