Page History
このステップでは、使用するJSMファンクションに必要な基本のRDMLXコードを含むファンクションを作成します。このファンクションは、JSMXSKELテンプレートを使用して作成されます。リポジトリのフィールドを使ってファンクションを作成します。このフィールドがシステムに存在しない場合は作成する必要があります。
...
以下のフィールドがリポジトリに定義されていることを確認します。これらのフィールドはこの演習で必修となります。これらのフィールドが存在しない場合は、以下に示された内容で作成する必要があります。 存在していたとしても、すべてのフィールドで小文字入力が許可されていることを確認してください。
S_HOST ALPHA(100) – ホスト
S_USER ALPHA(20) – ユーザー
S_PSWD ALPHA(20) – パスワード
S_DIR ALPHA(200) – ディレクトリ
...
iiiPRO02 JSM プロセス という名前の新しい LANSA プロセスを作成します。iiiは一意の 3 文字です(同じ名前のプロセスがすでにある場合は、iiiに対して別の文字セットを選択します)。
...
iiiFN02 という名前で新しいファンクションを作成します。プロセス iiiPRO02 に属する FTP サービスを使用します。このファンクションは、FTPサービスを使用してファイル・リストを取得します。[RDMLXフィールドの保管の確認] ボックスが選択されていることを確認します。テンプレートは JSMXSKEL を選択します。
以下の表に示すように、テンプレートの質問に回答します。
質問
回答
コメント
JSMサービスをロードしますか?
FTPSERVICE
...
...
ファンクションの始めに 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')
...
作業フィールドの定義の直後に、FTP サービスから返されるファイル・リストの受信に使用する作業リストを定義します。
この作業リストの名前を WL_FILES にします。
ENTRYS パラメータの値を *MAX に変更します。
- フィールド W_TYPE と W_FILE は作業リストのエントリー・フィールドとして使用します。
...
RDMLX コードは以下のようになります。
* ファイル・リストを受信する作業リストDEF_
...
LIST NAME(#WL_FILES)
...
FIELDS(#W_
...
TYPE #W_FILE)
...
TYPE(*WORKING)
...
ENTRYS(*max)
...
ファンクション・ステートメントで WL_FILES を受信リストとして指定します。
...
FUNCTION OPTIONS(*DIRECT)
...
RCV_LIST(#WL_FILES)
...
ファンクション iiiFN02 を保存します。
...
iiiFRM02 - FTP サービス表示という名前の新しいフォーム/基本フォームを作成します。iii は一意の 3
...
文字です。
フィールド W_TYPE および W_FILE の定義と、作業リスト WL_FILES の定義を iiiFN02 からコピーします。
...
返されたファイル・リストを WL_FILES に表示するために使用するリストビュー・コントロールをフォームにドラッグします。
- フィールド STD_QSEL をこのリストビューにドラッグします。
- WidthType は Remainder に設定します。
...
コードは以下のようになります。
Function Options(*DIRECT)Begin_Com Role(*EXTENDS #PRIM_FORM) Clientwidth(484) Clientheight(301) Componentversion(2) Left(839) Top(285)Define_Com Class(#PRIM_LTVW) Name(#ListView1) Columnbuttonheight(27) Componentversion(2) Displayposition(1) Fullrowselect(True) Keyboardpositioning(SortColumn) Left(56) Parent(#COM_OWNER) Showsortarrow(True) Tabposition(1) Top(37) Height(228) Width(393)Define_Com Class(#PRIM_LVCL) Name(#LVCL1) Displayposition(1) Parent(#ListView1) Source(#STD_QSEL) Widthtype(Remainder)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_FILES) Fields(#W_TYPE #W_FILE) Type(*WORKING) Entrys(*MAX)Evtroutine Handling(#com_owner.CreateInstance)Set Com(#com_owner) Caption(*component_desc)EndroutineEnd_Com
...
フィールド S_HOST、S_DIR、S_USER、S_PSWD
...
をリストビュー・コントロールの上のフォームにドラッグします。 必要に応じてリストビュー・コントロールのサイズや位置を調整してください。
プッシュ・ボタンのコントロールをフォームjにドラッグして、接続というキャプションとクリックイベントを追加します。
クリックイベント・ハンドラーで、以下を実行するロジックを追加します。
- 作業リストとリストビュー・コントロールの両方をクリア
- フィールド S_HOST、S_DIR, S_USER、S_PSWD を交換
- 作業リスト WL_FILES を渡して iiiFN02 を呼び出す
- STD_QSEL を W_FILE に設定した後、作業リスト内をループして、リストビュー・コントロールにエントリーを追加
...
コードは以下のようになります。
CLR_
...
LIST NAMED(#WL_FILES)CLR_
...
LIST NAMED(#ListView1)
...
EXCHANGE FIELDS(#S_HOST #S_DIR #S_USER #S_PSWD)
...
CALL PROCESS(*DIRECT)
...
FUNCTION(IIIFN02)
...
PASS_LST(#WL_FILES)
...
SELECTLIST NAMED(#WL_FILES)#STD_QSEL := #W_FILEADD_
...
ENTRY TO_LIST(#ListView1)ENDSELECT
...
フォーム iiiFRM02 をコンパイルします。