Versions Compared

Key

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

このステップでは、ファンクション iiiFN02 を使用して、テンプレート BBJSMXCMD で JSM コマンドを作成し、FTP サービスで以下のタスクを実行します。

  • FTP サイトに接続する
  • ユーザー ID とパスワードでログインする
  • ディレクトリを設定する
  • 指定のパスにファイルをリストする
  • FTP サイトを終了する

BBJSMXCMDテンプレートを使用する場合、以下のコマンド、キーワード、値を使用します。

コマンド

キーワード

作業リスト

CONNECT

HOST

#S_HOST


LOGIN


USER

#S_USER



PASSWORD

#S_PSWD

CHGDIR

PATH

#S_DIR


LIST

DIR


WL_FILES

QUIT

...




  1. iiiFN02 ファンクションを使用して、テンプレート BBJSMXCMD を実行します。

      ...

        1. 始める前に、コメントYOUR OWN LOGIC HERE (独自のロジックはここ) の後のコメント行の先頭にカーソルを置き、[デザイン] リボンで Image Modified [テンプレート ウィザード] ボタンをクリックします。

      ...

        1. テンプレートのリストから BBJSMXCMD を選択して、実行ボタンをクリックします。
        2. 以下の表に示すように、テンプレートの質問に回答します。

          質問

          回答

          コメント

          このテンプレートを使用して、JSMXSKELで生成されたファンクションでコマンドを作成します。

          Enterを押して続行します。

          これは情報を示すパネルです。

          作成するJSMコマンドを入力します。

          CONNECT


          指定するキーワードの数は?

          1


          キーワード名を入力します。

          HOST


          HOSTキーワードの値を入力します。

          #S_HOST

          画面に入力したホスト値

          作業リストの名前を入力します(このコマンドで作業リストを使用する場合)。

          [ENTER]を押します。

          このコマンドでは作業リストは必要ありません。

          別のJSMコマンドを入力しますか?

          Y


          作成するJSMコマンドを入力します。

          LOGIN


          指定するキーワードの数は?

          2


          キーワード名を入力します。

          USER


          USERキーワードの値を入力します。

          #S_USER

          画面に入力したユーザー値

          キーワード名を入力します。

          PASSWORD


          PASSWORDキーワードの値を入力します。

          #S_PSWD

          画面に入力したパスワード値

          作業リストの名前を入力します(このコマンドで作業リストを使用する場合)。

          [ENTER]を押します。

          このコマンドでは作業リストは必要ありません。

          別のJSMコマンドを入力しますか?

          Y


          作成するJSMコマンドを入力します。

          CHGDIR


          指定するキーワードの数は?

          1


          キーワード名を入力します。

          PATH


          PATHキーワードの値を入力します。

          #S_DIR

          画面に入力したパス

          作業リストの名前を入力します(このコマンドで作業リストを使用する場合)。

          [ENTER]を押します。

          このコマンドでは作業リストは必要ありません。

          別のJSMコマンドを入力しますか?

          Y


          作成するJSMコマンドを入力します。

          LIST


          指定するキーワードの数は?

          1


          キーワード名を入力します。

          PATH


          PATHキーワードの値を入力します。

          入力した以前の値が含まれているフィールドをブランクにしてEnterを押します。

          このキーワードに値は必要ありません。

          作業リストの名前を入力します(このコマンドで作業リストを使用する場合)。

          WL_FILES

          ファイルのリストを返す作業リスト

          別のJSMコマンドを入力しますか?

          Y


          作成するJSMコマンドを入力します。

          QUIT


          指定するキーワードの数は?

          0

          このコマンドにキーワードはありません。

          別のJSMコマンドを入力しますか?

          N

      ...


        1. BBJSMXCMD テンプレートが完了すると、FTP サービスの処理に必要なすべてのコードが用意されています。


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

      * BUILD THE JSM COMMAND
      #JSMXCMD := CONNECT
      EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD HOST #S_HOST)
      USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
      EXECUTE SUBROUTINE(CHECK_STS) WITH_PARMS(#JSMXCMD)
      *
      #JSMXCMD := LOGIN
      EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD USER #S_USER)
      EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD PASSWORD #S_PSWD)
      USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
      EXECUTE SUBROUTINE(CHECK_STS) WITH_PARMS(#JSMXCMD)
      *
      #JSMXCMD := CHGDIR
      EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD PATH #S_DIR)
      USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
      EXECUTE SUBROUTINE(CHECK_STS) WITH_PARMS(#JSMXCMD)
      *
      #JSMXCMD := LIST
      EXECUTE SUBROUTINE(KEYWRD) WITH_PARMS(#JSMXCMD PATH *BLANKS)
      USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG #WL_FILES)
      EXECUTE SUBROUTINE(CHECK_STS) WITH_PARMS(#JSMXCMD)
      *
      #JSMXCMD := QUIT
      USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 #JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
      EXECUTE SUBROUTINE(CHECK_STS) WITH_PARMS(#JSMXCMD)
       
      最終的な RDML/RDMLX コードは以下のようになります。

      ...

      * 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