ステップ7. 列見出しのないCSVを使用する
このステップでは、列見出しを削除するようにCSVファイルを修正します。RECEIVEコマンドのSVMODEキーワードを*NONE (CSVファイルに列見出しがない)に変更するには、RDMLXを修正する必要があります。ステップ6では、受信した作業リスト定義をCSVファイルの列に一致するように変更したため、CSVファイルを受信する場合にその他の変更を行う必要はありません。ファンクションでは、実際に最初の2つのフィールドだけが必要になるため、EMPNOとSALARYのみが含まれるように作業リストを定義できます。
値iiiFN05を指定したSENDコマンドにSVHEADキーワードを追加します。これで、送信されたCSVファイルに見出し行を追加するために、HTTPServiceプロパティ・ファイルに追加するプロジェクト・エントリーが検索されます。
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. [ファイル]メニューで[保存]を選択し、内容を修正したファイルを保存します。iii_employee_new_salary.csvファイルを閉じて構いません。
4. ファンクションiiiFN05を編集します。
ユーザー・エージェントからのデータの受け取りに使用される作業リストの定義を探します。作業リストは#S_233RCVという名前で、以下のように表示されます。
DEF_LIST NAME(#S_233RCV) FIELDS(#EMPNO #SALARY #STARTDTER #DEPTMENT #SECTION) TYPE(*WORKING)
5. KEYWRDサブルーチンを実行してRECEIVEコマンドを作成するコマンドを探します。
SVMODEキーワードの値を*NONEに変更します。SVMODE(*NONE)は省略値のため、キーワードをまとめて省略できます。
RDMLXは以下のように表示されます。
CHANGE FIELD(#JSMXCMD) TO(RECEIVE)
EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD
HANDLER ISVL)
EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD
SVMODE '*NONE')
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1
#JSMCMD) TO_GET(#JSMSTS #JSMMSG #S_233RCV)
EXECUTE SUBROUTINE(CHECK_STS)
6. SENDコマンドの実行KEYWRDサブルーチンを探します。値iiiFN05を指定したSVHEADキーワードを追加します。コードは以下のようになります。
* JSMコマンドを作成する
#JSMXCMD := SEND
EXECUTE
SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD HANDLER ISVL)
EXECUTE
SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD SVHEAD iiiFN05)
USE
BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG
#S_233SND)
EXECUTE SUBROUTINE(CHECK_STS) WITH_PARMS(#JSMXCMD)
7. ファンクションをコンパイルします。
8. このステップでは、プロジェクトのHTTPSERVICEプロパティ・ファイルにセクションを追加します。このセクションは、送信されたCSVファイルに使用される列見出しを定義します。
a. Integratorスタジオでiii Trainingプロジェクトを開きます。トレーニングに使用しているサーバーを選択し、右クリック・メニューで[サーバーを開く]を選択します。
b. 右側にサーバー・インスタンスが開きます。
c. プロパティ・レベルを開いてHTTPService.propertiesまでスクロールします。HTTPService.propertiesを選択して、右クリック・メニューで[セクションの取得]を選択します。
d. この時点ではプロジェクトにHTTPService.propertiesセクションは定義されていないため、以下のダイアログ・ボックスが表示されます。[了解]を選択すると、左側の[Integrator]、[properties]の下(プロジェクト内)にHTTPService.propertiesエントリーが作成されます。
e. [Integrator]、[properties]、HTTPService.propertiesを選択して、右クリック・メニューで[プログラムから開く]、[プロパティ エディタ]を選択します。
f. [プロパティ・エディタ]が開きます。スクリーン・ショットに示すように、各変数ファイルの列見出しを定義するエントリーを追加します。変更を保存して[プロパティ・エディタ]を閉じます。
g. プロジェクト内でHTTPService.propertiesを選択して、右クリック・メニューで[セクションの発行]を選択します。
h. 確認のダイアログで[はい]を選択します。プロジェクトのHTTPService.propertiesファイルの最後にセクションが追加されます。
i. 右側(JSMサーバー・インスタンス)で右クリック・メニューを使用し、[properties]、HTTPService.propertiesを選択してJSMサーバーのHTTPServiceプロパティ・ファイルを開きます。最後までスクロールして、追加したエントリーを表示します。
8. 前のステップの手順でファンクションをテストします。結果は以下のようになります。
.