Websydian v6.1 online documentationOnline documentation - Websydian v6.5

Problem - Soap header mustUnderstand is not working

Product TransacXML
Version Version 5.5 to v6.0
Resolved in v6.1
Category Development/Deployment
Question When calling a Soap Processor, a faultcode "Server" and a fault string: "At least one SOAP Header with mustUnderstand="1" was not understood: XXX". (where XXX refers the header element that is specified as mustUnderstand = 1).
Answer The message is can be returned when the subscriber (the client) specifies "mustUnderstand = 1" for a header element.

Specifying this, means that the subscriber mandates that the header element must be handled by the publisher.

The SoapProcessor checks this by checking whether the Data.Envelope.Header XMLElement scoped under the HttpSoap entity has the specified header element as a child element. If this is not the case, the application can't access the header data - and as such can't "understand" the header.

In these cases the SoapProcessor returns the error specified above.

 

The way to correct this situation is to add the header element as a child to the Data.Envelope.Header XMLElement entity.

 

However, in versions 5.5 and later, there is an error which means that even though this is done, the error will still occur.

The easiest solution for this is to open the action diagram for the SoapProcessor and enter:

+++Undefine +subroutine

in the Post Point:

"Start check mustUnderstand Header entries".