Issue 29572 — Complex parameters that are not defined nillable should not be specified as such
Status: Solved in 10.2.01
Solution available in patch(es): MX07 G101
Summary: Database i/o that is done in a Server Stored Procedure (SSP) is not part of the main transaction. Environment: +Uniface Version: all +Operating System: OS independent +Database: All databases Scenario: Parameters must normally be present in a SOAP call. This is governed by two attributes in the element definition in the WSDL: - 'minoccurs' : specifies the minimum number of occurrences of the element. - 'maxoccurs' : specifies the maximum number of occurrence If the element is defined with minoccurs="0", then it does not need to appear at all in the SOAP envelope. If minoccurs is greater than 0, then the element must appear, even if it has no value. A third attribute that may appear in the element definition in the WSDL is called - 'nillable' : detemines whether the value can be 'NILL' (NULL) or just empty. Only elements that must be present and are defined as nillable="true" may contain the attribute nil="true" in the SOAP envelope. For parameters that are too complex to be mapped onto a Uniface type, the parameter is defined as a string in the Uniface signature and the developer has to provide the parameter in the activate call. In this case maxoccurs plays a role: - When maxoccurs is greater than "1", it is the developer's responsibility to provide the element and the contents. - When maxoccurs="1", the SOAP driver will provide the parameter element and the developer has to provide the content. It is in this *last* case, when there is no content, that the SOAP driver erroneously adds the nill="true" attribute to the parameter.
There is no known workaround for this problem.