3.1.4 LANSA RDMLクライアント・プログラムのサンプル
以下は、JSMへの接続を開いて閉じる非常に簡単なLANSAファンクションです。エラーが発生した場合、ステータスとメッセージが表示されます。このプログラムはサービスを使用しません。
RDMLクライアント・アプリケーションの詳しい例については、「クライアント・アプリケーションの例」を参照してください。
例1 - 省略値を使用(JSMCLTDTAデータ・エリア)
FUNCTION OPTIONS(*DIRECT)
*
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(20)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(255)
DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(255)
*
USE BUILTIN(JSM_OPEN) TO_GET(#JSMSTS #JSMMSG)
IF COND('#JSMSTS *NE OK')
DISPLAY FIELDS(#JSMSTS #JSMMSG)
ENDIF
*
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)
IF COND('#JSMSTS *NE OK')
DISPLAY FIELDS(#JSMSTS #JSMMSG)
ENDIF
例2 - サーバー引数を使用
FUNCTION OPTIONS(*DIRECT)
*
DEFINE FIELD(#JSMSRV) TYPE(*CHAR) LENGTH(50)
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(20)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(255)
DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(255)
*
CHANGE FIELD(#JSMSRV) TO('LOCALHOST:4560')
*
USE BUILTIN(JSM_OPEN) WITH_ARGS(#JSMSRV)TO_GET(#JSMSTS #JSMMSG)
IF COND('#JSMSTS *NE OK')
DISPLAY FIELDS(#JSMSTS #JSMMSG)
ENDIF
*
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)
IF COND('#JSMSTS *NE OK')
DISPLAY FIELDS(#JSMSTS #JSMMSG)
ENDIF
以下の例は、JSM組み込み関数の使用方法や順序を示しています。これは完全なRDMLファンクションではありません。この例では、JSM_OPENがJava Service Managerへの接続を開き、スレッドを開始します。
一連のJSM_COMMANDが以下の目的で発行されます。
· FTPServiceサービスをロードする
· ホストに接続する
· 指定したユーザー/パスワードを使用してログインする
· ディレクトリ・パスを変更する
· モードをバイナリーに設定する
· ファイルをFTPサイトに入れる
· FTPセッションを終了する
· サービスをアンロードする
JSM_CLOSEで接続を終了します。
FUNCTION OPTIONS(*DIRECT)
DEFINE FIELD(#JSMSRV) TYPE(*CHAR) LENGTH(50)
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(20)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(255)
DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(255)
USE BUILTIN(JSM_OPEN) TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('SERVICE_LOAD SERVICE(FTPSERVICE)') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('CONNECT HOST(LOCALHOST)') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('LOGIN USER(user) PASSWORD(code)') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('CHGDIR PATH(/JSM)') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('BINARY') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('PUT FROM(file) TO(/TMP/DIR/file)') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('QUIT') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('SERVICE_UNLOAD') TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)