You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

INT002 - FTP サービスの利用
このステップでは、使用するJSMファンクションに必要な基本のRDMLXコードを含むファンクションを作成します。このファンクションは、JSMXSKELテンプレートを使用して作成されます。リポジトリのフィールドを使ってファンクションを作成します。このフィールドがシステムに存在しない場合は作成する必要があります。
1.    以下のフィールドがリポジトリに定義されていることを確認します。これらのフィールドはこの演習で必修となります。これらのフィールドが存在しない場合は、以下に示された内容で作成する必要があります。  存在していたとしても、すべてのフィールドで小文字入力が許可されていることを確認してください。 

  • S_HOST ALPHA(100) – ホスト
  • S_USER ALPHA(20) – ユーザー
  • S_PSWD ALPHA(20) – パスワード
  • S_DIR ALPHA(200) – ディレクトリ

2.      iiiPRO02 JSM プロセス という名前の新しい LANSA プロセスを作成します。iiiは一意の 3 文字です(同じ名前のプロセスがすでにある場合は、iiiに対して別の文字セットを選択します)。
3.      iiiFN02 という名前で新しいファンクションを作成します。プロセス iiiPRO02 に属する FTP サービスを使用します。このファンクションは、FTPサービスを使用してファイル・リストを取得します。[RDMLXフィールドの保管の確認] ボックスが選択されていることを確認します。テンプレートは JSMXSKEL を選択します。
4.      以下の表に示すように、テンプレートの質問に回答します。

質問

回答

コメント

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

FTPSERVICE

 

5.      ファンクションの始めに 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')
     
    6.      作業フィールドの定義の直後に、FTP サービスから返されるファイル・リストの受信に使用する作業リストを定義します。
  • この作業リストの名前を WL_FILES にします。
  • ENTRYS パラメータの値を *MAX に変更します。
  • フィールド W_TYPE と W_FILE は作業リストのエントリー・フィールドとして使用します。

         RDMLX コードは以下のようになります。

  • ファイル・リストを受信する作業リスト
    DEF_LIST NAME(#WL_FILES) FIELDS(#W_TYPE #W_FILE) TYPE(*WORKING) ENTRYS(*max)
     
    7.      ファンクション・ステートメントで WL_FILES を受信リストとして指定します。
    FUNCTION OPTIONS(*DIRECT) RCV_LIST(#WL_FILES)
    8.      ファンクション iiiFN02 を保存します。
    9.      iiiFRM02 - FTP サービス表示という名前の新しいフォーム/基本フォームを作成します。iii は一意の 3 文字です。 
    10.     フィールド W_TYPE および W_FILE の定義と、作業リスト WL_FILES の定義を iiiFN02 からコピーします。
    11.     返されたファイル・リストを 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)
 
Endroutine
 
End_Com
12.     フィールド S_HOST、S_DIR、S_USER、S_PSWD をリストビュー・コントロールの上のフォームにドラッグします。  必要に応じてリストビュー・コントロールのサイズや位置を調整してください。 
13.     プッシュ・ボタンのコントロールをフォームjにドラッグして、接続というキャプションとクリックイベントを追加します。
14.     クリックイベント・ハンドラーで、以下を実行するロジックを追加します。
作業リストとリストビュー・コントロールの両方をクリア
フィールド 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_FILE
ADD_ENTRY TO_LIST(#ListView1)
ENDSELECT
 
15.     フォーム iiiFRM02 をコンパイルします。

  • No labels