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.
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.
- Apos a configuração do Web Service REST, ao executar o appserver via console, será mostrada uma mensagem de 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.
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 dados válidos da base de dados e execute a simulação (Mais abaixo tem explicação de cada campo do arquivo JSON)
Após executar a simulação, será retornado o resultado da simulação 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": "Codigo agrupador/Romaneio",
"value": "01 ",
"Type": "string"
},
{
"Length": 14,
"id": "CarrierCode",
"Description": "Transportador a ser considerado no calculo",
"value": " ",
"Type": "string"
},
{
"Length": 10,
"id": "TypeOfVehicle",
"Description": "Tipo de Veiculo",
"value": " ",
"Type": "string"
},
{
"Length": 4,
"id": "FreightClassification",
"Description": "Classificacao de frete",
"value": " ",
"Type": "string"
},
{
"Length": 10,
"id": "OperationType",
"Description": "Tipo de Operacao",
"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": "Serie do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 16,
"id": "InvoiceNumber",
"Description": "Numero 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": "Codigo do Item do Documento de Carga/Nota Fiscal",
"value": "ItemA ",
"Type": "string"
},
{
"Length": 4,
"id": "FreightClassification",
"Description": "Classificacao 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": "Serie do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 16,
"id": "InvoiceNumber",
"Description": "Numero 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": "Sequencia do Trecho. Serial unico",
"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 veiculo do trecho",
"value": " ",
"Type": "string"
},
{
"Length": 7,
"id": "CityCodeOrigin",
"Description": "Numero 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": "Classificacao de Frete",
"value": " ",
"Type": "string"
},
{
"Length": 10,
"id": "OperationType",
"Description": "Tipo de Operacao",
"value": " ",
"Type": "string"
}
],
"id": "1"
}
],
"DocumentBurden": [
{
"Items": [
{
"Length": 8,
"id": "ManifestNumber",
"Description": "Codigo 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": "Serie do Documento de Carga/Nota Fiscal",
"value": " ",
"Type": "string"
},
{
"Length": 16,
"id": "InvoiceNumber",
"Description": "Numero 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": "Endereco 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 exemplo da saída simplificada com cálculo executado com sucesso
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"FreightCalculation": [
{
"SimulationNumber": "000001",
"Items": [
{
"id": "CarrierCode",
"Description": "Codigo 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": "Codigo da rota utilizada para o calculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descricao da rota utilizada para o calculo",
"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=Veiculo 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": "Codigo 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": "Codigo da rota utilizada para o calculo",
"value": "0001",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descricao da rota utilizada para o calculo",
"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=Veiculo 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": "Codigo 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": "Codigo da rota utilizada para o calculo",
"value": "0001",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descricao da rota utilizada para o calculo",
"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=Veiculo 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": "Codigo 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": "Codigo da rota utilizada para o calculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descricao da rota utilizada para o calculo",
"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=Veiculo 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": "Codigo 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": "Codigo da rota utilizada para o calculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descricao da rota utilizada para o calculo",
"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=Veiculo 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": "Codigo 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": "Codigo da rota utilizada para o calculo",
"value": "0002",
"length": 4,
"type": "string"
},
{
"id": "RouteName",
"Description": "Descricao da rota utilizada para o calculo",
"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=Veiculo 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: Simulacao realizada com sucesso."
}
]
}
]
} |
Arquivo JSON exemplo de erro na simulação de frete
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"content": [
{
"Items": [
{
"Status": "error",
"Message": "\\LOG_GFE\\CalculoFrete_T1D MG 01 _20171012_090541_286.LOG",
"Error": "O calculo de frete nao pode ser realizado, demais informacoes podem ser visualizadas no arquivo de LOG de calculo quando parametrizado para gerar"
}
]
}
]
} |
Arquivo JSON exemplo de validação de dados informados
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 calculo de frete nao pode ser realizado, demais informacoes podem ser visualizadas no arquivo de LOG de calculo quando parametrizado para gerar"
}
]
}
]
} |
Documento de Referência: | Para mais informações sobre a Simulação de Frete - FreightSimulations - API REST, consulte o documento de referência |