5.36.2 aXesTerminalServiceの使用
RDML/RDMLXまたはRPGまたはCなどの3GLのどちらでクライアント・アプリケーションを作成する場合でも、基本的な手順は同じです。
例えば、aXesターミナル・サーバーに接続し、画面の1つの値を埋め、送信(入力)するという一番単純なアプリケーションは、通常次のような順でサービス・コマンドを発行します。
JSM(X)_OPENJSM(X)_COMMAND
SERVICE_LOAD
CONNECT
SETBYNAME
SEND
DISCONNECT
SERVICE_UNLOAD
JSM(X)_CLOSE選択した開発言語に適用されるコマンドの詳細については、「Java Service Managerクライアント」を参照してください。
戻り変数aXesTerminalServiceコマンドは、コマンド・キーワードで指定されたクライアント・プログラムの変数をフル活用して、クライアント・プログラムに変数情報を戻します。 このようなコマンド・キーワードの名前は'RTN'で始まります。
例えば、現在の5250画面の画面の行と列番号で参照されるフィールド値を受け取り、クライアント・プログラムの変数MYVALUEという結果を入れるには、LANSA RDMLXクライアンント・アプリケーションのコードは次のようになります。
define field(#myvalue) reffld(#std_text)
#jsmcommand := 'getbypos row(10) col(44) rtnvalue(MYVALUE) SERVICE_EXCHANGE(*FIELD)'
use builtin(jsmx_command) with_args(#jsmhandle #jsmcommand) to_get(#jsmstatus #jsmmessage)
if (#myvalue = 'XYZ')
...
endif
この例で、プログラムの変数をサービスと交換し、サービスが必要な値を戻してこの変数を指定するためには、JSMサービスコマンド文字列にSERVICE_EXCHANGE(*FIELD)が存在することが必要です。
このJSMサービスコマンド文字列にのSERVICE_EXCHANGE(*FIELD)を省略してしまうと、サービスは指定の変数にアクセスできなくなり、プログラムが値を受け取りません。
注:
1.
SERVICE_EXCHANGE(*FIELD)は上記に示されているように大文字で指定されなければなりません。
2.
これはかなり簡潔にされた記述です。
クライアント・アプリケーションとJSMサービス間でプログラム変数を交換する方法は他にもあります。