JSON サーバー・ソリューションのテスト、利用の前に、ソリューションをサポートするビジネス・ロジックを作成する必要があります。つまり、部門コードと課コードのパラメータを含む要求を受け取り、要求された社員の詳細を含む Employee 戻りパラメータを作成するファンクションが必要です。
通信の詳細に関しては、LANSA Integrator と JSON ウィザードによって対応するファイルが生成されるため、心配する必要はありません。
以下は、Integrator スタジオによって生成された LANSA RDMLX コード (SAMPLE_RDMLX_GETEMPLOYEES.txt) を利用したプログラム機能の概要です。このプログラムは代わりに RDML ファンクションや RPG プログラムとしてコーディングすることも可能です。Integrator スタジオでは、RDML や RDML のサンプルも生成されます。






Function Options(*DIRECT)*サービスを開くUse Builtin(JSMX_OPEN) To_Get(#JSMXSTS #JSMMSG #JSMXHDLE1)Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMMSG)*サービスのロードChange Field(#JSMXCMD) To('SERVICE_LOAD SERVICE(HTTPInboundJSONBindService) SERVICE_CONTENT(*HTTP) TRACE(*YES)')Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMMSG)Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMMSG)*サービスをバインドして、HTTP 要求コンテンツを読み込むChange Field(#JSMXCMD) To('BIND SERVICE(IIIEMPLOYEEDEPTSECT) TYPE(*INBOUND) BINDTRACE(*YES) SERVICE_EXCHANGE(*FIELD)')Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMMSG)Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMMSG)*サービスをバインドして応答を送信するChange Field(#JSMXCMD) To('BIND SERVICE(IIIEMPLOYEES) TYPE(*OUTBOUND) BINDTRACE(*YES) SERVICE_EXCHANGE(*FIELD)')Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMMSG)Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMMSG)*ファイルからデータを取得Select Fields(#EMPNO #GIVENAME #SURNAME #SALARY) From_File(PSLMST1) With_Key(#DEPTMENT #SECTION) Nbr_Keys(*COMPUTE)Change Field(#JSMXCMD) To('SET FRAGMENT(EMPLOYEE) SERVICE_EXCHANGE(*FIELD)')Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMMSG)Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMMSG)Endselect*応答の送信Change Field(#JSMXCMD) To('SEND BINDTRACE(*YES)')Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMMSG)Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMMSG)*JSM を閉じて、応答を強制的に送信するUse Builtin(JSMX_CLOSE) With_Args(#JSMXHDLE1) To_Get(#JSMXSTS #JSMMSG)*Check ルーチンSubroutine Name(CHECK) Parms((#JSMXSTS *RECEIVED) (#JSMMSG *RECEIVED))If Cond('#JSMXSTS *NE OK')Use Builtin(JSMX_CLOSE) With_Args(#JSMXHDLE1) To_Get(#JSMXSTS #JSMMSG)ExitEndifEndroutine