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

Compare with Current View Page History

Version 1 Next »

ステップ 2. テンプレート JSMXSKEL を使用してファンクションを作成する

INT001 - JSMの基本操作の開始
このステップでは、JSMを開いて終了し、テンプレートJSMXSKELを使用して、FTPServiceサービスをロードするテスト・ファンクションを作成します。
1.      LANSA 開発環境を使用する場合、演習用に指定された区画にサインオンします。
2.      以下のフィールドがリポジトリに定義されていることを確認します。これらのフィールドはこの演習やその他の演習でも必修となります。これらのフィールドが存在しない場合は、以下に示された内容で作成する必要があります。

  • JSMXCMD STRING(65535) (RDMLX フィールドであること)
  • JSMXHDLE1 ALPHA(4)
  • JSMXSTS ALPHA(20)
  • JSMSTS ALPHA(20)
  • JSMXMSG ALPHA(200)
  • JSMMSG ALPHA(200)

3.      iiiPRO01 JSM テスト プロセスという名前で新しい LANSA プロセスを作成します。iii は一意の 3 文字です (プロセス名がすでに存在する場合は、iii は別の文字を選択してください。)
4.      プロセス iiiPRO01 に属する iiiFN01 JSM オープン/クローズ という新しいファンクションを作成します。[RDMLXフィールドの保管の確認] チェックボックスが選択されていることを確認します。ファンクションがアプリケーション・テンプレートにより生成されるように指定します (テンプレート] ドロップダウンで JSMXSKEL を選択)。
5.      以下の表に示すように、テンプレートの質問に回答します。

質問

回答

コメント

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

FTPSERVICE

 

6.      iiiFN01 ファンクションを編集して、生成された RDMLX コード内容を確認します。
         ファンクションは以下のように表示されています。

  • ====================================================
    *  Process ........:  IIIPRO01
    *  Function .......:  IIIFN01
    *  Created on .....:  16/07/13  at  12:19:30
    *  Description ....:  Test 01
    *  Template........:  JSMXSKEL
  • ====================================================
    Function Options(*DIRECT)
    *
    *  OPEN JSM AND VERIFY STATUS
    Use Builtin(JSMX_OPEN) To_Get(#JSMSTS #JSMMSG #jsmxhdle1)
    Execute Subroutine(CHECK_STS) With_Parms(#jsmxhdle1)
    *
  • BUILD THE SERVICE LOAD COMMAND
    #JSMXCMD := 'SERVICE_LOAD'
    Execute Subroutine(KEYWRD) With_Parms(#JSMXCMD 'SERVICE' 'FTPSERVICE')
    Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG)
    Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
    *
    *     YOUR OWN LOGIC HERE
    *
  • UNLOAD SERVICE
    #JSMXCMD := 'SERVICE_UNLOAD'
    Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMSTS #JSMMSG)
    Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
  • CLOSE JSM AND VERIFY STATUS
    Use Builtin(JSMX_CLOSE) With_Args(#JSMXHDLE1) To_Get(#JSMSTS #JSMMSG)
    Execute Subroutine(CHECK_STS) With_Parms(#JSMXHDLE1)
    *
    Return
    *
  • Subroutine to build JSM commands. existing JSM command
    *
    Subroutine Name(KEYWRD) Parms((#W_CMDX *BOTH) (#W_KEYWRD *RECEIVED) (#W_KEYVAL *RECEIVED))
    Define Field(#W_CMDX) Reffld(#JSMXCMD)
    Define Field(#W_KEYWRD) Reffld(#STD_TEXT)
    Define Field(#W_KEYVAL) Reffld(#STD_TEXTL)
    #W_CMDX += ' ' + #W_KEYWRD + '(' + #W_KEYVAL + ')'
    Endroutine
    *
    *  Check the status of the JSM command issued
    *
    Subroutine Name(CHECK_STS) Parms(#W_HDLE)
    *
    Define Field(#MSGDTA) Type(*CHAR) Length(132)
    Define Field(#W_HDLE) Type(*CHAR) Length(4)
    *
    If Cond('#JSMSTS *NE OK')
    *
    #MSGDTA := 'Error Status Code: ' + #JSMSTS
    Message Msgid(DCM9899) Msgf(DC@M01) Msgdta(#MSGDTA)
    #MSGDTA := 'Error Message: ' + #JSMMSG
    Message Msgid(DCM9899) Msgf(DC@M01) Msgdta(#MSGDTA)
    Endif
    *
    Endroutine
     
             JSM を開く際に利用されるコマンド、JSM、FTPService サービスをロードするコマンド、サービスをアンロードするコマンド、JSMXを終了するコマンドに着目してください。
  • JSM コマンドのキーワードとその値を簡単に生成できるように、KEYWRD サブルーチンが使われています。サブルーチン KEYWRD の詳細は、「INT002 - FTP サービスの利用 」で説明されています。
  • エラー処理は、各 JSM コマンドの後に CHECK_STS サブルーチンが使用されています。このルーチンはエラー・メッセージの書式を整えるだけです。エラーの発生時にファンクションを中断するわけではありません。
  • CHECK_STS サブルーチンには、状況をチェックするハンドルを指定するパラメータが必要です。これは、JSM サーバーへの複数の接続が同時に開くことがあるためです。
  • No labels