Output messages are JSON objects named "response". This object contains properties that are mapped to ABL parameters defined as OUTPUT, INPUT-OUTPUT, and return-value parameters. The property names are identical to the parameter names that are mapped to the RESPONSE_BODY. The return value is named "_retVal"

All ABL parameters types that are supported by OpenEdge REST applications, and that can be represented as JSON objects are supported. This includes datasets and temp-tables. See the Output parameter mapping for more information about supported ABL parameter types.

The following is an example of an output message:

{
  "response": {
    "Param1": "String param",
    "Param2": true,
    "ds1": {
      "ds1": {
        "tt1": [
          {
            "Country": "United Kingdom",
            "Name": "Just Joggers Limited",
            "Address": "Fairwind Trading Est",
            "Address2": "Shoe Lane",
            "City": "Ramsbottom",
            "State": "Sussex",
            "PostalCode": "BL0 9ND",
            "Contact": "George Lacey",
            "Phone": "070 682 2887",
            "SalesRep": "SLS",
            "CreditLimit": 22000,
            "Balance": 1222.11,
            "Terms": "Net30",
            "Discount": 20,
            "Comments": "This is a modified record",
            "Fax": "",
            "EmailAddress": ""
          }
        ]
      }
    },
    "_retVal": "Some return string"
  }
}

If there is no return value because you are calling an external procedure or internal procedure and the useReturnValue attribute is set to "FALSE" in the annotation, there will be no _retVal property in the response message. If the parameter is UNKNOWN, it will have a value of null in the message.