Histórico da Página
Introdução
draw.io Diagram | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Sistemas Envolvidos
TOTVS Otimização Logística / TOTVS Roteirização e Entrega
Sistema Externo: ERPs que se conectam ou pretendem se conectar com TOL/TRE
Integração
Escopo
Pré-requisitos instalação/implantação/utilização
Versões mínimas
TOL: 6.4.0
Protheus: ?
Datasul: ?
Esta integração não demanda instalações ou atualizações adicionais.
Layout de Requisição
createOrders/updateOrders/deleteOrders: Integração SOAP, Síncrona | |||||
---|---|---|---|---|---|
Nome | Tipo | Obrigatório | Tamanho | Descrição | Observações |
regionSourceId | String | Sim | 30 | Identificador da regional; | Deve ser uma regional válida; |
identifier (order) | String | Sim | 30 | ID do pedido de transporte; | O ID do pedido de transporte deve ser único por embarcador; |
code | String | Sim | 255 | Código do pedido de transporte ("descrição" do pedido de transporte); | Não existe no TRE (R2); |
shipperId | String | Sim | 255 | ID do embarcador; | Não existe no TRE (R2); Este campo deve ser de um embarcador válido; |
orderTypeSourceId | String | Sim | 30 | Código do tipo do pedido; | Este campo deve ser o sourceId de um tipo de pedido válido; |
orderSubTypeSourceId | String | Não | 30 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize uma classificação de pedido. |
priority | Inteiro | Sim | 2 | Prioridade do pedido de transporte; | Não existe no TRE (R2); Este campo deve ser um número entre 0 e 10; quanto maior o número, maior a prioridade; |
pickupStart | Data/hora (string) | Sim | 29 | Data/hora de início da janela de embarque; | pickupStart deve ser sempre menor que deliveryEnd; pickupStart deve ser sempre menor que pickupEnd (quando este for informado); Quando não existir horário no sistema externo sempre enviar 00:01 inicio do dia; |
pickupEnd | Data/hora (string) | Não | 29 | Data/hora de término da janela de embarque; | pickupEnd (quando este for informado) deve ser sempre menor ou iguala deliveryEnd; |
deliveryStart | Data/hora (string) | Não | 29 | Data/hora de início da janela de entrega; | deliveryStart (quando este for informado) deve ser sempre menor ou iguala deliveryEnd; Quando não existir horário no sistema externo sempre enviar 23:59 final do dia; |
deliveryEnd | Data/hora (string) | Sim | 29 | Data/hora de término da janela de entrega; | |
billingLimit | Data/hora (string) | Não | 29 | Data/hora limite para faturamento; | Não existe no TRE (R2); |
destinationId | String | Sim | 30 | ID da localidade de destino do pedido de transporte (endereço principal de entrega); | A localidade informada deve ter o papel logístico de "destino" ou "ambos" (não pode ser apenas "origem"); se o endereço de entrega que deve ser considerado é o alternativo, pode-se enviar um código "dummy" neste campo (isto se aplica apenas à operação de criação de pedidos de transporte); |
addressCountryAcronym | String | Não | 2 | Sigla do país do pedido de transporte (endereço alternativo de entrega); | Deve ser uma sigla válida; se o CEP não for informado, este campo é obrigatório; |
addressStateAcronym | String | Não | 2 | Sigla do estado do pedido de transporte (endereço alternativo de entrega); | Deve ser uma sigla válida; se o CEP não for informado, este campo é obrigatório; |
addressCity | String | Não | 50 | Cidade do pedido de transporte (endereço alternativo de entrega); | Se o CEP não for informado, este campo é obrigatório; |
addressDistrict | String | Não | 50 | Bairro do pedido de transporte (endereço alternativo de entrega); | |
addressStreet | String | Não | 200 | Endereço do pedido de transporte (endereço alternativo de entrega); | |
addressNumber | String | Não | 30 | Número do endereço do pedido de transporte (endereço alternativo de entrega); | |
addressComplement | String | Não | 30 | Complemento do endereço do pedido de transporte (endereço alternativo de entrega); | |
addressZipCode | String | Não | 10 | CEP do endereço do pedido de transporte (endereço alternativo de entrega); | O valor não pode ser inválido; se o estado e a cidade não forem informados, este campo é obrigatório; |
addressLatitude | Float | Não | 13 | Latitude do pedido de transporte (endereço alternativo de entrega); | Se este campo for fornecido, a longitude da localidade também deve ser fornecida; o valor deste campo deve estar no intervalo -90,0 a 90,0; Observações:- O TOL/TRE pode ser configurado para permitir a geocodificação automática das localidades na integração; se este comportamento estiver habilitado, as geo-coordenadas serão obtidas automaticamente via um serviço GIS durante o próprio processo de aquisição; |
addressLongitude | Float | Não | 13 | Longitude do pedido de transporte (endereço alternativo de entrega); | Se este campo for fornecido, a latitude da localidade também deve ser fornecida; o valor deste campo deve estar no intervalo -180,0 a 180,0; Observações:- O TOL/TRE pode ser configurado para permitir a geo-codificação automática das localidades na integração; se este comportamento estiver habilitado, as geo-coordenadas serão obtidas atuomaticamente via um serviço GIS durante o próprio processo de aquisição; |
integrationDataSource | String | Sim | 30 | ID da origem de dados; | Não existe no TRE (R2); Este campo deve ser de uma origem de dados válida; |
modal | Inteiro | Não | 1 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize uma classificação de pedido. |
passingHubUsageType | String | Não | 10 | Tipo de utilização do hub de passagem; | Não existe no TRE (R2); MANDATORY=Mandatório; OPTIONAL=Opcional; INVALID=Inválido; (este campo é case sensitive e deve vir completamente em maiúsculo) |
possiblePassingHubsIds | Lista <String> | Não | 30 | Lista dos IDs das filiais de localidades que podem ser hubs de passagem; | Não existe no TRE (R2); Este campo deve ter uma lista de IDs de filiais de localidades que são hubs de passagem válidas; |
destinationHubUsageType | String | Não | 10 | Tipo de utilização do hub de destino; | Não existe no TRE (R2); MANDATORY=Mandatório; OPTIONAL=Opcional; INVALID=Inválido; (este campo é case sensitive e deve vir completamente em maiúsculo) |
possibleDestinationHubsIds | Lista <String> | Não | 30 | Lista dos IDs das filiais de localidades que podem ser hubs de destino; | Não existe no TRE (R2); Este campo deve ter uma lista de IDs de filiais de localidades que são hubs de destino válidas; |
allowedVehicleIds | Lista <String> | Não | 255 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Não há alternativa padrão. Cada caso será avaliado individualmente. |
forbiddenVehicleIds | Lista <String> | Não | 255 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Não há alternativa padrão. Cada caso será avaliado individualmente. |
deliveryExclusivity | Booleano | Não | 1 | Flag indicando se o pedido é de entrega exclusiva; | Não existe no TRE (R2); Se um pedido estiver com esta flag marcada, as viagens serão montadas de forma que apenas os pedidos do mesmo cliente deste pedido serão agrupados em uma mesma carga; Exemplo: suponha os seguintes pedidos: |
incoterm | Inteiro | Não | 1 | Incoterm do pedido de transporte; | Não existe no TRE (R2); 0=FOB; 1=CIF; 2=FOBT; 3=OP |
erpCreationDt | Data/hora (string) | Não | 29 | Data de criação do pedido de transporte no sistema externo; | Não existe no TRE (R2); A obrigatoriedade deste campo poderá variar por embarcador (parâmetros do OrderSysParams); |
reference (order) | String | Não | 500 | Campo texto livre; | |
observations | String | Não | 500 | Campo texto livre; | |
auxiliary1 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary2 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary3 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary4 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary5 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary6 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary7 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary8 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary9 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); Como alternativa utilize um atributo de pedido. |
auxiliary10 | String | Não | 500 | Não utilizar. Será removido em versões futuras. | Não existe no TRE (R2); |
classifications | classifications [] | Não | N/A | Elemento de agrupamento de todas as classificações de um pedido; | |
attributes | attributes[] | Não | N/A | Elemento de agrupamento de todas todos os atributos de um pedido; | |
items | orderitem[] | Sim | N/A | Elemento de agrupamento de todos os itenss itens de um pedido; | |
deliveryUnits | deliveryUnit[] | Não | N/A | Elemento de agrupamento de todas os as unidades de entrega de um pedido; | Não existe no TRE (R2); |
Âncora | ||||
---|---|---|---|---|
|
orderitem, tipo de dado utilizado nas integrações do TOL\TRE | |||||
---|---|---|---|---|---|
Nome | Tipo | Obrigatório | Tamanho | Descrição | Observações |
orderId | String | Sim | 30 | ID do pedido de transporte; | Mesmo valor do campo identifier (order); |
sourceId | String | Sim | 30 | ID do item de pedido de transporte; | A lista de itens de pedidos não pode conter sourceIds repetidos; o sourceId irá identificar univocamente o item de um pedido; o sourceId de um item não pode se repetir mesmo entre outros pedidos; |
orderItemClassificationSourceId | String | Não | 30 | Não utilizar. Será removido em versões futuras. | Como alternativa utilize uma classificação de item de pedido. |
productId | String | Sim | 30 | ID do SKU; | Este campo deve ser de um SKU valido; se o parâmetro de palletização no pedido estiver habilitado e a localidade de destino suportar palletização, este SKU deve ter um pallet associado já definido; |
originId | String | Sim | 30 | ID da localidade de origem do item de pedido; | Este campo deve ser de uma localidade válida, deve possuir o papel logístico de "origem" e deve ser distinto da localidade de destino do pedido de transporte (ver campo "destinationId"); |
proportionalityId | String | Não | 255 | Chave de proporcionalidade | Indicador de quais produtos devem ser mantidos em uma mesma proporção dentro de uma carga (exemplo: 1 pote = 1 tampa + 1 envase); Os SKUs que devem ter esta proporcionalidade respeitada precisam ter o mesmo valor neste campo; |
shipmentUnitWrapperCode | String | Sim | 30 | Código do invólucro de unidade de embarque; | Este campo deve ser de um sourceId de invólucro de UE válido e não pode ser um invólucro composto. |
price | Float | Não | 13 | Valor total de unidades de produtos em todas as unidades de embarque deste item; | Cenário 1: Invólucro de embarque é por produto; Este campo será "sobrescrito" pelo respectivo valor cadastrado no produto; Cenário 2: Invólucro de embarque é por item; O valor informado no item será utilizado; |
height | Float | Não | 13 | Altura do invólucro de embarque (unitário); | Cenário 1: Invólucro de embarque é por produto; Cenário 2: Invólucro de embarque é por item; |
length | Float | Não | 13 | Comprimento do invólucro de embarque (unitário); | Cenário 1: Invólucro de embarque é por produto; Cenário 2: Invólucro de embarque é por item; |
width | Float | Não | 13 | Largura do invólucro de embarque (unitário); | Cenário 1: Invólucro de embarque é por produto; Cenário 2: Invólucro de embarque é por item; |
weight | Float | Não | 13 | Peso do invólucro de embarque (unitário); | Cenário 1: Invólucro de embarque é por produto; Cenário 2: Invólucro de embarque é por item; |
volume | Float | Não | 13 | Não utilizar. Será removido em versões futuras. | Não necessário. O sistema calculará o volume automaticamente baseado nas dimensões e no invólucro da unidade de embarque. |
quantity | Float | Sim | 13 | Quantidade total de unidades de produtos em todas as unidades de embarque deste item; | Este campo deve ser maior que zero; se a categoria do invólucro não for do tipo "granel não unitizável", este campo deve ter um valor inteiro; |
quantityInShipmentUnits | Float | Sim | 13 | Quantidade de unidades de embarque; | Este campo deve ser maior que zero; se a categoria do invólucro for do tipo "feixe de tubos", a divisão de "quantity" por este campo não deve deixar resto (i.e., o campo "quantity" deve ser divisivel por este campo); se a categoria do invólucro for do tipo "pallet", e o sistema não estiver habilitado para trabalhar com unidade de embarque (UE) fracionada, este campo deve ter um valor inteiro; |
palletFractionationForbidden | Booleano | Não | 1 | Não utilizar. Será removido em versões futuras. | Como alternativa utilize uma classificação de item de pedido. |
hlwAllow | Booleano | Não | 1 | Flag indicando se o invólucro de embarque pode ser tombado na orientação ACL; | A=Altura; L=Largura; C=Comprimento; ver possíveis orientações de um SKU; um invólucro de embarque não pode ser tombado em todas as suas orientações; |
hwlAllow | Booleano | Não | 1 | Flag indicando se o invólucro de embarque pode ser tombado na orientação ALC; | A=Altura; L=Largura; C=Comprimento; ver possíveis orientações de um SKU; um invólucro de embarque não pode ser tombado em todas as suas orientações; |
lhwAllow | Booleano | Não | 1 | Flag indicando se o invólucro de embarque pode ser tombado na orientação CAL; | A=Altura; L=Largura; C=Comprimento; ver possíveis orientações de um SKU; um invólucro de embarque não pode ser tombado em todas as suas orientações; |
lwhAllow | Booleano | Não | 1 | Flag indicando se o invólucro de embarque pode ser tombado na orientação CLA; | A=Altura; L=Largura; C=Comprimento; ver possíveis orientações de um SKU; um invólucro de embarque não pode ser tombado em todas as suas orientações; |
whlAllow | Booleano | Não | 1 | Flag indicando se o invólucro de embarque pode ser tombado na orientação LAC; | A=Altura; L=Largura; C=Comprimento; ver possíveis orientações de um SKU; um invólucro de embarque não pode ser tombado em todas as suas orientações; |
wlhAllow | Booleano | Não | 1 | Flag indicando se o invólucro de embarque pode ser tombado na orientação LCA; | A=Altura; L=Largura; C=Comprimento; ver possíveis orientações de um SKU; um invólucro de embarque não pode ser tombado em todas as suas orientações; |
MIT | String | Não | 50 | "Merge in Transit"; | Itens de pedido que possuam o mesmo MIT serão transportados na mesma carga; itens de pedido que possuam MITs distintos, poderão ser transportados na mesma carga; esta restrição é aplicada apenas no último trecho da "web" (i.e., quando será feita a entrega efetiva para o cliente); se o DSK for informado, itens de pedido com o mesmo DSK devem ter MITs iguais, que por sua vez precisam ser diferentes de todos os MITs dos outros itens de pedido; |
DSK | String | Não | 50 | Senha de agendamento ("Delivery Schedule Key"); | Itens de pedido que possuam o mesmo DSK serão transportados na mesma carga; itens de pedido que possuam DSKs distintos, serão transportados em cargas distintas; esta restrição é aplicada apenas no último trecho da "web" (i.e., quando será feita a entrega efetiva para o cliente); se o MIT for informado, itens de pedido com o mesmo DSK devem ter MITs iguais, que por sua vez precisam ser diferentes de todos os MITs dos outros itens de pedido; |
reference (order item) | String | Não | 255 | Campo texto livre; | |
classifications | classifications [] | Não | N/A | Elemento de agrupamento de todas as classificações de um item de pedido; | |
attributes | attributes[] | Não | N/A | Elemento de agrupamento de todas todos os atributos de um item de pedido; |
Âncora | ||||
---|---|---|---|---|
|
deliveryUnit, tipo de dado utilizado nas integrações do TOL\TRE | |||||
---|---|---|---|---|---|
Nome | Tipo | Obrigatório | Tamanho | Descrição | Observações |
deliveryUnitShipmentUnitsQuantity | Inteiro | Sim | 10 | Não utilizar. Será removido em versões futuras. | |
shipmentUnitWrapperCode | String | Sim | 30 | Não utilizar. Será removido em versões futuras. | |
orderItems | Lista <String> | Sim | N/A | Não utilizar. Será removido em versões futuras. | Orderitem OrderitemSourceid |
orderItemShipmentUnitsQuantity | Inteiro | Sim | 10 | Não utilizar. Será removido em versões futuras. |
Âncora | ||||
---|---|---|---|---|
|
classifications, tipo de dado utilizado nas integrações do TOL\TRE | |||||
---|---|---|---|---|---|
Nome | Tipo | Obrigatório | Tamanho | Descrição | Observações |
type | string | Sim | 255 | Tipo da classificação da viagem; | |
value | string | Sim | 255 | Valor da classificação da viagem; |
Âncora | ||||
---|---|---|---|---|
|
attributes, tipo de dado utilizado nas integrações do TOL\TRE | |||||
---|---|---|---|---|---|
Nome | Tipo | Obrigatório | Tamanho | Descrição | Observações |
name | string | Sim | 255 | Nome do atributo da viagem; | |
value | string | Sim | 255 | Valor do atributo da viagem; |
Layout de Resposta
ordersResponse, tipo de dado utilizado nas integrações do TOL\TRE | |||||
---|---|---|---|---|---|
Nome | Tipo | Obrigatório | Tamanho | Descrição | Observações |
result | result[] | Sim | N/A | Elemento de agrupamento de todas todos os pedidos | Deverá haver pelo menos 1 localidade nesta lista; |
sucess | Boolean | Sim | 1 | Flag de sucesso ou falha |
Âncora | ||||
---|---|---|---|---|
|
result, tipo de dado utilizado nas integrações do TOL\TRE | |||||
---|---|---|---|---|---|
Nome | Tipo | Obrigatoriedade | Tamanho | Descrição | Observações |
errorCodes | string | Não | 30 | Lista de códigos de erros | |
errorMessage | string | Não | 255 | Mensagens de erros | |
identifier | string | Não | 30 | Identificador da tabela dos erros | |
sucess | Boolean | Sim | 1 | Flag de sucesso ou falha |
Catalogo de mensagens
Âncora catmsg catmsg
Código | Mensagem | Descrição |
Âncora | ||||
---|---|---|---|---|
|
Incoterm
FOB:
- Representam pedidos que serão retirados pelos clientes nas plantas (a responsabilidade pelo frete é do cliente);
- Pedidos FOB nunca são misturados com pedidos CIF em uma mesma viagem;
- Como estes pedidos são retirados pelos clientes nas plantas eles nunca são distribuídos a transportadoras (As viagens destes pedidos nascem com o status "Criada" e não com o status "Distribuída");
CIF:
- Representam pedidos que serão entregues aos clientes pelo próprio Embarcador (a responsabilidade pelo frete é do Embarcador)
- Pedidos CIF nunca são misturados com pedidos FOB em uma mesma viagem;
- Como estes pedidos são entregues pelo Embarcador, eles precisam ser distribuídos a transportadoras que farão a entrega (As viagens destes pedidos nascem com o status "Distribuída" e não com o status "Criada");
FOBT:
- Equivale a um pedido FOB com a diferença de que a transportadora que fará a coleta já é conhecida É feita a vinculação automática da carga com esta transportadora;
- Pedidos FOBT nunca serão misturados com pedidos FOB;
OP:
- Equivale a um pedido CIF;
- Pedidos OP nunca serão misturados com pedidos CIF;
Anexos
Anexos |
---|