Árvore de páginas

Versões comparadas

Chave

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

Introdução


Sistemas Envolvidos

Integração

  • Formato Excel e JSON, para maiores detalhes consulte os Exemplos.

Escopo

  • Integração via front end, compostas pela chamada e pelo retorno, nestas, receberemos uma lista pedidos e, quando possível, retornaremos viagens via importação e exportação de arquivos;

Pré-requisitos instalação/implantação/utilização

  • Para clientes Protheus versão xxxxxx;
  • Para clientes Datasul versão xxxxxx;
  • Para todos os clientes, contratação do trial via TOTVS Store.

Layout de Requisição

TPRRoutingTexto de acordo com formato indicado.

TPR

Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos

dateCallDate TimeSimData da criação da chamada no sistema externo.Formato ISO8601.2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD
systemStringNão4096Identificador do sistema que fez a chamada.Texto Livre.Protheus
versionStringNão4096Versão do sistema externo.Texto Livre.12.36.1
qualifiersObjectNão4096String chave valor.Formato JSON.{"Usuário": "Pedro de Alcântara", "Perfil": "Analista"}
callbackURLStringSim4096URL de Callback.Início com "https://".
callbackAuthenticationTypeStringSim4096Tipos de autenticação: BASIC, NONEOpções: BASIC, NONE.NONE
callbackAuthenticationValueStringNão4096

Texto Livre.QWxhZGRpbjpvcGVuIHNlc2FtZQ==
ordersTPRRoutingOrders[]Sim
Lista de pedidos a serem roteirizados.
Tabela abaixo
vehicleslocalitiesTPRRoutingVehiclesTPRLocality[]SimLista de veículos disponíveis para a roteirização.Tabela abaixorestrictionsTRPRoutingRestrictionsSimRestrições de roteirização.Tabela abaixooptionsTPRRoutingOptionsSimOpções de roteirização.Tabela abaixo
Localidades dos pedido-Tabela abaixo

Âncora
TPROrders
TPROrders

TPROrders
ÂncoraTPRRoutingOrdersTPRRoutingOrders
TPRRoutingOrders, tipo de dado utilizado nas integrações do TPRFront-End
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador do pedido

Texto livre, deve se único dentro da chamada.

"Entrega Carrefour"

"PED00133"

weightDoubleNã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
volumeDoubleNã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
pickupTimeWindowStartDate TimeSim
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"
pickupTimeWindowEndDate TimeNão
Final da janela de carregamentoFormato ISO8601."2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
deliveryTimeWindowStartDate TimeNão
Início da janela de entrega

Formato ISO8601.

"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
deliveryTimeWindowEndDate TimeSim
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"
serviceLoadDurationLongNã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]
serviceUnloadDurationLongNã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]
originTPRRoutingLocalityStringSim
Localidade Identificador da localidade de origem do pedido.-Tabela abaixo
destinationTPRRoutingLocalityStringSim
Localidade Identificador da localidade de destino do pedido-Tabela abaixo

Âncora
TPRRoutingLocalityTPRLocalityTPRRoutingLocality
TPRLocality

TPRRoutingLocalityTPRLocality, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador da localidade.Texto livre, deve se único dentro da chamada."Carrefour Vila Mariana"countryStringSim3País do endereço.Fomato ISO 3166-1 alfa-3."BRA"latitudeDoubleSimLatitude.Intervalo [-90; 90].-23.6114291longitudeDoubleSimLongitude.Intervalo [-180; 180].-46.6946795
operationStringSim
Funcionamento simplificado.

Opções:

UNRESTRICTED  (00:00-23:59 de Dom-Sab)
BUSINESS_DAYS (08:00-17:59 de Seg-Sex)
MORNING (08:00-11:59 de Seg-Sex)
AFTERNOON (14:00-17:59 de Seg-Sex)
BUSINESS_DAYS
addressTRPAddressSim-Endereço da localidade-Tabela abaixo

Âncora
TPRRoutingVehiclesTPRAdressTPRRoutingVehicles
TPRAdress

