INT003 - LANSAユーザー・エージェントの使用 このステップでは、CSVファイルを修正して、列見出しを削除します。このためには、RDMLX を修正して、RECEIVE コマンドの SVMODE キーワードを *NONE (CSV ファイルに列見出無し) に変更する必要があります。ただし、ステップ 6 で受信した作業リスト定義を CSV ファイルの列と一致するように変更したため、CSV ファイル受信時にその他の変更を行う必要はありません。実際は、ファンクションは最初の 2 つのフィールドだけが必要なので、EMPNO と SALARY のみが含まれるように作業リストを定義できます。 値 iiiFN03 を指定した SEND コマンドに SVHEAD キーワードを追加します。これによりプロジェクト・エントリーが検索され、このエントリーを HTTPService プロパティ・ファイルに追加することで、CSV ファイルに見出し行が追加されます。 1. Windows のメモ帳を開いて、この演習の最初に作成した iii_employee_new_salary.csv ファイルを開きます。ファイルは以下のようになっています。 EMPNO,SALARY,STARTDTER,DEPTMENT,SECTION A1004,53400,910521,ADM,01 A1005,53500,950102,ADM,01 A1006,53600,891201,MKT,02 2. 列見出しデータがあるファイルの1行目を削除します。これで、ファイルは以下のようになります。 A1004,53400,910521,ADM,01 A1005,53500,950102,ADM,01 A1006,53600,891201,MKT,02 3. \[ファイル\] メニューで \[保存\] を選択し、修正したファイルを保存し、閉じます。 4. ファンクション iiiFN03 を編集します。 ユーザー・エージェントからのデータの受け取りに使用する作業リストの定義を探します。作業リストは #S_RECEIVE という名前で、以下のように表示されます。 DEF_LIST NAME(#S_RECEIVE) FIELDS(#EMPNO #SALARY #STARTDTER #DEPTMENT #SECTION) TYPE(*WORKING) 5. KEYWRD サブルーチンを実行するコマンドを探して、RECEIVE コマンドを作成します。 SVMODEキーワードの値を*IGNOREに変更します。 The RDMLX might appear as follows: 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) 6. SEND コマンドの実行 KEYWRD サブルーチンを探します。値 iiiFN03 を指定した SVHEAD キーワードを追加します。コードは以下のようになります。 |
BUILD THE JSM COMMAND #JSMXCMD := SEND EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD HANDLER InboundSeparatedValue) EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD SVHEAD iiiFN03) USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG #S_SEND) EXECUTE SUBROUTINE(CHECK_STS) WITH_PARMS(#JSMXCMD) 7. ファンクション iiiFN03 をコンパイルします。 8. このステップでは、プロジェクトの HTTPSERVICE プロパティ・ファイルにセクションを 1 つ追加します。このセクションは、送信された CSV ファイルに使用される列見出しを定義します。 a. .Integrator スタジオで iii 研修プロジェクトを開きます。 \[プロジェクト\] タブで、研修用に使用しているサーバーを選び、右クリックで \[サーバーを開く\] をクリックします。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! b. 右側にサーバー・インスタンスが開きます。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! c. \[プロパティ\] のレベルを開き、HTTPService.properties までスクロールします。これを選択して、右クリックで \[セクションの取得\] を選択します。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! d. この時点ではプロジェクトに HTTPService.properties セクションが定義されていないため、以下のようなダイアログ・ボックスが表示されます。\[OK\] を選択すると、左側の \[Integrator\]、\[プロパティ\] の下 (プロジェクト内) に HTTPService.properties エントリーが作成されます。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! e. \[Integrator\]、\[プロパティ\]、HTTPService.properties を選択して、右クリック・メニューで \[プログラムから開く\]、\[プロパティ エディター\] を選択します。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! f. プロパティ・エディターが開きます。以下のイメージに示されるように、各変数ファイルの列見出しを定義するエントリーを追加します。変更を保存してプロパティ・エディターを閉じます。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! sv.head.iiiFN03=EMPNO,GIVENAME,SURNAME,SALARY,ERRORS g. プロジェクト内の HTTPService.properties を選択して、右クリック・メニューで \[セクションの発行\] を選択します。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! h. 確認のダイアログで \[はい\] を選択します。プロジェクトの HTTPService.properties ファイルの最後にセクションが追加されます。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! i. 右側 (JSMサーバー・インスタンス) で右クリックし、\[プロパティ\]、\[HTTPService.properties\] を選択して JSM サーバーの HTTPService プロパティ・ファイルを開きます。最後までスクロールして、追加したエントリーを表示します。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! 8. 以前と同じ手順でファンクションをテストします。応答は以下のようになります。 !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! . |