SAP NetWeaver AS ABAP Release 750, ©Copyright 2016 SAP AG. All rights reserved.
ABAP - Keyword Documentation → ABAP - Reference → Data Interfaces and Communication Interfaces → ABAP and XML → Transformations for XML → CALL TRANSFORMATION →
CALL TRANSFORMATION - transformation_options
Syntax
... OPTIONS [clear = val]
[data_refs = val]
[initial_components = val]
[technical_types = val]
[value_handling = val]
[xml_header = val] ...
Additions
1. ...clear
2. ... data_refs
3. ... initial_components
4. ... technical_types
5. ... value_handling
6. ... xml_header
Effect
The addition OPTIONS enables predefined transformation options to be specified, to which specific values can be assigned to control transformations. The values must be defined as data objects val of type c or string. Each transformation option may only be specified once. If an invalid value is specified for a transformation option, an exception of class CX_SY_TRANS_OPTION_ERROR is raised. This exception can be handled.
Note
The transformations apply to XML and also to JSON (where applicable).
...clear
Effect
The transformation option clear controls how the ABAP target fields are initialized when deserializing XML or JSON to ABAP.
Possible Values | Meaning |
all | All target fields specified after RESULT are initialized before calling the transformation. This is the recommended setting. |
supplied | For ST, the target fields which have a root node assigned to them in the ST program are initialized before calling the transformation. In XSLT, target fields for which there is a root node in the XML data are initialized before importing the nodes. Other target fields keep their value. |
none | Default, the target fields specified after RESULT are not initialized, except for internal tables |
Note
Using the default setting (none) can become a critical issue when nonexistent
or empty elements are deserialized in data objects. In the case of nonexistent elements, all data objects
retain their original values. With empty elements, structures retain their values. In cases like this, it is advisable to use clear with the value "all".
... data_refs
Effect
The transformation option data_refs controls the output of data references if the transformation is from ABAP to XML or JSON.
Possible Values | Meaning |
no | Default for ST, no data references are produced. |
heap | Default for XSLT and only allowed there; data referenced using heap references is produced as subelements of the asXML elements <asx:heap> or the asJSON object %heap. Data objects references using stack references are not serialized. |
heap-or-error | Only possible for XSLT. As heap, but the exception CX_REFERENCE_NOT_SERIALIZABLE is raised if the data to be serialized contains stack references. |
heap-or-create | Only possible for XSLT. Like heap, but data objects referenced using stack references are handled like data objects referenced using heap references. |
embedded | Only possible for XSLT. Referenced data objects are produced together with the reference. It is not possible to deserialize XML or JSON data created in this way, since the identity of the objects is lost when serialized. |
Note
Exception CX_REFERENCE_NOT_SERIALIZABLE cannot be caught directly. It can only be caught using CX_XSLT_SERIALIZATION_ERROR.
Example
For information about the differences between serializing to heap and embedded elements, see
Serializations to Heap or Embedded.
... initial_components
Effect
The transformation option initial_components controls the output of initial structure components when transforming from ABAP to XML or JSON.
Possible Values | Meaning |
include | Initial components of structures are produced. |
suppress_boxed | Default setting, does not produce initial boxed components of structures; produces initial components of all other structures. |
suppress | Initial components of structures are not produced. |
Notes
... technical_types
Effect
The transformation option technical_types controls the behavior if no type description can be serialized when serializing data references to asXML or asJSON. This is the case when the technical type attributes of the dynamic type of the data reference variable are known, but the type does not have a name (or it only has a technical name).
Possible Values | Meaning |
error | Default for XSLT and only allowed there. The serialization of a data reference variable with a dynamic type without a name raises the exception CX_REFERENCE_NOT_SERIALIZABLE. |
ignore | Only possible for XSLT. A data reference variable with a dynamic type without a name is ignored in serializations. |
Notes
... value_handling
Effect
The transformation option value_handling controls the tolerance of conversions when mapping elementary ABAP types.
Possible Values | Meaning |
default | Default setting; in serializations, if there is an invalid value in a field of type n, the exception CX_SY_CONVERSION_NO_NUMBER is raised. When deserializing, the exception CX_SY_CONVERSION_DATA_LOSS is raised if target fields of the types c, n, or x are too short or the exception CX_SY_CONVERSION_LOST_DECIMALS is raised if target fields of the type p have too few decimal places. |
move | Only possible in serializations. Invalid values in a field of type n are copied to XML or JSON without being changed. |
accept_data_loss | Only possible in deserializations. If target fields of types c, n, or x are too short, surplus data for c and x is cut off on the right and surplus data for n is cut off on the left. |
accept_decimals_loss | Only possible in deserializations. If target fields of the type p have too few decimal places, they are rounded up to the available decimal places. |
reject_illegal_characters | Only possible in deserializations. If a value to be deserialized contains characters that are not valid for the encoding of the XML or JSON data or for the current code page of AS ABAP, an exception of the type CX_SY_CONVERSION_CODEPAGE is raised. If the XML or JSON data is passed as an iXML input stream, the setting of the iXML parser overrides the encoding of the XML or JSON data. |
Notes
Example
If value_handling = 'reject_illegal_characters' is specified, for example,
an exception is raised if, in the XML header of XML data in the Latin-1 character set, encoding="utf-8"
is specified and the XML data contains characters other than those of the 7-bit ASCII character set.
... xml_header
Effect
The transformation option xml_header controls the output of the XML header when transforming to XML and writing to a data object of type c, string, or to an internal table.
Possible Values | Meaning |
no | No XML header is produced. |
without_encoding | An XML header is produced without specifying the encoding. |
full | Default setting; an XML header is produced, specifying the encoding. |
Handleable Exceptions
CX_SY_TRANS_OPTION_ERROR