Representation of data in ABAP
This section covers the following topics.
Data types
Amazon Web Services services have a standard set of data types that must be mapped to ABAP data types. See the following table for more details.
Amazon 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 Amazon Web Services 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. Amazon 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
|
TZNTSTMPS enables processing with native ABAP timestamp
functions. |
Amazon Web Services services also return the following aggregate data types.
Amazon 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). |
Amazon data types
The following approaches have been integrated to support Amazon Web Services services in ABAP.
-
Certain Amazon data types cannot be represented in ABAP. For examples, the
float
data type in ABAP does not support theNaN
,Infinity
, or-Infinity
values. Therefore, thefloat
data type is represented asSTRING
and is translated toDECFLOAT16
at runtime. -
Amazon data is represented on the wire as JSON or XML, and the values are optional. For example, see the following examples returned by an Amazon Web Services 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.