SOAP неявные заголовки - PullRequest
       12

SOAP неявные заголовки

0 голосов
/ 24 августа 2018

Я хочу добавить собственный неявный заголовок мыла в мой ответ.

MsqFlow :

enter image description here

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;

в точке останова между [Узлом вычисления] и [Ответ SOAP] в сообщении заполнено SOAP с правильными параметрами, но в ответе по-прежнему отображается только тело мыла беззаголовок.

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

Что мне не хватает?

1 Ответ

0 голосов
/ 25 августа 2018

Я наконец нашел решение, я не создал 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;
...