Á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 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:


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>

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