ステップ2. ステータスとメッセージを保存する作業リストをCHECK_STSサブルーチンに追加する
このステップでは、各JSMステートメントの実行後にステータスとメッセージを保存する作業リストをCHECK_STSサブルーチンに定義し、JSMがさまざまな操作を実行したときのファンクションのステータスを示します。
1. これは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: ' + #JSMSTS
MESSAGE MSGID(DCM9899) MSGF(DC@M01) MSGDTA(#MSGDTA)
#MSGDTA := 'Error Message: ' + #JSMMSG
MESSAGE MSGID(DCM9899) MSGF(DC@M01) MSGDTA(#MSGDTA)
ENDIF
*
DEF_LIST NAME(#WL_MSGS) FIELDS(#JSMSTS #JSMMSG) TYPE(*WORKING)
ADD_ENTRY TO_LIST(#WL_MSGS)
ENDROUTINE
2. ファンクションiiiFN01を呼び出し、作業リストを渡して受け取るには、FUNCTIONコマンドを以下のように変更します。
FUNCTION OPTIONS(*DIRECT) RCV_LIST(#WL_MSGS)
3. ファンクションiiiFN01を保存してコンパイルします。