Histórico da Página
Introdução
draw.io Diagram | |
---|---|
|
|
Sistemas Envolvidos
TOTVS Otimização Logística / TOTVS Roteirização e Entrega
Sistema Externo: Todos os ERPs que se conectam ou pretendem se conectar com os produtos de planejamento logístico da TOTVS.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 configurado no CPLválido; | |||||
orderSubTypeSourceId | String | Não | 30 | Não utilizar. Será removido em versões futuras. | ComoNão existe no TRE (R2); Como alternativa utilize uma classificação de pedido. | |||||
priority | InteiroInteger | 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 (stringString) | 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 (stringString) | Não | 29 | Data/hora de término da janela de embarque; | pickupEnd (quando este for informado) deve ser sempremenor sempre menor ou iguala iguala deliveryEnd; | |||||
deliveryStart | Data/hora (stringString) | Não | 29 | Data/hora de início da janela de entrega; | deliveryStart (quando este for informado) deve ser sempre menor ou iguala iguala deliveryEnd; Quando não existir horário no sistema externo sempre enviar 23:59 final do dia; | |||||
deliveryEnd | Data/hora (stringString) | Sim | 29 | Data/hora de término da janela de entrega; | ||||||
billingLimit | Data/hora ( | stringString) | 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; Observação:- É possível configurar na instalação do CPL um tratamento automático para CEPs inválidos enviados na integração;- Há a possibilidade de configurar um CEP padrão no CPL para os casos em que o CEP seja desconhecido; | |||||
addressLatitude | Float | Não | 13 | Latitude do pedido | 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 CPLTOL/TRE pode ser configurado para permitir a geo-codificaçãogeocodificação automática das localidades na integração; se este comportamento estiver habilitado, as geo-coordenadas serão obtidas atuomaticamenteautomaticamente 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 CPLTOL/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; | Este campoNão existe no TRE (R2); Este campo deve ser de uma origem de dados válida; | |||||
modal | InteiroInteger | 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 | há existe no TRE (R2); Não há alternativa padrão. Cada caso será avaliado individualmente. | ||||
deliveryExclusivity | BooleanoBoolean | 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 | InteiroInteger | 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 ( | stringString) | 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 | CPL - 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. | Como alternativaNã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. | ComoNã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 | osas 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 | AlfanuméricoString | Sim | 30 | ID do pedido de transporte; | Mesmo valor do campo identifier (order); | |||||
sourceId | AlfanuméricoString | 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 | AlfanuméricoString | Não | 30 | Não utilizar. Será removido em versões futuras. | Como alternativa utilize uma classificação de item de pedido. | |||||
productId | AlfanuméricoString | 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 | AlfanuméricoString | 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 | AlfanuméricoString | 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 | AlfanuméricoString | Sim | 30 | Código do invólucro de unidade de embarque; | Este campo deve ser de um sourceId de invólucro de UE existente no CPL válido e não pode ser um invólucro composto. | |||||
price | Numérico (float)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 | Numérico (float)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 | Numérico (float)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 | Numérico (float)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 | Numérico (float)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 | Numérico (float)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 | Numérico (float)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 inteiroInteger; | |||||
quantityInShipmentUnits | Numérico (float)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 inteiroInteger; | |||||
palletFractionationForbidden | BooleanoBoolean | Não | 1 | Não utilizar. Será removido em versões futuras. | Como alternativa utilize uma classificação de item de pedido. | |||||
hlwAllow | BooleanoBoolean | 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 | BooleanoBoolean | 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 | BooleanoBoolean | 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 | BooleanoBoolean | 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 | BooleanoBoolean | 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 | BooleanoBoolean | 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 | AlfanuméricoString | 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 | AlfanuméricoString | 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) | Alfanumérico | Não | 255 | Campo texto livre; | 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 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 | Integer | 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 | Integer | 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 | stringString | Sim | 255 | Tipo da classificação da viagem; | |
value | stringString | 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 | stringString | Sim | 255 | Nome do atributo da viagem; | |
value | stringString | 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 | stringString | Não | 30 | Lista de códigos de erros | |
errorMessage | stringString | Não | 255 | Mensagens de erros | |
identifier | stringString | 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 (no workflow do CPL, as 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 (no workflow do CPL, as 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 e o CPL faz É 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 |
---|