Using web services for inter-process application communication
If you want
to call a web service that is exposed by a process application on the same Business Automation Workflow server from your process application, and you want to
use business objects in a toolkit that is referenced by both process applications then you must
enable web services interoperability.
If you do not reference the same
business objects from both process applications, no special considerations are required.
When you need to enable web services interoperability
By default, type definitions in the WSDL of an exposed web service use array wrappers for business objects with list-type properties, however the XSD schema representation of the business object provided by Process Designer, does not use array wrappers. This affects the runtime behavior of the process application calling the web service.
The following
example shows the XSD schema of a business object, with default advanced
parameter properties, provided by Process Designer,
which does not use array wrappers:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://AFWSTK1"
targetNamespace="http://AFWSTK1" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:complexType name="MyBO_3">
<xs:sequence>
<xs:element name="listOfMyBO_2" nillable="false" type="tns:MyBO_2" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="item" nillable="false" type="tns:MyBO_2" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="MyBO_2">
<xs:sequence>
<xs:element name="myString" nillable="false" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:element name="MyBO_3" type="tns:MyBO_3" />
</xs:schema>The following example shows the XSD Schema
of the same business object in WSDL:<schema attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://AFWSTK1" xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:impl="http://AFWSPTK/MyWebService_2.tws" xmlns:impl1="http://AFWSTK1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
...
<complexType name="MyBO_3">
<sequence>
<element maxOccurs="1" minOccurs="0" name="listOfMyBO_2" nillable="false" type="impl1:ArrayOf_MyBO_2"/>
<element maxOccurs="1" minOccurs="0" name="item" nillable="false" type="impl1:MyBO_2"/>
</sequence>
</complexType>
<complexType name="MyBO_2">
<sequence>
<element maxOccurs="1" minOccurs="0" name="myString" nillable="false" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ArrayOf_MyBO_2">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" nillable="true" type="impl1:MyBO_2"/>
</sequence>
</complexType>
...Enabling web services interoperability and reuse of the same business objects of a common toolkit
To enable web services interoperability and reuse of the same business
objects of a common toolkit, perform one of the following procedures:
- Changing the way how WSDLs are generated
- Using advanced parameter properties for your business objects
- Changing the way that WSDLs are generated
- Consider using this approach if you start to develop web services,
for example in a new installation. You can change a global setting
in your 100Custom.xml file, which will affect
the WSDL generation of all exposed web services. To make the WSDL generator use the advanced parameter properties to generate the WSDL, even in the default case when no advanced parameter properties are explicitly set, add the following entry:For more information, see The 100Custom.xml file and configuration.
to the<enable-advanced-parameter-properties-for-wsdl merge="replace">true </enable-advanced-parameter-properties-for-wsdl>webservicessection:<common merge="mergeChildren"> ... <webservices merge="mergeChildren"> ... </webservices> ... </common> - Using advanced parameter properties for your business objects
- Set the advanced parameter properties so that the XSD schema representation
in Process Designer matches
the WSDL types. Of specific interest for list-type properties is the
advanced parameter property
Wrap list.Tip: To easily determine the required advanced parameter properties, create an external service in a process application that does not reference the common toolkit. While creating the external service, new business objects are created with all necessary advanced parameter properties.For more information, see Business object advanced properties.
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-03-13 12:15