TPRRoutingVehicles
TPRLocality, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador
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
da localidade.Texto livre, deve se único dentro da chamada."
Truck
Carrefour Vila Mariana"
"Carreta"
country
weightCapacity
String
Double
Sim
Capacidade do veículo em quilos.

Se preenchido, deve ser maior ou igual a zero.
Validado de acordo com o campo "capacityCriteria".

25000volumeCapacityDoubleSimCapacidade do veículo em metros cúbicos.Se preenchido, deve ser maior ou igual a zero.
Validado de acordo com o campo "capacityCriteria".5000speedDoubleNãoDefine a velocidade que dos veículos em uma roteirização.

Se preenchido, deve ser maior que zero. 

Senão, utilizaremos 30 km/h.

quantityIntNãoQuantidade 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.

ÂncoraTRPRoutingRestrictionsTRPRoutingRestrictionsTPRRoutingRestrictions, tipo de dado utilizado nas integrações do TPRCampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplosmaxLoadingStopsIntNã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.

1maxUnloadingStopsIntNãoQuantidade 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.

15allowInterleavingBooleanNãoPermite carregamento após descarregamento na mesma viagem. Default: false

Tabela para validação de campos Boolean.

maxDistanceBetweenLoadStopsDoubleNãoMáxima distância, em km, entre paradas de carregamento.Se preenchido, deve ser maior que zero.100maxDistanceBetweenUnloadStopsDoubleNãoMáxima distância, em km, entre paradas de descarregamento.Se preenchido, deve ser maior que zero.100 ÂncoraTPRRoutingOptionsTPRRoutingOptionsTPRRoutingOptions, tipo de dado utilizado nas integrações do TPRCampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemploscapacityCriteriaStringSim4096Tipos de roteirização: WEIGHT, VOLUME ou BOTHOpções: WEIGHT, VOLUME ou BOTH."WEIGHT"routingInstantTypeStringNão4096Define 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"considerReturnDistanceBooleanNã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".

minServiceDurationLongNã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.
Valor padrão: 30m

Se preenchido, não pode ser negativo, em Milissegundos.

3600000 [ms]maxServiceDurationLongNã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.
Valor padrão: 8h

Se preenchido, não pode ser negativo, em Milissegundos.

3600000 [ms]driverRestTimesStringNãoDescanso do motoristaOpções: Default"Default"tollCalculationBooleanNãoCalculo do pedágio

Tabela para validação de campos Bolean.

Se não informado assumiremos "False".

ÂncoraTPRRoutingResponseTPRRoutingResponse

Layout de Resposta

TPRRoutingResponse, tipo de dado utilizado nas integrações do TPRCampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplosresponseDateDate TimeSimData do envio da resposta no TPR.-2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZDversionStringSim4096Versão do TPR que executou a resposta.-0.0.0.1successBooleanSimTrue se sucesso, false se falha.Se uma única validação falhar, todo o pacote falha.TruemessageTPRMessage[]SimLista de mensagens a serem exibidas pelo sistema externo para o usuário.- ÂncoraTPRMessage TPRMessage

TPRMessage: Tipo de dado utilizado nas integrações do TPR

CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplosmessageCodeStringSim4096Código de identificação da mensagem.Código existente e válido.TPR0001messageStringSim4096Mensagem escrita.Texto Livre."Para finalizar o cadastro, acesse seu e-mail e valide o Token" ÂncoraTRPFrota_IdealTRPFrota_Ideal

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: 
3País do endereço.Fomato ISO 3166-1 alfa-3."BRA"
latitudeDoubleSim
Latitude.Intervalo [-90; 90].-23.6114291
longitudeDoubleSim
Longitude.Intervalo [-180; 180].-46.6946795

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 Truckso 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;

Âncoraboolean_tabboolean_tab

Tabela de Boolean:

Valor Assumido

Valor recebido

True

"true"

true12-1-2""False

false

0"false"null

Anexos

Anexos
oldfalse