ステップ1. 基本のJSMファンクションを作成する

LANSA Integrator

ステップ1. 基本のJSMファンクションを作成する


このステップでは、使用するJSMファンクションに必要な基本のRDMLXコードを含むファンクションを作成します。このファンクションは、JSMXSKELテンプレートを使用して作成されます。SET218例にインポートされたリポジトリ・フィールドを使用してファンクションを作成します。

1.   iiiPRO02 JSM Processという新しいLANSAプロセスを作成します。iiiは一意の3文字です(プロセスがすでにある場合は、iiiに対して別の文字セットを選択します)。

2.   プロセスiiiFN02に属するiiiFN03という新しいファンクションを作成します。このファンクションは、FTPサービスを使用してファイル・リストを取得します。[RDMLXフィールドの保管の確認]オプションが選択されていることを確認します。JSMXSKELをテンプレートとして選択します。

3.   以下の表に示すように、テンプレートの質問に回答します。

質問

回答

説明

JSMサービスをロードしますか?

FTPSERVICE

 

  

4.   ファンクションの開始時に2つのフィールドを定義します。W_TYPEをAlphaフィールド、長さ1に、W_FILEをAlphaフィールド、長さ80に定義します。これらのフィールドは、FTPサービスのList JSMコマンドで必要です。

      RDMLXコードが以下のように表示されます。

*作業フィールド
DEFINE FIELD(#W_TYPE) TYPE(*CHAR) LENGTH(1) DESC('Type of file')
DEFINE FIELD(#W_FILE) TYPE(*CHAR) LENGTH(80) COLHDG('File Name')
 

5.   作業フィールドの定義の直後に、FTPサービスで返されるファイル・リストの受信に使用される作業リストを定義します。

·         作業リストの名前をWL_218にします。

·         ENTRYSパラメータの省略値を500に増やしてください。

·         W_TYPEフィールドとW_FILEフィールドを作業リスト・エントリー・フィールドとして使用します。

      RDMLXコードが以下のように表示されます。

*ファイル・リストを受信する作業リスト
DEF_LIST NAME(#WL_218) FIELDS(#W_TYPE #W_FILE) TYPE(*WORKING) ENTRYS(500)
 

6.   ファンクション・ステートメントでWL_218を受信リストとして指定します。

FUNCTION OPTIONS(*DIRECT) RCV_LIST(#WL_218)

7.   ファンクションiiiFN03を保存します。

8.   プロセスiiiPRO02に属するiiiFN04 Display FTP Serviceという新しいファンクションを作成します。iiiは一意の3文字です。[RDMLXフィールドの保管の確認]ボックスが選択されていないことを確認します。テンプレートを選択しないでください。

9.   W_TYPEフィールドおよびW_FILEフィールドの定義と、作業リストWL_218の定義をiiiFN03からコピーします。

10. 返されたファイル・リストをW_218に表示するために使用される参照リストを定義します。

·         参照リストの名前をBL_218にします。

·         フィールドW_FILEを唯一の参照リスト・エントリー・フィールドとして使用します。

      コードが以下のように表示されます。

DEFINE FIELD(#W_TYPE) TYPE(*CHAR) LENGTH(1) DESC('Type of file')
DEFINE FIELD(#W_FILE) TYPE(*CHAR) LENGTH(80) COLHDG('File Name')

DEF_LIST NAME(#WL_218) FIELDS(#W_TYPE #W_FILE) TYPE(*WORKING) ENTRYS(500)
DEF_LIST NAME(#BL_218) FIELDS(#W_FILE) ENTRYS(500)

11. 画面パネルに表示する入力フィールド(S_218HOST、S_218DIR、S_218USER、S_218PSWD)のGROUP_BYを作成します(これらのフィールドはSET例でインポートされています)。

      RDMLXコードが以下のように表示されます。

*すべての入力フィールドをグループ化する

GROUP_BY NAME(#GB_PNLDTA) FIELDS(#S_218HOST #S_218DIR #S_218USER #S_218PSWD)

      フィールドS_218DIRが定義されない場合、ファンクションで*CHAR、長さ200として定義します。

DEFINE FIELD(#S_218DIR) TYPE(*CHAR) LENGTH(200) DESC('FTP Directory')

      iiiFN04S_218DIRを定義する必要がある場合、この定義もiiiFN03にコピーします。

12. ファンクションの定義後に、以下のロジックをファンクションに追加します。

a.   BEGIN_LOOPコマンドとEND_LOOPコマンドを挿入する

b.   ループ内に、フィールドのGB_PNLDTAグループを要求するREQUESTコマンドを挿入し、参照リストBL_218を含める

c.   作業リストと参照リストの両方を消去する

d.   フィールドのグループGB_PNLDTAを交換する

e.   作業リストWL_218を渡してiiiFN03を呼び出す

f.   作業リストをループして参照リストにエントリーを追加する

      コードが以下のように表示されます。

BEGIN_LOOP
REQUEST FIELDS(#GB_PNLDTA) BROWSELIST(#BL_218)
CLR_LIST NAMED(#WL_218)
CLR_LIST NAMED(#BL_218)
EXCHANGE FIELDS(#GB_PNLDTA)
CALL PROCESS(*DIRECT) FUNCTION(IIIFN03) PASS_LST(#WL_218)
SELECTLIST NAMED(#WL_218)
ADD_ENTRY TO_LIST(#BL_218)
ENDSELECT
END_LOOP
 

13. ファンクションiiiFN04をコンパイルします。