Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

このステップでは、使用するJSMファンクションに必要な基本のRDMLXコードを含むファンクションを作成します。このファンクションは、JSMXSKELテンプレートを使用して作成されます。リポジトリのフィールドを使ってファンクションを作成します。このフィールドがシステムに存在しない場合は作成する必要があります。

...

  1. 以下のフィールドがリポジトリに定義されていることを確認します。これらのフィールドはこの演習で必修となります。これらのフィールドが存在しない場合は、以下に示された内容で作成する必要があります。  存在していたとしても、すべてのフィールドで小文字入力が許可されていることを確認してください。 



    • S_HOST ALPHA(100) – ホスト

    • S_USER ALPHA(20) – ユーザー

    • S_PSWD ALPHA(20) – パスワード

    • S_DIR ALPHA(200) – ディレクトリ

...


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

...


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


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

    質問

    回答

    コメント

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

    FTPSERVICE

...

 

...


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

...


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

     * 作業フィールド

...

  1. DEFINE FIELD(#W_TYPE)

...

  1. TYPE(*CHAR)

...

  1. LENGTH(1)

...

  1. DESC('

...

  1. Type of file')

...

  1. DEFINE FIELD(#W_FILE)

...

  1. TYPE(*CHAR)

...

  1. LENGTH(80)

...

  1. COLHDG('

...

  1. File Name')
     

...

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

    • この作業リストの名前を WL_FILES にします。

    • ENTRYS パラメータの値を *MAX に変更します。

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

...

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

     * ファイル・リストを受信する作業リスト
    DEF_

...

  1. LIST NAME(#WL_FILES)

...

  1. FIELDS(#W_

...

  1. TYPE #W_FILE)

...

  1. TYPE(*WORKING)

...

  1. ENTRYS(*max)
     

...

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

...

  1. FUNCTION OPTIONS(*DIRECT)

...

  1. RCV_LIST(#WL_FILES)

...


  1. ファンクション iiiFN02 を保存します。

...


  1. iiiFRM02 - FTP サービス表示という名前の新しいフォーム/基本フォームを作成します。iii は一意の 3

...

  1. 文字です。
     

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

...


  1. 返されたファイル・リストを WL_FILES に表示するために使用するリストビュー・コントロールをフォームにドラッグします。

    • フィールド STD_QSEL をこのリストビューにドラッグします。
    • WidthType は Remainder に設定します。

...

  1. コードは以下のようになります。
    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

...


  1. フィールド S_HOST、S_DIR、S_USER、S_PSWD

...

  1. をリストビュー・コントロールの上のフォームにドラッグします。  必要に応じてリストビュー・コントロールのサイズや位置を調整してください。 

  2. プッシュ・ボタンのコントロールをフォームjにドラッグして、接続というキャプションとクリックイベントを追加します。

  3. クリックイベント・ハンドラーで、以下を実行するロジックを追加します。

    • 作業リストとリストビュー・コントロールの両方をクリア
    • フィールド S_HOST、S_DIR, S_USER、S_PSWD を交換
    • 作業リスト WL_FILES を渡して iiiFN02 を呼び出す
    • STD_QSEL を W_FILE に設定した後、作業リスト内をループして、リストビュー・コントロールにエントリーを追加

...

  1. コードは以下のようになります。
    CLR_

...

  1. LIST NAMED(#WL_FILES)
    CLR_

...

  1. LIST NAMED(#ListView1)

...

  1. EXCHANGE FIELDS(#S_HOST #S_DIR #S_USER #S_PSWD)

...

  1. CALL PROCESS(*DIRECT)

...

  1. FUNCTION(IIIFN02)

...

  1. PASS_LST(#WL_FILES)

...

  1. SELECTLIST NAMED(#WL_FILES)
    #STD_QSEL := #W_FILE
    ADD_

...

  1. ENTRY TO_LIST(#ListView1)
    ENDSELECT
     

...

  1. フォーム iiiFRM02 をコンパイルします。