このステップでは、ファンクション iiiFN03 を修正して、列見出しを無視して、作業リスト S_RECEIVE に定義されたフィールドを使用してデータをマッピングします。
- ファンクション iiiFN03 を編集します。
ユーザー・エージェントからのデータの受け取りに使用する作業リストの定義を探します。作業リストは #S_RECEIVE という名前で、以下のように表示されます。DEF_LIST NAME(#S_RECEIVE) FIELDS(#EMPNO #SALARY) TYPE(*WORKING) - S_RECEIVE の定義を修正して、CSV ファイルの形式に一致するようにします。コードは以下のようになります。
DEF_LIST NAME(#S_RECEIVE) FIELDS(#EMPNO #SALARY #STARTDTER #DEPTMENT #SECTION) TYPE(*WORKING) - KEYWRD サブルーチンを実行するコマンドを探して、RECEIVE コマンドを作成します。SVMODE キーワードの値を *IGNORE に変更します。*IGNORE を使用する理由の1つは、列見出しが LANSA フィールド名ではない場合があるからです。例えば、サーバーは、列見出しがフィールド名 EMPNO ではなく「社員番号」というラベルの CSV ファイルを受信する可能性もあります。
コードは以下のようになります。CHANGE FIELD(#JSMXCMD) TO(RECEIVE)EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD HANDLER InboundSeparatedValue)EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD SVMODE '*IGNORE')USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG #S_RECEIVE)EXECUTE SUBROUTINE(CHECK_STS) - ファンクション iiiFN03 をコンパイルします。
- ユーザー・エージェントを使用して、前回と同様にファンクションをテストします。結果はまったく同じになるはずです。
- (オプション)CSVファイルを編集して、『番号、年収、開始日、部門、課コード」などの列見出しを含め、変更を保存します。ユーザー・エージェントがまだ開いている場合は、[ファイル]、[ソースデータを閉じる] を使って、修正されたCSVファイルを開いて送信します。再度、同じ結果が得られます。