Histórico da Página
Guia explicativo de como utilizar os novos webservices em MVC
Produto: | Microsiga Protheus® |
Versões: | P12 |
Ocorrência: |
Como 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 |
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>
<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
o link para consultar nossa apostila de ADVPL que contem detalhes de como utilizar nossos webservices. http://tdn.totvs.com/display/public/mp/AdvPl+utilizando+MVC - Consultar as páginas 104 a 116 que contem o capitulo sobre WebServices Segue um trecho da documentação para apreciação.: Observação: O conteúdo completo esta no link acima. Importante: Para o tratamento indicado acima, é necessário que o analista seja um desenvolvedor com conhecimento em linguagem voltada para os métodos MVC, caso não possua este conhecimento, o cliente deverá acionar o ESN na Totvs para contratar os serviços de Fábrica de Software para efetuar o processo. |
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: |