The Generated WSDL File Described

The WSDL file is generated based on the Bundle definition within Agile Business Suite Developer. The file contains the Web Service description of all Ispecs in the Bundle.

This file is in XML format. It describes the Web Service operations that are available to the external application, and the format the external application must follow when invoking a Web Service operation.

For each Memo Component in the Bundle, a Web Service Method/Operation is generated. For each Standard Component and each AutoMaint Memo Component in a Bundle, a Web Service Method/Operation is generated for each function on the MAINT field. By specifying the MAINT function keywords in the INI file, you can control which functions are generated.

Refer to Rules for Generating a Dotnet Web Service from Ispec Definitions for more information on rules for generating Dotnet Web Services.

Note: Usage output only Ispecs should not be generated as a Web Service Ispec, as they serve no function. If they are added into the Bundle during the generation, they are simply skipped.

For a detailed description of the elements of the WSDL file, refer to the W3C description of WSDL at http://www.w3.org/TR/wsdl.

Samples of WSDL message parts

Samples of WSDL message parts, and corresponding client calls, for different scenarios are shown below.

Simple List of Input Parameters

When an Ispec expects a simple list of input parameters (Ispecs, which do not contain CopyFrom fields), the message part of the WSDL is generated as follows:

<message name=’BundleName.Ispec2’>
      <part name=’Parameter1Name’ type=’xsd:string’>
            <documentation><length value="6’/></documentation>
      </part>
      <part name=’Parameter2Name’ type=’xsd:string’>
            <documentation><length value=’30’/></documentation>
      </part>
      <part name=’Parameter3Name’ type=’xsd:integer’>
            <documentation><totalDigits value=’8’/><fractionDigits value=’2’/></documentation>
      </part>
</message>	

Complex List of Input Parameters

When an Ispec includes CopyFrom input fields, all input fields for that Ispec are generated as a complex type in the message part of the WSDL file as in the following example:

<types>
      <schema targetNamespace=’http://My-Server/’ xmlns=’http://www.w3.org/2000/10/XMLSchema’          xmlns:SOAP-ENC=’http://schemas.xmlsoap.org/soap/encoding/’
      xmlns:wsdl=’http://schemas.xmlsoap.org/wsdl/’>
            <complexType name=’Ispec4Request’>
                  <sequence>
                        <element name=’OrdNumber’ type=’xsd:string’>
                              <documentation><length value=’6’/></documentation>
                        </element>
                        <element name=’Name’ type=’xsd:string’>
                              <documentation><length value=’30’/></documentation>
                        </element>
                        <element name=’Address’ type=’xsd:string’>
                              <documentation><length value=’30’/></documentation>
                        </element>
                        <element name=’City’ type=’xsd:string’>
                              <documentation><length value=’30’/></documentation>
                        </element>
                        <element name=’LineItem’ minOccurs=’1’ maxOccurs=’5’>
                              <complexType>
                                    <element name=’PartNumber’ type=’xsd:string’>
                                          <documentation><length value=’6’/></documentation>
                                    </element>
                                    <element name=’Quantity’ type=’xsd:integer’>
                                          <documentation><totalDigits value=’6’/></documentation>
                                    </element>
                                    <element name=’UnitPrice’ type=’xsd:decimal’>
                                          <documentation><totalDigits value=’8’/><fractionDigits value=’2’/></documentation>
                                    </element>
                              </complexType>
                        </element>
                  </sequence>
            </complexType>
      </schema>
</types>
<message name=’BundleName.Ispec4’>
      <part name=’Ispec4Request’ type=’typens:Ispec4Request’/>
</message>

Output Parameters

Output from an Ispec is always generated as a complex type.

Following is an example of an Ispec returning data fields including CopyFrom items. The message part of the WSDL would be generated as follows:

<types>
      <schema targetNamespace=’http://My-Server/’xmlns=’http://www.w3.org/2000/10/XMLSchema’
       xmlns:SOAP-ENC=’http://schemas.xmlsoap.org/soap/encoding/’
       xmlns:wsdl=’http://schemas.xmlsoap.org/wsdl/’>
            <complexType name=’Ispec4Response’>
                  <sequence>
                        <element name=’TrackingNumber’ type=’xsd:string’/>
                        <element name=’RejectedLineItem’ minOccurs=’0’ maxOccurs=’5’>
                              <complexType>
                                    <element name=’PartNumber’ type=’xsd:string’/>
                                    <element name=’Quantity’ type=’xsd:integer’/>
                                    <element name=’UnitPrice’ type=’xsd:decimal’/>
                                    <element name=’Reason’ type=’xsd:string’/>
                              </complexType>
                        </element>
                              <element name=’StatusInfo’ type=’xsd:string’ minOccurs=’1’ maxOccurs=’unbounded’/>
                  </sequence>
            </complexType>
      </schema>
</types>
<message name=’BundleName.Ispec4Response’>
      <part name=’Ispec4Response’ type=’typens:Ispec4Response’/>
</message>

Field Size

To help developers of the external application to determine the maximum allowed size of input fields, the maximum length of data items are specified in the WSDL file within a documentation tag for each input field. An example of the documentation tag is shown in the Sample WSDL Message Parts above.