INT003 - LANSAユーザー・エージェントの使用 このステップでは、ファンクション iiiFN03 を修正して、列見出しを無視して、作業リスト S_RECEIVE に定義されたフィールドを使用してデータをマッピングします。 1. ファンクション iiiFN03 を編集します。 ユーザー・エージェントからのデータの受け取りに使用する作業リストの定義を探します。作業リストは #S_RECEIVE という名前で、以下のように表示されます。 DEF_LIST NAME(#S_RECEIVE) FIELDS(#EMPNO #SALARY) TYPE(*WORKING) 2. S_RECEIVE の定義を修正して、CSV ファイルの形式に一致するようにします。コードは以下のようになります。 DEF_LIST NAME(#S_RECEIVE) FIELDS(#EMPNO #SALARY #STARTDTER #DEPTMENT #SECTION) TYPE(*WORKING) 3. 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) 4. ファンクション iiiFN03 をコンパイルします。 5. ユーザー・エージェントを使用して、前回と同様にファンクションをテストします。結果はまったく同じになるはずです。 6. (オプション)CSVファイルを編集して、『番号、年収、開始日、部門、課コード」などの列見出しを含め、変更を保存します。ユーザー・エージェントがまだ開いている場合は、\[ファイル\]、\[ソースデータを閉じる\] を使って、修正されたCSVファイルを開いて送信します。再度、同じ結果が得られます。 |