Faz uma requisição ao recurso SOAP informado no XML do envelope SOAP. Os parâmetros do bloco são obtidos com base em um endpoint WSDL.


Figura 1 - Bloco Enviar envelope SOAP

Compatibilidade

  • Bloco servidor: cronapi.util.Operations.callSOAP()

Retorno

Retorna um envelope SOAP contendo as respostas da requisição feita ao web service SOAP. 

Parâmetros

URL da Porta

URL que contém o endereço do web service que será acessado. Pode ser informado o endereço do arquivo WSDL ou o valor do atributo location do elemento <soap:address>.

  • Posição: 1
  • Inglês: Port URL
  • Tipo: Texto / String
  • Exemplo: "https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl"

SOAP Action

Especifica a ação que será executada no web service, geralmente é uma URI que identifica a operação a ser realizada. No arquivo WSDL utilizado, você pode encontrar esse valor definido no atributo soapAction do elemento <soap:operation> . Dependendo do endpoint WSDL utilizado, esse atributo pode estar vazio, não sendo necessário informar o parâmetro no bloco.

  • Posição: 2
  • Inglês: SOAP Action
  • Tipo: Texto / String
  • Exemplo: "http://example.com/valueoperation"

Cabeçalhos

Mapa contendo os cabeçalhos da requisição. É um parâmetro opcional utilizado para incluir informações adicionais relacionadas à requisição, como o formato da mensagem, autorização, autenticação, entre outras. Para a criação do mapa você pode utilizar o bloco criar mapa com e adicionar as chaves e valores desejados. 

  • Posição: 3
  • Inglês: Headers
  • Tipo: Mapa / Map
  • Exemplo: "{Content-Type: text/xml}"

XML do Envelope

Conteúdo XML do envelope SOAP a ser chamado. O conteúdo do XML do envelope depende da definição do web service utilizado e das operações suportadas por ele. Para testar e montar o XML do envelope, pode ser utilizada a ferramenta de testes de web services SoapUI.

  • Posição: 4
  • Inglês: Envelope XML
  • Tipo: Texto / String
  • Exemplo

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:m="http://cliente.bean.master.sigep.bsb.correios.com.br/">
        <soapenv:Header/>
        <soapenv:Body>
            <m:consultaCEP>
                <cep>04707910</cep>
            </m:consultaCEP>
        </soapenv:Body>
    </soapenv:Envelope>

Exemplo

Para obtermos um recurso via SOAP, é necessário que exista um endpoint WSDL. Assim, para este exemplo usaremos a função para consulta de CEPs disponibilizada no web service dos correios.

Na função abaixo, no bloco Enviar envelope SOAP, os parâmetros URL da Porta e XML do Envelope foram obtidos com base nas informações do WSDL dos correios. O parâmetro SOAP Action está vazio, pois no arquivo WSDL em questão esse atributo não é especificado. No parâmetro Cabeçalhos, inserimos o bloco criar mapa com que cria um objeto mapa com a chave "Content-Type", que especifica o formato da resposta que será obtida. Após a execução da função, a resposta da requisição será impressa no console do depurador.


Figura 2 - Exemplo de uso do bloco Enviar envelope SOAP


No campo abaixo, apresentamos o resultado de execução da função da Figura 2.


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns2:consultaCEPResponse xmlns:ns2="http://cliente.bean.master.sigep.bsb.correios.com.br/">
            <return>
                <bairro>Vila Gertrudes</bairro>
                <cep>04707910</cep>
                <cidade>São Paulo</cidade>
                <complemento2></complemento2>
                <end>Avenida Roque Petroni Júnior, 999</end>
                <uf>SP</uf>
            </return>
        </ns2:consultaCEPResponse>
    </soap:Body>
</soap:Envelope>

Nesta página