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:

<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 1. 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.