Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Produto:

Microsiga Protheus®

Versões:

P12

Ocorrência:

Tenho a necessidade de utilizar o Webservices do cadastro de clientes (MATA030) para integrar com softwares terceiros e/ou customizações

Ambiente:

Todos

Detalhes de como utilizar o WebService

A rotina de Cadastro de Clientes (MATA030) foi reescrita no modelo MVC, onde já possui um WebServices nativo para utilização. Abaixo segue os o link para consultar nossa apostila de ADVPL que contem detalhes de como utilizar esse novo modelo de WebServices:

Web Services para MVC

Ao se desenvolver uma aplicação utilizando MVC, já estará disponível um Web Service para ser utilizado para o recebimento de dados.Todas as aplicações em MVC utilizarão o mesmo Web Service, independentemente de sua estrutura ou de quantas entidades ele possua. O Web Service que está disponível para o MVC é o FWWSMODEL
A ideia básica é que iremos instanciar o Web Service, informar qual a aplicação que será utilizada e informar os dados em um formato XML.

Web Service para modelos de dados que possuem uma entidade

Veremos como construir uma aplicação que utilize o Web Service FWWSMODEL com um modelo de dados (Model) que possui apenas uma entidade.

Instanciamento do Client de Web Service

O instanciamento se dá seguinte forma:
Instanciamento do Client do Web Service propriamente dito.

oMVCWS := WsFwWsModel():New()

Definição da URL do FWWSMODEL no servidor de Web Services.

oMVCWS:_URL := http://127.0.0.1:8080/ws/FWWSMODEL.apw

Definição da aplicação que será usada.
Definimos aqui o nome do fonte que contém a ModelDef que queremos utilizar.

oMVCWS:cModelId := 'COMP011_MVC'

A estrutura do XML utilizada

Como dito anteriormente os dados serão informados em um XML. A estrutura desse XML segue a seguinte hierarquia básica:

Image Removed

A tag <ID do Model> é o que identificador (ID) foi definido no modelo de dados (Model) da aplicação MVC.
Exemplo
Na aplicação temos definido:
oModel := MPFormModel():New('COMP011M' )

No XML a tag <ID do Model> será:
<COMP011M>
...
</COMP011M>

A operação que será realizada inclusão (3), alteração (4) ou exclusão (5) também dever ser informada nesta tag, no atributo Operation. Assim se quisermos fazer uma operação de inclusão teremos
<COMP011M Operation="3">
As tags <ID de Componente> são IDs dos componentes de formulários ou componente de grids que foram definidos no modelo de dados (Model) da aplicação.
Manual ADvPl utilizando o MVC
106
Versão 4.0
Manual ADvPl utilizando o MVC
Exemplo
Se na aplicação temos:
oModel:AddFields( 'ZA0MASTER' )
No XML as tags <ID de Componente> serão:
<ZA0MASTER>
...
</ZA0MASTER>
O tipo do componente (de formulário ou de grid) também deve ser informados nesta tag no atributo modeltype. Informe FIELDS para componentes de formulários e os componentes de grid.
Teríamos então:
<ZA0MASTER modeltype="FIELDS">
As tags <ID de Campo> serão os nomes dos campos da estrutura do componente, seja formulário ou grid Assim se na estrutura tivermos os campos ZA0_FILIAL, ZA0_ CODIGO e ZA0_NOME, por exemplo, teremos:
<ZA0_FILIAL>
...
</ZA0_FILIAL>
<ZA0_CODIGO>
...
</ZA0_CODIGO>
<ZA0_NOME>
...
</ZA0_NOME>
A ordem dos campos também deve ser informada nestas tags, no atributo order.
<ZA0_FILIAL order="1">
...
</ZA0_FILIAL>
<ZA0_CODIGO order="2">
...
</ZA0_CODIGO >
<ZA0_NOME order="3">
...
</ZA0_NOME>
anual SPED Contábil
Manual ADvPl utilizando o MVC
Manual ADvPl utilizando o MVC
107
Versão 4.0
Quando o componente é um formulário (FIELDS), os dados propriamente ditos devem ser informados em uma tag value.
<ZA0_FILIAL order="1">
<value>01</value>
</ZA0_FILIAL>
<ZA0_CODIGO order="2">
<value>001000</value>
</ZA0_CODIGO >
<ZA0_NOME order="3">
<value>Tom Jobim</value>
</ZA0_NOME>
Então a estrutura completa será:
<COMP011M Operation="1">
<ZA0MASTER modeltype="FIELDS" >
<ZA0_FILIAL order="1">
<value>01</value>
</ZA0_FILIAL>
<ZA0_CODIGO order="2">
<value>01000</value>
</ZA0_CODIGO>
<ZA0_NOME order="3">
<value>Tom Jobim</value>
</ZA0_NOME>
</ZA0MASTER>
</COMP011M>

nossos webservices para rotinas em MVC.


Consultar as páginas 104 a 116 que contem o capitulo sobre WebServices

http://tdn.totvs.com/display/public/mp/AdvPl+utilizando+MVC



Pode lhe Interessar:

Duvidas sobre o que é o padrão MVC, acesse o link abaixo:
http://tdn.totvs.com/display/public/mp/Pontos+de+Entrada+para+fontes+Advpl+desenvolvidos+utilizando+o+conceito+MVC