PUBLICAÇÃO WEB SERVICE REST DO CADASTRO DE VARIEDADE DO PRODUTO
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Supply Chain - Agroindústria | ||||
Módulo: | SIGAAGR | ||||
Rotinas: |
| ||||
País: | Brasil | ||||
Bancos de Dados: | Todos | ||||
Tabelas Utilizadas: | NNV | ||||
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 variedade do produto no produto Gestão Agroindústria (SIGAAGR), foi disponibilizado o método Web Service REST.
Fonte | AGRA050 |
---|
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.
Abaixo, uma persistência de dados, pelo método Post, na tabela NNV (Variedades).
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.
Abaixo, uma consulta dos dados da tabela NNV 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": "AGRA050",
"operation": 3,
"models": [
{
"id": "AGRA050_NNV",
"modeltype": "FIELDS",
"fields": [
{
"id": "NNV_CODPRO",
"order": 2,
"value": "1006312"
},
{
"id": "NNV_CODIGO",
"order": 3,
"value": "000006"
},
{
"id": "NNV_DESCRI",
"order": 4,
"value": "VAR03 TESTE REST"
}
]
}
]
}
Dados técnicos
"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.
"modeltype": "FIELDS",
"fields": [
Aqui, o ID se refere ao nome do Modelo que está contido na rotina que está sendo manipulada. Neste caso, AGRA050_NNVé o modelo 'master' do AGRA050.
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.
"order": 2,
"value": "1006312"
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: NNV_CODPRO, Tipo: Caracter, Tamanho: 15, Descrição: Código do Produto;
Campo: NNV_CODIGO, Tipo: Caracter, Tamanho: 6, Descrição: Código da Variedade;
Campo: NNV_DESCRI, Tipo: Caracter, Tamanho: 20, Descrição: Descrição da Variedade;