ステップ7. 列見出しのないCSVを使用する

LANSA Integrator

ステップ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.   前のステップの手順でファンクションをテストします。結果は以下のようになります。

.