Handling non-standard SOAP requests
To handle these requests, you must perform an XSL transformation on the XML contents of the SOAP body. This transformation must result in a format that does conform to the WSDL. The transformed request is then processed as usual. The resulting response is transformed again, resulting in a format that can be handled by the client software.
This is useful in the following situation. A third party has defined a web service (WSDL), and client software is available. LN has a BDE that implements the required logic. The WSDL belonging to the BDE does not match the third party WSDL that is used by the client software. To use the existing client software to communicate with the service offered by the BDE, you must write a transformation stylesheet and deploy it to the Connector for Web Services application.
The non-standard SOAP requests must adhere to these requirements:
- The XML Namespace URI of
the element within the SOAP body must not start with
"http://www.infor.com/businessinterface/"
or"http://www.infor.com/boi_interface/"
. These namespace URIs are reserved for the standard SOAP requests that conform to the WSDL of the BDE. - If any of the ERP server's activation properties must be overruled, you must provide these settings as usual in the SOAP header. See Overruling ERP servers configuration. You cannot change these settings during the XSL transformation because the SOAP header is not affected by the transformation; only the SOAP body is being processed.
You must specify the XSL transformation in a stylesheet file with the same name as the service that is being invoked. You can find the service name on the Deployed Web Services configuration page. The service name is equal to the name of the BDE; if the same BDE has been deployed for multiple ERP Servers, the name is possibly extended with "_2" or "_3", etc. The stylesheet files have a ".xsl" extension and are located in the "WEB-INF/wsdl" folder within the c4ws application. Example: if you want to process non-standard requests for a service called "AreasService_2", you must specify transformation instructions in "<Infor Installation folder>/c4ws/web/WEB-INF/wsdl/AreasService_2.xsl".
You can define a generic stylesheet called "_default_.xsl". If a non-standard request arrives, and the addressed service does not have its own stylesheet, the generic stylesheet is used to transform the request and response. If no applicable stylesheet is present, the non-standard request cannot be processed and a SOAP fault is returned.
For the transformation stylesheets only version 1.0 of XSLT is
supported. Therefore, the stylesheet must begin with:
<xsl:stylesheet version="1.0"
xmlns:xsl=http://www.w3.org/1999/XSL/Transform …
After adding or changing stylesheets in the WEB-INF/wsdl folder, you must restart the web application to pick up the changes.