Representation of data in ABAP
This section covers the following topics.
Topics
Data types
AWS services have a standard set of data types that must be mapped to ABAP data types. See the following table for more details.
| AWS data type | ABAP data type | Comments | 
|---|---|---|
| boolean | C | Single character "X"and"
              " | 
| String | STRING | |
| Byte | INT2 | INT2 has a larger range than 0-255. Most AWS services will truncate overflows but this behavior is not formally defined. | 
| Short | INT2 | |
| Integer | INT4 | |
| Long | DEC19 | INT8 is not available until ABAP 750. DEC19 is used for compatibility and consistency across all supported ABAP platforms. | 
| Blob | XSTRING | Represents binary data | 
| Float | STRING | While ABAP supports DECFLOATs, it cannot represent values such as NaN, Infinity and -Infinity. AWS SDK represents these internally as STRINGs, and converts them to DECFLOAT16 at runtime. If NaN, Infinity or +Infinity are represented, the developer may process these in response to a special set of exceptions or mappings. | 
| Double | STRING | |
| bigInteger | STRING | These values represent infinite-length numbers that cannot be represented in ABAP, and STRINGs are used instead of bigInteger. | 
| bigDecimal | STRING | |
| Timestamp | TZNTSTMPS | TZNTSTMPSenables processing with native ABAP timestamp
              functions. | 
AWS services also return the following aggregate data types.
| AWS data type | ABAP data type | Comments | 
|---|---|---|
| Structure | Class | |
| Union | Class | A union is the same as a structure, except that a union will never have more than one field set. All other fields will be set to No Value. | 
| Array | STANDARD TABLE | |
| Hash | HASHED TABLE | The hashed table will only have two columns: a KEY (string) and a VALUE (class). | 
AWS data types
The following approaches have been integrated to support AWS services in ABAP.
- 
        Certain AWS data types cannot be represented in ABAP. For examples, the floatdata type in ABAP does not support theNaN,Infinity, or-Infinityvalues. Therefore, thefloatdata type is represented asSTRINGand is translated toDECFLOAT16at runtime.
- 
        AWS data is represented on the wire as JSON or XML, and the values are optional. For example, see the following examples returned by an AWS service in JSON. Fullname: { Firstname: "Ana", Middlename: "Carolina", Lastname: "Silva" }If Ana doesn't have a middle name, the service returns the following output. Fullname: { Firstname: "Ana", Lastname: "Silva" }ABAP does not distinguish between a string of length 0 and a string that has no value. Other languages might assign a NULL value to the string or wrap the string in a construct (such as, Java's Optional<>wrapper). These are not supported in ABAP. Therefore, SDK for SAP ABAP facilitates the distinction in values by providing variants of the getter method.