SOAP 隐式 headers

SOAP implicit headers

我想在我的回复中添加自定义隐式 soap header。

MsqFlow:

ESQL:

CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        SET OutputRoot.MQMD = InputRoot.MQMD;
        CREATE LASTCHILD OF OutputRoot DOMAIN 'SOAP' NAME 'SOAP';
        SET OutputRoot.SOAP.Header.eaie:apiHeader.messageId = UUIDASCHAR;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.timestamp = CURRENT_TIMESTAMP;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.transactionId = Environment.Variables.Generic.Session.TransactionId;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.correlationId = Environment.Variables.Generic.Session.CorrelationId;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.scrSystem = 'EAI';
        SET OutputRoot.XMLNSC = InputRoot.XMLNSC;
        RETURN TRUE;
    END;
END MODULE;

消息中 [Compute Node] 和 [SOAP Reply] 之间的断点用正确的参数填充了 SOAP,但响应仍然只看到没有 header.[=14 的 soap body =]

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>

我错过了什么?

我终于找到了解决方案,我没有创建 XMLNSC 也没有添加强制性的 SOAP 主体。

最终代码:

CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        SET OutputRoot.MQMD = InputRoot.MQMD;
        CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC' NAME 'XMLNSC';
        SET OutputRoot.SOAP.Header.eaie:apiHeader.messageId = UUIDASCHAR;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.timestamp = CURRENT_TIMESTAMP;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.transactionId = Environment.Variables.Generic.Session.TransactionId;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.correlationId = Environment.Variables.Generic.Session.CorrelationId;
        SET OutputRoot.SOAP.Header.eaie:apiHeader.scrSystem = 'EAI';
        SET OutputRoot.SOAP.Body.nsOut:getXXXResponse = InputRoot.XMLNSC.nsOut:getXXXResponse;
        SET OutputRoot.XMLNSC = InputRoot.XMLNSC;
        RETURN TRUE;
    END;
END MODULE;