Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

CÁLCULO DE ROMANEIO VIA WEB SERVICE REST - FREIGHTCALCULATIONS

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Supply Chain - Logistica

Módulo:

SIGAGFE - Gestão de Frete Embarcador

Rotina:

Rotina

Nome Técnico

GFEWSCALULATION

Cálculo do Romaneio API REST

Rotina(s) envolvida(s)

Nome Técnico

GFEA050Romaneio

Romaneios de Carga

Requisito/Story/Issue (informe o requisito relacionado):

DLOGGFE-4098 / DLOGGFE-4108

País(es):

Brasil

Banco(s) de Dados:

Todos

Tabelas Utilizadas:

GWN - Romaneios.

Sistema(s) Operacional(is):

Windows, Linux, Unix


Descrição

Para os usuários que possuem algum aplicativo customizado, integração de documentos de carga, integração do romaneio e necessitam que seja realizado o cálculo automático do romaneio no produto Gestão de Frete Embarcador (SIGAGFE), foi disponibilizado o método Web Service REST para realizar o Cálculo do Romaneio.

Para utilização, é necessário a atualização do produto e a configuração do Web Service REST, conforme descrito nos pré-requisitos.

Índice
minLevel2
excludeCaracterísticas do Requisito|Descrição
stylesquare


Método Publicado

FonteGFEWSCALCULATION
Nome do ServiçoFREIGHTCALCULATION


Pré-requisitos para Utilização

  • Atualização do Microsiga Protheus com versão igual ou superior a 12.1.17.
  • Configuração do AppServer para disponibilizar as rotinas publicadas com o Web Service REST.
  • Após a configuração do Web Service REST, ao executar o appserver via console, será apresentada uma mensagem, informando que o Web Service REST está habilitado, vide imagem abaixo.


  • Pelo navegador de Internet, é possível visualizar todos os serviços disponíveis, inclusive a API FREIGHTCALCULATION.

  • API FREIGHTCALCULATION.

Métodos disponíveis no API FREIGHTCALCULATION.


Exemplo de Utilização

Para realizar testes, pode ser utilizado qualquer programa de sua preferência que teste API Web Service REST.

Como exemplos de programas, podemos citar o SoapUI ou a extensão Postman do Navegador Chrome. Ambos são excelentes aplicativos.


Utilizando o Postman para Realizar o Cálculo de Frete

A API FREIGHTCALCULATION disponibiliza o método GET, onde é retornado o arquivo de exemplo no formato JSON, que poderá ser utilizado para executar o método POST.

Na ferramenta Postman, copie o exemplo retornado, altere para executar o POST e cole o exemplo no Body (corpo).
Altere as informações dos campos para dados válidos da base de dados e execute o cálculo do romaneio (mais abaixo tem a explicação de cada campo do arquivo JSON).

Após executar o cálculo do romaneio, o resultado será retornado no formato JSON.


Exemplo de arquivo JSON

Arquivo JSON de entrada para ser utilizado como base, informando dois romaneios.

Bloco de código
languagexml
themeMidnight
titleJSON Entrada
collapsetrue
{
    "content": [
        {
            "Items": [
                {
                    "Manifest": [
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "value": "10000000",
                                    "length": 8,
                                    "type": "string"
                                }
                            ]
                        },
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "value": "20000000",
                                    "length": 8,
                                    "type": "string"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}


Arquivo JSON de entrada mínimo, utilizado como base, informando apenas um romaneio.

Bloco de código
languagexml
themeMidnight
titleJSON Entrada - Mínimo para cálculo
collapsetrue
{
    "content": [
        {
            "Items": [
                {
                    "Manifest": [
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "value": "10000000",
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}


Arquivo JSON exemplo do retorno com cálculo executado com sucesso.

Bloco de código
languagexml
themeMidnight
titleJSON Saída - Cálculo Executado com Sucesso
collapsetrue
{
    "content": [
        {
            "Items": [
                {
                    "FreightCalculation": [
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "FileMessage": "\\LOG_GFE\\CalculoFrete_T1D MG 01     _20180221_134644_175.LOG",
                                    "value": "10000000",
                                    "Status": "ok",
                                    "Message": "Cálculo realizado com sucesso"
                                }
                            ]
                        }
                    ],
                    "Status": "ok",
                    "Message": "freightcalculations: Cálculo(s) de Frete realizado(s). Verifique o Status de cada Romaneio calculado."
                }
            ]
        }
    ]
}


Arquivo JSON exemplo de cálculo não realizado.

Bloco de código
languagexml
themeMidnight
titleJSON Saída - Cálculo não realizado
collapsetrue
{
    "content": [
        {
            "Items": [
                {
                    "FreightCalculation": [
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "FileMessage": "",
                                    "value": "00000017",
                                    "Status": "error",
                                    "Message": "Não foi possível recalcular nenhum frete para documentos relacionados ao romaneio. Motivos:\r\nHá cálculos vinculados a Pré-Faturas.\r\nHá documentos de carga vinculados a documento de frete.\r\n"
                                }
                            ]
                        }
                    ],
                    "Status": "ok",
                    "Message": "freightcalculations: Cálculo(s) de Frete realizado(s). Verifique o Status de cada Romaneio calculado."
                }
            ]
        }
    ]
}


Arquivo JSON exemplo de validação do número do romaneio (ManifestNumber).

Bloco de código
languagexml
themeMidnight
titleJSON Saída - Validação Número Romaneio
collapsetrue
{
    "content": [
        {
            "Items": [
                {
                    "FreightCalculation": [
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "FileMessage": "",
                                    "value": "00010017",
                                    "Status": "error",
                                    "Message": "Campo ManifestNumber. Número do Romaneio informado não é válido, romaneio não encontrado na base de dados. (D MG 01 00010017)"
                                }
                            ]
                        }
                    ],
                    "Status": "ok",
                    "Message": "freightcalculations: Cálculo(s) de Frete realizado(s). Verifique o Status de cada Romaneio calculado."
                }
            ]
        }
    ]
}


