ステップ 12. JSON サーバーのビジネス・ロジックを作成する

INT010A - JSON サービス - サーバー側のロジックを定義
JSON サーバー・ソリューションのテスト、利用の前に、ソリューションをサポートするビジネス・ロジックを作成する必要があります。つまり、部門コードと課コードのパラメータを含む要求を受け取り、要求された社員の詳細を含む Employee 戻りパラメータを作成するファンクションが必要です。
通信の詳細に関しては、LANSA Integrator と JSON ウィザードによって対応するファイルが生成されるため、心配する必要はありません。
以下は、Integrator スタジオによって生成された LANSA RDMLX コード (SAMPLE_RDMLX_GETEMPLOYEES.txt) を利用したプログラム機能の概要です。このプログラムは代わりに RDML ファンクションや RPG プログラムとしてコーディングすることも可能です。Integrator スタジオでは、RDML や RDML のサンプルも生成されます。
1.     LANSA エディターを使用して、新規のプロセス iiiPRO09 – JSON と、これに属する RDMLX ファンクション iiiFN10– 社員取得サーバー を作成します 、テンプレートは使用しません。Integrator スタジオでiii JSON チュートリアル・プロジェクトを開いた状態で、ソリューション/EmployeeDeptSect/samples/RDMLX を展開し、生成された RDMLX ファイル SAMPLE_RDMLX_INBOUND_HTTP.TXT を開き、自身のファンクションにコピーします (既存のコードと置き換えます)。

2.      以下に示すコードは、JSM サーバーへの接続を作成し、その後、JSON サーバー・サービスをロードします。これは、JSMX_OPEN 組み込み関数と SERVICE_LOAD サービス・コマンドを使用して行います。

3.      このファンクションをサービス iiiEMPLOYEEDEPTSECT にバインドすることによって、返されたデータがファンクションのフィールドに入ります。  III を自身のイニシャルに置き換えて、コードの以下で示されている行を変更します。

4.      ファンクションは、次の応答内のデータを読み込む前に、応答を返したいということをファンクションに伝える必要があります。  上記のコードの後に、次のコードを追加します。  バインドされているサービスが IIIEMPLOYEES となっています。これは返すデータを示しています。  上の 2. でバインドしたサービスは受信するデータです。

5.      上記のコードの後に、次のコードを追加します。  社員マスターの各社員に対してデータを追加するロジックを追加しなければいけません。  SELECT/ENDSELECT ループ内に EMPLOYEE フラグメントを設定する JSM ロジックの挿入方法を確認してください。  Employee Id、 First Name、Surname、 Salary の各フィールドは、Employee の戻りパラメータのエレメントにすでにマッピングされています。  Nbr_Keys(*COMPUTE) の使い方に注目してください。Select 行を 1 つだけ書くことで、全社員、または1 つの部門に属する社員のみ、もしくは 1 つの部門の 1 つの課に属する社員のみを選択して返すことができます。

6.      上記のコードの後に、応答を送信した後に JSM を閉じて強制的に応答を送信するコードを追加します。  

7.      ファンクションをコンパイルします。IBM i サーバーを使用している場合は、サーバーにチェックインしてコンパイルします。
         ロジックは以下のようになります。
Function Options(*DIRECT)