Try OpenEdge Now
skip to main content
Web Services
Understanding WSDL Details : Defining DATASET-HANDLE (dynamic ProDataSet) parameters
 

Defining DATASET-HANDLE (dynamic ProDataSet) parameters

DATASET-HANDLE parameters pass both the schema and data, because the dynamic ProDataSet schema is not known at compile time. Thus, for ProDataSet parameters, OpenEdge Web services map an ABL DATASET-HANDLE to an arbitrary complex type (<any>). There is a single definition used for all ProDataSet parameters in all supported SOAP formats. The following WSDL sample shows this common ProDataSet parameter definition:

Common DATASET-HANDLE definition for all SOAP formats

<complexType name="DataSetHandleParam">
  <annotation>
    <documentation>This is the schema definition for an OpenEdge dynamic
     ProDataSet parameter. The first element in this sequence must be a
     w3c XML Schema document describing the definition of the ProDataSet.
     The second element contains the serialized data.
    </documentation>
  </annotation>
  <sequence>
    <any maxOccurs="2" minOccurs="2"/>
  </sequence>
</complexType>
All dynamic ProDataSet parameters share the <complexType> definitions in the WSDL. Parameters without before-image data use one <complexType>, and parameters with before-image data use another <complexType>. The before-image version uses the following <complexType>:
<complexType name="DataSetHandleChangesParam" prodata:isDsChanges="true">
  <annotation>
    <documentation>This is the schema definition for an OpenEdge dynamic
     ProDataSet parameter. The first element in this sequence must be a
     w3c XML Schema document describing the definition of the ProDataSet.
     The second element contains the serialized data, including before-image
     data.
    </documentation>
  </annotation>
  <sequence>
    <any maxOccurs="2" minOccurs="2"/>
  </sequence>
</complexType>
The client application must create (for input) and parse (for output) the XML Schema along with the data for the parameter. How the client inserts the input schema and data in request messages and how it parses the output schema and data from response messages depends entirely on the client application.