このステップでは、CSVファイルを修正して、列見出しを削除します。このためには、RDMLX を修正して、RECEIVE コマンドの SVMODE キーワードを *NONE (CSV ファイルに列見出無し) に変更する必要があります。ただし、ステップ 6 で受信した作業リスト定義を CSV ファイルの列と一致するように変更したため、CSV ファイル受信時にその他の変更を行う必要はありません。実際は、ファンクションは最初の 2 つのフィールドだけが必要なので、EMPNO と SALARY のみが含まれるように作業リストを定義できます。
値 iiiFN03 を指定した SEND コマンドに SVHEAD キーワードを追加します。これによりプロジェクト・エントリーが検索され、このエントリーを HTTPService プロパティ・ファイルに追加することで、CSV ファイルに見出し行が追加されます。
- 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
- 列見出しデータがあるファイルの1行目を削除します。これで、ファイルは以下のようになります。
A1004,53400,910521,ADM,01
A1005,53500,950102,ADM,01
A1006,53600,891201,MKT,02
- [ファイル] メニューで [保存] を選択し、修正したファイルを保存し、閉じます。
- ファンクション iiiFN03 を編集します。
ユーザー・エージェントからのデータの受け取りに使用する作業リストの定義を探します。作業リストは #S_RECEIVE という名前で、以下のように表示されます。
DEF_LIST NAME(#S_RECEIVE) FIELDS(#EMPNO #SALARY #STARTDTER #DEPTMENT #SECTION) TYPE(*WORKING)
- KEYWRD サブルーチンを実行するコマンドを探して、RECEIVE コマンドを作成します。 SVMODEキーワードの値を*IGNOREに変更します。
RDMLX は次のように表示されます。
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)
- 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)
- ファンクション iiiFN03 をコンパイルします。
- このステップでは、プロジェクトの HTTPSERVICE プロパティ・ファイルにセクションを 1 つ追加します。このセクションは、送信された CSV ファイルに使用される列見出しを定義します。
- Integrator スタジオで iii 研修プロジェクトを開きます。 [プロジェクト] タブで、研修用に使用しているサーバーを選び、右クリックで [サーバーを開く] をクリックします。

- 右側にサーバー・インスタンスが開きます。

- [プロパティ] のレベルを開き、HTTPService.properties までスクロールします。これを選択して、右クリックで [セクションの取得] を選択します。

- この時点ではプロジェクトに HTTPService.properties セクションが定義されていないため、以下のようなダイアログ・ボックスが表示されます。[OK] を選択すると、左側の [Integrator]、[プロパティ] の下 (プロジェクト内) に HTTPService.properties エントリーが作成されます。

- [Integrator]、[プロパティ]、HTTPService.properties を選択して、右クリック・メニューで [プログラムから開く]、[プロパティ エディター] を選択します。

- プロパティ・エディターが開きます。以下のイメージに示されるように、各変数ファイルの列見出しを定義するエントリーを追加します。変更を保存してプロパティ・エディターを閉じます。

sv.head.iiiFN03=EMPNO,GIVENAME,SURNAME,SALARY,ERRORS
- プロジェクト内の HTTPService.properties を選択して、右クリック・メニューで [セクションの発行] を選択します。

- 確認のダイアログで [はい] を選択します。プロジェクトの HTTPService.properties ファイルの最後にセクションが追加されます。

- 右側 (JSMサーバー・インスタンス) で右クリックし、[プロパティ]、[HTTPService.properties] を選択して JSM サーバーの HTTPService プロパティ・ファイルを開きます。最後までスクロールして、追加したエントリーを表示します。

- 以前と同じ手順でファンクションをテストします。応答は以下のようになります。