Arquivo JSON exemplo com cálculos executados e outros não executados.

Bloco de código
languagexml
themeMidnight
titleJSON Saída - Validação Tipo de Operação
collapsetrue
{
    "content": [
        {
            "Items": [
                {
                    "FreightCalculation": [
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "FileMessage": "\\LOG_GFE\\CalculoFrete_T1D MG 01     _20180221_135338_785.LOG",
                                    "value": "100003  ",
                                    "Status": "ok",
                                    "Message": "Cálculo realizado com sucesso"
                                }
                            ]
                        },
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "FileMessage": "",
                                    "value": "20000000",
                                    "Status": "error",
                                    "Message": "Campo ManifestNumber. Número do Romaneio informado não é válido, romaneio não encontrado na base de dados. (D MG 01 20000000)"
                                }
                            ]
                        },
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "FileMessage": "",
                                    "value": "00001801",
                                    "Status": "error",
                                    "Message": "Não há documentos relacionados ao romaneio."
                                }
                            ]
                        },
                        {
                            "Items": [
                                {
                                    "id": "ManifestNumber",
                                    "Description": "Número do Romaneio para cálculo",
                                    "FileMessage": "",
                                    "value": "00000017",
                                    "Status": "error",
                                    "Message": "Não foi possível recalcular nenhum frete para documentos relacionados ao romaneio. Motivos:\r\nHá cálculos vinculados a Pré-Faturas.\r\nHá documentos de carga vinculados a documento de frete.\r\n"
                                }
                            ]
                        }
                    ],
                    "Status": "ok",
                    "Message": "freightcalculations: Cálculo(s) de Frete realizado(s). Verifique o Status de cada Romaneio calculado."
                }
            ]
        }
    ]
}


Detalhamento das Tags de Entrada

Manifest - Informações do romaneio. Ocorrências 1 ou mais.
FieldConteúdo / DescriçãoObservação
idNome da TAG - ManifestNumberObrigatório.
DescriptionDescrição do campo - Número do Romaneio
valueNúmero do romaneio a ser calculadoObrigatório.
LengthTamanho do campo do número do manifesto.
typeTipo da informação - Alfanumérica


Detalhamento das Tags de Saída

FreightCalculation - Informações do romaneio. Ocorrências 1 ou mais.
FieldConteúdo / DescriçãoObservação
idNome da TAG - ManifestNumberObrigatório.
DescriptionDescrição do campo - Número do Romaneio
valueNúmero do romaneio a ser calculadoObrigatório.
FileMessageCaminho do arquivo de LOG do cálculo do frete, quando parametrizado para gerar LOG de cálculo.
Satus

Indica se o cálculo foi realizado:
ok- Cálculo realizado;
error - Cálculo não realizado.


MessageMensagem da situação do cálculo. Quando não realizado com sucesso, indica o motivo.


Detalhamento técnico da estrutura do arquivo

Estrutura do arquivo de entrada.

TAGSDescrição
contents



Agrupador.

items


Agrupador.


manifest

Agrupador dos romaneios.



Items
Agrupador.




idNome da Tag




DescriptionDescrição detalhada da Tag




valueNúmero do romaneio




lengthTamanho do campo esperado




typeTipo do campo


Estrutura do arquivo do cálculo de frete realizado.

TAGSDescrição
content



Agrupador.

Items


Agrupador.


FreightCalculation
Agrupador.


Status

Status.


Message

Mensagem do Status.



Items
Agrupador.




idNome da Tag




DescriptionDescrição detalhada da Tag




FileMessageCaminho do arquivo de LOG configurado no Protheus para gravação do Log de cálculo de frete.




valueNúmero do romaneio que foi realizado o cálculo




StatusIndica se o romaneio foi ou não calculado.
ok - indica que foi calculado com sucesso
error - indica que houve problema no cálculo do romaneio.




MessageMensagem do cálculo. Em caso de não realizado o cálculo, será detalhado o motivo.


Estrutura do arquivo do cálculo de frete não realizado.

TAGSDescrição
content

Agrupador.

Items
Agrupador.


StatusStatus.


MessageMensagem do Status.


ErrorMensagem de erro.