Try OpenEdge Now
skip to main content
Web Services
Creating OpenEdge SOAP Web Services : Building Clients for OpenEdge SOAP Web services : Mapping relational data : Defining TABLE-HANDLE (dynamic temp-table) parameters
 
Defining TABLE-HANDLE (dynamic temp-table) parameters
TABLE-HANDLE parameters pass both the schema and data, because the dynamic temp-table schema is not known at compile time. In the WSDL, OpenEdge Web services map an ABL TABLE-HANDLE to a <complexType> containing a sequence of xsd:any.
For all SOAP formats, client interfaces typically represent TABLE-HANDLE parameters as follows:
*For every TABLE-HANDLE parameter within a Web service object, there is a single object representing all TABLE-HANDLEs.
*In both request messages and response messages, the schema of the TABLE-HANDLE must accompany the data.
*For every input TABLE-HANDLE, you must include the schema of the TABLE-HANDLE in the form of an XML Schema followed by the data in the form of an XML document fragment.
*For every output TABLE-HANDLE, a non-ABL client must parse the XML Schema and data in the SOAP response message.
*The WSDL Analyzer recognizes the WSDL definition of a TABLE-HANDLE parameter and maps it to a TABLE-HANDLE parameter for an ABL client.
The following WSDL sample shows this common TABLE-HANDLE parameter definition:

TABLE-HANDLE definition for all dynamic temp-table parameters

<complexType name="TableHandleParam">
   <sequence>
      <any namespace="##local"/>
   </sequence>
</complexType>
The non-ABL 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 is entirely dependent on the client toolkit.
This is the general format in OpenEdge Web services for representing a TABLE-HANDLE in a SOAP message, where the schema is defined in a <schema> element and each row is encapsulated by an <Item> element within a <Data> element:

TABLE-HANDLE parameters—general format

<DataSet>
   <schema>      

<!-- TEMP-TABLE row definition in XML Schema -->   

</schema>  
 <Data>

      <Item> <!--- row instance 1 --> </Item>
      <Item> <!--- row instance 2 --> </Item>
      <Item> <!--- row instance 3 --> </Item>
      ...

   </Data>
</DataSet>
Each column of a TABLE-HANDLE row can hold any data type shown in the following table.
Table 21. XML data types for TABLE-HANDLE parameter columns
ABL data type
XML Schema data type
CHARACTER
xsd:string
DATE
xsd:date
DATETIME-TZ
xsd:dateTime
DECIMAL
xsd:decimal
INT64
xsd:long
INTEGER (32 bit)
xsd:int
LOGICAL
xsd:boolean
RAW
xsd:base64Binary