In most cases, information is passed between the Server and Client, and vice versa, in JSON format.  SRVROUTINEs can accept and return JSON data as:
a single field using a FIELD_MAP
a group of fields using a GROUP_MAP
a list of fields with multiple entries using a LIST_MAP.
The exception to the JSON formatting is when a Server Routine returns a Response Object. This is used to return the details for a single file.
Some examples:
Passing a Field or Group of Fields
Passing a List of Data
Returning a Response Object
Passing a Field or Group of Fields
The simplest way to pass data between the Client and Server, in either direction, is by mapping individual fields or groups of fields to the SRVROUTINE.  Values are passed to and from the SRVROUTINE based on position or using the optional PARAMETER_NAME value.
It is important to note, when using a GROUP_MAP the associated group definition is not verified between the client and server. Fields in the group are mapped based on name.  Ensure you verify that the group definitions match, in terms of included fields, to ensure the expected data is passed and received as required.
For example, the following code WILL FAIL when it attempts to update a record in the file xEmployee. Why? The Client GROUP_BY is only passing Identification, Surname and Give Names to the server, therefore the additional fields specified in the corresponding GROUP_BY on the Server Module will have no value. When the UPDATE is attempted it will fail to pass the validation rules.
This can be rectified simply by ensuring the GROUP_BY definitions used for client and server processing contain the same fields. This may be a subset of the file fields or all the file fields depending on the transaction you are processing.
The client Web Page or Reusable Part code may be something like this:
Group_By Name(#MyEmployee) Fields(#xEmployeeIdentification #xEmployeeSurname #xEmployeeGivenNames)
 
Mthroutine Name(UpdateEmployee)