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

Compare with Current View Page History

« Previous Version 2 Next »

このステップでは、使用する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