- Criado por Laila Maria Vieira Souza, última alteração por Igor Andrade em 26/05/2023
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