Histórico da Página
Pickup
Âncora | ||||
---|---|---|---|---|
|
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Contexto de Negócio (Introdução)
Com a crescente demanda por otimização nos processos logísticos de distribuição na busca por um melhor aproveitamento dos veículos, tanto na questão de carregamento quanto na roteirização das entregas, tornou-se necessário proporcionar aos cliente do OMS Protheus uma solução para atender essas necessidades.
Visando esta solução foi realizada a integração entre o TOTVS OMS da linha Protheus com a funcionalidade TOTVS Logística Cockpit por intermédio de arquivos no formato XML, utilizando os Web Services existentes do Cockpit sem transformação de mensagens e sem a utilização de sistemas intermediários (TOTVS EAI, TOTVS ESB, entre outros).
Com esta integração,,o TOTVS Logística OMS passou a utilizar os recursos do TOTVS Logística Cockpit, o qual efetuará a roteirização e o arranjo das cargas com base na demanda de transportes enviados pelo OMS, devolvendo para este as cargas montadas e roteirizadas.
Para a montagem de carga serão consideradas as configurações das restrições logísticas e as funções-objetivos de otimização registradas no TOTVS Logística Cockpit.
São exemplos de funções-objetivo:
- Máxima ocupação dos veículos.
- Diminuição dos prazos de entrega.
- Redução da quantidade de viagens.
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Sistemas Envolvidos
TOTVS OMS
A sigla OMS significa Order Management System, ou seja, gerenciamento de pedidos e serviços que compreende as fases de captação, validação, avaliação, formação de carga e geração de mapa de separação ou, como é também conhecido, lista de separação.
Para obter informações detalhadas, acesse a página TOTVS OMS. no TDN.
TOTVS Logística Cockpit
É um 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.
Para obter informações detalhadas, acesse o link http://www.neolog.com.br/neolog-site/index.php/cockpit-logistico/
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Escopo
O escopo desta integração permitirá o envio dos pedidos de venda liberados (crédito / estoque) no OMS para a formação das viagens no Cockpit e o recebimento dessas viagens geradas no TOTVS Logística Cockpit, por meio de um XML no OMS, para a geração das cargas.
Para complementar o escopo do envio dos pedidos será necessário enviar os cadastros envolvidos com as informações dos pedidos, como produtos, clientes, fornecedores, filiais, transportadoras e tipos de veículos.
Faz parte do processo de integração o recebimento das mensagens de publicação de viagens, reprogramação e cancelamento de viagens.
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
¹ Para o cadastro de fornecedores existem particularidades que serão detalhadas nos próximos tópicos.
Para as entidades envolvidas na integração, estes são os pontos de integração que farão parte do escopo dessa integração:
Entidade | Pontos de Integração |
---|---|
Empresas/Filiais |
|
Cliente |
|
Fornecedor |
|
Transportadora |
|
Produto |
|
Tipo de Veículo |
|
Pedidos de Venda |
|
Viagens |
|
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Pré-requisitos Instalação / Implantação / Utilização
Cockpit Logístico
- TOTVS Logística Cockpit na versão/release 5.6.1.
- Parâmetros de aquisição ativos (acesso pelo menu em Administração > Cockpit Logístico).
- Web Services ativos.
Protheus
- Protheus versão 12.1.17 ou superior.
- Parâmetros de integração com o TOTVS Cockpit Logístico configurados (acesso pelo menu em Atualizações > Cockpit Logístico > Parâmetros Integração).
- Web Service Server para recebimento de mensagens do TOTVS Logística Cockpit.
Informações | ||||
---|---|---|---|---|
| ||||
|
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Instalação/Configuração
Configuração Web Service AppServer Protheus
- Para que seja possível receber as viagens do Cockpit Logístico é necessário configurar um Web Service no servidor de aplicação Protheus.
Informações | ||||
---|---|---|---|---|
| ||||
A configuração do JOB do Web Service para ser utilizado nesta integração não utiliza os métodos padrão do Framework Protheus, sendo assim as rotinas ONSTART e ONCONNECT são específicas do módulo, portanto, os métodos disponíveis neste WS não são listados no WS do Protheus. |
- É recomendado criar um Web Service com as seguintes configurações (modificando o arquivo Appserver.ini):
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
;Serviço webserver HTTP [HTTP] ENABLE=1 PATH=<Caminho_Cache_imagens>;C:\TOTVS\Prottheus\data\web PORT=<porta>;8080 INSTANCES=<nInicio>,<nMaximo>;1,10 SESSIONTIMEOUT=60 INSTANCENAME=WS_HTTP ;URL de resposta [<ip ou nome>:<porta>/neolog] ENABLE=1 PATH=<Caminho_Cache_imagens>;C:\TOTVS\Prottheus\data\web ENVIRONMENT=<ambiente> INSTANCENAME=WS_NEOLOG RESPONSEJOB=JOB_WS_NEOLOG DEFAULTPAGE=wsindex.apw ;JOB de resposta [JOB_WS_NEOLOG] TYPE=WEBEX ENVIRONMENT=<ambiente> INSTANCES=<nInicio>,<nMaximo>;1,10 INSTANCENAME=JOB_WS_NEOLOG ONSTART=OMSXStart ONCONNECT=OMSXConnect |
- Para testar o serviço, inicie um navegador e digite: http://<ip ou nome>:<porta>/neolog/PublishReleasedTrip.APW?WSDL
- Um WSDL (descrição do serviço em xml) deve ser exibido no navegador.
- Para que seja possível reprogramar/cancelar as viagens do TOTVS Logística Cockpit é necessário configurar as informações de conexão com o DBAccess diretamente na seção [Environment] (modificando o arquivo Appserver.ini), conforme exemplo abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
;Nome do Ambiente acessado pelo Web Service [Environment] SourcePath=C:\Totvs\Protheus\Apo RootPath=C:\Totvs\Protheus\Data StartPath=\system\ . . . ; outras chaves DBDatabase=MSSQL DBAlias=PLS101 DBServer=192.168.1.20 DBPort=7890 |
- Para evitar erros do tipo Failed Handshake SSL recomenda-se incluir a seguinte configuração no appserver.ini:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
[SSLConfigure] TryProtocols=1 Verbose=1 |
Parametrização TOTVS Logística Cockpit
Para configurar o envio de viagens do Cockpit para o Web Service Protheus, acesse o TOTVS Logística Cockpit e execute os seguintes passos:
- Administração > Integração, selecione a pasta Fontes de Dados e clique em Inserir.
- Digite o código, a descrição e o código da base (Sugestão: PROTHEUS).
- Seção Cancelamento de Viagem Liberada
- No campo URL, digite http://<ip ou nome>:<porta>/neolog/CancelService.APW.
- No campo Tempo Máximo de Espera por Resposta, informe o timeout do serviço (recomendado 30000).
4. Seção Execução da Viagem
- No campo URL, digite: NA (Não Atribuído).
- No campo Tempo Máximo de Espera por Resposta, informe o timeout do serviço (recomendado 1000).
5. Seção Solicitação de liberação de Viagem
- No campo URL, digite http://<ip ou nome>:<porta>/neolog/PublishReleasedTrip.APW.
- No campo Tempo Máximo de Espera por Resposta, informe o timeout do serviço (recomendado 30000).
6. Seção Solicitação de Reprogramação de Viagem
- No campo URL, digite: http://<ip ou nome>:<porta>/neolog/ReprogramService.APW.
- No campo Tempo Máximo de Espera por Resposta, informe o timeout do serviço (recomendado 30000).
7. Clique em Salvar.
Parametrização TOTVS Logística OMS
- Acesse o menu Atualizações > CockPit Logístico > Parâmetros Integração (OMSXCPL1).
- Para o correto funcionamento da integração, parametrize o Protheus da seguinte forma:
Campo | Descrição | Parâmetro | Opções | Valor para Integração | Validação | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Integração Planejamento Viagem? | Indica se a integração com o planejamento de viagens do Cockpit está ativa. | MV_CPLINT | 1-Sim / 2-Não | 1-Sim | ||||||||
Integração Suspensa? | Indica se a integração com o Cockpit está temporariamente suspensa. | MV_CPLSTP | 1-Sim / 2-Não | 2-Não | ||||||||
Integrar Clientes On line? | Indica se ao incluir ou alterar um cliente no Protheus deverá efetuar a replicação automaticamente no Cockpit (Localidades). | MV_CPLCLI | 1-Sim / 2-Não | 1-Sim | ||||||||
Integrar Fornecedores On line? | Indica se ao incluir ou alterar um fornecedor no Protheus deverá efetuar a replicação automaticamente no Cockpit (Localidades). | MV_CPLFOR | 1-Sim / 2-Não | 1-Sim | ||||||||
Integrar Transportadora On line? | Indica se ao incluir ou alterar um transportador no Protheus deverá efetuar a replicação automaticamente no Cockpit. | MV_CPLTRA | 1-Sim / 2-Não | 1-Sim | ||||||||
Integrar Produtos On Line? | Indica se ao incluir ou alterar um produto no Protheus deverá efetuar a replicação automaticamente no Cockpit. | MV_CPLPRO | 1-Sim / 2-Não | 1-Sim | ||||||||
Integrar Tipos de Veículos On line? | Indica se ao incluir ou alterar um tipo de veículo no Protheus deverá efetuar a replicação automaticamente no Cockpit . | MV_CPLTPV | 1-Sim / 2-Não | 1-Sim | ||||||||
Tipo Veículo Otimização? | Quando for : 1 - Impedir: no vínculo do veículo na carga, se o usuário informar um tipo de veículo diferente do que consta na viagem do Cockpit, não permitimos, sendo apresentado um Help. 2 - Alertar: o sistema avisa que o tipo informado é diferente do tipo da viagem no Cockpit e o usuário define se permite o vinculo ou não. Qualquer valor diferente informado no parâmetro a validação não será ativada. | MV_CPLTVO | 1-Impedir 2-Alterar | 2-Alertar (padrão) | ||||||||
Endereço Web Service Planejamento Viagem | Endereço do Web Service do módulo de Planejamento do TOTVS Logística Cockpit. | MV_CPLURL | Conforme cliente. Exemplo: | Deve ser obrigatoriamente preenchido quando MV_CPLINT == "1" | ||||||||
Endereço Web Service de Autenticação | Endereço do Web Service de Autenticação do TOTVS Logística Cockpit. Este endereço fornecerá um token de autenticação que deverá ser utilizado nas requisições efetuadas ao Cockpit , quando este estiver parametrizado para solicitar autenticação. | MV_CPLUAUT | Conforme cliente. Exemplo: | |||||||||
Usuário de Autenticação do Web Service | Usuário utilizado para efetuar login no TOTVS Logística Cockpit. o para obtenção do token. | MV_USRCPL | Conforme cliente | Deve ser obrigatoriamente preenchido quando possuir URL de autenticação. | ||||||||
Senha de Autenticação do WebService | Senha do usuário utilizado para efetuar login no TOTVS Logística Cockpit para obtenção do token. | MV_PSWCPL | Conforme cliente | Deve ser obrigatoriamente preenchido quando possuir URL de autenticação. | ||||||||
Quantidade de Horas para Considerar que o Token Expirou | Indica a quantidade de horas que devem ser consideradas para que um token esteja expirado. Enquanto este limite não for atingido, o mesmo token recebido na primeira solicitação será reutilizado para envio das próximas mensagens. | MV_EXPTOK | Conforme cliente | |||||||||
Regional | Regional enviada para o TOTVS Logística Cockpit.. | MV_CPLREG | Conforme cliente | Deve ser obrigatoriamente preenchido quando MV_CPLINT == "1" | ||||||||
Embarcador | Código de um Embarcador do TOTVS Logística Cockpit. Todos os produtos integrados do TOTVS Logística OMS para o TOTVS Logística Cockpit. serão relacionados a um mesmo Embarcador no Cockpit,, pois no OMS a relação variável de produto x cliente é utilizada (opcionalmente) apenas na importação de Notas Fiscais de Cliente pelo EDI. | MV_CPLEMB | Conforme cliente | Deve ser obrigatoriamente preenchido quando MV_CPLINT == "1" | ||||||||
Categoria de Produto? | Para o TOTVS Logística Cockpit., categorias de produto são agrupamentos relevantes de produtos com características logísticas semelhantes. Com esse parâmetro é possível determinar se a categoria dos produtos integrados do TOTVS Logística OMS para o TOTVS Logística Cockpit., sendo que: 1 - Grupo Produto: será o código do grupo do produto do OMS; ou 2 - Padrão Cockpit: será informada por alteração manual, em cada produto no Cockpit. Com essa opção é necessário cadastrar as Categorias de Produtos no TOTVS Logística Cockpit. com os mesmos códigos dos Grupos de Produtos do TOTVS Logística OMS, pois não há Web Service de integração para essa tabela. | MV_CPLCAT | 1-Grupo Produto | 2=Padrão Cockpit. | ||||||||
Invólucro Padrão | Código de um Invólucro (embalagem) do TOTVS Logística Cockpit.. Todos os itens de Pedidos de Transporte recebidos do TOTVS Logística OMS no TOTVS Logística Cockpit serão associados a esse invólucro, pois não há uma entidade no OMS que corresponda exata e obrigatoriamente a esse dado do Cockpit . Recomenda-se informar um invólucro cujas medidas sejam obtidas do item do pedido (essa característica é parametrizada no TOTVS Logística Cockpit). | MV_CPLINV | Conforme cliente | |||||||||
Origem dos Dados | Define o nome do ERP que origina os dados enviados ao TOTVS Logística Cockpit. | MV_CPLIDS | Deve ser informada a fonte de dados criada dentro do Cockpit. Exemplo: | Deve ser obrigatoriamente preenchido quando MV_CPLINT == "1" | ||||||||
E-mail do Administrador | E-mail do administrador para notificações de falha de conexão. | MV_CPLMAL | Conforme cliente | |||||||||
UM a Considerar? | Este parâmetro permite indicar a unidade de medida a ser considerada na integração dos Itens dos Pedidos de Venda com o TOTVS Logística Cockpit,, onde:
| MV_CPLUMIT | 1 - 1ª UM 2 - 2ª UM | 1 - 1ª UM (padrão) | ||||||||
Geração das Cargas | Quando for: 1 - Automático, para as viagens vindas do Cicjoutm; o OMS gera a carga automaticamente. 2 - Manual,: para as viagens deve ser gerada manualmente a carga.
| MV_CPLAUT | 1-Automático 2-Manual | 2-Manual (padrão) | ||||||||
Liberação automática da viagem? | O uso deste parâmetro ocorre somente para o TOTVS Logística OMS. Quando habilitado, ao realizar a integração da viagem vinda do TOTVS Logística Cockpit, o sistema realizará o envio da liberação de viagens de forma automática. | MV_CPLLVA | 1-Sim / 2-Não | 2-Não (padrão) | ||||||||
Permite enviar quantidades não liberadas para o Cockpit? | Ao ativar esse parâmetro o Protheus permitirá a integração de pedidos sem liberação de estoque com o TOTVS Logística Cockpit. Com isso, todas as informações serão integradas com base na tabela SC6 (Itens do Pedido de Venda). | MV_CPLPELB | 1-Sim / 2-Não | 2-Não (padrão) | ||||||||
Permite estorno automático da carga ao cancelar ou reprogramar viagem? | Indica se será permitido efetuar o estorno automático da carga ao cancelar ou reprogramar uma viagem, ou seja, quando o usuário do TOTVS Logística Cockpit solicitar o cancelamento / reprogramação da viagem, caso exista carga montada no TOTVS Logística OMS esta será estornada.
| MV_CPLESCG | 1-Sim / 2-Não | 2-Não (padrão) | ||||||||
Atualiza viagem no Cockpit ao cancelar a integração do pedido? | Indica se será atualizada a viagem no Cockpit ao cancelar a integração no OMS, ou seja, se esse parâmetro estiver definido como '1-sim', ao cancelar um item integrado que já encontra-se em uma viagem, será solicitada a alteração da viagem no Cockpit para que reflita os ajustes sofridos no OMS. Caso esteja definido como '2-não', a viagem permanecerá intacta, sendo ajustada apenas a carga e os status no OMS.
| MV_CPLATVG | 1-Sim / 2-Não | 2-Não (padrão) | ||||||||
Tempo máximo (em segundos) de inatividade permitida para a recepção da resposta (Timeout). | Indica o tempo máximo que o TOTVS Logística OMS aguardará por uma resposta do TOTVS Cockpit Logístico. Válido para todos as as mensagens. | MV_CPLTIME | 30 (padrão) | |||||||||
Integração Monitoramento? | Indica se a integração com o monitoramento do Cockpit está ativa. Mais detalhes em: Integração OMS Protheus x Cockpit Logístico Neolog (Monitoramento) | MV_CPLMON | 1-Sim / 2-Não | |||||||||
Endereço WebService Monitoramento | Endereço do Web Service de Monitoramento do TOTVS Logística Cockpit. É necessário informar somente quando a integração com o monitoramento encontra-se ativa. Mais detalhes em: Integração OMS Protheus x Cockpit Logístico Neolog (Monitoramento) | MV_CPLURL | Conforme cliente. |
Parametrização Adicional Integração
- Algumas parametrizações da integração devem ser realizadas no arquivo de configuração do do servidor Protheus (Appserver.ini), pois são utilizadas antes de iniciar qualquer processo de conexão com o SGDB.
- As configurações abaixo devem ser incluídas no arquivo na seção [NEOLOG]:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
;Configuração integração com o Cockpit Logístico [NEOLOG] DefaultCompany=<empresa> Debug=1 DebugPath=<caminho relativo> ;logs\neolog |
Âncora | ||||
---|---|---|---|---|
|
Onde:
- DefaultCompany:
Empresa padrão para integração entre o OMS Protheus e o TOTVS Logística Cockpit, Se não for informado não será considerado, sendo sempre enviada nas mensagens nos campos que identificam os códigos, além do próprio código, a concatenação da empresa e do campo Filial do respectivo cadastro/processo. Caso esteja parametrizada, será enviada apenas a concatenação do código com campo Filial do respectivo cadastro/processo. Clique aqui para obter mais detalhes. - Debug:
Indicador de que o processo de gravação dos arquivos XML das mensagens trocadas entre o OMS Protheus e o Cockpit está ativo. Caso esteja com o valor 1, será considerado ativo, caso contrário será considerado inativo. Caso não exista esta configuração será assumido que o Debug está ativo por padrão. DebugPath:
Caminho onde deverão ser gravados os arquivos de log do XML. Este caminho deve ser sempre relativo a pasta RootPath, pois o processo de integração pode rodar em modo JOB e desta forma, não tem acesso a diretórios locais da máquina. Caso não esteja parametrizado, será considerado o caminho padrão system/neolog.
Informações | ||||
---|---|---|---|---|
| ||||
Deverá ser parametrizado via algum processo do sistema operacional do servidor, uma rotina que efetue exclusão programada dos arquivos log da pasta definida no DebugPath, deixando apenas os mais atuais. |
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Controle de Versão
O grupo TOTVS, representado por suas marcas, administrará as demandas de evolução dos layouts 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.
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Suporte
O suporte aos recursos da Integração será de responsabilidade de todas as linhas, sendo assim, as equipes de suporte dos produtos BackOffice Protheus estarão aptas a efetuar a primeira análise e, quando necessário, repassar para a equipe mais adequada em cada caso.
Informações | ||||
---|---|---|---|---|
| ||||
Este modelo de suporte está sendo revisado pela TOTVS. |
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Mensagens
Método | Descrição | Origem | Destino | XSD |
---|---|---|---|---|
Cadastros | Empresas/Filiais | Protheus | Cockpit Logístico | LocalityAcquisitionService |
Cliente | Protheus | Cockpit Logístico | LocalityAcquisitionService | |
Fornecedor | Protheus | Cockpit Logístico | LocalityAcquisitionService ou CarrierAcquisitionService | |
Transportadora | Protheus | Cockpit Logístico | CarrierAcquisitionService | |
Produtos | Protheus | Cockpit Logístico | ProductAcquisitionService | |
Tipo de Veículo | SIGAOMS | Cockpit Logístico | VehicleAcquisitionService | |
Processos | Pedido de Vendas | SIGAOMS | Cockpit Logístico | OrderAcquisitionService |
Cancelar Pedido de Vendas | SIGAOMS | Cockpit Logístico | OrderAcquisitionService | |
Publicar Viagens | Cockpit Logístico | SIGAOMS | PublishReleasedTrip | |
Liberar Viagens | SIGAOMS | Cockpit Logístico | UnblockReleasedTripAcquisitionService | |
Cancelar Viagens | Cockpit Logístico | SIGAOMS | CancelService | |
Reprogramar Viagens | Cockpit Logístico | SIGAOMS | ReprogramService |
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Fluxo das Informações
Os cadastros devem ser realizados no OMS Protheus e integrados ao TOTVS Logística Cockpit.
A ativação da integração, no entanto, não impede a inclusão, alteração e exclusão de registros no Cockpit, mas esse procedimento não é recomendado, pois as operações realizadas sobre os cadastros no Cockpit não são replicadas para os respectivos cadastros no Protheus.
Apenas as operações de inclusão e alteração são consideradas na integração e são efetuadas sempre que ocorrerem, desde que parametrizadas para serem on-line.
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 Protheus.
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 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.
Entidade (s) Protheus | Código (Alías) | Web Service | Método | Entidade Cockpit | Observações |
---|---|---|---|---|---|
Filial | SM0 | LocalityAcquisitionService | updateLocalities | Localidade | As filiais assumem o papel de localidade quando são locais de carga ou descarga. Quando MV_CPLEX == "2" não integrar a filial cuja unidade de federação não faça parte da lista de unidades de federação do Brasil. |
Cliente | SA1 | LocalityAcquisitionService | updateLocalities | Localidade | Quando MV_CPLEX == "2" não integrar cliente com país informado diferente de 105 (Brasil). |
Fornecedor | SA2 | LocalityAcquisitionService ou CarrierAcquisitionService | updateLocalities ou updateCarriers | Localidade | Os fornecedores serão integrados como localidade quando atender os seguintes requisitos:
Caso contrário, o fornecedor será integrado como transportadora. |
Transportadora | SA4 | CarrierAcquisitionService | updateCarriers | Transportador | |
Produto | SB1 e SB5 | ProductAcquisitionService | updateProducts | Produto | |
Tipo de Veículo | DUT | VehicleAcquisitionService | updateVehicles | Veículo | |
Pedido de Venda | SC5 / SC6 / SC9 / SB1 / SB5 | OrderAcquisitionService | createOrders | Pedidos de Transporte | O pedido de venda deve possuir, obrigatoriamente, montagem de carga. |
Filiais
Tipo de Fluxo: Protheus > Cockpit Logístico
Mensagem: LocalityAcquisitionService
O envio de empresas/filiais não é automático, ou seja, ao cadastrar no Protheus uma nova empresa/filial, para que essas informações sejam replicadas para o Cockpit Logístico é necessário executar a carga de dados disponível em: SIGAOMS > Atualizações > Cockpit Logístico > Carga de dados, assinalando a opção SM0 - Cadastro de Filiais.
Os dados serão enviados ao Cockpit Logístico por meio do método updateLocalities.
Esses dados, por sua vez, serão salvos como localidade e poderão ser visualizados no CPL em: Cadastro > Localidades.
Clientes
- Tipo de Fluxo: Protheus > Cockpit Logístico
- Mensagem: LocalityAcquisitionService
- Ao cadastrar um cliente no Protheus, quando a integração estiver ativa os dados serão enviados ao Cockpit Logístico por meio do método updateLocalities.
- Esses dados, por sua vez, serão salvos como localidade e poderão ser visualizados no CPL em: Cadastro > Localidades.
Fornecedores
- Tipo de Fluxo: Protheus > Cockpit Logístico
- Mensagem: LocalityAcquisitionService ou CarrierAcquisitionService
- Ao cadastrar um fornecedor no Protheus, quando a integração estiver ativa os dados serão enviados ao Cockpit Logístico por meio do método updateLocalities (conforme parametrização do cadastro SA2, de acordo com o comentado acima).
- Esses dados, por sua vez, serão salvos como localidade e poderão ser visualizados no CPL em: Cadastro > Localidades.
Transportadores
- Tipo de Fluxo: Protheus > Cockpit Logístico
- Mensagem: CarrierAcquisitionService
- Ao cadastrar um transportador no Protheus, quando a integração estiver ativa os dados serão enviados ao Cockpit Logístico por meio do método CarrierAcquisitionService.
- Esses dados, por sua vez, serão salvos como transportadoras e poderão ser visualizados no CPL em: Cadastro > Transportadoras.
Produtos
- Tipo de Fluxo: Protheus > Cockpit Logístico
- Mensagem: ProductAcquisitionService
- Ao cadastrar um produto no Protheus, quando a integração estiver ativa os dados serão enviados ao Cockpit Logístico por meio do método ProductAcquisitionService.
- Esses dados, por sua vez, serão salvos como produtos simples e poderão ser visualizados no CPL em: Cadastro > Produtos Simples.
Tipos de Veículo
- Tipo de Fluxo: Protheus > Cockpit Logístico
- Mensagem: VehicleAcquisitionService
- Ao cadastrar um tipo de veículono Protheus, quando a integração estiver ativa os dados serão enviados ao Cockpit Logístico por meio do método VehicleAcquisitionService.
- Esses dados, por sua vez, serão salvos como veículos e poderão ser visualizados no CPL em: Cadastro > Veículos.
Pedidos de Venda
- Tipo de Fluxo: Protheus > Cockpit Logístico
- Mensagem: OrderAcquisitionService
ENVIO DE PEDIDOS
Ao cadastrar um Pedido de venda no Protheus, quando a integração estiver ativa os dados são enviados ao Cockpit Logístico por meio do método OrderAcquisitionService.
Esses dados, por sua vez, geram no Cockpit Logístico pedidos de transporte e poderão ser visualizados em: Programação > Analise; deve-se filtrar os dados da cesta geral.
No OMS foi disponibilizado um programa (OMSXCPL6) que permite selecionar uma lista com os pedidos de venda para envio ao Cockpit Logístico, sendo que estes pedidos são filtrados conforme as seguintes premissas:
- O pedido deve montar carga (C5_TPCARGA).
- O pedido não deve encontrar-se faturado (C9_NFISCAL).
- O pedido deve respeitar o range de dados dos filtros da rotina.
- Se o sistema estiver parametrizado para não permitir o envio de pedidos sem liberação (MV_CPLPELB = '2'), os pedidos retornados não devem possuir bloqueios de estoque (C9_BLEST) e crédito (C9_BLCRED).
- Se o sistema estiver parametrizado para permitir o envio de pedido sem liberação (MV_CPLPELB = '1'), será permitido o envio de toda a quantidade do pedido (C6_QTDVEN), mesmo existam bloqueios.
Após os pedidos serem filtrados, a rotina de Envio de Pedido de Venda ainda permite alterar as quantidades para a integração pelo botão Alterar Quantidade da Integração - F10. Por intermédio desse botão é possível informar quais quantidades do pedido serão integradas, sendo que cada integração do pedido gera um sequência de integração diferente.
Exemplo:
Empresa | Filial | Seq. Integração | Pedido | Item | Produto | Qtd, | |
---|---|---|---|---|---|---|---|
03 | 01 | 000001 | 000096 | 01 | 001 | 10 | Sequência de envio 01 |
03 | 02 | 000002 | 000096 | 01 | 001 | 5 | Sequência de envio 02 |
Sendo assim, a identificação do pedido será sempre a combinação da empresa+filial+sequência de integração+pedido. Exemplo: 0301000001000096.
Ao efetivar o envio, as seguintes tabelas sofrem alterações/inclusões:
- DK3 - Tabela de sequência de integração do pedido:
Gravará a quantidade enviada ao Cockpit, incluindo as informações de pedido e a sequência de integração.
As sequências de integração que encontram-se efetivamente integradas com o Cockpit possuem o status (DK3_STATUS) 1-Integrado. - SC6 - Itens do pedido de venda:
Gravará o status (C6_INTROT) 2-Integrado, para pedidos totalmente integrados e 4-Integrado Parcial, para pedidos que ainda possuem quantidades a serem integradas.
CANCELAMENTO DE PEDIDOS
O cancelamento de pedidos apenas ocorre pela rotina de Envio de Pedidos de Venda (OMSXCPL6), na qual estão disponíveis as seguintes opções:
- Desatualizar pedido posicionado:
Permite selecionar a sequência que terá a integração cancelada. Também permite efetuar o cancelamento parcial de uma sequência de integração pela digitação da Qtd. Cancelamento. Desatualizar pedido(s) selecionado(s):
Permite efetuar o estorno de todas as sequências de integração, de todos os pedidos selecionados no browse.Informações icon false title IMPORTANTE! Caso o parâmetro MV_CPLATVG (Atualiza viagem no Cockpit ao cancelar a integração do pedido?) estiver ativo, em conjunto com as devidas parametrizações do sistema Neolog, todas as viagens das sequências de integração selecionadas serão canceladas automaticamente. Por este motivo, recomenda-se cautela ao utilizar a opção de cancelamento de todos os pedidos selecionados.
Ao efetivar o cancelamento, as seguintes tabelas sofrerão alterações/inclusões:
- DK3 - Tabela de sequência de integração do pedido:
Alterará o status da sequência de integração (DK3_STATUS) para 3-Cancelado Parcial, quando apenas parte da sequência é estornada, ou então para 2-Cancelado, quando toda a quantidade da sequência é cancelada do CPL. - SC6 - Itens do pedido de venda:
Gravará o status (C6_INTROT) igual a 1-Não Integrado, quando apenas parte do item teve a integração cancelada, ou então, gravará o status igual a 4-Integrado Parcial, quando parte da quantidade do item permanecerá integrada.
Viagens
- Tipo de Fluxo: Cockpit Logístico > Protheus
- Mensagem: ReleaseTripPublishRequestService
- O Cockpit Logístico envia as viagens geradas para o OMS para a formação das cargas, sendo que o envio é realizado pela chamada do Web Service ReleaseTripPublishRequestService. Para isso, foi disponibilizada a rotina Monitor de Cargas (OMSXCPL7), que será responsável pelo gerenciamento das cargas em questão.
- Ao receber uma viagem com o campo Placa (DK0_PLACA) preenchido é realizada uma busca pela placa no cadastro de veículos (DA3). Se encontrado algum registro, o veículo será associado à carga. Para que isso ocorra é essencial que a placa recebida do CPL seja idênticaa placa cadastrada no Protheus.
- Ao receber a viagem no OMS serão gravadas as tabelas DK0 (Viagem CPL) e DK1(Itens da Viagem CPL) com suas respectivas quantidades recebidas do Cockpit Logístico e, além disso, é registrado o código da viagem na tabela auxiliar de Sequência de Integração CPL (DK3), quando esta existir, mais especificamente no campo DK3_VIAGID.
- Já no processo de geração da carga, que pode ocorrer de forma automática no momento da geração da viagem ou posteriormente via rotina Monitor de Cargas (OMSXCPL7), serão avaliadas as quantidades liberadas do Pedido (C9_QTDLIB) para a gravação do código da carga, visto que a rotina de Envio de Pedidos de Venda (OMSXCPL6) permite a integração de quantidades não liberadas e a montagem da carga necessita, obrigatoriamente, de quantidades liberadas do Pedido.
- No próximo tópico são listadas as correspondências entre os campos de cada entidade e a respectiva tag XML da mensagem de integração.
Informações | ||||
---|---|---|---|---|
| ||||
|
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Detalhamento das Mensagens
Mensagem de Integração dos Registros do Cadastro de Filiais
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações | |||||||
---|---|---|---|---|---|---|---|---|---|---|
regionSourceId | MV_CPLREG | Regional | ||||||||
identifier | "FIL-" + FWCodFil() | Código | O envio da concatenação de empresa + filial permanece condicionado ao fato de não existir uma empresa padrão para integração do OMS com o Cockpit Logístico. Esta empresa padrão deve ser informada no arquivo de configuração do servidor Protheus (Appserver.ini) na seção [NEOLOG] na chave DefaultCompany.
| |||||||
name | M0_FILIAL | Nome | ||||||||
description | M0_NOMECOM | Descrição | ||||||||
addressStreet | M0_ENDENT | Endereço | Obter o conteúdo utilizando a função LjFiGetEnd sobre o campo M0_ENDENT | |||||||
addressNumber | Nº | Obter o conteúdo utilizando a função LjFiGetEnd sobre o campo M0_ENDENT | ||||||||
addressComplement | M0_COMPENT | Complemento | ||||||||
addressDistrict | M0_BAIRENT | Bairro | ||||||||
addressZipCode | M0_CEPENT | CEP | ||||||||
addressCity | M0_CIDENT | Cidade | ||||||||
addressStateAcronym | M0_ESTENT | UF | Quando a UF pertencer a lista das UFs brasileiras será considerado a mesma, caso contrário "EX". | |||||||
addressCountryAcronym | "BR" ou "EX" | País | Quando a UF pertencer a lista das UFs brasileiras,será considerado "BR", caso contrário "EX". | |||||||
logisticRoleId | "1" | Tipo | 1=Ambos |
Mensagem de Integração dos Registros do Cadastro de Clientes
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações |
---|---|---|---|
regionSourceId | MV_CPLREG | Regional | |
identifier | "CLI-" + RTrim(SA1->A1_COD) + "-" + RTrim(SA1->A1_LOJA) + OMSXGETFIL("SA1") ² | Código | |
name | A1_NREDUZ | Nome | |
description | A1_NOME | Descrição | |
addressStreet | A1_END | Endereço | Obter o conteúdo usando a função LjFiGetEnd sobre o campo A1_END |
addressNumber | Nº | Obter o conteúdo usando a função LjFiGetEnd sobre o campo A1_END | |
addressComplement | A1_COMPLEM | Complemento | |
addressDistrict | A1_BAIRRO | Bairro | |
addressZipCode | A1_CEP | CEP | |
addressCity | CC2_MUN | Cidade | Acessa a tabela CC2 através dos campos A1_ESTE e A1_CODMUNE. |
addressStateAcronym | A1_EST | UF | Quando a UF pertencer a lista das UFs brasileiras será considerada a mesma, caso contrário "EX". |
addressCountryAcronym | "BR" ou YA_SIGLA | País | Acessar a tabela SYA pelo campo A1_PAIS. Quando A1_PAIS estiver em branco ou igual a 105, atribuir "BR". |
logisticRoleId | "2" | Tipo | 2=Destino (por orientação da Neolog para gerar menos combinações de rota). |
Mensagem de Integração dos Registros do Cadastro de Fornecedor Como Localidade
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações |
---|---|---|---|
regionSourceId | MV_CPLREG | Regional | |
identifier | "FOR-" + RTrim(SA2->A2_COD) + "-" + RTrim(SA2->A2_LOJA) + OMSXGETFIL("SA2") ² | Código | Será adicionada a sigla "FOR" para composição do código para identificação que se trata de um fornecedor para uso como uma localidade, devido aos pedidos de beneficiamento do OMS. |
name | A2_NREDUZ | Nome | |
description | A2_NOME | Descrição | |
addressStreet | A2_END | Endereço | Obter o conteúdo usando a função LjFiGetEnd sobre o campo A2_END |
addressNumber | N° | Obter o conteúdo usando a função LjFiGetEnd sobre o campo A2_END | |
addressComplement | A2_COMPLEM | Complemento | |
addressDistrict | A2_BAIRRO | Bairro | |
addressZipCode | A2_CEP | CEP | |
addressCity | CC2_MUN | Cidade | Acessar a tabela CC2 pelo campo A2_MUN. |
addressStateAcronym | A2_EST | UF | Quando a UF pertencer a lista das UFs brasileiras será considerada a mesma, caso contrário "EX". |
addressCountryAcronym | "BR" ou YA_SIGLA | País | Acessar a tabela SYA pelo campo A2_PAIS. Quando A2_PAIS estiver em branco ou igual a 105, atribuir "BR". |
logisticRoleId | "2" | Tipo | 2=Destino (por orientação da Neolog para gerar menos combinações de rota). |
Mensagem de Integração dos Registros do Cadastro de Fornecedor Como Transportadora
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações |
---|---|---|---|
regionSourceId | MV_CPLREG | Regional | |
identifier | A2_COD + OMSXGETFIL("SA2") ² | Código | |
name | A2_NREDUZ | Nome da Transportadora | |
description | A2_NOME | Descrição da Transportadora | |
A2_EMAIL | E-mail da Transportadora |
Mensagem de Integração dos registros do cadastro de Transportadora
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações |
---|---|---|---|
regionSourceId | MV_CPLREG | Regional | |
identifier | A4_COD + OMSXGETFIL("SA4") ² | Código | |
name | A4_NREDUZ | Nome da Transportadora | |
description | A4_NOME | Descrição da Transportadora | |
A4_EMAIL | E-mail da Transportadora |
Mensagem de Integração dos Registros do Cadastro de Tipos de Veículos
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações |
---|---|---|---|
identifier | DUT_TIPVEI+ OMSXGETFIL("DUT") ² | Código | |
name | DUT_DESCRI | Nome | |
description | DUT_DESCRI | Descrição | |
priority | 0 | Prioridade | Valor fixo |
similarity | 0 | Similaridade | Valor fixo |
Mensagem de Integração dos Registros do Cadastro de Produto
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações |
---|---|---|---|
regionSourceId | MV_CPLREG | Regional | |
shipperId | MV_CPLEMB | Embarcador | |
identifier | B1_COD + OMSXGETFIL("SB1") ² | Código | |
description | B1_DESC | Descrição | |
productCategoryId | B1_GRUPO | Categoria | |
height | B5_ALTURLC | Altura | Pasta Logística |
length | B5_LARGLC | Comprimento | Pasta Logística |
width | B5_COMPRLC | Largura | Pasta Logística |
weight | B1_PESO ou B1_PESBRU | Peso | 1. Quando o parâmetro MV_PESOCAR estiver como "L" será enviado o campo B1_PESO, caso contrário B1_PESBRU. 2. Quando o parâmetro MV_CPLUMIT estiver informado para enviar a primeira unidade de medida, o peso enviado será: Peso → Campo de Peso Protheus * Fator de Conversão para KG. 3. Quando o parâmetro MV_CPLUMIT estiver informado para enviar a segunda unidade de medida, o peso enviado será: Se o tipo de conversão (B1_TIPCONV) for Divisor: Peso → (Campo de Peso Protheus * Fator de Conversão para KG) * Fator de Conversão (B1_CONV) Se o tipo de conversão (B1_TIPCONV) for Multiplicador: Peso → (Campo de Peso Protheus * Fator de Conversão para KG) / Fator de Conversão (B1_CONV) |
shape | "1" | Forma | 1=Caixa |
Mensagem de Integração dos Registros do Cadastro de Pedido de Venda
Tag XML | Campo Protheus | Campo Cockpit Logístico | Observações |
---|---|---|---|
regionSourceId | MV_CPLREG | Regional | |
integrationDataSource | MV_CPLIDS | Integração | |
orderTypeSourceId | Nil | Tipo do Pedido | TAG não enviada |
identifier | RTrim( OMSXGETFIL("SC5",.F.)² ) + "-" +RTrim(SC5->C5_NUM) | ||
code | RTrim( OMSXGETFIL("SC5",.F.)² ) + "-" +RTrim(SC5->C5_NUM) | Código do Ped. Transp. | |
priority | "0" | Prioridade | |
erpCreationDt | Date() | Data Corrente | Data de criação do pedido. |
pickupStart | ( C6_DATAEMB ou Data Atual ) + hora fixa "00:01:00" para determinar o início do dia. | Janela Embarque | |
deliveryEnd | ( C5_FECENT ou C6_ENTREG ou Data Atual ) + hora fixa "23:59:59" para determinar o fim do dia. | Janela Entrega | |
orderId | RTrim( OMSXGETFIL("SC5",.F.)² ) + "-" +RTrim(SC5->C5_NUM) | ID do Pedido de Transporte | |
sourceId | orderId + "-" + C6_ITEM | Código do Item Ped. Transp. | Concatenação do campo anterior com o item de sequência do pedido. |
productId | C6_PRODUTO + OMSXGETFIL("SB1") ² | Produto | Conforme o código enviado na mensagem de produtos. |
quantity | C9_QTDLIB ou C9_QTDLIB2 | Quantidade total de unid. | Se o produto possui controle a granel, ou seja, B5_TIPUNIT igual a 0 (zero), a quantidade enviada será fixada como 1 (um). Já para produtos com controle unitário a regra aplicada será: Depende do parâmetro MV_CPLUMIT. Quando estiver parametrizado para enviar na 2ª UM e o produto possui um fator de conversão (B1_CONV) maior que 0 (zero) será enviado o valor do campo C9_QTDLIB2. Caso contrário, será enviado sempre o campo C9_QTDLIB . |
price | C6_VALOR | Valor Total de unid. De prod. | |
originId | "FIL-" + FWCodFil() ou "FIL-" + FWGrpCompany() + "-" + FWCodFil() | Origem Inicial | Conforme o código enviado na mensagem de localidades para os registros de filiais. |
destinationId | "FOR-" + RTrim(SC5->C5_CLIENT)+ "-" + RTrim(SC5->C5_LOJAENT) + OMSXGETFIL("SA2") ² | ID da Localidade de destino do Pedido | Pode ser enviado o código do cliente ou do fornecedor conforme enviado na mensagem de localidades. Para pedidos do tipo B ou D (C5_TIPO) será enviado o código do fornecedor, para os demais será enviado o código do cliente. |
quantityInShipmentUnits | C9_QTDLIB ou C9_QTDLIB2 | Se o produto possuir controle a granel, ou seja, B5_TIPUNIT igual a 0 (zero), a quantidade enviada será fixada como 1 (um). Já para produtos com controle unitário a regra aplicada será: Depende do parâmetro MV_CPLUMIT Quando estiver parametrizado para enviar na 2ª UM e o produto possui um fator de conversão (B1_CONV) maior que zero, será enviado o valor do campo C9_QTDLIB2, caso contrário será enviado sempre o campo C9_QTDLIB . | |
height | B5_ALTURLC | Quando houver relacionamento com o B1_PRODUTO, quando vazio será enviado por padrão o contéudo = 0.001 | |
width | B5_LARGLC | Quando vazio, por padrão o contéudo enviado será = 0.001 | |
length | B5_COMPRLC | Quando vazio, por padrão o contéudo enviado será = 0.001 | |
weight | B1_PESO ou B1_PESBRU | Peso unitário ou, para produtos a granel, o peso total | 1. Quando o parâmetro MV_CPLUMIT estiver informado para enviar a primeira unidade de medida, o peso enviado será: Peso → Campo de Peso Protheus * Fator de Conversão para KG. 2. Quando o parâmetro MV_CPLUMIT estiver informado para enviar a segunda unidade de medida, o peso enviado será: Se o tipo de conversão (B1_TIPCONV) for Divisor: Peso → (Campo de Peso Protheus * Fator de Conversão para KG) * Fator de Conversão (B1_CONV) Se o tipo de conversão (B1_TIPCONV) for Multiplicador: Peso → (Campo de Peso Protheus * Fator de Conversão para KG) / Fator de Conversão (B1_CONV) Importante: caso o produto possuir controle a granel, ou seja, B5_TIPUNIT igual a zero o peso enviado será o peso TOTAL do produto e não somente o peso unitário. |
shipperId | MV_CPLEMB | ID do Embarcador | |
modal | "1" | ID do modal do pedido de transporte | Enviar valor fixo 1 - Rodoviário. |
incoterm | C5_TPFRETE | Sendo o conteúdo C = 1 e F = 0 para o CPL; quando o campo for vazio passaremos sempre 1. | |
shipmentUnitWrapperCode | MV_CPLINV | Invólucro de embarque |
Âncora | ||||
---|---|---|---|---|
|
² Para o combinação da filial para os cadastros serão aplicadas as seguintes regras:
- Utilizando a configuração de gestão de empresas e esta possua em sua máscara a empresa:
- Será enviado apenas o retorno da função xFilial( <TAB> ), onde TAB representa a tabela do Protheus.
- Utilizando a configuração de gestão de empresas, sem possuir a empresa na máscara, ou não utilizando a configuração de gestão de empresas:
- Caso exista uma empresa padrão (DefaultCompany) configurada na seção [NEOLOG] do INI do servidor de aplicação será enviado apenas o retorno da função xFilial( <TAB> ), onde TAB representa a tabela do Protheus.
- Não existindo a empresa padrão será enviada a concatenação da função FWGrpCompany() + xFilial( <TAB> ), onde TAB representa a tabela do Protheus.
Sempre o retorno não for branco, o retorno será precedido por um "-" (hífen), caso a função não receba o valor .F. no segundo parâmetro.
* Poderá ocorrer deste valor permanecer em branco, em função de algumas parametrizações e configuração da tabela ser compartilhada.
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Configurações Complementares
Configuração Para Envio Automático de Pedidos de Venda (Schedule)
- Os pedidos de venda gerados no módulo OMS Protheus podem ser enviados automaticamente ao TOTVS Logística Cockpit. Para isso, deve ser configurada a execução automática (Schedule) da rotina Envio de Pedidos de Venda (OMSXCPL6).
- Esta configuração pode ser executada conforme descrito em Schedule Protheus.
- No arquivo Appserver.ini é necessário inserir a seguinte configuração:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[OnStart] jobs=FWSCHDMANAG,FWSCHDQUEUE RefreshRate=60 [FWSCHDMANAG] Main=FWSCHDMANAG Environment=<ambiente> [FWSCHDQUEUE] Main=FWSCHDQUEUE Environment=<ambiente> |
Cadastro de Fator de Conversão Para KG (OMSA140)
- O Cockpit possuí como característica o tratamento de peso apenas em KG, portanto, para que o OMS Protheus envie o valor convertido é necessário cadastrar as unidades de medidas utilizadas e associar seu valor em KG.
- Para realizar esse cadastro acesse SIGAOMS > Atualizações > Cockpit Logístico > Fator de Conversão, sendo necessário realizar esse cadastro para todas as unidades de medidas dos produtos que serão utilizadas na integração, cuja relação de peso não seja em KG.
- Exemplo de cadastro:
- Unidade de Medida (DK2_CODUM) → TL (tonelada), Peso em KG (DK2_PESOKG) → 1000. Isso significa que a cada uma tonelada são 1000 kg.
Informações | ||||
---|---|---|---|---|
| ||||
Uma explicação detalhada sobre o tipo e o fator de conversão pode ser obtida em: Explicação 1ª e 2ª UM.pdf |
Modo de Compartilhamento Tabelas Viagem x Carga
- Para ambientes que utilizam diversas filiais e/ou empresas é necessário garantir que as tabelas de viagem DK0 e DK1 possuam a mesma configuração de modo de acesso das tabelas de carga DAK e DAI.
- Exemplo: se as tabelas de carga estiverem configuradas com os modos de acesso Ac. Filial = 2-Exclusivo, Ac. Unidade = 2-Exclusivo, Ac. Empresa = 2-Exclusivo, logo, as tabelas de viagem deverão possuir configuração idêntica. Esse detalhe é imprescindível para garantir a adequada ligação entre a viagem do Cockpit Logístico e a carga gerada pelo OMS.
- Esse ajuste deve ser realizado por meio do configurador do Protheus (SIGACFG).
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Funcionalidades Não Contempladas
Informações | ||||
---|---|---|---|---|
| ||||
A integração entre o OMS Protheus e o TOTVS Logística Cockpit apresenta as seguintes restrições:
|
¹ É possível que uma viagem no Cockpit contenha pedidos de diferentes empresas/filiais, para que este processo seja refletido no lado Protheus, é necessário que o Protheus esteja configurado para ser utilizado no modelo de Gestão de Empresas, parametrizando o OMS Protheus para trabalhar no conceito de operador logístico, onde uma empresa/filial fica como centralizadora das informações. Caso contrário poderá ocorrer de uma viagem que possuir pedidos de diferentes empresas/filiais seja quebrada em várias no Protheus, gravando cada parte da respectiva viagem, na empresa/filial dos pedidos, ou seja, uma viagem do Cockpit poderá gerar uma ou mais cargas no OMS Protheus, não havendo nenhuma interface que permita ao usuário consultar este relacionamento.
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento)Informações Complementares
Por uma questão técnica, em função de poderem ser enviadas informações de diversas empresas/filiais do OMS Protheus para o TOTVS Logística Cockpit, porém, este trata tudo como uma única origem de dados, dependendo de configurações poderá gerar viagens com dados de diferentes empresas/filiais.
Sendo assim foi necessário criar no Protheus, de forma fixa, uma tabela que grave este relacionamento das viagens do Cockpit com as empresas/filiais do OMS Protheus. Esta tabela será criada automaticamente na primeira integração de viagem recebida.
A estrutura desta tabela (VIAGEM_OMSxCPL) é apresentada a seguir:
Nome | Tipo | Tamanho | Observações |
---|---|---|---|
EMPRESA | Caractere | Len(FWGrpCompany()) | Padrão 2 |
FILIAL | Caractere | FwFilialSize() | |
CPLMSGID | Numérico | 10 | Identificador da Mensagem do Cockpit. |
VIAGEM | Caractere | TamSx3("DK0_VIAGID")[1] | Identificador da Viagem do Cockpit. |
RECNOVIAG | Numérico | 10 | Recno() da Viagem do Protheus DK0->(Recno()) |
DATAINT | Caractere | 8 | Data da Integração - Date() |
HORAINT | Caractere | 8 | Hora da Integração - Time() |
Não existe uma interface de consulta para esta tabela.
Ela será utilizada em processos internos para busca da empresa/filial em que a viagem está gravada para as solicitações de reprogramação e cancelamento recebidas do TOTVS Logística Cockpit.
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento) Quebras de Pedidos
A integração encontra-se preparada para tratar a realização de quebras no pedido no TOTVS Logística Cockpit, sendo que as quebras de pedidos no Cockpit ocorrem quando um pedido precisa ser dividido em mais de uma viagem e cada quebra gera um identificador único dentro do sistema.
O Protheus é informado dessas quebras no momento do recebimento da viagem, mais especificamente no XML de Publicação de Viagem (publishReleasedTrip)na tag orderBreakParts conforme o exemplo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Body> <ns2:publishReleasedTrip xmlns:ns2="urn:neolog:cockpit:TripReleaseRequestPublishingService"> <messageId>10082</messageId> <orderBreakParts> <orderBreakPart> <regionSourceId>DEFAULT</regionSourceId> <orderBreakPartId>81</orderBreakPartId> <orderSourceId>0101-000002-PED169</orderSourceId> <orderTypeSourceId>Padrao</orderTypeSourceId> <orderItemSourceId>0101-000002-PED169-01</orderItemSourceId> <loadId>1097</loadId> <shipmentUnitId>1</shipmentUnitId> <quantShipmUnits>10.0</quantShipmUnits> <quantProdUnits>10.0</quantProdUnits> </orderBreakPart> </orderBreakParts> <tripReleaseRequests> <tripReleaseRequest> <regionSourceId>DEFAULT</regionSourceId> <identifier>50316</identifier> <freightValue>0.0</freightValue> <carrierId>DEF</carrierId> <vehicleId>Padrao</vehicleId> <vehicleDescription>Veículo Padrão</vehicleDescription> <loads> <load> <identifier>1097</identifier> <serviceTypeId>1</serviceTypeId> <serviceTypeDescription>FULL_TRUCK_LOAD</serviceTypeDescription> <loadMode>2</loadMode> <modal>1</modal> <distance>460.92184</distance> <freight>0.0</freight> <stops> <stop> <identifier>1234</identifier> <localitySourceId>FIL-01-01</localitySourceId> <transportZoneId>Agrupador Padrão.ZT</transportZoneId> <transportZoneDescription>Agrupador Padrão.ZT</transportZoneDescription> <sequenceOnLoad>1</sequenceOnLoad> <subStops> <subStop> <identifier>1288</identifier> <arrivalTime>2019-07-15T00:01:00.000-03:00</arrivalTime> <startServiceTime>2019-07-15T00:01:00.000-03:00</startServiceTime> <endServiceTime>2019-07-15T00:16:00.000-03:00</endServiceTime> <departureTime>2019-07-15T00:16:00.000-03:00</departureTime> <loadedShipmentUnits> <shipmentUnit> <identifier>1494</identifier> <shipmentUnitCategoryId>1</shipmentUnitCategoryId> <shipmentUnitDescription>Fardo</shipmentUnitDescription> <shipmentUnitQty>10.0</shipmentUnitQty> <weight>10.0</weight> <volume>0.3025</volume> <length>0.55</length> <width>0.25</width> <height>0.22</height> <palletHeightTotal>0.0</palletHeightTotal> <deliveryUnitList> <deliveryUnit> <identifier>1494</identifier> <orderSourceId>0101-000002-PED169</orderSourceId> <orderTypeSourceId>Padrao</orderTypeSourceId> <orderItemSourceId>0101-000002-PED169-01</orderItemSourceId> <productSourceId>OMS001-0101</productSourceId> <quantity>10.0</quantity> <price>100.0</price> <deliveryDate>2019-07-15T00:16:00.000-03:00</deliveryDate> <integrationSource>DEFAULT</integrationSource> </deliveryUnit> </deliveryUnitList> </shipmentUnit> </loadedShipmentUnits> </subStop> </subStops> </stop> <stop> <identifier>1235</identifier> <localitySourceId>CLI-000001-01-01</localitySourceId> <transportZoneId>Agrupador Padrão.ZT</transportZoneId> <transportZoneDescription>Agrupador Padrão.ZT</transportZoneDescription> <sequenceOnLoad>2</sequenceOnLoad> <subStops> <subStop> <identifier>1289</identifier> <arrivalTime>2019-07-15T00:16:00.000-03:00</arrivalTime> <startServiceTime>2019-07-15T00:16:00.000-03:00</startServiceTime> <endServiceTime>2019-07-15T00:31:00.000-03:00</endServiceTime> <departureTime>2019-07-15T00:31:00.000-03:00</departureTime> <unloadedShipmentUnits> <shipmentUnit> <identifier>1494</identifier> <shipmentUnitCategoryId>1</shipmentUnitCategoryId> <shipmentUnitDescription>Fardo</shipmentUnitDescription> <shipmentUnitQty>10.0</shipmentUnitQty> <weight>10.0</weight> <volume>0.3025</volume> <length>0.55</length> <width>0.25</width> <height>0.22</height> <palletHeightTotal>0.0</palletHeightTotal> <deliveryUnitList> <deliveryUnit> <identifier>1494</identifier> <orderSourceId>0101-000002-PED169</orderSourceId> <orderTypeSourceId>Padrao</orderTypeSourceId> <orderItemSourceId>0101-000002-PED169-01</orderItemSourceId> <productSourceId>OMS001-0101</productSourceId> <quantity>10.0</quantity> <price>100.0</price> <deliveryDate>2019-07-15T00:16:00.000-03:00</deliveryDate> <integrationSource>DEFAULT</integrationSource> </deliveryUnit> </deliveryUnitList> </shipmentUnit> </unloadedShipmentUnits> </subStop> </subStops> </stop> </stops> </load> </loads> </tripReleaseRequest> </tripReleaseRequests> </ns2:publishReleasedTrip> </soap:Body> </soap:Envelope> |
O Cockpit aguarda a aprovação dessas quebras, por conta disso, ao enviar a mensagem de Desbloqueio de Viagem (doUnblockReleasedTrip) o OMS Protheus envia a tag orderBreakResponses. Observe que neste momento o identificador do pedido também é alterado para concatenar o ID da quebra, dessa forma o identificador que antes era 0101-000002-PED169 se torna 0101-000002-PED169-81. No Protheus, o id da quebra é armazenado na tabela de Sequência de Integração no campo DK3_QUEBID e na tabela de Itens da Viagem no campo DK1_QUEBID.
A divisão do Pedido de Venda (SC9), para refletir a quebra ocorrida no Cockpit, será realizada no momento da montagem da carga.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <unb:doUnblockReleasedTrip xmlns:unb="http://www.neolog.com.br/cpl/acquisition/unblockRelTrip/" xmlns:erp="http://www.neolog.com.br/cpl/acquisition/eRPMessageResponse/" xmlns:ord="http://www.neolog.com.br/cpl/acquisition/orderBreakRemovalRequest/" xmlns:ord1="http://www.neolog.com.br/cpl/acquisition/orderBreakId/" xmlns:ord2="http://www.neolog.com.br/cpl/acquisition/orderBreakResponse/" xmlns:trip="http://www.neolog.com.br/cpl/acquisition/tripReleaseResponse/" xmlns:trip1="http://www.neolog.com.br/cpl/acquisition/tripLoadsSourceId/"> <unb:unblockReleasedTrips> <unb:unblockReleasedTrips> <unb:unblockReleasedTrip> <unb:identifier>10082</unb:identifier> <unb:regionSourceId>DEFAULT</unb:regionSourceId> <unb:orderBreakResponses> <ord2:orderBreakResponses> <ord2:orderBreakResponse> <ord2:breakId>81</ord2:breakId> <ord2:orderId>0101-000002-PED169-81</ord2:orderId> <ord2:orderItemId>0101-000002-PED169-81-01</ord2:orderItemId> <ord2:regionSourceId>DEFAULT</ord2:regionSourceId> <ord2:status>1</ord2:status> </ord2:orderBreakResponse> </ord2:orderBreakResponses> </unb:orderBreakResponses> <unb:tripReleaseResponses> <trip:tripReleaseResponseList> <trip:tripReleaseResponses> <trip:tripReleaseResponse> <trip:itemId>0101-000002-PED169-01 </trip:itemId> <trip:orderSourceId>0101-000002-PED169 </trip:orderSourceId> <trip:regionSourceId>DEFAULT</trip:regionSourceId> <trip:status>1</trip:status> <trip:tripCode>50316</trip:tripCode> </trip:tripReleaseResponse> </trip:tripReleaseResponses> </trip:tripReleaseResponseList> </unb:tripReleaseResponses> </unb:unblockReleasedTrip> </unb:unblockReleasedTrips> </unb:unblockReleasedTrips> </unb:doUnblockReleasedTrip> </soapenv:Body> </soapenv:Envelope> |
Informações | ||||
---|---|---|---|---|
| ||||
|
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento) Pontos de Entrada Relacionados
- OMSCPL6A - Permite Alterar Validações na Desatualização de Pedidos do CPL
- OMSCPL6B - Permite Inserir Validações no Envio do Pedido Para o Cockpit
- OMSCPL7C - Permite a Manipulação da Carga Gerada Para a Viagem CPL
- OMSCPLAV - Permite a Manipulação das Tabelas da Viagem (DK0 e DK1)
- OMSXCPL01 - Permite Alterar o XML Antes do Envio Para o Cockpit
- OSCP6QRY - Filtro dos Pedidos Que Serão Exibidos na Rotina de Envio de Pedido Para o CPL (OMSXCPL6)
Integração TOTVS OMS x TOTVS Logística Cockpit (Planejamento) Teste de Conexão Fora do Protheus
Para verificar se o problema de conexão está no Protheus ou no Cockpit Logístico, pode-se realizar uma requisição para o servidor do Cockpit através de uma ferramenta externa, exemplos: SoapUI, Postman, etc.
Para tanto, podemos utilizar a Endereço WebService de Autenticação, informado no parâmetro MV_CPLUAUT, junto com os usuário e senha de acesso, exemplo:
Tipo de requisição: POST
URL: URL Informada no parâmetro MV_CPLUAUT
Body da requisição:
Bloco de código | ||
---|---|---|
| ||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://www.neolog.com.br/cpl/gateway/authentication/"> <soapenv:Header/> <soapenv:Body> <aut:credentials> <username>[email protected]</username> <password>ABC123</password> </aut:credentials> </soapenv:Body> </soapenv:Envelope> |
O Cockpit deverá retornar com a informação do token de acesso, exemplo:
Bloco de código | ||
---|---|---|
| ||
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <ns3:authenticationToken xmlns:ns3="http://www.neolog.com.br/cpl/gateway/authentication/"> <successful>true</successful> <token>f28b0bc763d1481aaa7f714c43660196</token> </ns3:authenticationToken> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |