[ |../../index.htm#lansa/vlwebeng03_0155.htm]
現在地:

20.12 クライアントとサーバー間でのデータのやり取り

ほとんどの場合、情報は JSON 形式によりサーバーとクライアントの間で双方向にやり取りされます。  SRVROUTINE は JSON データを以下の形式で送受信します。

JSON フォーマットの例外としては、サーバー・ルーチンが応答オブジェクトを返す時です。これは、1 つのファイルの詳細を戻すために使用されます。
例:
フィールドまたはフィールドのグループを引き渡す
データ・リストの引き渡し
応答オブジェクトを戻す
フィールドまたはフィールドのグループを引き渡す
クライアントとサーバー間でデータのやり取りをする最も簡単な方法は、どちらの方向であったとしても、個別のフィールドまたはフィールドのグループを SRVROUTINE にマップすることです。  値は、その位置または任意の PARAMETER_NAME の値をもとに、SRVROUTINE とやり取りされます。
GROUP_MAP を使用する際は、クライアントとサーバー間で関連するグループ定義が検証されないことに注意することが大切です。グループ内のフィールドは名前をもとにマップされています。  必要に応じて想定のデータが確実に送受信されるよう、含まれるフィールドに関しては、グループ定義と一致するか検証することを忘れないようにしてください。
例えば、次のコードは xEmployee ファイルのレコードを更新しようとすると、エラーになります。これは、何故でしょうか。クライアントの GROUP_BY では、ID、名字と名前のみがサーバーに渡されます。ですから、これに対応するサーバー・モジュールの GROUP_BY に指定されているその他のフィールドには値がないことになります。UPDATE で更新しようとすると、妥当性検査ルールでエラーとなります。
クライアントとサーバーの処理で使用される GROUP_BY 定義に同じフィールドが含まれることを確実にするだけで、この問題は解決できます。これは処理するトランザクションによりますが、ファイルのフィールドすべての場合もあるでしょうし、フファイルのフィールドのサブセットの場合もあるでしょう。
クライアントの Web ページまたは再利用可能パーツのコードは次のようになります。
Group_By Name(#MyEmployee) Fields(#xEmployeeIdentification #xEmployeeSurname #xEmployeeGivenNames)
 
Mthroutine Name(UpdateEmployee)