SOAP Namespace and attributes processing in BPM
BinHu 0600024J6S Visits (10615)
For Web service processing, there are some things that you need to know about between the different versions of Business Process Manager (BPM).
First, if you haven't installed JR41994 on your BPM 7.5.1 environment, then the SOAP response generated with ns1 prefix may be in the wrong format.
JR41994: INCORRECT NAMESPACE WHEN USING COMPLEX DATA TYPE FROM TOOLKIT
This error occurs in the BPM v22.214.171.124 release. This APAR fixes the situation that For Inbound Web Services in BPM 7.5.1, when a complex data type from a toolkit is used in the response, the generated WSDL attaches an incorrect namespace prefix to this complex type. BPM v126.96.36.199 includes the fix.
Later, starting from BPM v188.8.131.52, BPM enabled the advanced parameter properties by using JR42012. You can control the nillable attribute by using the advanced parameter properties.
Later on, BPM supports the end user to disable that parameter if they wish. JR43978 provided for that.
In this enhancement, we introduced a new tag in 99Local.xml
By default the value is false, which means BPM does not validate the advanced information to generate the SOAP response.
Note: for changing the value in 99Local.xml, we recommend you use 100Custom.xml instead of editing the 99Local.xml directly.
In BPM 184.108.40.206 all the above mentioned APARs are all integrated. And the advanced parameter properties is disabled by default. But when the advanced parameter properties in inbound web service is false by default, there is a issue that the complex type in toolkit will be also considered inside the web service namespace. BPM recommends you to enable the parameter.
Things are not finished. When you enabled the tag, you might see the errors below from SOAP response:
[4/14/15 10:24:48:147 CST] 00000037 BeanSerialize E org.
This problem will not happen on the v220.127.116.11 release because the Web Service engine did not strictly validate those parameters from a SOAP Response. But BPM still recommends that you enable the tag because it will help validate the SOAP response more strictly.
When this happens, you should examine your Business Object Definition so that you know which parameters can be nillable, which parameters cannot be nillable. For those parameters that can be nillable, you should tag them as nillable explicitly by doing the following:
1. open your Process Application in Process Designer