PUBLICAÇÃO WEB SERVICE REST DO CADASTRO DE CICLO PRODUTIVO

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Supply Chain - Agroindústria

Módulo:

SIGAAGR

Rotinas:

Rotina

Nome Técnico

Cadastro de Ciclo Produtivo

AGRA001

País:

Brasil

Bancos de Dados:

Todos

Tabelas Utilizadas:

NN1

Sistemas Operacionais:

Todos


Pré-requisito

  No que diz respeito ao sistema, a funcionalidade de integração está funcional. Porém, é necessário configurar o AppServer para que o Protheus disponibilize a URL de acesso ao serviço de Web Service REST do sistema. Uma vez configurado o serviço, a integração está pronta para ser utilizada.

  Para isso, segue link para consulta: 1. Configuração do REST do Protheus


Descrição

  Para os usuários que possuem algum aplicativo customizado, e que precisam efetuar o cadastro/consulta de ciclo produtivo no produto Gestão Agroindústria (SIGAAGR), foi disponibilizado o método Web Service REST. 

Método Publicado

Fonte

AGRA001

Exemplo de Utilização

Para realizar testes, pode-se utilizar qualquer programa de sua preferência, que teste API Web Service REST. O SoapUI e o Postman são exemplos de bons programas para isso. 

Inserindo um registro

Abaixo, uma persistência de dados, pelo método Post, na tabela NN1 (Ciclo Produtivo).

No exemplo acima, a operação foi concluída com sucesso. O retorno da operação, parte de baixo da imagem, é o registro que foi inserido no banco.

Abaixo, um caso em que o modelo impede a gravação do registro por conter algum dado inconsistente. No caso em questão, o registro já existe no banco.





Consultando informações

Abaixo, uma consulta dos dados da tabela NN1 através do método GET.

Existem várias possibilidades de se restringir quais dados o GET irá retornar. Segue link da documentação relativa a este assunto: http://tdn.totvs.com.br/pages/viewpage.action?pageId=271671548





Segue, para consulta, a estrutura JSON que foi utilizada como exemplo para a confecção deste documento.





Dados técnicos

  1. "id": "AGRA001",

           "operation": 3,

           "models": [

                 O ID refere-se ao nome do programa que está sendo chamado no Protheus. Por padrão, os programas no Protheus que possuem disponibilização de web service são publicados com o nome do fonte.

                 Operation refere-se a qual operação (operações padrões do MVC do ADVPL) será efetuada. Isso está diretamente ligado com a operação de REST que será efetuada, no exemplo acima a operação 3 se refere a uma inserção, então a operação REST que será efetuada é um POST.

                 Models refere-se a quais modelos, existentes na rotina publicada, serão manipulados.

Essa definição ocorre logo na segunda parte.

  1. "id": "CABEC",

           "modeltype": "FIELDS",

           "fields": [

                 Aqui, o ID se refere ao nome do Modelo que está contido na rotina que está sendo manipulada. Neste caso, CABEC é o modelo 'master' do AGRA001.

                 Modeltype se refere ao tipo do modelo no Protheus: Field ou Grid.

                No caso em questão, o modelo é um Field, então os campos a serem preenchidos devem ser informados logo abaixo, na terceira parte da estrutura.

  1. "id": "NN1_ANO",

          "order": 2,

          "value": "2018"

                 Nesta etapa, ID refere-se ao nome do campo na tabela referente à rotina.

                 Order indica a ordem deste campo definido no dicionário de dados.

                 Value é o valor que será inserido neste campo.

  

  Vale ressaltar que todas as validações do modelo são feitas automaticamente pelo Protheus, ou seja, caso algum dado esteja errado ou incoerente, o sistema devolve uma mensagem de erro, em formato JSON, e a operação não é concluída.


Campo: NN1_FILIAL, Tipo: Caracter, Tamanho: 2, Descrição: Filial do Sistema;

Campo: NN1_ANO, Tipo: Caracter, Tamanho: 4, Descrição: Ano da Safra;

Campo: NN1_SEQ, Tipo: Caracter, Tamanho: 2, Descrição: Sequência;

Campo: NN1_DESCRI, Tipo: Caracter, Tamanho: 40, Descrição: Descrição;

Campo: NN1_CODPRO, Tipo: Caracter, Tamanho: 15, Descrição: Produto da Safra;

Campo: NN1_DESPRO, Tipo: Caracter, Tamanho: 40, Descrição: Descrição do Produto;

Campo: NN1_FECHAD, Tipo: Caracter, Tamanho: 1, Descrição: Safra Fechada;