PUBLICAÇÃO WEB SERVICE REST DO CADASTRO DE SAFRA

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Supply Chain - Agroindústria

Módulo:

SIGAAGR

Rotinas:

Rotina

Nome Técnico

Cadastro de Safra

OGA100

País:

Brasil

Bancos de Dados:

Todos

Tabelas Utilizadas:

NJU

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 safra no produto Gestão Agroindústria (SIGAAGR), foi disponibilizado o método Web Service REST. 

Método Publicado

Fonte

OGA100

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 NJU (Safra).

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 NJU 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.

{
     "id": "OGA100",
     "operation": 3,
     "models": [
          {
               "id": "NJUUNICO",
               "modeltype": "FIELDS",
               "fields": [
                    {
                         "id": "NJU_CODSAF",
                         "order": 2,
                         "value": "2020"
                    },
                    {
                         "id": "NJU_DESCRI",
                         "order": 3,
                         "value": "SAFRA TESTE REST"
                    }
               ]
          }
     ]
}




Dados técnicos

  1. "id": "OGA100",

           "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": "NJUUNICO",

           "modeltype": "FIELDS",

           "fields": [

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

                 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": "NJU_CODSAF",

          "order": 2,

          "value": "2020"

                 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: NJU_CODSAF, Tipo: Caracter, Tamanho: 15, Descrição: Código Safra;

Campo: NJU_DESCRI, Tipo: Caracter, Tamanho: 40, Descrição: Descrição da Safra;