Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - TOTVS Backoffice (Linha Protheus) - ADVPL - O que é SOAP

time.pngTempo aproximado para leitura: 00:04:00 min

Dúvida

O que é, pra que serve e como funciona a comunicação em um web service SOAP?

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.8

Solução
SOAP (Simple Object Access Protocol) é um tipo de arquitetura de software que define um conjunto de restrições/regras a serem usados para a criação de serviços web.

Pra que serve?
Inicialmente quando escrevemos nossas aplicações elas estão isoladas, contudo, para que seja possível consumi-las em outras aplicações é necessário expô-las por algum método de comunicação.

Dentre diversos outros métodos, os web services SOAP são um deles.

Exemplo
Tenho um sistema de vendas que armazena os dados de cada nota fiscal emitida.

Preciso acessar as informações da nota fiscal (quantidade, preço unitário, valor total, impostos), assim como preciso enviar estes dados para um outro sistema de contabilidade diariamente.

Estas informações precisam estar disponíveis tanto no meu sistema quanto no sistema de contabilidade da empresa.

A partir dessa necessidade, eu crio um web service SOAP e programo minhas aplicações (tanto a local quanto a da contabilidade) para realizar requisições para o mesmo (seja de inclusão ou visualização de notas).

Desta forma eu tenho um serviço único, que é consumido da mesma maneira (porém por métodos diferentes) e que mantém as informações disponíveis para diversas outras aplicações.

Comunicação
Na grande maioria dos casos, as comunicações em web services SOAP ocorrem sob o protocolo HTTP utilizando o padrão XML (Linguagem de Marcação Extensível), onde são utilizados métodos específicos para retorno das informações (criaNota(), visualizaNota(), todasNotas()).

Exemplo
Preciso que seja possível visualizar os dados de um cliente com código, nome, tipo e endereço, como os dados poderão serão trazidos?

Eu irei realizar um consumo para um serviço chamado já criado através da URI (Uniform Resource Identifier) abaixo por meio de um WSDL:

{method} {schema}://{domain}{:port}/{patch}?{query}
{SOAP} {https}://{mydomain.com.br:5090}/{soap/invoices}?{wsdl}


E quando eu fizer a requisição, me será retornado o XML abaixo:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>
<code>CLT018</code>
<name>IMPACTART DIGITAL</name>
<strategicCustomerType>F</strategicCustomerType>
<address>
<street>AVENIDA ALVES CARMO, 7811</street>
<city>JARDIM CARLOS MENDES</city>
<stateId>SP</stateId>
</address>
</soap:Body>
</soap:Envelope>


O que fazer com o XML?
Uma vez recebida a resposta do web service, apenas extraia apenas o corpo da resposta (<soap:Body>) e acesse as propriedades contidas nele para integrar ao seu sistema.


Exemplo em ADVPL

/** RESTANTE DA APLICAÇÃO **/

cXML := "BODY_RESPOSTA_DO_WS_SOAP_AQUI"

oXML := TXMLManager():New()
oXML:Parse(cXML)

// AQUI CONTÉM TODOS OS CAMPOS E CONTEÚDOS
// (ex: aNodes[1][1] => "code" | aNodes[1][2] => "CLT018")
aNodes := oXML:DOMGetAttArray()

/** RESTANTE DA APLICAÇÃO **/


Saiba mais
Web service SOAP
SOAP - Wikipedia
XML - Wikipedia
URI - Wikipedia
WSDL - Wikipedia

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _