Índice
Objetivo
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.
Método Publicado
Fonte | GFEWSCALCULATION |
---|
Nome do Serviço | FREIGHTCALCULATION |
Pré-requisitos para Utilização
- Atualização do Microsiga Protheus com versão igual ou superior a 12.1.17.
- Atualização da Build 131227a a partir da versão 13.2.3.6.
- 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.


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.
{
"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.
{
"content": [
{
"Items": [
{
"Manifest": [
{
"Items": [
{
"id": "ManifestNumber",
"value": "10000000",
}
]
}
]
}
]
}
]
}
Arquivo JSON exemplo do retorno com cálculo executado com sucesso.
{
"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.
{
"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).
{
"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.
{
"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."
}
]
}
]
}
Arquivo JSON exemplo de Build Desatualizada.
{
"errorCode": 500,
"errorMessage": "invalid class JSSONOBJECT"
}
Manifest - Informações do romaneio. Ocorrências 1 ou mais. |
---|
Field | Conteúdo / Descrição | Observação |
id | Nome da TAG - ManifestNumber | Obrigatório. |
Description | Descrição do campo - Número do Romaneio |
|
value | Número do romaneio a ser calculado | Obrigatório. |
Length | Tamanho do campo do número do manifesto. |
|
type | Tipo da informação - Alfanumérica |
|
FreightCalculation - Informações do romaneio. Ocorrências 1 ou mais. |
---|
Field | Conteúdo / Descrição | Observação |
id | Nome da TAG - ManifestNumber | Obrigatório. |
Description | Descrição do campo - Número do Romaneio |
|
value | Número do romaneio a ser calculado | Obrigatório. |
FileMessage | Caminho 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. |
|
Message | Mensagem 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.
TAGS | Descrição |
contents |
|
|
|
| Agrupador. |
| items |
|
|
| Agrupador. |
|
| manifest |
|
| Agrupador dos romaneios. |
|
|
| Items |
| Agrupador. |
|
|
|
| id | Nome da Tag |
|
|
|
| Description | Descrição detalhada da Tag |
|
|
|
| value | Número do romaneio |
|
|
|
| length | Tamanho do campo esperado |
|
|
|
| type | Tipo do campo |
Estrutura do arquivo do cálculo de frete realizado.
TAGS | Descrição |
content |
|
|
|
| Agrupador. |
| Items |
|
|
| Agrupador. |
|
| FreightCalculation |
| Agrupador. |
|
| Status |
|
| Status. |
|
| Message |
|
| Mensagem do Status. |
|
|
| Items |
| Agrupador. |
|
|
|
| id | Nome da Tag |
|
|
|
| Description | Descrição detalhada da Tag |
|
|
|
| FileMessage | Caminho do arquivo de LOG configurado no Protheus para gravação do Log de cálculo de frete. |
|
|
|
| value | Número do romaneio que foi realizado o cálculo |
|
|
|
| Status | Indica 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. |
|
|
|
| Message | Mensagem 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.
TAGS | Descrição |
content |
|
| Agrupador. |
| Items |
| Agrupador. |
|
| Status | Status. |
|
| Message | Mensagem do Status. |
|
| Error | Mensagem de erro. |