Personalizar resposta

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 1 min. de leitura
  • Siga este exemplo para personalizar e controlar a carga XML de uma resposta SOAP.

    Antes de Iniciar

    Função necessária: web_service_admin ou admin

    Procedimento

    1. Crie um documento XML personalizado usando o objeto de inclusão de script XMLDocument.
      Nota:
      Ao criar um serviço Web com script em uma aplicação com escopo, você deve usar a API XMLDocument2.
    2. Defina seu elemento de documento como a variável response.soapResponseElement em um serviço Web com script.
      Por exemplo, o seguinte script de serviço Web com script:
      var xmldoc = new XMLDocument2();
          xmldoc.parseXML("<myResponse></myResponse>");
          xmldoc.createElementWithTextValue("element_one", "test");  
          xmldoc.createElementWithTextValue("element_two", "new2 value");  
      
          var el = xmldoc.createElement("element_three");
          xmldoc.setCurrentElement(el);  
          xmldoc.createElementWithTextValue("newChild", "test child element");
      
          response.soapResponseElement = xmldoc.getDocumentElement();
      É usado para aceitar a seguinte solicitação:
      <soapenv:Envelope 
         xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
         xmlns:tes="http://www.service-now.com/TestCustomResponse">
         <soapenv:Header/>
         <soapenv:Body>
            <tes:execute/>
         </soapenv:Body>
      </soapenv:Envelope>
      Que responderá com a seguinte resposta SOAP:
      <soapenv:Envelope 
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
          xmlns:tes="http://www.service-now.com/TestCustomResponse">
         <soapenv:Header/>
         <soapenv:Body>
            <myResponse>
               <element_one>test</element_one>
               <element_two>new2 value</element_two>
               <element_three>
                  <newChild>test child element</newChild>
               </element_three>
            </myResponse>
         </soapenv:Body>
      </soapenv:Envelope>

      O suporte a WSDL precisará ser criado externamente. O endpoint SOAP precisará ser encaminhado de volta para o serviço Web com script em questão.