TPRRouting | ||||||
---|---|---|---|---|---|---|
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
dateCall | Date Time | Sim | Data da criação da chamada no sistema externo. | Formato ISO8601. | 2021-01-21T10:01:00.0-03:00 YYYY-MM-DDThh:mm:ss.sTZD | |
system | String | Não | 4096 | Identificador do sistema que fez a chamada. | Texto Livre. | Protheus |
version | String | Não | 4096 | Versão do sistema externo. | Texto Livre. | 12.36.1 |
qualifiers | Object | Não | 4096 | String chave valor. | Formato JSON. | {"Usuário": "Pedro de Alcântara", "Perfil": "Analista"} |
callbackURL | String | Sim | 4096 | URL de Callback. | Início com "https://". | |
callbackAuthenticationType | String | Sim | 4096 | Tipos de autenticação: BASIC, NONE | Opções: BASIC, NONE. | NONE |
callbackAuthenticationValue | String | Não | 4096 | Texto de acordo com formato indicado. | Texto Livre. | QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
orders | TPRRoutingOrders[] | Sim | Lista de pedidos a serem roteirizados. | Tabela abaixo | ||
vehicles | TPRRoutingVehicles[] | Sim | Lista de veículos disponíveis para a roteirização. | Tabela abaixo | ||
restrictions | TRPRoutingRestrictions | Sim | Restrições de roteirização. | Tabela abaixo | ||
options | TPRRoutingOptions | Sim | Opções de roteirização. | Tabela abaixo |
Âncora | ||||
---|---|---|---|---|
|
TPRRoutingOrders, tipo de dado utilizado nas integrações do TPR | ||||||
---|---|---|---|---|---|---|
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
identifier | String | Sim | 4096 | Identificador do pedido | Texto livre, deve se único dentro da chamada. | "Entrega Carrefour" "PED00133" |
weight | Double | Não | Peso total os itens do pedido em quilos | Se preenchido, deve ser maior ou igual a zero; Validado de acordo com o campo "capacityCriteria"; Se não existirem veículos que suportem este pedido sozinho na disponibilidade, ele será rejeitado. | 25000 | |
volume | Double | Não | Volume total dos itens do pedido em metros cúbicos | Se preenchido, deve ser maior ou igual a zero; Validado de acordo com o campo "capacityCriteria"; Se não existirem veículos que suportem este pedido sozinho na disponibilidade, ele será rejeitado. | 5000 | |
pickupTimeWindowStart | Date Time | Sim | Início da janela de carregamento | Formato ISO8601; PickupStart deve ser anterior a PickupEnd, se ambos forem preenchidos; PickupStart deve ser anterior ou igual a DeliveryStart , se ambos forem preenchidos; PickupStart deve ser anterior a DeliveryEnd e ambos devem ser preenchidos. | "2021-01-21T10:01:00.0-03:00 YYYY-MM-DDThh:mm:ss.sTZD" | |
pickupTimeWindowEnd | Date Time | Não | Final da janela de carregamento | Formato ISO8601. | "2021-01-21T10:01:00.0-03:00 YYYY-MM-DDThh:mm:ss.sTZD" | |
deliveryTimeWindowStart | Date Time | Não | Início da janela de entrega | Formato ISO8601. | "2021-01-21T10:01:00.0-03:00 YYYY-MM-DDThh:mm:ss.sTZD" | |
deliveryTimeWindowEnd | Date Time | Sim | Final da janela de entrega | Formato ISO8601; DeliveryEnd deve vir posterior de DeliveryStart se ambos forem preenchidos; DeliveryEnd deve vir posterior ou igual de PickupEnd se ambos forem preenchidos; DeliveryEnd deve vir posterior de PickupStart e ambos devem ser preenchidos. | "2021-01-21T10:01:00.0-03:00 YYYY-MM-DDThh:mm:ss.sTZD" | |
serviceLoadDuration | Long | Não | Se não informado, ou menor que 30 minutos serão considerados 30 minutos de serviço; Se a soma do serviço for maior que 8 horas serão consideradas 8 horas de serviço; | Se preenchido, deve ser maior que zero, em Milissegundos. | 3600000 [ms] | |
serviceUnloadDuration | Long | Não | Se não informado, ou menor que 30 minutos serão considerados 30 minutos de serviço; Se a soma do serviço for maior que 8 horas serão consideradas 8 horas de serviço; | Se preenchido, deve ser maior que zero, em Milissegundos. | 3600000 [ms] | |
origin | TPRRoutingLocality | Sim | Localidade de origem do pedido | - | Tabela abaixo | |
destination | TPRRoutingLocality | Sim | Localidade de destino do pedido | - | Tabela abaixo |
Âncora | ||||
---|---|---|---|---|
|
TPRRoutingLocality, tipo de dado utilizado nas integrações do TPR | ||||||
---|---|---|---|---|---|---|
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
identifier | String | Sim | 4096 | Identificador da localidade. | Texto livre, deve se único dentro da chamada. | "Carrefour Vila Mariana" |
country | String | Sim | 3 | País do endereço. | Fomato ISO 3166-1 alfa-3. | "BRA" |
latitude | Double | Sim | Latitude. | Intervalo [-90; 90]. | -23.6114291 | |
longitude | Double | Sim | Longitude. | Intervalo [-180; 180]. | -46.6946795 | |
operation | String | Sim | Funcionamento simplificado. | Opções: UNRESTRICTED (00:00-23:59 de Dom-Sab) | BUSINESS_DAYS |
Âncora | ||||
---|---|---|---|---|
|
TPRRoutingVehicles, tipo de dado utilizado nas integrações do TPR | ||||||
---|---|---|---|---|---|---|
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
identifier | String | Sim | 4096 | Identificador do tipo do veículo; Quando a disponibilidade for insuficiente, podemos retornar novas instâncias deste veículo marcados como viagem extra; Sempre será escolhido para as viagens extras os veículos que minimizem o número de viagens. | Texto livre, deve se único dentro da chamada. | "Truck" "Carreta" |
weightCapacity | Double | Sim | Capacidade do veículo em quilos. | Se preenchido, deve ser maior ou igual a zero. | 25000 | |
volumeCapacity | Double | Sim | Capacidade do veículo em metros cúbicos. | Se preenchido, deve ser maior ou igual a zero. Validado de acordo com o campo "capacityCriteria". | 5000 | |
speed | Double | Não | Define a velocidade que dos veículos em uma roteirização. | Se preenchido, deve ser maior que zero. Senão, utilizaremos 30 km/h. | ||
quantity | Int | Não | Quantidade de veículos, semelhantes a este, disponíveis. | Zerado, nulo ou omitido para os cenários de "Frota Ideal". Se passados valores quebrados apenas a parte inteira será considerada. |
Âncora | ||||
---|---|---|---|---|
|
TPRRoutingRestrictions, tipo de dado utilizado nas integrações do TPR | ||||||
---|---|---|---|---|---|---|
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
maxLoadingStops | Int | Não | Quantidade máxima de paradas de carregamento por viagem. | Se preenchido, deve ser maior que zero; Se passados valores quebrados apenas a parte inteira será considerada. | 1 | |
maxUnloadingStops | Int | Não | Quantidade máxima de paradas de descarregamento por viagem. | Se preenchido, deve ser maior que zero. Se passados valores quebrados apenas a parte inteira será considerada. | 15 | |
allowInterleaving | Boolean | Não | Permite carregamento após descarregamento na mesma viagem. Default: false | Tabela para validação de campos Boolean. | ||
maxDistanceBetweenLoadStops | Double | Não | Máxima distância, em km, entre paradas de carregamento. | Se preenchido, deve ser maior que zero. | 100 | |
maxDistanceBetweenUnloadStops | Double | Não | Máxima distância, em km, entre paradas de descarregamento. | Se preenchido, deve ser maior que zero. | 100 |
Âncora | ||||
---|---|---|---|---|
|
TPRRoutingOptions, tipo de dado utilizado nas integrações do TPR | ||||||
---|---|---|---|---|---|---|
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
capacityCriteria | String | Sim | 4096 | Tipos de roteirização: WEIGHT, VOLUME ou BOTH | Opções: WEIGHT, VOLUME ou BOTH. | "WEIGHT" |
routingInstantType | String | Não | 4096 | Define o instante em que as viagens podem ser expedidas. Valor default D+1 "Now" considera a saída como hora do servidor no momento da roteirização + 1 hora "D+1" Primeiro horário factível na origem de acordo com o funcionamento da mesma. | Valores: "D+1", "NOW". | "NOW" |
considerReturnDistance | Boolean | Não | Verifica se é para contabilizar a distância de retorno a origem na roteirização. | Tabela para validação de campos Bolean. Se não informado assumiremos "False". | ||
minServiceDuration | Long | Não | O montante mínimo do tempo de serviço. Caso a soma dos tempos de carregamento e descarregamento não ultrapassem o valor mínimo, este será utilizado. | Se preenchido, não pode ser negativo, em Milissegundos. | 3600000 [ms] | |
maxServiceDuration | Long | Não | O montante máximo do tempo de serviço. Caso a soma dos tempos de carregamento e descarregamento ultrapassem o valor máximo, este será utilizado. | Se preenchido, não pode ser negativo, em Milissegundos. | 3600000 [ms] | |
driverRestTimes | String | Não | Descanso do motorista | Opções: Default | "Default" | |
tollCalculation | Boolean | Não | Calculo do pedágio | Tabela para validação de campos Bolean. Se não informado assumiremos "False". |
Âncora | ||||
---|---|---|---|---|
|
TPRRoutingResponse, tipo de dado utilizado nas integrações do TPR | ||||||
---|---|---|---|---|---|---|
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
responseDate | Date Time | Sim | Data do envio da resposta no TPR. | - | 2021-01-21T10:01:00.0-03:00 YYYY-MM-DDThh:mm:ss.sTZD | |
version | String | Sim | 4096 | Versão do TPR que executou a resposta. | - | 0.0.0.1 |
success | Boolean | Sim | True se sucesso, false se falha. | Se uma única validação falhar, todo o pacote falha. | True | |
message | TPRMessage[] | Sim | Lista de mensagens a serem exibidas pelo sistema externo para o usuário. | - |
Âncora | ||||
---|---|---|---|---|
|
TPRMessage: Tipo de dado utilizado nas integrações do TPR | ||||||
Campo | Tipo | Obrigatório | Tamanho | Descrição | Validações | Exemplos |
messageCode | String | Sim | 4096 | Código de identificação da mensagem. | Código existente e válido. | TPR0001 |
message | String | Sim | 4096 | Mensagem escrita. | Texto Livre. | "Para finalizar o cadastro, acesse seu e-mail e valide o Token" |
Âncora | ||||
---|---|---|---|---|
|
Frota Ideal: A roteirização com a frota ideal, ocorre quando não limitamos as quantidades disponíveis dos veículos que serão utilizados em uma determinada roteirização, definimos apenas os tipos destes, por exemplo:
Dada uma cesta de pedidos com vinte pedidos de 5.000 kg sem janela de coleta ou entrega e os veículos disponíveis são Carretas com capacidade de 25.000 kg e Trucks com capacidade de 10.000 kg:
Se eu não limito a quantidade disponível de veículos, o sistema roteirizara quatro viagens com Carretas, e esta é a frota ideal para este cenário; |
Se eu limito os veículos disponíveis em duas Carretas e vinte Trucks, o sistema roteirizara sete viagens, duas com Carretas e cinco com Trucks e esta é a melhor frota factível para este cenário, porem não é a frota ideal; |
Âncora | ||||
---|---|---|---|---|
|
Valor Assumido | Valor recebido | ||||||
---|---|---|---|---|---|---|---|
True | "true" | true | 1 | 2 | -1 | -2 | "" |
False | false | 0 | "false" | null |
Anexos | ||
---|---|---|
|