Histórico da Página
SIMULAÇÃO DE FRETE VIA WEB SERVICE REST - FREIGHTSIMULATIONS
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||||||
Segmento: | Supply Chain - Logistica | ||||||||
Módulo: | SIGAGFE - Gestão de Frete Embarcador | ||||||||
Rotina: |
| ||||||||
Requisito/Story/Issue (informe o requisito relacionado): | DLOGGFE-2197 / DLOGGFE-3183 | ||||||||
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, e que precisam realizar uma simulação de frete no produto Gestão de Frete Embarcador (SIGAGFE), foi disponibilizado o método Web Service REST.
Para utilização, é necessário a atualização do produto e a configuração do Web Service REST, conforme descrito nos pré-requisitos.
Índice | ||||||
---|---|---|---|---|---|---|
|
Método Publicado
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.
- No link http://tdn.totvs.com.br/pages/viewpage.action?pageId=185748193 é possível encontrar todas as configurações necessárias.
- 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 FREIGHTSIMULATION.
- API FREIGHTSIMULATION.
Métodos disponíveis no API FREIGHTSIMULATION.
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.
Documento de Referência: | Para mais informações sobre a Simulação de Frete - FreightSimulations - API REST, consulte o documento de referência |
Utilizando o Postman para Realizar uma Simulação de Frete
A API FREIGHTSIMULATION 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 a simulação (mais abaixo tem a explicação de cada campo do arquivo JSON).
Após executar a simulação, o resultado da simulação será retornado no formato JSON.
Exemplo de arquivo JSON
Arquivo JSON de entrada para ser utilizado como base.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Manifest": [
{
"Length": 8,
"id": "ManifestNumber",
"Description": "Código agrupador/Romaneio",
"value": "01 ",
"Type": "string"
},
{
"Length": 14,
"id": "CarrierCode",
"Description": "Transportador a ser considerado no cálculo",
"value": " ",
"Type": "string"
},
{
"Length": 10,
"id": "TypeOfVehicle",
"Description": "Tipo de Veículo",
"value": " ",
"Type": "string"
},
{
"Length": 4,
"id": "FreightClassification",
"Description": "Classificação de frete",
"value": " ",
"Type": "string"
},
{
"Length": 10,
"id": "OperationType",
"Description": "Tipo de Operação",
"value": " ",
"Type": "string"
}
],
"id": "1",
"ItemsDocumentBurden": [
{
"Items": [
{
"Length": 14,
"id": "IssuerCode",
"Description": "Emitente do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 3,
"id": "InvoiceSerie",
"Description": "Série do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 16,
"id": "InvoiceNumber",
"Description": "Número do Documento de Carga/Nota Fiscal",
"value": "00001 ",
"Type": "string"
},
{
"Length": 5,
"id": "TypeOfDocument",
"Description": "Tipo do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 15,
"id": "ItemCode",
"Description": "Código do Item do Documento de Carga/Nota Fiscal",
"value": "ItemA ",
"Type": "string"
},
{
"Length": 4,
"id": "FreightClassification",
"Description": "Classificação de Frete do Item Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 4,
"id": "ItemType",
"Description": "Tipo do Item do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 13.5,
"id": "Quantity",
"Description": "Quantidade do Item",
"value": 0,
"Type": "double"
},
{
"Length": 13.5,
"id": "Weight",
"Description": "Peso do Item",
"value": 100,
"Type": "double"
},
{
"Length": 13.5,
"id": "NetWeight",
"Description": "Peso Cubado",
"value": 0,
"Type": "double"
},
{
"Length": 13.5,
"id": "AlternativeQuantity",
"Description": "Quantidade/Peso Alternativa",
"value": 0,
"Type": "double"
},
{
"Length": 11.2,
"id": "NetPrice",
"Description": "Valor do Item",
"value": 100,
"Type": "double"
},
{
"Length": 11.5,
"id": "CubicVolume",
"Description": "Volume Ocupado (m3)",
"value": 0,
"Type": "double"
}
],
"id": "1"
}
],
"Route": [
{
"Items": [
{
"Length": 14,
"id": "IssuerCode",
"Description": "Emitente do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 3,
"id": "InvoiceSerie",
"Description": "Série do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 16,
"id": "InvoiceNumber",
"Description": "Número do Documento de Carga/Nota Fiscal",
"value": "00001 ",
"Type": "string"
},
{
"Length": 5,
"id": "TypeOfDocument",
"Description": "Tipo de Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 2,
"id": "Sequence",
"Description": "Sequência do Trecho. Serial único",
"value": "01",
"Type": "string"
},
{
"Length": 14,
"id": "CarrierCode",
"Description": "Transportador do Trecho",
"value": " ",
"Type": "string"
},
{
"Length": 7,
"id": "CityCodeDelivery",
"Description": "Cidade de Destino",
"value": " ",
"Type": "string"
},
{
"Length": 10,
"id": "TypeOfVehicle",
"Description": "Tipo de veículo do trecho",
"value": " ",
"Type": "string"
},
{
"Length": 7,
"id": "CityCodeOrigin",
"Description": "Número Cidade Origem",
"value": " ",
"Type": "string"
},
{
"Length": 8,
"id": "ZipCodeOrigin",
"Description": "CEP de Origem",
"value": " ",
"Type": "string"
},
{
"Length": 8,
"id": "ZipCodeDelivery",
"Description": "CEP de Destino",
"value": " ",
"Type": "string"
},
{
"Length": 4,
"id": "FreightClassification",
"Description": "Classificação de Frete",
"value": " ",
"Type": "string"
},
{
"Length": 10,
"id": "OperationType",
"Description": "Tipo de Operação",
"value": " ",
"Type": "string"
}
],
"id": "1"
}
],
"DocumentBurden": [
{
"Items": [
{
"Length": 8,
"id": "ManifestNumber",
"Description": "Código agrupador/Romaneio",
"value": "01 ",
"Type": "string"
},
{
"Length": 14,
"id": "IssuerCode",
"Description": "Emitente do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 3,
"id": "InvoiceSerie",
"Description": "Série do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 16,
"id": "InvoiceNumber",
"Description": "Número do Documento de Carga/Nota Fiscal",
"value": "00001 ",
"Type": "string"
},
{
"Length": 5,
"id": "TypeOfDocument",
"Description": "Tipo do Documento de Carga/Nota Fiscal",
"value": "",
"Type": "string"
},
{
"Length": 14,
"id": "SenderCode",
"Description": "Remetente do Documento de Carga/Nota Fiscal",
"value": "000000001 ",
"Type": "string"
},
{
"Length": 14,
"id": "CostumerCode",
"Description": "Destinat\ufffdrio do Documento de Carga/Nota Fiscal",
"value": "000000003 ",
"Type": "string"
},
{
"Length": 60,
"id": "DeliveryAddress",
"Description": "Endereço de Entrega do Documento de Carga/Nota Fiscal",
"value": "",
"Type": "string"
},
{
"Length": 50,
"id": "DeliveryDistrict",
"Description": "Bairro de Entrega do Documento de Carga/Nota Fiscal",
"value": "",
"Type": "string"
},
{
"Length": 7,
"id": "CityCodeDelivery",
"Description": "Cidade de Entrega do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 8,
"id": "ZipCodeDelivery",
"Description": "CEP de Entrega do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 13.5,
"id": "Unitizador",
"Description": "Quantidade de Unitizadores",
"value": 1,
"Type": "double"
}
],
"id": "1"
}
]
}
]
}
]
} |
Arquivo JSON de entrada mínimo para simulação para ser utilizado como base.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Manifest": [
],
"id": "1",
"ItemsDocumentBurden": [
{
"Items": [
{
"id": "Weight",
"value": 20
}
],
"id": "1"
}
],
"Route": [
{
"Items": [
],
"id": "1"
}
],
"DocumentBurden": [
{
"Items": [
{
"id": "SenderCode",
"value": "000000001"
},
{
"id": "CostumerCode",
"value": "000000003"
}
],
"id": "1"
}
]
}
]
}
]
} |
Arquivo JSON exemplo da saída simplificada com cálculo executado com sucesso.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"FreightCalculation": [
{
"SimulationNumber": "000001",
"Items": [
{
"id": "CarrierCode",
"Description": "Código do Transportador da rota calculada",
"value": "000000002 ",
"length": 14,
"type": "string"
},
{
"id": "CarrierCnpj",
"Description": "CNPJ do Transportador da rota calculada",
"value": "48411553000163 ",
"length": 21,
"type": "string"
},
{
"id": "CarrierName",
"Description": "Nome do Transportador da rota calculada",
"value": "TRANSP JOINVILLE ",
"length": 80,
"type": "string"
},
{
"id": "RouteCode",
"Description": "Código da rota utilizada para o cálculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descrição da rota utilizada para o cálculo",
"value": "País - 105 - BRASIL , UF - MG | País - 105 - BRASIL , UF - SC",
"length": 150,
"type": "string"
},
{
"id": "TypeCapacity",
"Description": "Tipo Lotação da Tabela de Frete. (1=Carga Fracionada 2=Carga Fechada 3=Veículo Dedicado)",
"value": "Carga Fracionada",
"length": 16,
"type": "string"
},
{
"id": "CostFreight",
"Description": "Valor total do Frete",
"value": 303,
"length": 11.2,
"type": "double"
},
{
"id": "Tax",
"Description": "Valor do imposto",
"value": 30.3,
"length": 11.2,
"type": "double"
},
{
"id": "DeliveryTime",
"Description": "Prazo de Entrega no formato YYYY-MM-DDThh:mm:ss",
"value": "0000-00-00T00:00:00",
"length": "19",
"type": "string"
}
]
},
{
"SimulationNumber": "000002",
"Items": [
{
"id": "CarrierCode",
"Description": "Código do Transportador da rota calculada",
"value": "000200001 ",
"length": 14,
"type": "string"
},
{
"id": "CarrierCnpj",
"Description": "CNPJ do Transportador da rota calculada",
"value": "29801143000184 ",
"length": 21,
"type": "string"
},
{
"id": "CarrierName",
"Description": "Nome do Transportador da rota calculada",
"value": "TRANSP MG ",
"length": 80,
"type": "string"
},
{
"id": "RouteCode",
"Description": "Código da rota utilizada para o cálculo",
"value": "0001",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descrição da rota utilizada para o cálculo",
"value": "País - 105 - BRASIL , UF - SC | País - 105 - BRASIL , UF - MG",
"length": 150,
"type": "string"
},
{
"id": "TypeCapacity",
"Description": "Tipo Lotação da Tabela de Frete. (1=Carga Fracionada 2=Carga Fechada 3=Veículo Dedicado)",
"value": "Carga Fracionada",
"length": 16,
"type": "string"
},
{
"id": "CostFreight",
"Description": "Valor total do Frete",
"value": 100,
"length": 11.2,
"type": "double"
},
{
"id": "Tax",
"Description": "Valor do imposto",
"value": 10,
"length": 11.2,
"type": "double"
},
{
"id": "DeliveryTime",
"Description": "Prazo de Entrega no formato YYYY-MM-DDThh:mm:ss",
"value": "2017-10-25T16:33:44",
"length": "19",
"type": "string"
}
]
},
{
"SimulationNumber": "000003",
"Items": [
{
"id": "CarrierCode",
"Description": "Código do Transportador da rota calculada",
"value": "000400002 ",
"length": 14,
"type": "string"
},
{
"id": "CarrierCnpj",
"Description": "CNPJ do Transportador da rota calculada",
"value": "87333684814 ",
"length": 21,
"type": "string"
},
{
"id": "CarrierName",
"Description": "Nome do Transportador da rota calculada",
"value": "TRANSP AUTONOMO SP ",
"length": 80,
"type": "string"
},
{
"id": "RouteCode",
"Description": "Código da rota utilizada para o cálculo",
"value": "0001",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descrição da rota utilizada para o cálculo",
"value": "País - 105 - BRASIL , UF - MG | País - 105 - BRASIL , UF - SC",
"length": 150,
"type": "string"
},
{
"id": "TypeCapacity",
"Description": "Tipo Lotação da Tabela de Frete. (1=Carga Fracionada 2=Carga Fechada 3=Veículo Dedicado)",
"value": "Carga Fracionada",
"length": 16,
"type": "string"
},
{
"id": "CostFreight",
"Description": "Valor total do Frete",
"value": 1100,
"length": 11.2,
"type": "double"
},
{
"id": "Tax",
"Description": "Valor do imposto",
"value": 0,
"length": 11.2,
"type": "double"
},
{
"id": "DeliveryTime",
"Description": "Prazo de Entrega no formato YYYY-MM-DDThh:mm:ss",
"value": "2017-10-25T16:33:44",
"length": "19",
"type": "string"
}
]
},
{
"SimulationNumber": "000004",
"Items": [
{
"id": "CarrierCode",
"Description": "Código do Transportador da rota calculada",
"value": "36265337432 ",
"length": 14,
"type": "string"
},
{
"id": "CarrierCnpj",
"Description": "CNPJ do Transportador da rota calculada",
"value": "36265337432 ",
"length": 21,
"type": "string"
},
{
"id": "CarrierName",
"Description": "Nome do Transportador da rota calculada",
"value": "TRANSP INT CNPJ ",
"length": 80,
"type": "string"
},
{
"id": "RouteCode",
"Description": "Código da rota utilizada para o cálculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descrição da rota utilizada para o cálculo",
"value": "País - 105 - BRASIL , UF - SC | País - 105 - BRASIL , UF - MG",
"length": 150,
"type": "string"
},
{
"id": "TypeCapacity",
"Description": "Tipo Lotação da Tabela de Frete. (1=Carga Fracionada 2=Carga Fechada 3=Veículo Dedicado)",
"value": "Carga Fracionada",
"length": 16,
"type": "string"
},
{
"id": "CostFreight",
"Description": "Valor total do Frete",
"value": 210,
"length": 11.2,
"type": "double"
},
{
"id": "Tax",
"Description": "Valor do imposto",
"value": 0,
"length": 11.2,
"type": "double"
},
{
"id": "DeliveryTime",
"Description": "Prazo de Entrega no formato YYYY-MM-DDThh:mm:ss",
"value": "2017-10-25T16:33:44",
"length": "19",
"type": "string"
}
]
},
{
"SimulationNumber": "000005",
"Items": [
{
"id": "CarrierCode",
"Description": "Código do Transportador da rota calculada",
"value": "7752 ",
"length": 14,
"type": "string"
},
{
"id": "CarrierCnpj",
"Description": "CNPJ do Transportador da rota calculada",
"value": "07528127000127 ",
"length": 21,
"type": "string"
},
{
"id": "CarrierName",
"Description": "Nome do Transportador da rota calculada",
"value": "BENEDETTI & BENEDETTI TRANSPS E LOGISTI ",
"length": 80,
"type": "string"
},
{
"id": "RouteCode",
"Description": "Código da rota utilizada para o cálculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descrição da rota utilizada para o cálculo",
"value": "Cidade - 4242091 - JOINVILLE | Cidade - 3131062 - BELO HORIZONTE",
"length": 150,
"type": "string"
},
{
"id": "TypeCapacity",
"Description": "Tipo Lotação da Tabela de Frete. (1=Carga Fracionada 2=Carga Fechada 3=Veículo Dedicado)",
"value": "Carga Fracionada",
"length": 16,
"type": "string"
},
{
"id": "CostFreight",
"Description": "Valor total do Frete",
"value": 1200,
"length": 11.2,
"type": "double"
},
{
"id": "Tax",
"Description": "Valor do imposto",
"value": 120,
"length": 11.2,
"type": "double"
},
{
"id": "DeliveryTime",
"Description": "Prazo de Entrega no formato YYYY-MM-DDThh:mm:ss",
"value": "0000-00-00T00:00:00",
"length": "19",
"type": "string"
}
]
},
{
"SimulationNumber": "000006",
"Items": [
{
"id": "CarrierCode",
"Description": "Código do Transportador da rota calculada",
"value": "843770001 ",
"length": 14,
"type": "string"
},
{
"id": "CarrierCnpj",
"Description": "CNPJ do Transportador da rota calculada",
"value": "56062926000166 ",
"length": 21,
"type": "string"
},
{
"id": "CarrierName",
"Description": "Nome do Transportador da rota calculada",
"value": "TRANSP 1 DOC CARGA POR ROMANEIO JLLE ",
"length": 80,
"type": "string"
},
{
"id": "RouteCode",
"Description": "Código da rota utilizada para o cálculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descrição da rota utilizada para o cálculo",
"value": "País - 105 - BRASIL , UF - SC | País - 105 - BRASIL , UF - MG",
"length": 150,
"type": "string"
},
{
"id": "TypeCapacity",
"Description": "Tipo Lotação da Tabela de Frete. (1=Carga Fracionada 2=Carga Fechada 3=Veículo Dedicado)",
"value": "Carga Fracionada",
"length": 16,
"type": "string"
},
{
"id": "CostFreight",
"Description": "Valor total do Frete",
"value": 257,
"length": 11.2,
"type": "double"
},
{
"id": "Tax",
"Description": "Valor do imposto",
"value": 0,
"length": 11.2,
"type": "double"
},
{
"id": "DeliveryTime",
"Description": "Prazo de Entrega no formato YYYY-MM-DDThh:mm:ss",
"value": "2017-10-25T16:33:44",
"length": "19",
"type": "string"
}
]
}
],
"Status": "ok",
"Message": "FreightSimulations: Simulação realizada com sucesso."
}
]
}
]
} |
Arquivo JSON exemplo de simulação de frete não realizada.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Status": "error",
"Message": "\\LOG_GFE\\CalculoFrete_T1D MG 01 _20171012_090541_286.LOG",
"Error": "O cálculo de frete não pode ser realizado, demais informações podem ser visualizadas no arquivo de LOG de cálculo, quando parametrizado para gerar".
}
]
}
]
} |
Arquivo JSON exemplo de validação do Código do Transportador (CarrierCode).
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Status": "error",
"Message": "Campo CarrierCode. Código do Transportador (0000000029 ) não encontrado na base de dados, verifique o cadastro de Emitentes se este código existe. ",
"Error": "O cálculo de frete não pode ser realizado, demais informações podem ser visualizadas no arquivo de LOG de cálculo, quando parametrizado para gerar".
}
]
}
]
} |
Arquivo JSON exemplo de validação do Tipo de Veículo (TypeOfVehicle).
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Status": "error",
"Message": "Campo TypeOfVehicle. Tipo de Veículo (zzzzz ) não encontrado na base de dados, verifique se este código existe no cadastro de Tipo de Veículo. ",
"Error": "O cálculo de frete não pode ser realizado, demais informações podem ser visualizadas no arquivo de LOG de cálculo quando parametrizado para gerar"
}
]
}
]
} |
Arquivo JSON exemplo de validação do Classificação de Frete (FreightClassification).
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Status": "error",
"Message": "Campo FreightClassification. Classificação de Frete (1234) não encontrado na base de dados, verifique se este código existe no cadastro de Classificação de Frete. ",
"Error": "O cálculo de frete não pode ser realizado, demais informações podem ser visualizadas no arquivo de LOG de cálculo quando parametrizado para gerar"
}
]
}
]
} |
Arquivo JSON exemplo de validação do Tipo de Operação (OperationType).
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Status": "error",
"Message": "Campo OperationType. Tipo de Operação (1111 ) não encontrado na base de dados, verifique se este código existe no cadastro de Tipo de Operação. ",
"Error": "O cálculo de frete não pode ser realizado, demais informações podem ser visualizadas no arquivo de LOG de cálculo quando parametrizado para gerar"
}
]
}
]
} |
Detalhamento dos Agrupadores e Tags de Entrada
Detalhamento dos Agrupadores e Tags de Saída
Detalhamento técnico da estrutura do arquivo
Estrutura do arquivo de entrada.
Estrutura do arquivo da simulação realizada.
Estrutura do arquivo de simulação não realizada.