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 (static temp-table) parameters
 
Defining TABLE (static temp-table) parameters
TABLE parameters pass only the data , because the static temp-table's schema is known at WSDL generation. In the WSDL, OpenEdge Web services map a TABLE definition to a <complexType> consisting of a <sequence> of elements that represent a row (temp-table record). Each <element> in this sequence represents a column (temp-table field) of the row.
For all SOAP formats, client interfaces typically represent temp-table parameters as follows:
*For every temp-table, a row is represented by an object.
*Every temp-table parameter is represented as an array of that temp-table's row objects.
*For an ABL client, the WSDL Analyzer transforms the WSDL definition of a temp-table parameter into a matching ABL temp-table definition.
The following are general formats for TABLE parameters in SOAP messages. For an RPC/Literal or Doc/Lit Web service, the TABLE parameter is represented as a <sequence> of TABLE row elements. Each element is named after the row <element> in the <complexType> used to define the TABLE row for the parameter. This WSDL-named row <element> corresponds to the <Item> element used to represent SOAP array rows in RPC/Encoded Web services.
Thus, using the sample row element named ttEmpRow, a SOAP message contains a TABLE parameter for this row definition in the following form:

TABLE parameters—general Document (or RPC)/Literal format

<ttEmpRow> <!-- row instance 1 --> </ttEmpRow>
<ttEmpRow> <!-- row instance 2 --> </ttEmpRow>
<ttEmpRow> <!-- row instance 3 --> </ttEmpRow>
...
For an RPC/Encoded Web service, the TABLE parameter is represented as a SOAP array of TABLE rows, where each row is encapsulated by an <Item> element:

TABLE parameters—general RPC/Encoded format

<Item> <!--- row instance 1 --> </Item>
<Item> <!--- row instance 2 --> </Item>
<Item> <!--- row instance 3 --> </Item>
...
Each column of a TABLE row can hold any data type shown in the following table.
Table 20. XML data types for TABLE parameter columns
ABL data type
XML Schema data type
BLOB1
xsd:base64Binary
CHARACTER
xsd:string
CLOB1
xsd:string
COM-HANDLE
xsd:long
DATE
xsd:date
DATETIME
xsd:dateTime
DATETIME-TZ
xsd:dateTime
DECIMAL
xsd:decimal
INT64
xsd:long
INTEGER (32 bit)
xsd:int
LOGICAL
xsd:boolean
RAW
xsd:base64Binary
RECID (32 or 64 bit)
xsd:long
ROWID
xsd:base64Binary
WIDGET-HANDLE
xsd:long

1 BLOB and CLOB data types are designed to support very large objects. Use of these data types for table fields in Web services can result in a serious performance impact.