Histórico da Página
Integração Datasul X Cockpit Logístico
A integração entre o ERP Datasul e o Cockpit Logístico tem como objetivo automatizar e otimizar a programação e a roteirização das entregas de mercadorias e materiais.
Sistemas Envolvidos
Cockpit Logístico
Sistema vertical desenvolvido pela Neolog, empresa do ecossistema TOTVS, que dispõe de módulos para Planejamento da Malha de Distribuição, Programação de Transportes e Monitoramento de Cargas. A Programação de Transportes gera a roteirização e o arranjo das cargas, com base na demanda de transportes enviada pelo ERP, considerando as configurações das restrições logísticas e as funções-objetivos da otimização. São exemplos de funções-objetivo: máximo aproveitamento e máxima ocupação dos veículos, diminuição da quantidade de viagens e diminuição da despesa de frete total.
ERP Datasul
Sistema de BackOffice para gestão de empresas com ênfase no segmento de Manufatura. Disponibiliza módulos de gestão e controle da distribuição com foco nos requisitos comerciais, fiscais e tributários, entre eles: Pedidos de Venda, Faturamento e Embarques.
Integração
A integração é realizada por intermédio de arquivo XML, utilizando os Web Services disponibilizados pelo Cockpit Logístico, sem transformação de mensagens e sem utilização de sistemas intermediários (TOTVS EAI, TOTVS ESB, etc.).
Escopo (Cadastros)Escopo
Possibilitar a integração dos Cadastros de Transportadores, Locais de Entrega, Itens e Tipos de Carga do Datasul para o Cockpit Logístico da Neolog . (a partir do release 12.1.7)
Possibilitar as integrações dos processos de envio de pedidos de venda, por intermédio das simulações ou embarques-remessa ao Cockpit e gerar os embarques no Datasul com o resultado as viagens planejadas no Cockpit (As integrações dos processos completam a integração entre os sistemas, elas estarão disponíveis a partir do release 12.1.8).
Pré-requisitos instalação/implantação/utilização
Cockpit Logístico na versão\release 5.6.1.
Parâmetros de aquisição ativos (acesso pelo menu em Administração - Integração).
Web Services ativos.
Datasul
Versão\release 12.1.7/12.1.8
Parâmetro de integração via Web Service ativo.
Parâmetros de integração integração com Cockpit Logístico ativo.
Parâmetros de integração de cada cadastro ativo.
Todos os parâmetros citados encontram-se no programa Parâmetros de Integração Cockpit Logístico (CD0090) que pode ser acessado pelo menu Logística - Embarques - Cadastros.
Logix
Não se aplica.
Protheus
Não se aplica.
RM
Não se aplica.
Instalação/Atualização
Vide tópico Pré-requisitos instalação/implantação/utilização.
Datasul
Vide tópico Pré-requisitos instalação/implantação/utilização.
Logix
Não se aplica.
Protheus
Não se aplica.
RM
Não se aplica.
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução das mensagens de integração e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância das marcas e alinhamento com as diretivas definidas pelo Comitê de Integração TOTVS.
Suporte
O suporte aos recursos da Integração será é de responsabilidade de todas as linhas, sendo assim as equipes de suporte dos produtos Cockpit Logístico (Neolog) e Backoffice Datasul (Vendas e CRM) estarão aptas a fazer a primeira análise e quando necessário, repassar para a equipe mais adequada em cada caso.
Observação: Esse modelo de suporte está sendo revisado pela TOTVS.
Transações/Entidades/Mensagens únicas
Método | ID | Descrição | Origem | Destino | Web Service |
Cadastros | 01 | Locais de Entrega | Datasul |
Neolog | LocalityAcquisitionService | ||
02 | Transportadores | Datasul |
Neolog | CarrierAcquisitionService | ||
03 | Itens | Datasul |
Neolog | ProductAcquisitionService | ||
04 | Tipos de Carga | Datasul |
Neolog | VehicleAcquisitionService |
06 | Liberação da Viagem | Neolog | Datasul | ReleasedTripPublishRequestService | |
07 | Desbloqueio da Viagem | Datasul | Neolog | UnblockReleasedTripAcquisitionService | |
08 | Reprogramação e cancelamento da Viagem | Neolog | Datasul | PublishReprogramingService |
Fluxo das Informações
Os cadastros devem ser realizados no Datasul e integrados para o
Fluxo das Informações
Os cadastros devem ser realizados no Datasul e integrados para o Cockpit Logístico, a ativação da integração, no entanto, não impede a inclusão, alteração e exclusão de registros no Cockpit Logístico, mas esse procedimento não é recomendado pois as operações realizadas sobre os cadastros no Cockpit Logísticas Logístico não são replicadas para os respectivos cadastros no Datasul.
Apenas as operações de inclusão e alteração são consideradas na integração e são efetuadas sempre que ocorrerem, mesmo que apenas campos que não são integrados sejam alterados no Datasul. A operação de eliminação sobre os registros de cadastros não é integrada pois não é possível verificar a integridade referencial no sistema de destino para considerá-la como restrição de eliminação dos registros no Datasul.
O sucesso das operações de inclusão e alteração de registros pode ser verificado acessando o programa de consulta no menu do Cockpit Logístico em: Interface - Log. O sistema de origem dos dados não recebe o status do processamento dos registros enviados, por isso considera integrado com base apenas na confirmação de recepção da mensagem de integração.
Os cadastros possuem um programa (CD9190 - Integração Batch Cockpit Logístico) que possibilita a carga/atualização dos registros em lote, ele pode ser acessado pelo menu do Datasul em: Logística - Embarques - Cadastros.
As falhas de comunicação entre os sistemas e o registro das integração que não obtiveram sucesso na transmissão dos dados de cadastros poderão ser consultados pelo programa Parâmetros de Integração Cockpit Logístico (CD0090) que dá acesso aos programas CD0082 (Histórico de Falhas de Conexão) e CD0092 (Reprocessar Integração Cockpit Logístico), responsáveis por listar essas informações, respectivamente. O programa CD0092 (no menu em: Logística - Embarques - Cadastros) também possibilita o reenvio dos registros com falha de transmissão, manualmente ou por intermédio de agendamento RPW (CD0092RP).
Para as ocorrências de falha de comunicação também é possível configurar o envio de aviso eletrônico por intermédio de parâmetros disponíveis no programa CD0090.
Nas ocasiões em que o sistema destino precisar ficar indisponível para integração é possível informar no Datasul que a integração está temporariamente suspensa (CD0090) evitando perda de desempenho com tentativas de transmissão de dados sem sucesso. Nesse caso os registros incluídos ou alterados serão registrados como pendentes de envio na lista de falhas de integração e poderão ser reenviados pelo programa CD0092.
Cadastros
A seguir o diagrama de fluxo de informações relacionando os cadastros integrados entre Datasul e Cockpit Logístico. Após o diagrama serão descritos os detalhes da integração de cada cadastro.
LOCAIS DE ENTREGA DE CLIENTES
Para que a integração do cadastro de Localidades seja realizada é obrigatório marcar os seguintes parâmetros (no menu do Cockpit Logístico em: Administração - Integração):
- Aquisição ligada
- Atualização permite inserir
- Aquisição ativa para localidades
Lista de programas relacionados aos Locais de Entrega de Cliente do Datasul que integram com o Cockpit Logístico:
CÓDIGO PROGRAMA | DESCRIÇÃO | LOCALIZAÇÃO NO MENU | OPERAÇÕES INTEGRADAS |
---|---|---|---|
CD0705 | Manutenção Embarque Vendas Endereço Entrega | Cadastros Gerais - Cadastros | Inclusão e Alteração de Locais de Entrega |
CD0704 | Manutenção Clientes | Cadastros Gerais - Cadastros | Inclusão e Alteração de Clientes que acarretam alteração de dados dos Locais de Entrega |
CD0401 | Manutenção Fornecedores | Cadastros Gerais - Cadastros | Inclusão e Alteração de Fornecedores que sejam Clientes e acarretam alteração de dados dos Locais de Entrega |
CD1302 | Tarefas Importação Cliente/Fornecedor | Cadastros Gerais - Tarefas | Inclusão e Alteração de Clientes que acarretam alteração de dados dos Locais de Entrega |
CDAPI366 | API Manutenção Cliente/Fornecedor | Não é executado pelo menu. | Inclusão e Alteração de Clientes que acarretam alteração de dados dos Locais de Entrega |
Correspondência entre os campos:
CAMPO COCKPIT LOGÍSTICO | CAMPO DATASUL | OBSERVAÇÕES |
---|---|---|
Regional | Código da regional informado nos Parâmetros de Integração - CD0090 |
Local Destino | Código do Cliente do Local de Entrega + "|Padrão" |
Nome | Nome Abreviado do Cliente do Local de Entrega + "|" + Código do Local de Entrega |
Tipo | 1 - Ambos ou 2 - Destino | 1 (Ambos) quando houver um estabelecimento cadastrado com o mesmo CNPJ do cliente/local de entrega |
Código | Código do Cliente do Local de Entrega + "|" + Código do Local de Entrega |
Descrição | Nome do Cliente do Local de Entrega + "|" + Código do Local de Entrega | |
CEP | CEP |
Endereço | Endereço |
UF | Estado |
Nº | Número contido no Endereço | Número obtido pelo mesmo critério usado nas rotinas de impressão de DANFE |
Bairro | Bairro |
País | BR |
Cidade | Cidade |
TRANSPORTADORES
Para que a integração do cadastro de Transportadores seja realizada é obrigatório marcar os seguintes parâmetros (no menu do Cockpit Logístico em: Administração - Integração):
- Aquisição ligada
- Atualização permite inserir
- Aquisição ativa para transportadora
Além disso é necessário cadastrar um Transportador default no Cockpit Logístico e informá-lo como Transportador Piso, Padrão e Teto na configuração de Entidades Padrões. No cadastro do Transportador default devem ser informados todos os dados que são obrigatórios na operação de inclusão:
- Calculador de Tipo de Serviço
- Agrupador
- Máxima Distância de Dead-head
- Máxima Distância Total de Dead-head
- Horizonte de Abertura
- Calculador de Frete para Viagem
- Justificativa de Auto-rejeite
Lista de programas relacionados aos Transportadores do Datasul que integram com o Cockpit Logístico:
CÓDIGO PROGRAMA | DESCRIÇÃO | LOCALIZAÇÃO NO MENU | OPERAÇÕES INTEGRADAS |
---|---|---|---|
CD0402 | Manutenção Cadastro Cotações Transportador | Logística - Embarques - Cadastros | Inclusão e Alteração de Transportadores |
Correspondência entre os campos:
CAMPO COCKPIT LOGÍSTICO | CAMPO DATASUL | OBSERVAÇÃO |
---|---|---|
Regional | Código da regional informado nos Parâmetros de Integração - CD0090 |
Nome | Nome |
Código | Código |
Descrição | Nome abreviado |
ITENS
Lista de programas relacionados aos Itens do Datasul que integram com o Cockpit Logístico:
CÓDIGO PROGRAMA | DESCRIÇÃO | LOCALIZAÇÃO NO MENU | OPERAÇÕES INTEGRADAS |
---|---|---|---|
CD0204 | Manutenção Cadastros Gerais Item | Cadastros Gerais - Cadastros | Inclusão e Alteração de Itens |
CD0903 | Manutenção Informações Itens |
Faturamento |
Cadastros Gerais - Cadastros | Alteração |
de Itens | |||
CD0205 | Item Cadastros Alteração Código/Unidade Medida | Cadastros Gerais - Cadastros | Inclusão de Itens |
CD0209 | Importação Itens | Cadastros Gerais - Tarefas | Inclusão e Alteração de Itens |
BOIN172 | Business Object da tabela Item | Não é executado pelo menu. | Inclusão e Alteração de Itens |
Correspondência entre os campos:
TAG | CAMPO | OBSERVAÇÃO |
---|---|---|
Regional | Código da regional informado nos Parâmetros de Integração - CD0090 |
Embarcador | Embarcador padrão informado nos Parâmetros de Integração - CD0090 | |
Código | Código |
Descrição | Descrição |
Altura | Altura | Multiplicar pelo fator de conversão de dimensões dos Parâmetros de Integração (CD0090) quando o fator for diferente de 0 (zero) 0,001 quando Altura igual a 0 (zero) |
Comprimento | Comprimento | Multiplicar pelo fator de conversão de dimensões dos Parâmetros de Integração (CD0090) quando o fator for diferente de 0 (zero) 0,001 quando Comprimento igual a 0 (zero) |
Largura | Largura | Multiplicar pelo fator de conversão de dimensões dos Parâmetros de Integração (CD0090) quando o fator for diferente de 0 (zero) 0,001 quando Largura igual a 0 (zero) |
Peso | Peso Bruto | Multiplicar pelo fator de conversão de peso dos Parâmetros de Integração (CD0090) quando o fator for diferente de 0 (zero) 0,001 quando Peso Bruto igual a 0 (zero) |
Forma | 0 - Caixa ou 2 - Cilindro ou 3 - Indefinido | 0 (caixa) quando Altura, Comprimento e Largura maiores que 0 (zero) |
compositeQuantity | Quantidade composta | Em desuso |
Para que a integração do cadastro de Produtos seja realizada é obrigatório marcar os seguintes parâmetros (no menu do Cockpit Logístico em: Administração - Integração):
- Aquisição ligada
- Atualização permite inserir
- Aquisição ativa para produtos
Além disso é necessário cadastrar Produtos defaults no Cockpit Logístico e informá-los como Veículo Piso, Padrão e Teto na configuração de Entidades Padrões para cada formato (caixa, cilindro, etc.). No cadastro do Produto padrão devem ser informados todos os dados que são obrigatórios na operação de inclusão:
- Categoria de Produto
Sugere-se no cadastro dos Produtos que serão utilizados como "piso" informar o menor valor possível para peso, altura, largura e comprimento; e no cadastro dos Produtos que serão utilizados como "teto" informar o maior valor possível para peso, altura, largura e comprimento. è É necessário haver um Produto um produto piso exclusivo para cilindro, pois nesse formato a altura deve ser igual a zero.
TIPOS DE CARGA
Lista de programas relacionados aos Tipos de Carga (também chamados de Tipos de Embarque) do Datasul que integram com o Cockpit Logístico:
CÓDIGO PROGRAMA | DESCRIÇÃO | LOCALIZAÇÃO NO MENU | OPERAÇÕES INTEGRADAS |
---|---|---|---|
FT0307 |
Manutenção Informações Itens Tipo Carga | Logística - Embarques - Cadastros | Inclusão e Alteração de Tipos de Carga |
Correspondência entre os campos:
TAG | CAMPO | OBSERVAÇÃO |
---|---|---|
Regional | Código da regional informado nos Parâmetros de Integração - CD0090 | O código da regional é informado nos Parâmetros de Integração - CD0090. |
Nome | Descrição |
Código | Código |
Descrição | Descrição |
Para que a integração do cadastro de Veículos seja realizada é obrigatório marcar os seguintes parâmetros (no menu do Cockpit Logístico em: Administração - Integração):
- Aquisição ligada
- Atualização permite inserir
- Aquisição ativa para veículos
Além disso é necessário cadastrar um Veículo default no Cockpit Logístico e informá-lo como Veículo Piso, Padrão e Teto na configuração de Entidades Padrões. No cadastro do Transportador default devem ser informados todos os dados que são obrigatórios na operação de inclusão:
- Similaridade (Veículo similar)
- Prioridade
- Baú
- Modal
Processos
Vide tópico fluxo de informações.
Limitações/Restrições
Vide tópico fluxo de informações.
Limitações / Restrições Gerais
Não se aplica.
Como fazer
Não se aplica.
Situações comuns (opcional)
Não se aplica.
Checklist de suporte da aplicação
Não se aplica.
Instalação/Configuração
Não se aplica.
Checklist de Verificações:
Não se aplica.
A Solução de Programação do Neolog automatiza a inteligência logística da empresa. É ela a responsável por receber as demandas de transporte, olhar todas as possibilidades da malha logística da empresa e encontrar a melhor e mais rentável opção para entrega de todos os pedidos.
O diagrama abaixo demonstra o processo de integração das transações de envio de pedidos, liberação de viagens e desbloqueio de viagens:
Fluxos de processos que contemplam a solução de integração:
1) Envio de pedidos de venda
Tipo de Fluxo: Datasul -> Cockpit-Neolog
Mensagem: OrderAquisitionService
Versão: 1.000
O envio de pedido de venda poderá ocorrer através das simulações (sem empenho do estoque) ou através dos embarques (com empenho do estoque), deverá ser parametrizado no programa de configuração da integração (cd0090) se o envio dos pedidos será a partir do programa de geração de simulações (eq0503) ou se será a partir da preparação de embarque (eq0506).
Quando a configuração é feita para ser realizada pela simulação, ao clicar no check verde da simulação, após a escolha dos pedidos, é realizado o envio dos pedidos da simulação para o Neolog.
Quando a configuração é feita para ser realizada pelo embarque, ao clicar no check verde do embarque, após a escolha dos pedidos, é realizado o envio dos pedidos do embarque para o Neolog. Também será realizado o envio dos pedidos do embarque pela rotina de geração batch de embarques. Estes embarques são chamados de embarque-remessa, e não poderão ser enviados ao WMS, nem faturados, pois servirão apenas para envio dos pedidos ao Neolog com a reserva do estoque.
Todos os pedidos escolhidos em uma simulação ou embarque-remessa, terão seu número de controle no Neolog formado pela composição da chave: número do pedido (nr-pedido) + nr simulação ou número do embarque.
Lista de programas relacionados ao envio de pedidos ao Cockpit Logístico:
CÓDIGO PROGRAMA | DESCRIÇÃO | LOCALIZAÇÃO NO MENU | OPERAÇÕES INTEGRADAS |
---|---|---|---|
EQ0503 | Simulação de Embarque | Logística - Embarques - Tarefas | Inclusão e Alteração de Simulações |
EQ0506 | Preparação do Faturamento | Logística - Embarques - Tarefas | Inclusão e Alteração de Embarques |
EQ0505 | Preparação automática | Logística - Embarques - Tarefas | Inclusão de Embarques |
Quando o parâmetro da integração estiver marcado para envio dos pedidos pela simulação de embarque, as simulações assumirão as seguintes situações:
int-2 = 0 - Não Otimiza - no momento da geração da simulação, se o tipo de embarque/carga não estiver marcando, não serão enviados os pedidos da simulação para o Cockpit Logístico.
Int-2 = 1 - Envio OK - O sistema realizou o envio da mensagem para o Neolog sem erros no envio.(estrutura)
int-2 = 2 - Erro Envio - deveria integrar (função parametrizada e tipo de carga para integrar com Neolog ) mas ocorreu algum erro na hora de envio para o Neolog. Ex: Erro chamada ao web service.
Int-2 = 3 - Em Otimização - Quando a simulação está em alguma otimização no Neolog.(parâmetro previsto, mas não atualizado pelo CPL).
Int-2 = 4 - Desbloqueado – usuário desbloqueou manualmente poderá ser alterado a simulação ou gerado o embarque manualmente.
Quando o parâmetro da integração estiver marcado para envio dos pedidos pela rotina de pré-faturamento, o embarque assumirá as seguintes situações:
int-2 = 0 - Não Otimiza - no momento da geração do embarque, se o tipo de embarque/carga nao estiver marcando, não serão enviados os pedidos do embarque para o Cockpit Logístico.
Int-2 = 1 - Envio OK - O sistema realizou o envio da mensagem para o Neolog sem erros no envio.(estrutura)
int-2 = 2 - Erro Envio - deveria integrar (função parametrizada e tipo de carga para integrar com Neolog ) mas ocorreu algum erro na hora de envio para o Neolog. Ex: Erro chamada ao web service.
Int-2 = 3 - Em Otimização - Quando o embarque está em alguma otimização no Neolog (parâmetro previsto, mas não atualizado pelo CPL).
Int-2 = 4 - Desbloqueado – usuário desbloqueou manualmente o embarque, para alterá-lo ou fatura-lo sem aguardar a viagem do Cockpit Logístico.
A mensagem de envio de pedidos de venda ao Cockpit Logístico é composta pelos seguintes campos:
campo | Descrição | Campo Datasul |
regionSourceId | Identificador da regional; | A regional é definida no Parâmetros da integração (cd0090). Campo Regional. |
identifier (order) | ID do pedido de transporte; | Número único gerado a partir da composição de informações que serão enviadas: nr-pedido(>>>,>>>,>>9) | Nr-simul >>>,>>9 (6) ou nr-pedido(>>>,>>>,>>9) | cdd-Embarq >>>>>>>>>>>>>>>9 (16) |
code | Descrição do pedido de transporte; | nr-pedcli (>>>,>>>,>>9) | nome-abrev (x(12) | Nr-simul >>>,>>9 (6) ou cdd-embarq | nr-resumo | nome-abrev | nr-pedcli |
shipperId | ID do embarcador; | Parâmetros da integração de Integração (cd0090) campo Embarcador. |
priority | Prioridade do pedido de transporte; | É enviado o valor 0 (zero) como padrão para todos os pedidos. |
pickupStart | Data/hora de início da janela de embarque; | Dt de alocação do estoque da mercadoria; simul-emb.dt-embarque |
deliveryStart | Data/hora de início da janela de entrega; | O campo deliverystart é o início do prazo de entrega. O campo será preenchido com a data de entrega do pedido de venda (Ped-venda.dt-entrega) com o horário de 00:00. |
deliveryEnd | Data/hora de término da janela de entrega; | O campo deliveryend é p fim do prazo de entrega. O campo será preenchido com a data de entrega do pedido de venda (Ped-venda.dt-entrega) com o horário de "23:59". |
destinationId | ID da localidade de destino do pedido de transporte (endereço principal de entrega); | Neste campo será informado o destino de entrega do pedido (Ped-venda.cod-emitente | ped-venda.cod-entrega) OBS: quando operação triangular (ped-venda.nome-brev-tri) será gerado o local de entrega do cliente da operação triangular neste campo. |
integrationDataSource | ID da origem de dados; | Definido nos parâmetros da integração no Neolog, (valor padrão "DATASUL") |
modal | ID do modal do pedido de transporte; | Enviado valor fixo 1-Rodoviário. Os demais modais ( 2=Aquaviário; 3=Ferroviário; 4=Aéreo) não serão tratados neste momento. |
incoterm | Incoterm do pedido de transporte; | Se informado a Cidade CIF no pedido de venda (ped-venda.cidade-cif <> “ “) será enviado o valor 1 (CIF) ; senão 0 (FOB) . Os demais tipos 2=FOBTe 3=OP, serão tratados apenas no CPL. |
erpCreationDt | Data de criação do pedido de transporte no sistema legado; | Data de implantação do pedido de venda no Datasul (ped-venda.dt-implant). |
reference (order) | Campo texto livre; | Este campo contém a chave primaria e única completa dos registros das tabelas do Datasul Chave unica da tabela simul-ped: Nr-simul | nr-pedcli | nome-abrev Chave única da tabela embarque: cdd-embarq | nr-resumo | nome-abrev | nr-pedcli |
orderItems (início) | Entidade de agrupamento dos itens de um pedido de transporte; | A lista de itens de pedido não pode ser vazia (deve ter pelo menos 1 item de pedido); |
orderId | ID do pedido de transporte; | Mesmo valor do campo identifier (order); nr-pedido(>>>,>>>,>>9) | Nr-simul >>>,>>9 (6) ou nr-pedido(>>>,>>>,>>9) | cdd-Embarq >>>>>>>>>>>>>>>9 (16) |
sourceId | ID do item de pedido de transporte; | Chave primaria e única do item da simulação: nr –sequencia (>>,>>9) (5) | nr-pedido (>>>,>>>,>>9) (9) | Nr-simul >>>,>>9 (6) | Nr-entrega >>>9 | contador (para os itens que repetem o nr-sequencia incluir um contador ao final) ou Chave primaria e unica do item do embarque: nr –sequencia (>,>>9) (4) | nr-pedido (>>>,>>>,>>9) (9) | Nr-embarque (x13) | Nr-entrega >>9 | contador (para os itens que repetem o nr-sequencia incluir um contador ao final) |
productId | ID do SKU; | Código do item da simulação ou do embarque (simul-ent.it-codigo ou it-pre-fat.it-codigo) |
originId | ID da localidade de origem do item de pedido; | Neste campo é indicado uma localidade de origem, de onde a mercadoria estará saindo. A localidade de origem é considerado o cliente com o mesmo CNPJ do estabelecimento do embarque (simul-emb.cod-estabel ou embarq.cod-estabel) e enviado o local de entrega deste cliente (cod-emitente |cod-entrega) |
proportionalityId | Indicador de quais SKUs devem ser mantidos em uma mesma proporção dentro de uma carga (exemplo: 1 pote = 1 tampa + 1 envase); | Este campo no Cockpit mantem a relação do pai com os filhos para produtos compostos e configurados. Quando estiver parametrizado o envio de pedidos pela simulação, para produtos compostos, mesmo que os filhos baixem estoque, será enviado o item pai pois não há controle dos filhos nas tabelas da simulação; Quando estiver parametrizado o envio de pedidos pelo pré-faturamento, para produtos compostos e configurados se a baixa do estoque é feita pelos filhos, neste campo será enviado o código do item pai, para manter a relação do pai com os filhos no Cockpit. Se o pai baixar estoque, não serão enviados os filhos ao Cockpit. |
shipmentUnitWrapperCode | Código da categoria de invólucro de embarque; | Uma categoria de invólucro está associada a um tipo: 1=Pacote; 2=Granel não unitizável; 3=Pallet; 4=Granel unitizável; 5=Bobina; 6=Skid; 7=Tubo; 8=Feixe de tubos; Esta categoria é informada nos parâmetros de integração. |
price | Valortotalde unidades de produtos em todas as unidades de embarque deste item; | Preço unitário do item do pedido (Ped-item.vl-pre-uni) X campo de quantidade (quantity) |
quantity | Quantidade total de unidades de produtos em todas as unidades de embarque deste item; | simul-ent.qt-simulada ou it-pre-fat.qt-faturada |
quantityInShipmentUnits | Quantidade de unidades de embarque; | campo quantity |
MIT | "Merge in Transit"; | Este campo no CPL serve para forçar o atendimento de forma conjunta. Desta forma, para os pedidos com bonificação, será enviado neste campo o número do pedido do cliente do pedido original, se pedido original e pedido de bonificação estiverem na mesma simulação/embarque, senão não será enviada a tag. |
reference (order item) | Campo texto livre; | Este campo irá conter a chave primaria e única completa dos registro das tabelas do Datasul Este campo é apenas atualizado no Neolog e devolvido para o Datasul quando da formação da viagem. |
Os pedidos gerados na integração poderão consultados na "cesta" na rotina de análise no modulo programação disponível no aplicativo CPL do Neolog.
2) Manutenções da simulação/embarque-remessa no Datasul
Quando uma simulação ou embarque-remessa for enviado ao Neolog, eles não poderão ser alterados, a não ser que a mesma seja desbloqueada no monitor da integração(eq0515);
Se a simulação ou embarque-remessa necessitem ser desbloqueados e alterados, as alterações poderão ser realizadas no Datasul, caso os pedidos não estiverem sido alocados em uma viagem no CPL.
Se pedido estiver em uma viagem, irá depender do retorno que o CPL irá retornar para o Datasul, na solicitação de alteração, onde para cada estado da viagem poderá ser retornado um comportamento distinto.
Ao tentar realizar um operação, como retirar um pedido de uma simulação, é enviado uma consulta ao CPL via webservice, para verificar se a alteração é permitida pelo CPL.
Se o retorno for negativo, a alteração deverá ser realizada no CPL, retirando o pedido da viagem e posteriormente realizar a alteração desejada no Datasul.
3) Eliminação Simulação.
O processo de eliminação de simulação (eq0503) quando parametrizado para integrar os pedidos pela simulação, foi alterado para não eliminar os pedidos da simulação que possuem um numero de embarque relacionado. É emitido um alerta informando que não serão eliminados os pedidos devido a integração com o Cockpit (Neolog). Os demais pedidos que não estiverem relacionados a algum embarque poderão ser eliminados.
No produto padrão, sem integração com o Cockpit Logístico, uma simulação poderá estar em um único embarque. Mas com a integração com o Cockpit Logístico, os pedidos da simulação, poderão ser alocados em diferentes viagens, se tornando diferentes embarques no Datasul. Para este controle, foi incluso um campo no pedido da simulação (simul-ped.char-1,122,16)) que conterá o número do embarque no qual o pedido de simulação foi incluso. Assim o controle do número do embarque na simulação (simul-emb) deixa de ter efeito quando da integração com o Neolog.
O processo de eliminação é síncrono, ou seja, após a validação acima, é verificado no Cockpit Logístico se o pedido da simulação pode ser eliminar ou não, antes de eliminar o registro físico no Datasul.
Este tratamento é necessário pois uma viagem pode assumir a situação de distribuída no CPL(que necessita de confirmação pelo cliente para poder ser liberada e enviada ao Datasul). Os pedidos nesta situação, não podem ser eliminados da simulação, pois assim que o clientes aceitar, a viagem é liberada para o Datasul e gerado o embarque. Ao clicar na lixeira no eq0503, é disparado o webservie e se o parâmetro no CPL estiver parametrizado para bloquear alterações em viagens distribuídas , o Datasul não irá eliminar o pedido.
4) Liberação de viagem
Tipo de Fluxo: Cockpit-Neolog -> Datasul
Mensagem: ReleasedTripPublishRequestService
Versão: 1.000
Uma viagem é elaborada no CPL, a partir de pedidos de transporte, que podem ter sido enviados por várias simulações ou vários embarques-remessas enviados do Datasul.
Para a identificação do pedido de transporte no CPL, foi utilizado o mesmo código do pedido de venda do Datasul acrescentando o número da simulação ou do embarque que o enviou o pedido, para que o usuário possa rastrear quais pedidos comporão a viagem.
As viagens são elaboradas no modulo programação, na rotina analise, disponível no aplicativo CPL do Neolog, pela seleção dos pedidos e montagem da carga.
Após a elaboração da viagem no Cockpit, está deverá ser liberada para o Datasul, selecionado a viagem e executando o botão liberar conforme acima.
O envio ao Datasul será realizado pela chamada ao webservice ReleaseTripPublishRequestService. Este processo ocorre de forma assíncrona, ou seja, é enviada a mensagem do Neolog, porem o retorno aguardado será apenas se a mensagem chegou ao Datasul e pode ser lida. Este retorno é feito pelo webservice publishReleasedTripResponse. O processo é definido desta forma para evitar timeout pois a mensagem de geração do embarque exige vários processamentos.
Após a geração da pendência de processamento no ERP, pelo pedido de execução gerado para o RPW, o processo segue sem a intervenção do usuário com o processamento da viagem, ou seja , a geração do embarque.
As informações que foram captadas na recepção do XML, serão repassadas para as tabelas que irão gerar as informações para o embarque.
O relacionamento do número do embarque gerado para a viagem poderá ser consultado no monitor da integração, assim como os erros que foram encontrados neste processamento.
As informações que serão recebidas na mensagem tripReleaseRequests (ttTripReleaseRequest) :
Campo XML | Descrição | Campo Datasul |
---|---|---|
basketSourceId | Numero da cesta que elaborou a viagem. | Informação não será utilizada no Datasul. |
carrierId | ID da transportadora da viagem (x 255) | Será verificado se o código enviado no xml está cadastrado na tabela de transporte, então será assumido o embarque.nome-transportador com o nome abreviado do transportador. Senão estiver cadastrado, irá assumir " " (branco) pois não é uma informação obrigatória no cadastro do embarque no ERP. |
freightValue | O valor do frete utilizado no Neolog é apenas sugestivo para escolha da transportadora. O frete correto será considerado na integração com o GFE, conforme integração padrão. Valor não é armazenado nas tabelas do embarque. | |
identifier (trip) - | ID da viagem cuja liberação está sendo solicitada pelo CPL; | Será armazenado no Datasul este identificador para enviar na solicitação de cancelamento ou reprogramação é enviado este código.Armazenado na tabela embarque.dec-1 |
truckLicensePlate | Placa do caminhão da viagem | Não sempre estará informado no CPL, mas quando vier conteúdo será gravado em embarque.placa |
truckLicensePlateState | Estado da placa do caminhão da viagem; nem sempre estará informado no CPL. | Mas quando vier conteúdo gravar em embarque.uf-placa |
vehicleDescription | Informação não será utilizada no Datasul. | |
vehicleId | ID do tipo de veículo da viagem; | Encontrado o tipo-carga correspondente no Datasul e atualizado o embarque.tipo-emb. Caso código não esteja cadastrado no ERP, será gerado erro na integração. |
Demais campos deste bloco não serão utilizados no Datasul:
- truckStatusId
- truckStatusDescription
- truckAxlesQuantity
Campos XML | Descrição | Campo Datasul |
---|---|---|
identifier (delivery unit) | ID da unidade de entrega; | Informa o local de entrega (ped-venda.cod-emitente) | (ped-venda.cod-entrega) |
orderSourceId | ID do pedido de transporte da unidade de entrega; | Indica um pedido de uma simulação que foi utilizado na viagem nr-pedido | Nr-simul Este campo de ID foi gravado no simul-ped.char-1 quando do envio da simulação. (it-pre-fat.char-2,1,100) |
orderTypeSourceId | Código do tipo do pedido; | Não será utilizado no ERP. |
orderItemSourceId | ID do item de pedido de transporte da unidade de entrega | Indica um item de um pedido de uma simulação que foi utilizado na viagem nr –sequencia | nr-pedido | Nr-simul | nr-entrega | contador (para os itens que repetem o nr-sequência é incluso um contador ao final para não gerar chave duplicada no CPL. Este campo foi gravado no campo simul-ent.char-1 quando do envio da simulação. |
productSourceId | ID do produto da unidade de entrega; | Não será utilizado no ERP. |
sequenceComposition | Sequência da composição do SKU da unidade de entrega (apenas para SKUs que são multi-volume); | Não será utilizado no ERP. |
quantity | Quantidade das unidades de entrega; | Estas quantidades necessitam ser acumuladas pelas subparadas. |
price | Preço das unidades de entrega | Não será utilizado na geração do embarque. |
deliveryDate | Data planejada de entrega da unidade de entrega | Esta data é a nova data que deverá ser considerada para a geração do novo pedido de transporte indicado na bloco das quebras realizadas no CPL. |
integrationSource | ID da origem de dados; | |
atibute name Totvs12_CPL_Order_Reference | Chave única da tabela simul-ped enviada para o Neolog. Nr-simula | nr-pedcli | nome-abrev Através do conteúdo deste campo é possível identificar qual pedido da simulação que esta sendo referenciado na viagem e que será utilizado para gerar o embarque-viagem, | |
atribute name Totvs12_CPL_Order_Item_Reference | Chave única da tabela simul-ent enviada para o Neolog. Nr-simul | nr-pedcli | nome-abrev| nr–sequência |item | cod-refer | nr-entrega | ped-item.ind-componen Através do conteúdo deste campo é possível identificar qual o item da simulação que esta sendo referenciado na viagem e que será utilizado para gerar o os itens do embarque-viagem, |
Os embarques criados pela integração terão o campo de identificador com o valor Neolog (embarque.identific).
simul-ped.char-1,122,16) = TRIM(STRING(de-cdd-embarq))
QUEBRAS: ttorderBreakPart
Um pedido de transporte enviado para o CPL, poderá ser colocado em uma viagem com todos as quantidades dos itens que foram enviadas, ou poderá ser realizado de forma parcial. Quando por alguma razão um item de um pedido não irá ser enviado totalmente em uma viagem, este atendimento parcial do pedido de transporte é considerado uma quebra.
Exemplo: Foi enviado ao CPL um pedido de transporte para o item A com 50 unidades.
Após a programação, foi criada uma viagem com apenas 15 unidades das 50 que foram enviadas no pedido de transporte.
No XML na parte da quebra ira ser indicado na parte orderBreakPart, os itens que tiveram uma programação parcial ou seja as 15 unidades.
orderBreakPart
Campo XML | Descrição | Campo Datasul |
---|---|---|
regionSourceId | Será enviado um valor fixo definido na integração, parâmetros de integração. | Não será utilizado. |
orderBreakPartId | Este é um número gerado pelo CPL que precisa ser armazenado no ERP porque na interface de liberação da viagem deverá ser enviado para o cpl. | A identificação do número da quebra será gravado na simulação que foi gerada com as quebras enviadas na mensagem releaseTrip. |
orderSourceId | Indica que este pedido de transporte sofreu uma quebra. Este campo é o identificador do pedido de transporte recebido na interface de pedidos | Se um pedido de transporte está dentro da estrutura orderBreakParts significa que este sofreu quebra |
orderTypeSourceId | Não sera utilizado | |
orderItemSourceId | Indica que este item do pedido de transporte sofreu uma quebra. Este campo é o identificador do item do pedido de transporte recebido na interface de pedidos; | Se um item de pedido de transporte está dentro da estrutura orderBreakParts significa que este item (que está dentro do pedido orderSourceId) sofreu quebra; |
loadId | Código da carga aonde está o pedido que sofreu a quebra, esta carga está no mesmo XML, no bloco de informações da viagem. | Este campo server para associar o pedido de transporte (campos orderSourceId e orderItemSourceId) com a carga gerada pelo CPL nesta interface; como cada viagem terá apenas uma carga, não será necessário gravar esta informação. |
shipmentUnitId | Não utilizar. | |
quantShipmUnits | Quantidade de produtos quebrado em relação ao total origina. Esta quantidade será a mesma que já foi atualizada no embarque pela criação da viagem. Desta forma não será necessário armazená-la. Ex: foi enviado 50 unidades no pedido de transporte original, foi quebrado 15 e enviados os 15 na viagem. Neste campo vem os 15. |
5) Desbloqueio de Viagem
Tipo de Fluxo: Datasul -> Cockpit-Neolog
Mensagem: UnblockReleasedTripAcquisitionService
Versão: 1.000
Quando o CPL envia uma viagem ao Datasul, a viagem ficará como bloqueada no Cockpit, até receber uma mensagem de UnblockReleasedTripAcquisition para a viagem.
Este processo de desbloqueio, com a geração da mensagem de unblock se dará de forma on-line, após a criação do embarque.
A mensagem de retorno será gerada para ambas as situações, se a criação do embarque foi com sucesso ou mesmo se ocorreram erros no processamento.
A mensagem de desbloqueio fornece ao Neolog um retorno para cada item de cada pedido que foi enviado na viagem:
Campo XML | Descrição | Campo Datasul |
---|---|---|
regionSourceId | Identificador da regional; | Esta informação é enviado conforme o que foi parametrizado para a integração (ver parâmetros da integração cd0090) |
tripCode | ID da viagem do CPL; | Esta informação vem não campo identifier (trip) da mensagem ReleaseTripPublishRequestService que veio do CPL e foi gravado no embarque (embarque.dec-1) |
orderSourceId | ID do pedido de transporte associado à viagem; | Números dos pedidos de transporte que vieram na viagem. Informação gravada no campo : pre-fatur.char-1 (Id Pedido da viagem) Posição inicial 4 – 30 posições |
itemId | ID do item do pedido de transporte Este campo deve receber um ID de item de pedido válido para o pedido da viagem; o sistema externo deverá dar um retorno para todos os itens de pedido existentes na viagem para que esta seja liberada; | Códigos dos itens dos pedidos de transporte que vieram na viagem. Informação gravada no it-pre-fat.char-2 - (IdItemSource) Posição inicial 1, 100 posições |
Status | Deverá ser enviado um Ok para todos os itens da viagem para que esta seja liberada no CPL. 0=Não desbloqueia a viagem; | Se a criação dos itens da viagem no embarque no Datasul foram criados com sucesso será enviado para cada item da viagem o valor 1=Desbloqueia a viagem; Se não, se algum item não puder ser criado, é enviado o valor 0=Não desbloqueia a viagem; Não há desbloqueio parcial de uma viagem. |
msg | Resposta do ERP se conseguiu gerar o item do pedido no embarque, caso não tenha sido possível, retornar o erro neste campo. | Se retorno negativo o processo deverá ser liberado manualmente no CPL e no ERP. |
Quando a viagem contiver atendimentos parciais nos pedidos enviados ao Neolog, estes são tratados como quebras pelo Cockpit. Este espera receber na mensagem de desbloqueio da viagem, o retorno se foi possível ou não a criação nos novos números de simulações ou embarques para comportar estas quebras.
A parte do xml que conterá o retorno referente as quebras contém os seguintes campos. (só enviado o retorno com quebra se viagem teve atendimentos parciais no CPL).
Campo XML | Descrição | Campo Datasul |
---|---|---|
regionSourceId | Identificador da regional; | Esta informação é enviada conforme o que foi parametrizado para a integração (ver parâmetros da integração cd0090) |
breakId | ID da quebra do CPL; | O ERP deverá dar um retorno para todos os breakIds gerados pelo CPL na interface de liberação de viagem para que esta seja liberada; este campo é gravado no ERP na mensagem ReleaseTripPublishRequestService com o nome de orderBreakPartId. |
orderId | ID do pedido de transporte associado à quebra; | Novo código de pedido gerado no ERP devido a informação de quebra enviada pelo CPL.Ped-venda.nr-pedido + "|" + simul-emb.nr-simul (simulação gerada na quebra) |
orderItemId | ID do item do pedido de transporte associado à quebra; | nr –sequencia (>>,>>9) (5) + "|" +nr-pedido (>>>,>>>,>>9) (9)+ “|” + Nr-simul >>>,>>9 (6) + "|" + Nr-entrega >>>9 + "|" contador |
status | Status de resposta do ERP sobre a quebra do CPL;0=Quebra não realizada; 1=Quebra realizada | Se encontrar o it-pre-fat no simu-ent (da quebra), enviar 1- Quebra realizada, caso contrario 0- Quebra não realizada. |
msg | Quando a quebra não for realizada, informar o erro ou motivo da não quebra. | Motivo da não quebra - segundo abaixo. |
IMPORTANTE: Este último bloco estará sendo retornado apenas se o embarque foi criado com sucesso, não haverá desbloqueio parcial de uma vigem, onde somente alguns itens ou pedidos ficariam liberados, pois não teríamos como reprocessar de forma parcial a viagem no ERP. Se ocorrer erro, deverá ser reenviada a viagem pelo CPL, para ser reprocessado no Datasul.
A viagem desbloqueada, terá sua situação alterada para processada no Cockpit :
Caso a viagem não possa ser desbloqueada por algum motivo, no ERP será indicado no Cockpit que houveram erros na integração e podem ser consultados os erros no monitor da integração (eq0515).
Tipo de Fluxo: Cockpit-Neolog - Datasul
Mensagem: PublishReprogramingService
Versão: 1.000
Os processos de cancelamento e reprogramação de viagens executadas no Cockpit Logístico, também possui interface com o Datasul. Essas ações demandam restabelecer os Embarques ou Simulações de Embarque em sua composição original antes da recepção das viagens geradas pelo Cockpit Logístico. Essas interfaces também devem responder ao Cockpit Logístico sobre a possibilidade de concluir as ações considerando as regras do ERP. E de acordo com a resposta o Cockpit Logístico concluirá as ações de cancelamento ou reprogramação ou informará ao usuário sobre a impossibilidade de realizá-las.
Faz o cancelamento de viagens, cargas ou paradas. Uma tela de confirmação do cancelamento é exibida para que o usuário certifique-se de que realmente deseja cancelar a entidade selecionada.
Resultado do cancelamento com sucesso: a(s) viagem(ns) é(são) eliminada(s) do Cockpit Logístico e os pedidos selecionados voltam à cesta para nova otimização.
Reprogramação de Viagem
Possibilita que o usuário restaure uma carga na tela de Expedição fazendo-a aparecer na tela do seu domínio com o último status antes da liberação.
Resultado da reprogramação autorizada com sucesso: a(s) viagem(ns) não é(são) eliminada(s) do Cockpit Logístico, pode ser alterada e requer nova liberação (envio para o ERP) e desbloqueio (confirmação enviada pelo ERP).
WebService | URL | Executa |
---|---|---|
PublishReprogrammingServiceRequest | http://server:port/WebService/publishReprogrammingServiceRequest?wsdl | cancelService em eqp/eqapi200a.p |
PublishCancelServiceRequest | http://server:port/WebService/publishCancelServiceRequest?wsdl | reprogramService em eqp/eqapi200a.p |
Campo | Descricao | Campo Datasul |
---|---|---|
regionSourceId | Código da Regional | Informado nos parâmetros da integração |
tripId | Código da Viagem | Recebido código da viagem na mensagem PublishCancelServiceRequest ou pela mensagem PublishReprogrammingServiceRequest |
status | conforme resultados possiveis abaixo listados |
Os resultados (resposta do ERP) possíveis são:
conteúdo | mensagem (cancelamento/reprogramação) | ação do Cockpit Logístico | observação |
---|---|---|---|
0 | Viagem cancelada com sucesso/Reprogramação autorizada | Procede com o cancelamento/reprogramação da viagem.. | |
1 | Viagem já estava cancelada/Viagem cancelada | Não ocorrerá. | |
2 | Viagem não encontrada/Viagem não encontrada | Procede com o cancelamento/reprogramação da viagem. | |
3 | Viagem já despachada/Reprogramação não autorizada | Não cancela/reprograma a viagem. | No cancelamento utilizar a mensagem 4. |
4 | Viagem não pode ser cancelada | Não cancela a viagem. | Utilizada apenas na ação de cancelamento |
7) Ambiente Neolog com múltiplas empresas no Datasul
Após o release 12.1.27 do Datasul, será possível utilizar a integração com múltiplas empresas parametrizadas no ERP. Para isso, basta que o usuário de integração parametrizado no arquivo datasul_framework.properties possua acesso nas empresas que estejam parametrizadas para integrar com a Neolog / Cockpit Logístico.
Limitações / Restrições Gerais
- Integração de produto configurado/composto
- Quando ocorre o processo de quebra, após a mensagem de desbloqueio, é enviado uma mensagem de update do Orderquisition para o CPL, para poder atualizar os campos do pedido e dos itens dos pedidos criados na nova simulação ou embarque.
- Como a premissa de desenvolvimento desta integração era não alterar dicionário, foram utilizadas as tabelas de uso geral no sistema , como tab-generica e ped-curva, com a devida indicação de utilização.
Quando um mensagem é enviada ao CPL, o retorno é somente referente a formação da mensagem e não do processamento em si da mensagem.
Quando uma mensagem releasetrib sai do Neolog e não chega no Datasul, no Neolog fica como enviado, porem para consultar porque não chegou, somente verificando no log do JBoos para saber se o xml foi ou não gerado.
A Chave Única de pedido e item de pedido no CPL, força a criação de novas simulações para comportar as quebras, pois a chave do pedido de transporte não permite que um pedido, esteja em partes na cesta e em parte sendo atendido em uma viagem
Anexos
Não há anexos.