Complex data type parameters
- Last Updated: March 30, 2020
- 2 minute read
- OpenEdge
- Version 12.2
- Documentation
If the Analyzer specifies that you can use a temp-table or ProDataSet to access a Web service
parameter, you can access (for OUTPUT) and write to (for
INPUT) the parameter exactly as you do for any temp-table or ProDataSet
parameter in the ABL. If the Analyzer provides the temp-table or ProDataSet definition, you
can use a static instance and specify the parameter as a TABLE or
DATASET. For a static OUTPUT parameter, OpenEdge ensures
that the object is created and filled from the parameter element in the SOAP response message.
For static INPUT parameter, you must create and fill the object, as
appropriate, before passing the parameter.
If you must access the parameter as a dynamic temp-table or ProDataSet, you can specify the
parameter as a TABLE-HANDLE or DATASET-HANDLE. For a dynamic
OUTPUT parameter, OpenEdge ensures that the object is created and filled
from the parameter element in the SOAP response message. For dynamic INPUT
parameter, you must create and fill the object, as appropriate, before passing the
parameter.
For an OUTPUT parameter that you access as a serialized XML string, you can
work with serialized XML in the CHARACTER or LONGCHAR
parameter directly, using ABL string-manipulation statements and functions, or work with it in
its parsed form using the ABL SAX reader or DOM parser. In any case, OpenEdge provides the
entire complexData element for the value, exactly as it appears in the SOAP
response message.
For an INPUT parameter that you write as a serialized XML string, you can
build or maintain the value using the ABL SAX writer or DOM parser, and save the result as a
LONGCHAR value when you are ready to pass it as an INPUT
parameter to the Web service.
For more information on using the SAX and DOM features in ABL, see OpenEdge Development: Programming Interfaces. For an example of how to handle complex data parameters in ABL, see Complex data example.