Páginas filhas
  • Integração TOTVS OMS x TOTVS Otimização Logística (Planejamento)

Versões comparadas

Chave

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

Pickup

Âncora
indice
indice
Índice
outline
maxLevel3
truestylenone
printablefalse

Integração OMS Protheus x Cockpit Logístico Neolog

Image Added 1. 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

do TOTVS OMS uma solução para atender essas necessidades.

 por

Visando esta solução foi realizada a integração entre o

módulo Gestão de Distribuição (SIGAOMS) da linha Microsiga Protheus  com a funcionalidade Programação de Transportes do Cockpit Logístico da Neolog,

TOTVS OMS da linha Protheus  com a funcionalidade TOTVS Otimização Logística por intermédio de arquivos no formato XML, utilizando os

Web Services existentes do Cockpit Logístico

WebServices existentes no TOL, sem transformação de mensagens e sem

a utilização

a utilização de

sistemas

Sistemas intermediários (TOTVS EAI, TOTVS ESB, entre outros).

Com esta integração, o

OMS passou

TOTVS OMS  passou a utilizar os recursos

do Cockpit Logístico

do TOTVS Otimização Logística, o qual efetuará a roteirização e o arranjo das cargas com base na demanda de transportes enviados pelo TOTVS 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 Cockpit Logístico

no TOTVS Otimização Logística.

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 OMS Protheus x Cockpit Logístico Neolog


Image Added 2. Sistemas Envolvidos

TOTVS Gestão de Distribuição (SIGAOMS)

2.1. TOTVS OMS

A sigla OMS significa Order Management System, ou seja, gerenciamento de

pedidos

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

mais detalhes sobre o OMS TOTVS, acesse o link:Gestão de Distribuição (SIGAOMS).

informações detalhadas, acesse a página TOTVS OMS. no TDN.

2.2. TOTVS OTIMIZAÇÃO LOGÍSTICA

É um Sistema

Cockpit Logístico Neolog

O Cockpit Logístico é 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

mais detalhes sobre o Cockpit Logístico Neolog, acesse o link: 

informações detalhadas, acesse o link http://www.neolog.com.br/neolog-site/index.php/cockpit-logistico/

Integração OMS Protheus x Cockpit Logístico Neolog

.


Image Added 3. Escopo

O escopo desta integração permitirá o envio dos pedidos de venda liberados (crédito / estoque) no TOTVS OMS para a formação das viagens no

Cockpit Logístico

TOL e o recebimento

dessas

destas viagens geradas no

Cockpit Logístico

TOTVS Otimização Logística, por meio de um XML no TOTVS 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
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameFluxo Integração OMS x CPL
simpleViewerfalse
linksauto
tbstyleinline
lboxtrue
diagramWidth412
revision89

¹ 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 desta integração: 

EntidadePontos de Integração
Empresas/Filiais
  • Carga de Dados.
Cliente
  • Cadastro de Cliente.
  • Edição de Cliente.
  • Carga de Dados.
Fornecedor
  • Cadastro de Fornecedores.
  • Edição de Fornecedor.
  • Carga de Dados.
Transportadora
  • Cadastro de Transportadoras.
  • Edição Transportadoras.
  • Carga de Dados.
Produto
  • Cadastro de Produto.
  • Edição de Produto.
  • Carga de Dados.
Tipo de Veículo
  • Carga de Dados.
Pedidos de Venda
Viagens
  • Geração da Viagem no Cockpit Logísticono TOL.
  • Liberação da Viagem no Cockpit Logístico.no TOL.
  • Liberar Viagem no TOTVS OMS.
  • Cancelamento da Viagem no Cockpit Logísticono TOL.
  • Reprogramação da Viagem no Cockpit Logístico
    no TOL.



Image Added 4.

Integração OMS Protheus x Cockpit Logístico Neolog

Pré-requisitos Instalação / Implantação / Utilização

Cockpit Logístico

4.1. TOTVS Otimização Logística

  • TOL

    Cockpit Logístico

    na versão/release 5.6.1.

  • Parâmetros de aquisição ativos (acesso pelo menu em Administração >

    Cockpit Logístico

    TOTVS Otimização Logística).

  • Web Services ativos.

4.2. Protheus

  • Protheus versão  12.1.17 ou superior.

  • Parâmetros de integração com

    Cockpit Logístico

    o TOL configurados (acesso pelo menu em

    Atualizações > Cockpit Logístico > Parâmetros

    Atualizações > TOTVS Otimização Logística > Parâmetros Integração).

  • Web Service Server para recebimento de mensagens do

    Cockpit Logístico

    TOL.

icon
Informações
falsetitleAtençãoIMPORTANTE!
  • Não é escopo desse deste documento descrever a instalação do ERP Protheus e do Cockpit Logístico NeologTOTVS Otimização Logística, nem suas configurações básicas. 
  • Para utilização da integração entre o módulo SIGAOMS e o Cockpit Logístico TOTVS OMS e o TOTVS Otimização Logística na versão 12.1.17 (ou superior) do Protheus é necessário estar com o ambiente atualizado com a última versão de RPO e o dicionário Dicionário disponível na Central de Downloads TOTVS.
  • Para obter mais informações sobre como atualizar o dicionário Dicionário de dados Dados do Protheus 12, clique aqui.
Integração OMS Protheus x Cockpit Logístico Neolog


Image Added 5. Instalação / Configuração

Configuração Web

5.1. Configuração Web Service AppServer Protheus

  • Para que seja possível receber as viagens

do Cockpit Logístico,
  • do TOTVS Otimização Logística é necessário configurar um Web Service no servidor de aplicação Protheus.

Notainfo
titleAtençãoIMPORTANTE!
A configuração do JOB do Web Service para ser utilizado nesta integração não utiliza os métodos padrões padrão do Framework Protheus, sendo assim as rotinas ONSTART e ONCONNECT são específicas do modulomó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
  • Appserver.ini):

Bloco de código
languageactionscript3
titleappserver.ini
collapsetrue
;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,

basta iniciar
  • inicie um navegador e

digitar
  • digite: http://<ip ou nome>:<porta>/neolog/PublishReleasedTrip.APW?WSDL.

  • Um WSDL (descrição do serviço em

xml
  • XML)

deve exibir
  • será exibido no navegador..

  • Para que seja possível reprogramar/cancelar as viagens

do Cockpit Logístico,
  • do TOTVS Otimização Logística é necessário configurar as informações de conexão com o DBAccess diretamente na seção [Environment] (modificando o arquivo

appserver
  • Appserver.ini), conforme exemplo abaixo:

Bloco de código
languageactionscript3
titleappserver.ini
collapsetrue
;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
  • inconsistências do tipo Failed Handshake

SSL recomenda
  • SSL recomenda-se incluir a seguinte configuração no

appserver
  • Appserver.ini:

Bloco de código
languageactionscript3
titleappserver.ini
collapsetrue
[SSLConfigure]
TryProtocols=1
Verbose=1
Parametrização Cockpit Logístico

5.2. Parametrização TOTVS Otimização Logística

Para configurar o envio de viagens do

cockpit ao

TOL para o Web Service Protheus,

entre no Cockpit Logístico e acesse

acesse o TOL e execute os seguintes passos:

  1. Administração > Integração, selecione a pasta Fontes de Dados e  e clique em Inserir.
  2. Digite o Código código, a Descrição descrição e o Código código da base .
    Sugestão(sugestão: PROTHEUS).
  3. Seção Cancelamento de Viagem Liberada
    • No campo URL da seção,  digitedigite http: http://<ip ou nome>:<porta>/neolog/CancelService.APW.APW 
    • No campo Tempo Máximo de Espera por Resposta, informe o timeout do serviço.
      Recomendado 30000timeout 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.timeout do serviço (recomendado 1000).

55. Seção Solicitação de liberação de Viagem

    • No campo URL, digite: http http://<ip ou nome>:<porta>/neolog/PublishReleasedTrip.APW.
    • No campo Tempo Máximo de Espera por Resposta, informe o  timeout do serviço.
      Recomendado 30000timeout do serviço (recomendado 30000).

6. Seção Solicitação de Reprogramação de Viagem

    • No campo URL, digite: http http://<ip ou nome>:<porta>/neolog/ReprogramService.APW.
    • No campo Tempo Máximo de Espera por Resposta, informe o timeout do serviço.
      Recomendado 30000serviço (recomendado 30000).

7. Clique em Salvar.

Parametrização SIGAOMS

Por meio do

5.3. Parametrização TOTVS OMS

  • Acesse o menu Atualizações >

 CockPit Logístico > 
  •  TOTVS Otimização Logística Parâmetros Integração (OMSXCPL1)

, o Protheus deve ser parametrizado para o correto
  • .

  • Para o correto funcionamento da integração

conforme abaixo
  • , parametrize o Protheus da seguinte forma:

CampoDescriçãoParâmetroOpçõesValor para IntegraçãoValidação
Integração
Cockpit Logístico
Planejamento Viagem?Indica se a integração com o
Cockpit Logístico
planejamento de viagens do TOL está ativa.MV_CPLINT

1 - Sim

/


2 - Não

1 - Sim

Integração Suspensa?

Indica se a integração com o
Cockpit Logístico
TOL está temporariamente suspensa.MV_CPLSTP1 - 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
será replicado automaticamente no
Cockpit Logístico
TOL  (Localidades).MV_CPLCLI1 -
Sim /
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
será replicado  automaticamente no
Cockpit Logístico
TOL (Localidades).MV_CPLFOR1 -
Sim /
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
será replicado automaticamente no
Cockpit Logístico
TOL.MV_CPLTRA1 -
Sim /
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
será replicado automaticamente no
Cockpit Logístico
TOL.MV_CPLPRO1 -
Sim /
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
 será replicado automaticamente no
Cockpit Logístico
TOL.MV_CPLTPV

1 -

Sim /

Sim 
2 - Não

1 - Sim
Tipo Veículo Otimização?

Quando for :

1

=

- Impedir:

No

no vínculo do veículo na carga, se

o usuário informar

for informado um tipo de veículo diferente do que consta na viagem do

Cockpit Logístico

TOL, não

permitimos

será permitido, sendo apresentado um Help. 

Se for

2

=

- Alertar:

O

o sistema avisa que o tipo informado é diferente do tipo da viagem no

Cockpit Logístico

TOL  e o usuário define se permite o

vinculo

vínculo ou não.

Informações
titleImportante!
A validação não será ativada quando for informado um valor diferente.
MV_CPLTVO

1 - Impedir
2 - Alterar

2 - Alertar (padrão)
Endereço Web Service Planejamento ViagemEndereço do Web Service do
Cockpit Logístico
módulo de Planejamento do TOTVS Otimização Logística.MV_CPLURL

Conforme cliente.

Exemplo:
http://<ip ou nome>:<porta>/cockpit-gateway/integration/services

Deve ser obrigatoriamente preenchido quando MV_CPLINT == "1"
Endereço Web Service de Autenticação

Endereço do Web Service de Autenticação

do Cockpit Logístico

do TOTVS Otimização Logística.

Este endereço fornecerá um token de autenticação, que deverá ser utilizado nas requisições efetuadas ao

Cockpit Logístico

TOL, quando este estiver parametrizado para solicitar autenticação.

MV_CPLUAUT

Conforme cliente.

Exemplo:
http://<ip ou nome>:<porta>/cockpit-gateway/ws/authentication


Usuário de Autenticação do Web ServiceUsuário utilizado para efetuar login
no Cockpit Logístico
no TOTVS Otimização Logística, para obtenção do token.

MV_USRCPL


Conforme clienteDeve ser obrigatoriamente preenchido quando possuir URL de autenticação.
Senha de Autenticação do WebServiceSenha do usuário utilizado para efetuar login
no Cockpit Logístico
no TOTVS Otimização Logística, para obtenção do token.

MV_PSWCPL


Conforme clienteDeve 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
RegionalRegional enviada para
o Cockpit Logístico
o TOTVS Otimização Logística.MV_CPLREG
Conforme clienteDeve ser obrigatoriamente preenchido quando MV_CPLINT == "1"
Embarcador

Código de um Embarcador

do Cockpit Logístico

do TOL.

Todos os

Produtos

produtos integrados do TOTVS OMS para o

Cockpit Logístico

TOTVS Otimização Logística serão relacionados a um mesmo Embarcador no

Cockpit Logístico

TOL, pois no TOTVS 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 clienteDeve ser obrigatoriamente preenchido quando MV_CPLINT == "1"
Categoria de Produto?

Para o

Cockpit Logístico

TOTVS Otimização Logística, 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 OMS para o

Cockpit Logístico

TOTVS Otimização Logística, sendo que:

1 - Grupo Produto: será o código do grupo do produto do TOTVS OMS

; ou

.

2 - Padrão Cockpit: será informada por alteração manual, em cada produto no

Cockpit Logístico

TOL. Com essa opção é necessário cadastrar as Categorias de Produtos no

Cockpit Logístico

TOTVS Otimização Logística. com os mesmos códigos dos Grupos de Produtos do TOTVS OMS, pois não há Web Service de integração para essa tabela.

MV_CPLCAT

1 - Grupo Produto

2 -

Padrão Cockpit

Padrão  TOL

2

=

- Padrão

Cockpit.

TOL


Invólucro Padrão

Código de um Invólucro (embalagem)

do Cockpit Logístico

do TOTVS Otimização Logística.

Todos os itens de Pedidos de Transporte recebidos do TOTVS OMS no

Cockpit Logístico

TOL serão associados a esse invólucro, pois não há uma entidade no TOTVS OMS que corresponda exata e obrigatoriamente a esse dado do

Cockpit Logístico

TOL.

Recomenda-se

É recomendável informar um invólucro cujas medidas sejam obtidas do item do pedido (

essa

esta característica é parametrizada

no Cockpit Logístico)

no TOTVS Otimização Logística.

MV_CPLINV
Conforme cliente
Origem dos DadosDefine o nome do ERP que origina os dados enviados
ao Cockpit Logístico
ao TOTVS Otimização Logística.MV_CPLIDS

Deve ser informada a fonte de dados criada dentro do

Cockpit Logístico

TOL.

Ex

Exemplo:
Protheus

Deve ser obrigatoriamente preenchido quando MV_CPLINT
=
= "1"
E-mail do AdministradorE-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

Cockpit Logístico

TOTVS Otimização Logística, onde:

 
  • 1ª UM;
  • 2ª UM dos produtos.
MV_CPLUMIT1 - 1ª UM
2 - 2ª UM
1 - 1ª UM (padrão)
Geração das Cargas

Quando for:

1

= Automático: Para

- Automático, para as viagens vindas do

Cockpit Logístico

Cicjoutm; o OMS gera a carga automaticamente.

Quando for

2

=

- Manual,:

Para

para as viagens deve ser gerada manualmente a carga.

Informações
Nota
titleImportante!
Este parâmetro implica na necessidade da liberação ser automática (MV_CPLLVA), pois somente é permitido a montagem de cargas de viagens liberadas.
MV_CPLAUT1 - Automático
2 - Manual
2 - Manual (padrão)
Liberação automática da viagem?

O uso deste parâmetro ocorre somente para o TOTVS OMS.

Quando habilitado, ao realizar a integração da viagem vinda do

Cockpit Logístico

TOTVS Otimização Logística,  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 Logístico

TOL?

Ao ativar esse parâmetro o Protheus permitirá a integração de pedidos sem liberação de estoque com o

Cockpit Logístico, com

TOL.

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

Cockpit Logístico

TOTVS Otimização Logística solicitar o cancelamento / reprogramação da viagem, caso exista carga montada no TOTVS OMS esta será estornada.

Informações
Importante: para que essa
titleImportante!
Para que esta opção funcione corretamente é necessário que o
Cockpit Logístico Neolog
TOTVS Otimização Logística esteja parametrizado para informar ao Protheus as alterações sofridas na viagem.
MV_CPLESCG

1 -

Sim /

Sim 
2 -

Não

Não 

2 - Não (padrão)
Atualiza viagem no
Cockpit
TOL ao cancelar a integração do pedido?

Indica se será atualizada a viagem no

Cockpit

TOL ao cancelar a integração no TOTVS OMS, ou seja, se esse parâmetro estiver definido como

'

1 -

sim'

Sim, ao cancelar um item integrado que já encontra-se em uma viagem, será solicitada a alteração da viagem no

Cockpit

TOL para que reflita os ajustes sofridos no TOTVS OMS.

Caso esteja definido

como '

como 2 -

não'

Não, a viagem permanecerá intacta, sendo ajustada apenas a carga e os status no TOTVS OMS.

Informações
Importante:
titleImportante!

Para

para

que essa opção funcione corretamente é necessário que o

Cockpit Logístico Neolog

TOL esteja parametrizado para permitir alterações na viagem.

Atualmente

, esse

esta opção não

é

está disponível para a

solução R2 Neolog

solução TOTVS Roteirização e Entregas.

MV_CPLATVG

1 - Sim

/


2 - Não

2 - Não (padrão)

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
languageactionscript3
titleappserver.ini
collapsetrue
;Configuração integração com o Cockpit Logístico
[NEOLOG]
DefaultCompany=<empresa>
Debug=1
DebugPath=<caminho relativo> ;logs\neolog
ÂncoraRetornoDefaultCompanyRetornoDefaultCompany

Onde:

  • DefaultCompany: Empresa padrão para integração entre o OMS e o Cockpit Logístico. 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 e o Cockpit Logístico 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
iconfalse
titleImportante!

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 OMS Protheus x Cockpit Logístico NeologControle 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 OMS Protheus x Cockpit Logístico NeologSuporte

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
iconfalse
titleNota!

Este modelo de suporte está sendo revisado pela TOTVS. 


Tempo máximo (em segundos) de inatividade permitida para a recepção da resposta (Timeout).

Indica o tempo máximo que o TOTVS OMS aguardará por uma resposta do TOTVS Otimização Logística.

Válido para todos as as mensagens.

MV_CPLTIME
30 (padrão)
Integração Monitoramento?

Indica se a integração com o monitoramento do TOL está ativa.

Mais detalhes no documento: Integração TOTVS OMS x TOTVS Otimização Logística (Monitoramento)

MV_CPLMON

1 - Sim
2 - Não



Endereço WebService Monitoramento

Endereço do Web Service de Monitoramento do TOL.

É necessário informar  somente quando a integração com o monitoramento encontra-se ativa. 

Mais detalhes no documento: Integração TOTVS OMS x TOTVS Otimização Logística (Monitoramento)

MV_CPLURLConforme cliente.

Redesp. Cli/Forn

(Envio de dados do redespachante do pedido)

O parâmetro MV_CPLRED define se serão enviados os dados do cliente/fornecedor no destinationId e as informações de endereço ao TOL quando o campo C5_REDESP do pedido está preenchido. Seguem as opções:

1-Sim - Quando o campo C5_REDESP está preenchido serão enviados os dados do cliente/fornecedor no elemento destinationId e não serão enviadas as informações de endereço.

2-Não - Valor padrão - Quando o campo C5_REDESP está preenchido serão enviados os dados da transportadora e os elementos de endereço.

O parâmetro pode ser acessado via menu Atualizações > Cockpit Logístico > Parâmetros da Integração. No programa de parâmetros, a opção foi inserida em Integração, campo Redesp. Cli/Forn (1-Sim, 2-Não).

MV_CPLRED1 - Sim
2 - Não
2 - Não (padrão)

5.4. Parametrização Adicional Integração

  • Algumas parametrizações da integração devem ser realizadas no arquivo de configuração 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
languageactionscript3
titleappserver.ini
collapsetrue
Configuração integração com o TOTVS Otimização Logística:
[NEOLOG]
DefaultCompany=<empresa>
Debug=1
DebugPath=<caminho relativo> ;logs\neolog


Onde:

  • DefaultCompany
    Empresa padrão para integração entre o TOTVS OMS e o TOTVS Otimização Logística.
    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.

    Informações
    titleDados da Filial Protheus

    Será verificado no cadastro de Filiais Protheus se utiliza o conceito de Gestão de Empresas, será enviado ao invés de Empresa/Filial o modelo Empresa/Unidade/Filial. Exemplo: M SP 01 

  • Debug
    Indicador de que o processo de gravação dos arquivos XML das mensagens trocadas entre o TOTVS OMS e o TOL está ativo.
    Caso esteja com o valor 1, será considerado ativo; caso contrário, será considerado inativo.
    Caso esta configuração não exista será assumido, por padrão, que o Debug está ativo.

  • DebugPath
    Caminho onde serão gravados os arquivos de log do XML, o qual 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
titleIMPORTANTE!

Deve 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.


Image Added 6. 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 devem 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.


Image Added 7. 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
titleIMPORTANTE!

Este modelo de suporte está sendo revisado pela TOTVS. 


Image Added 8. Mensagens

MétodoDescriçãoOrigemDestinoXSD

Cadastros

Empresas/FiliaisProtheusTOLLocalityAcquisitionService
ClienteProtheusTOLLocalityAcquisitionService
FornecedorProtheusTOLLocalityAcquisitionService ou CarrierAcquisitionService
TransportadoraProtheusTOLCarrierAcquisitionService
ProdutosProtheusTOLProductAcquisitionService
Tipo de Veículo TOTVS OMSTOLVehicleAcquisitionService

Processos

Pedido de Vendas

TOTVS OMS

TOL

OrderAcquisitionService

Cancelar Pedido de VendasTOTVS OMSTOLOrderAcquisitionService
Publicar ViagensTOLTOTVS OMSPublishReleasedTrip
Liberar ViagensTOTVS OMSTOLUnblockReleasedTripAcquisitionService
Cancelar ViagensTOLTOTVS OMS

CancelService

Reprogramar ViagensTOLTOTVS OMSReprogramService


Image Added 9. Fluxo das Informações

Os cadastros devem ser realizados no TOTVS OMS e integrados ao TOTVS Otimização Logística.

A ativação da integração, no entanto, não impede a inclusão, alteração e exclusão de registros no TOL, mas esse procedimento não é recomendado, pois as operações realizadas sobre os cadastros no TOL 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 TOL 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) ProtheusCódigo (Alías)Web ServiceMétodoEntidade CockpitObservações
FilialSM0LocalityAcquisitionServiceupdateLocalitiesLocalidade

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.

ClienteSA1LocalityAcquisitionServiceupdateLocalitiesLocalidadeQuando MV_CPLEX == "2" não integrar cliente com país informado diferente de 105 (Brasil).
FornecedorSA2

LocalityAcquisitionService ou CarrierAcquisitionService

updateLocalities ou updateCarriers

Localidade 

Os fornecedores serão integrados como localidade quando atender os seguintes requisitos:

  1. Campo A2_TRANSP (Cód. Transportadora) em branco;
  2. Campo A2_RNTRC (Reg. Nac. Tr. Rod. Cargas) em branco;
  3. Campo A2_PAGGFE (Pagamento pelo SIGAGFE) igual a '2-Não'.

Caso contrário, o fornecedor será integrado como transportadora.

TransportadoraSA4CarrierAcquisitionServiceupdateCarriersTransportador
ProdutoSB1 e SB5ProductAcquisitionServiceupdateProductsProduto
Tipo de VeículoDUTVehicleAcquisitionServiceupdateVehiclesVeículo
Pedido de VendaSC5 / SC6 / SC9 / SB1 / SB5OrderAcquisitionService

createOrders

Pedidos de TransporteO pedido de venda deve possuir, obrigatoriamente, montagem de carga.

9.1. Filiais

  • Tipo de Fluxo: Protheus > TOTVS Otimização Logística.

  • Mensagem: LocalityAcquisitionService

  • O envio de empresas/filiais ou empresas/unidade/filiais não é automático, ou seja, ao cadastrar no Protheus uma nova empresa/filial, para que essas informações sejam replicadas para o TOTVS Otimização Logística é necessário executar a carga de dados disponível em: SIGAOMS > Atualizações > TOTVS Otimização Logística > Carga de dados, assinalando a opção SM0 - Cadastro de Filiais.

  • Os dados serão enviados ao TOTVS Otimização Logística por meio do método updateLocalities.

  • Esses

Integração OMS Protheus x Cockpit Logístico NeologMensagens

MétodoDescriçãoOrigemDestinoXSD

Cadastros

Empresas/FiliaisProtheusCockpit LogísticoLocalityAcquisitionServiceClienteProtheusCockpit LogísticoLocalityAcquisitionServiceFornecedorProtheusCockpit LogísticoLocalityAcquisitionService ou CarrierAcquisitionServiceTransportadoraProtheusCockpit LogísticoCarrierAcquisitionServiceProdutosProtheusCockpit LogísticoProductAcquisitionServiceTipo de Veículo SIGAOMSCockpit LogísticoVehicleAcquisitionService

Processos

Pedido de Vendas

SIGAOMS

Cockpit Logístico

OrderAcquisitionService

Cancelar Pedido de VendasSIGAOMSCockpit LogísticoOrderAcquisitionServicePublicar ViagensCockpit LogísticoSIGAOMSPublishReleasedTrip
Liberar ViagensSIGAOMSCockpit LogísticoUnblockReleasedTripAcquisitionServiceCancelar ViagensCockpit LogísticoSIGAOMS

CancelService

Reprogramar ViagensCockpit LogísticoSIGAOMSReprogramService

Integração OMS Protheus x Cockpit Logístico NeologFluxo das Informações

Os cadastros devem ser realizados no OMS Protheus e integrados ao 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ístico 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 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.
Entidade (s) ProtheusCódigo (Alías)Web ServiceMétodoEntidade CockpitObservaçõesFilialSM0LocalityAcquisitionServiceupdateLocalitiesLocalidade

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.

ClienteSA1LocalityAcquisitionServiceupdateLocalitiesLocalidadeQuando MV_CPLEX == "2" não integrar cliente com país informado diferente de 105 (Brasil).FornecedorSA2

LocalityAcquisitionService ou CarrierAcquisitionService

updateLocalities ou updateCarriers

Localidade 

Os fornecedores serão integrados como localidade quando atender os seguintes requisitos:

  1. Campo A2_TRANSP (Cód. Transportadora) em branco;
  2. Campo A2_RNTRC (Reg. Nac. Tr. Rod. Cargas) em branco;
  3. Campo A2_PAGGFE (Pagamento pelo SIGAGFE) igual a '2-Não'.

Caso contrário, o fornecedor será integrado como transportadora.

TransportadoraSA4CarrierAcquisitionServiceupdateCarriersTransportadorProdutoSB1 e SB5ProductAcquisitionServiceupdateProductsProdutoTipo de VeículoDUTVehicleAcquisitionServiceupdateVehiclesVeículoPedido de VendaSC5 / SC6 / SC9 / SB1 / SB5OrderAcquisitionService

createOrders

Pedidos de TransporteO 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 Cadastro >
  • dados, por sua vez, serão salvos como localidade e poderão ser visualizados no CPL em:

 
  • Cadastro > Localidades.

Transportadores

9.2. Clientes

  • Tipo de Fluxo: 

Protheus > Cockpit Logístico
  • Protheus > TOTVS Otimização Logística.

  • Mensagem:

 CarrierAcquisitionService
  •  LocalityAcquisitionService

  • Ao cadastrar

um Transportador no
  • um cliente no Protheus, quando a integração estiver ativa os dados serão enviados

ao Cockpit Logístico
  • ao TOTVS Otimização Logística por meio do método 

CarrierAcquisitionService
  • updateLocalities.

  • Esses dados, por sua vez, serão salvos como 

Transportadoras e
  • localidade e poderão ser visualizados no

CPL
  • TOL em: Cadastro >

Transportadoras
  • Localidades.

Produtos
  • Fornecedores

  • Tipo de Fluxo: 

Protheus > Cockpit Logístico
  • Protheus > TOTVS Otimização Logística.

  • Mensagem:

 ProductAcquisitionService
  •  LocalityAcquisitionService ou CarrierAcquisitionService

  • Ao cadastrar

um Produto no
  • um fornecedor no Protheus, quando a integração estiver ativa os dados serão enviados

ao Cockpit Logístico
  • ao TOTVS Otimização Logística por meio do método 

ProductAcquisitionService
  • updateLocalities (conforme parametrização do cadastro SA2, de acordo com o comentado acima).

Esses
  • Esses dados, por sua vez, serão salvos como 

Produtos Simples e
  • localidade e poderão ser visualizados no

CPL
  • TOL em: Cadastro

> Produtos Simples
  • > Localidades.

Tipos de Veículo

9.3. Transportadores

  • Tipo de Fluxo:

 Protheus > Cockpit Logístico
  •  Protheus > TOTVS Otimização Logística.

  • Mensagem: 

VehicleAcquisitionService
  • CarrierAcquisitionService

  • Ao cadastrar

um Tipo de veículo 
  • um transportador no Protheus, quando a integração estiver ativa os dados serão enviados

ao Cockpit Logístico
  • ao TOTVS Otimização Logística por meio do método 

VehicleAcquisitionService
  • CarrierAcquisitionService.

  • Esses dados, por sua vez, serão salvos

como Veículos e
  • como transportadoras e poderão ser visualizados no

CPL
  • TOL em: Cadastro

> Veículos
  • > Transportadoras.

Pedidos de Venda

9.4. Produtos

  • Tipo de Fluxo:
 Protheus > Cockpit LogísticoEnvio de Pedidos:
  •  Protheus > TOTVS Otimização Logística.
  • Mensagem: 
OrderAcquisitionService
  • ProductAcquisitionService
  • Ao cadastrar um
Pedido de venda
  • produto no Protheus, quando a integração estiver ativa os dados
são
  • serão enviados ao
Cockpit Logístico por
  • TOTVS Otimização Logística por meio do
método OrderAcquisitionService
  • método ProductAcquisitionService.
  • Esses dados, por sua vez,
geram no Cockpit Logístico pedidos de transporte e
  • serão salvos como produtos simples 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 filtrados, a rotina de envio de pedido de venda ainda permite que sejam alteradas as quantidades para a integração, através do botão "Alterar Quantidade da Integração - F10". Onde o usuário pode informar quais as quantidades do pedido deseja-se integrar. Cada integração do pedido gera um sequência de integração diferente, exemplo:

EmpresaFilialSeq. IntegraçãoPedidoItemProdutoQtd,0301000001 000096 0100110Sequência de envio 010302000002000096 010015Sequência de envio 02Sendo 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: irá gravar a quantidade enviada ao Cockpit, incluindo as informações de pedido e 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: irá gravar o status (C6_INTROT) igual à "2-Integrado" para pedidos totalmente integrados e "4-Integrado Parcial" para pedidos que ainda possuem quantidades à serem integradas.

Cancelamento de pedidos:

O cancelamento de pedidos apenas ocorre através da rotina de Envio de Pedidos (OMSXCPL6), onde o usuário possuí as seguintes opções:

1) Desatualizar pedido posicionado:

    • Permite a seleção de qual sequência de integração deseja-se cancelar a integração, também permite o cancelamento parcial de uma sequência de integração através da digitação da "Qtd. Cancelamento".

2) Desatualizar pedido(s) selecionado(s):

    • Realiza o estorno de todas as sequências de integração de todos os pedidos selecionados no browse.

Importante: caso o parâmetro MV_CPLATVG (Atualiza viagem no Cockpit ao cancelar a integração do pedido?) encontrar-se 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 sofrem 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 à "1-Não Integrado", quando apenas parte do item teve a integração cancelada, ou então,  gravará o status igual à "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 disponibilizado um programa monitor para receber estas viagens (OMSXCPL7).

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.
  • no TOL em: Cadastro > Produtos Simples.

9.5. Tipos de Veículo

  • Tipo de Fluxo: TOTVS Otimização Logística

  • Mensagem: VehicleAcquisitionService

  • Ao cadastrar um tipo de veículono Protheus, quando a integração estiver ativa os dados serão enviados ao TOTVS Otimização Logística por meio do método VehicleAcquisitionService.

  • Esses dados, por sua vez, serão salvos como veículos e poderão ser visualizados no TOL em: Cadastro > Veículos.

9.6. Pedidos de Venda

  • Tipo de Fluxo: Protheus > TOTVS Otimização Logística
  • Mensagem: OrderAcquisitionService

9.6.1. Envio de Pedidos

Ao cadastrar um Pedido de venda no Protheus, quando a integração estiver ativa os dados são enviados ao TOTVS Otimização Logística por meio do método OrderAcquisitionService.

Esses dados, por sua vez, geram no TOTVS Otimização Logística o pedidos de transporte e poderão ser visualizados em: Programação > Análise; deve-se filtrar os dados da cesta geral.

No TOTVS OMS foi disponibilizada a rotina OMSXCPL6 (Envio de Pedido de Venda), que permite selecionar uma lista com os pedidos de venda para envio ao TOTVS Otimização Logística, sendo que estes pedidos são filtrados conforme as seguintes premissas:

  • O pedido deve montar carga (C5_TPCARGA).
  • O pedido não deve estar 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 que existam bloqueios.

Após os pedidos serem filtrados, a rotina OMSXCPL6 (Envio de Pedido de Venda) ainda permite alterar as quantidades para a integração pelo botão Alterar Quantidade da Integração - F10, sendo que, por seu intermédio é possível informar quais quantidades do pedido serão integradas, onde cada integração do pedido gera um sequência de integração diferente.

Exemplo

EmpresaFilialSeq. IntegraçãoPedidoItemProdutoQtd.Descrição
0301000001 000096 0100110

Sequência de envio 01

0302000002000096 010015Sequê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

Caso os dados da filial protheus seja do tipo Gestão de Empresas, será enviada a concatenação empresa+unidade de negócio+filial+sequência de integração+pedido.
Exemplo:MSP01000001000096

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 TOL, 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 TOL 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.

9.6.2. Cancelamento de Pedidos

O cancelamento de pedidos ocorre apenas pela rotina OMSXCPL6 (Envio de Pedidos de Venda)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
    titleIMPORTANTE!

    Caso o parâmetro MV_CPLATVG (Atualiza viagem no TOL ao cancelar a integração do pedido?) estiver ativo em conjunto com as devidas parametrizações do TOTVS Otimização Logística, 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 TOL.

  • 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.

9.7. Viagens

  • Tipo de Fluxo: TOTVS Otimização Logística > Protheus

  • Mensagem: ReleaseTripPublishRequestService

  • O TOL envia as viagens geradas para o TOTVS OMS, para a formação das cargas, sendo que o envio é realizado pela chamada do Web Service ReleaseTripPublishRequestService. 
    Para isso, foi disponibilizada a rotina OMSXCPL7 (Monitor de Cargas)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 a carga. Para que isso ocorra é essencial que a placa recebida do TOL seja 
    idênticaa placa cadastrada no Protheus.

  • Ao receber a viagem no TOTVS OMS serão gravadas as tabelas DK0 (Viagem CPL) e DK1(Itens da Viagem CPL) com suas respectivas quantidades recebidas do TOL. Além disso, é registrado o código da viagem na tabela auxiliar de Sequência de Integração TOL  (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 OMSXCPL7 (Monitor de Cargas) serão avaliadas as quantidades liberadas do Pedido (C9_QTDLIB) para a gravação do código da carga, visto que a rotina de OMSXCPL6 (Envio de Pedidos de Venda)permite a integração de quantidades não liberadas e a montagem da carga necessita, obrigatoriamente, de quantidades liberadas do Pedido

Ao receber a viagem no OMS sã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 de Monitor de Carga (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 (OMSXCPL6) permite a integração de quantidades não liberadas e a montagem da carga necessita, obrigatoriamente, de quantidades liberadas do Pedido.

Importante: Caso seja necessário efetuar a liberação de uma nova quantidade do Pedido no momento da geração da carga, esta respeitará a parametrização existente no sistema para definir se o Pedido possuirá bloqueio de crédito, estoque, WMS, entre outros. Se não for possível realizar a liberação da SC9 para atender o Pedido, por conta de falta de saldo ou alguma outra ocorrência, o sistema não gerará a carga e mostrará uma mensagem de alerta para que o usuário realize a liberação de forma manual. Exclusivamente para a montagem da carga com base na viagem, o sistema permitirá a geração de cargas contendo Pedidos com bloqueio de estoque e crédito. A liberação dos Pedidos apenas será obrigatória no momento do faturamento da carga, assim como já ocorre atualmente
  • .

  • No próximo tópico são listadas as correspondências entre os campos de cada entidade e a respectiva

tag
  • tag XML da mensagem de integração.

Informações
titleIMPORTANTE
  • Caso seja necessário efetuar a liberação de uma nova quantidade do Pedido no momento da geração da carga, esta respeitará a parametrização existente no sistema para definir se o Pedido possuirá bloqueio de crédito, estoque, WMS, entre outros.
  • Se não for possível realizar a liberação da SC9 para atender o Pedido, por conta de falta de saldo ou alguma outra ocorrência, o sistema não gerará a carga e mostrará uma mensagem de alerta para que seja realizada a liberação de forma manual.
  • Exclusivamente para a montagem da carga com base na viagem, o sistema permitirá a geração de cargas contendo Pedidos com bloqueio de estoque e crédito. 
  • A liberação dos Pedidos será obrigatória apenas no momento do faturamento da carga, assim como já ocorre atualmente.


Image Added 10. Detalhamento das Mensagens

10.1. Mensagem de Integração dos Registros do Cadastro de Filiais

Tag XML

Campo Protheus

Campo TOTVS Otimização Logística

Observações

regionSourceId

MV_CPLREG

Regional


identifier 

"FIL-" + FWCodFil()
ou
"FIL-" + FWGrpCompany() + "-" + FWCodFil()

Código 

O envio da concatenação de empresa +unidade+ filial permanece condicionado ao fato de não existir uma empresa padrão para integração do TOTVS OMS com o TOL.

Esta empresa padrão deve ser informada no arquivo de configuração do servidor Protheus (Appserver.ini) na seção [NEOLOG] na chave DefaultCompany.

Informações
titleImportante!
Para a localidade de Filial não existe influência sobre o fato de estar usando a configuração de empresas na concatenação das informações.

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 

Integração OMS Protheus x Cockpit Logístico NeologDetalhamento das Mensagens

Mensagem de Integração dos Registros do Cadastro de Filiais

Tag XMLCampo ProtheusCampo Cockpit LogísticoObservaçõesregionSourceIdMV_CPLREGRegionalidentifier 

"FIL-" + FWCodFil()
ou
"FIL-" + FWGrpCompany() + "-" + 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.

Informações
iconfalse
titleNota!
Para a localidade de filial não existe influência sobre o fato de estar usando a configuração de empresas na concatenação das informações.
name M0_FILIAL Nome description M0_NOMECOM Descrição addressStreet M0_ENDENT Endereço Obter o conteúdo usando a função LjFiGetEnd sobre o campo M0_ENDENTaddressNumber Nº Obter o conteúdo usando a função LjFiGetEnd sobre o campo M0_ENDENTaddressComplement M0_COMPENT Complemento addressDistrict M0_BAIRENT Bairro addressZipCode M0_CEPENT CEP addressCityM0_CIDENT Cidade addressStateAcronym M0_ESTENTUF 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 XMLCampo ProtheusCampo Cockpit LogísticoObservaçõesregionSourceIdMV_CPLREGRegionalidentifier"CLI-" + RTrim(SA1->A1_COD) + "-" + RTrim(SA1->A1_LOJA) + OMSGETFIL("SA1") ²CódigonameA1_NREDUZNomedescriptionA1_NOMEDescriçãoaddressStreetA1_ENDEndereçoObter o conteúdo usando a função LjFiGetEnd sobre o campo A1_ENDaddressNumberObter o conteúdo usando a função LjFiGetEnd sobre o campo A1_ENDaddressComplementA1_COMPLEMComplementoaddressDistrictA1_BAIRROBairroaddressZipCodeA1_CEPCEPaddressCity

CC2_MUN

CidadeAcessa a tabela CC2 através dos campos A1_ESTE e A1_CODMUNE.
addressStateAcronymA1_ESTUF

Quando a UF pertencer a lista das UFs brasileiras será

considerada

considerado a mesma

,

; caso contrário "EX".

addressCountryAcronym

addressCountryAcronym 

"BR" ou

YA_SIGLAPaís

Acessar a tabela SYA pelo campo A1_PAIS.

Quando A1_PAIS estiver em branco ou igual a 105, atribuir "BR".

logisticRoleId"2"Tipo2=Destino (por orientação da Neolog para gerar menos combinações de rota).

"EX" 

País 

Quando a UF pertencer a lista das UFs brasileiras, será considerado "BR"; caso contrário "EX".

logisticRoleId 

"1" 

Tipo 

1 - Ambos

10.2. Mensagem de Integração dos Registros do Cadastro de

Fornecedor Como Localidade

Clientes

FORSA2>A2SA2>A2 OMSGETFILSA2A2 LjFiGetEnd sobre o campo A2 A2 LjFiGetEnd sobre o campo

Tag XML

Campo Protheus

Campo

Cockpit Logístico

TOTVS Otimização Logística

Observações

regionSourceId

MV_CPLREG

Regional


identifier

"

CLI-" + RTrim(

SA1-

>A1_COD) + "-" + RTrim(

SA1-

>A1_LOJA)

+

OMSXGETFIL("

SA1") ²

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

A1

name

_NREDUZ

Nome


description

A2

A1_NOME

Descrição


addressStreet

A2

A1_END

Endereço

Obter o conteúdo usando a função

LjFiGetEnd sobre o campo A1_END

addressNumber


Obter o conteúdo usando a função

LjFiGetEnd sobre o campo A1_END

addressComplement

A2

A1_COMPLEM

Complemento


addressDistrict

A2

A1_BAIRRO

Bairro


addressZipCode

A2

A1_CEP

CEP


addressCity

CC2_MUN

Cidade

Acessar

Acessa a tabela CC2

pelo campo A2_MUN

pelos campos A1_ESTE e A1_CODMUNE.

addressStateAcronym

A2

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

A2

A1_PAIS.

Quando

A2

A1_PAIS estiver em branco ou igual a 105

, atribuir "

será atribuído BR

"

.

logisticRoleId

"2"

 

Tipo

2

=

- Destino (por orientação

da Neolog

do TOL, para gerar menos combinações de rota).

10.3. Mensagem de Integração dos Registros do Cadastro de Fornecedor Como

Transportadora

Localidade

Tag XML

Campo Protheus

Campo

Cockpit Logístico

TOTVS Otimização Logística

Observações

regionSourceId

MV_CPLREG

Regional


identifier

A2_COD + OMSGETFIL

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 TOTVS OMS.

name

A2_NREDUZ

Nome

da Transportadora


description

A2_NOME

Descrição

da Transportadora

email

addressStreet

A2_

EMAILE-mail da Transportadora

Mensagem de Integração dos registros do cadastro de Transportadora

Tag XMLCampo ProtheusCampo Cockpit LogísticoObservações

END

Endereço

Obter o conteúdo usando a função LjFiGetEnd sobre o campo A2_END

addressNumber


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 do TOL, para gerar menos combinações de rota).

10.4.

regionSourceIdMV_CPLREGRegionalidentifierA4_COD + OMSGETFIL("SA4") ²CódigonameA4_NREDUZNome da TransportadoradescriptionA4_NOMEDescrição da Transportadoraemail

A4_EMAIL

E-mail da Transportadora

Mensagem de Integração dos Registros do Cadastro de

Tipos de Veículos

Fornecedor Como Transportadora

Tag XML

Campo Protheus

Campo

Cockpit Logístico

TOTVS Otimização Logística

Observações

regionSourceId

MV_CPLREG

Regional


identifier

DUT

A2_

TIPVEI

COD +

OMSGETFIL

OMSXGETFIL("

DUT

SA2") ²

Código


name

DUT

A2_

DESCRI

NREDUZ

Nome da Transportadora


description

DUT

A2_

DESCRI

NOME

Descrição da Transportadora

priority

email

0PrioridadeValor fixosimilarity0SimilaridadeValor fixo

A2_EMAIL

E-mail da Transportadora


10.5. Mensagem de Integração dos Registros do Cadastro de

Produto

Transportadora

Tag XML

Campo Protheus

Campo Cockpit Logístico

Campo TOTVS Otimização Logística

Observações

regionSourceId

MV_CPLREG

Regional

shipperIdMV_CPLEMBEmbarcador


identifier

B1

A4_

COD 

COD +

OMSGETFIL

OMSXGETFIL("

SB1

SA4") ²

Código

description

name

B1

A4_

DESC

NREDUZ

Descrição

Nome da Transportadora

productCategoryId

description

B1

A4_

GRUPO

NOME

Categoria

Descrição da Transportadora

height

email

B5

A4_

ALTURLCAlturaPasta LogísticalengthB5_LARGLCComprimentoPasta LogísticawidthB5_COMPRLCLarguraPasta LogísticaweightB1_PESO ou B1_PESBRUPeso

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"Forma1=Caixa

Mensagem de Integração dos Registros do Cadastro de Pedido de Venda

EMAIL

E-mail da Transportadora


10.6. Mensagem de Integração dos Registros do Cadastro de Tipos de Veículos

Tag XML

Campo Protheus

Campo TOTVS Otimização Logística

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

10.7. Mensagem de Integração dos Registros do Cadastro de Produto

Tag XML

Campo Protheus

Campo TOTVS Otimização Logística

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

10.8. Mensagem de Integração dos Registros do Cadastro de Pedido de Venda

Tag XML

Campo Protheus

Campo TOTVS Otimização Logística

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. 

Tag XMLCampo ProtheusCampo Cockpit LogísticoObservaçõesregionSourceIdMV_CPLREGRegionalintegrationDataSourceMV_CPLIDSIntegraçãoorderTypeSourceIdNilTipo do PedidoTAG não enviadaidentifier

RTrim( OMSXGETFIL("SC5",.F.) + "-" +RTrim(SC5->C5_NUM)

codeRTrim( OMSXGETFIL("SC5",.F.) + "-" +RTrim(SC5->C5_NUM)Código do Ped. Transp.priority"0"PrioridadeerpCreationDtDate()Data CorrenteData de criação do pedido.pickupStart( C6_DATAEMB ou Data Atual ) + hora fixa "00:01:00" para determinar o início do dia.Janela EmbarquedeliveryEnd( C5_FECENT ou C6_ENTREG ou Data Atual ) + hora fixa "23:59:59" para determinar o fim do dia.Janela EntregaorderIdRTrim( OMSXGETFIL("SC5",.F.) + "-" +RTrim(SC5->C5_NUM)ID do Pedido de TransportesourceId

orderId + "-" + C6_ITEM

Código do Item Ped. Transp.Concatenação do campo anterior com o item de sequência do pedido.productIdC6_PRODUTO + OMSGETFIL("SB1") ²ProdutoConforme o código enviado na mensagem de produtos.quantityC9_QTDLIB ou C9_QTDLIB2Quantidade total de unid.

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 InicialConforme o código enviado na mensagem de localidades para os registros de filiais.destinationId

"FOR-" + RTrim(SC5->C5_CLIENT)+ "-" + RTrim(SC5->C5_LOJAENT) + OMSGETFIL("SA2") ²
ou
"CLI-" + RTrim(SC5->C5_CLIENT)+ "-" + RTrim(SC5->C5_LOJAENT) + OMSGETFIL("SA1") ²

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.

quantityInShipmentUnitsC9_QTDLIB ou C9_QTDLIB2Depende 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á

.

Caso contrário, será enviado sempre o campo C9_QTDLIB .

height

price

B5

C6_

ALTURLC

Quando houver relacionamento com o B1_PRODUTO, quando vazio será enviado por padrão o contéudo = 0.001

widthB5_LARGLCQuando vazio, por padrão o contéudo enviado será = 0.001lengthB5_COMPRLCQuando vazio, por padrão o contéudo enviado será = 0.001weightB1_PESO ou B1_PESBRU

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)

shipperIdMV_CPLEMBID do Embarcadormodal"1"ID do modal do pedido de transporteEnviar valor fixo 1 - Rodoviário.incotermC5_TPFRETESendo o conteúdo C = 1 e F = 0 para o CPL; quando o campo for vazio passaremos sempre 1.shipmentUnitWrapperCodeMV_CPLINVInvólucro de embarque
ÂncoraDefaultCompanyDefaultCompany

² 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 OMS Protheus x Cockpit Logístico NeologConfigurações Complementares

Configuração Para Envio Automático de Pedidos de Venda (Schedule)

Os pedidos de venda gerados no módulo SIGAOMS podem ser enviados automaticamente ao Cockpit Logístico. 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 no link: http://tdn.totvs.com/display/framework/Schedule+Protheus.

No arquivo appserver.ini é necessário inserir a configuração abaixo:

Bloco de código
languagejava
themeEclipse
titleappserver.ini
collapsetrue
[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 Logístico possuí como característica o tratamento de peso apenas em KG, portanto, para que o SIGAOMS 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.

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 OMS Protheus x Cockpit Logístico NeologFuncionalidades Não Contempladas

Informações
iconfalse

A integração entre o SIGAOMS e o Cockpit Logístico possuí as seguintes restrições:

  • Não é possível realizar quebra da quantidade do pedido no Cockpit Logístico.
  • Não é possível integrar pedidos faturados (restrição já existente na geração da carga).
  • É possível selecionar vários registros para a integração de uma única vez, seja de cliente, produto ou fornecedor, porém, o envio das mensagens XML é realizado uma por vez (e não em lote).

  • Não existe uma forma de visualizar o gerenciamento do relacionamento das viagens do Cockpit Logísitico com o SIGAOMS, quando as viagens possuírem pedidos de mais de uma empresa/filial e quando não for utilizada a Gestão de Empresas. ¹

¹ É possível que uma viagem no Cockpit Logísitico 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 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 Logístico poderá gerar uma ou mais cargas no OMS, não havendo nenhuma interface que permita ao usuário consultar este relacionamento.

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") ²

ou

"CLI-" + RTrim(SC5->C5_CLIENT)+ "-" + RTrim(SC5->C5_LOJAENT) + OMSXGETFIL("SA1") ²

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 conteúdo = 0.001

width

B5_LARGLC


Quando vazio, por padrão o conteúdo enviado será = 0.001

length

B5_COMPRLC


Quando vazio, por padrão o conteúdo 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)

Informações
titleImportante!
Se o produto possuir controle a granel, ou seja, B5_TIPUNIT igual a  0 (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 TOL.

Quando o campo for vazio será passado sempre 1 (um).

shipmentUnitWrapperCode

MV_CPLINV

Invólucro de embarque

-

² 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 que o retorno não for branco, este 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.


Image Added 11. Configurações Complementares

11.1. Configuração Para Envio Automático de Pedidos de Venda (Schedule)

  • Os pedidos de venda gerados no módulo TOTVS OMS podem ser enviados automaticamente ao TOTVS Otimização Logística.

  • Para isso, deve ser configurada a execução automática (Schedule) da rotina OMSXCPL6 (Envio de Pedidos de Venda).

  • 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
languagejava
themeEclipse
titleappserver.ini
collapsetrue
[OnStart]
jobs=FWSCHDMANAG,FWSCHDQUEUE
RefreshRate=60

[FWSCHDMANAG]
Main=FWSCHDMANAG
Environment=<ambiente>

[FWSCHDQUEUE]
Main=FWSCHDQUEUE
Environment=<ambiente>

11.2. Cadastro de Fator de Conversão Para KG

  • O TOL possuí como característica o tratamento de peso apenas em KG, portanto, para que o TOTVS OMS 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 > TOTVS Otimização Logística > Fator de Conversão (OMSA140), 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
titleIMPORTANTE!
Uma explicação detalhada sobre o tipo e o fator de conversão pode ser obtida em: Explicação 1ª e 2ª UM.pdf

11.3. 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 TOL e a carga gerada pelo TOTVS OMS.

  • Este ajuste deve ser realizado por meio do configurador do Protheus (SIGACFG).


Image Added 12. Funcionalidades Não Contempladas

Informações
titleIMPORTANTE!

A integração entre o TOTVS OMS e o TOTVS Otimização Logística apresenta as seguintes restrições:

  • Não é possível integrar pedidos faturados (restrição já existente na geração da carga).
  • É possível selecionar vários registros para a integração de uma única vez, seja de cliente, produto ou fornecedor, porém, o envio das mensagens XML é realizado uma por vez (e não em lote).

  • Não existe uma forma de visualizar o gerenciamento do relacionamento das viagens do TOL com o TOTVS OMS quando as viagens possuírem pedidos de mais de uma empresa/filial e quando não for utilizada a Gestão de Empresas.¹

¹ É possível que uma viagem no TOTVS Otimização Logística 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 TOTVS OMS para trabalhar no conceito de Operador Logístico, onde uma empresa/filial permanece 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 TOL poderá gerar uma ou mais cargas no TOTVS OMS, não havendo nenhuma interface que permita ao usuário consultar este relacionamento.


Image Added 13. Informações Complementares

Por uma questão técnica, em função de poderem ser enviadas informações de diversas empresas/filiais do TOTVS OMS para o TOTVS Otimização Logística, 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 TOL com as empresas/filiais do TOTVS OMS.

Esta tabela será criada automaticamente na primeira integração de viagem recebida.

A estrutura desta tabela (VIAGEM_OMSxCPL) é apresentada a seguir:

NomeTipoTamanhoObservações
EMPRESACaractere

Len(FWGrpCompany())

Padrão 2
FILIALCaractereFwFilialSize()
CPLMSGIDNumérico10Identificador da Mensagem do TOTVS Otimização Logística
VIAGEMCaractereTamSx3("DK0_VIAGID")[1]Identificador da Viagem do TOTVS Otimização Logística
RECNOVIAGNumérico10Recno() da Viagem do Protheus DK0 > (Recno())
DATAINTCaractere8Data da Integração - Date()
HORAINTCaractere8Hora 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 Otimização Logística.


Image Added14. Quebras de Pedidos 

A integração encontra-se preparada para tratar a realização de quebras no pedido no TOTVS Otimização Logística, sendo que as quebras de pedidos no TOL 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
languagexml
titleXML de Publicação de Viagem
collapsetrue
<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 TOTVS Otimização Logística aguarda a aprovação destas quebras, por conta disso, ao enviar a mensagem de Desbloqueio de Viagem (doUnblockReleasedTrip), o TOTVS OMS envia a tag orderBreakResponses

Observe que neste momento o identificador do pedido também é alterado para concatenar o ID da quebra, desta 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 TOL, será realizada no momento da montagem da carga.

Bloco de código
languagexml
titleXML de Desbloqueio de Viagem
collapsetrue
<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
titleIMPORTANTE!
  • Para produtos com controle a granel (B5_TIPUNIT == '0') a quebra de quantidades / peso dentro do TOL não é suportada.
  • Apenas a existência desta melhoria no RPO e dicionário de dados não garante o funcionamento descrito.

  • Entre em contato com o Analista NEOLOG para obter acesso a essa funcionalidade de quebra de Pedidos no TOTVS Otimização Logística.



Image Added16. Teste de Conexão Fora do Protheus

Para verificar se o problema de conexão está no Protheus ou no TOTVS Otimização Logística, é possível realizar uma requisição para o servidor do TOL por uma ferramenta externa, exemplo: SoapUI, Postman, entre outras.

Para tanto, é possível 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
themeEclipse
collapsetrue
<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 TOTVS Otimização Logística retornará com a informação do token de acesso.

Exemplo

Bloco de código
themeEclipse
collapsetrue
<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>


Image Added17. Validação de XMLS

Para impedir que ocorram inconsistência no Protheus por XMLS mal formatados, foi desenvolvida a funcionalidade de validar XMLS, baseadas em XSD.

Ao consumir o WebService do Protheus com as mensagens de Liberação de Viagem (publishReleasedTripService), Reprogramação de Viagem (publishReprogrammingService) e Cancelamento de Viagem (publishCancelService), os XMLS passarão por uma pré-validação de estrutura.

17.1. Estrutura Para Pré-validação

Inclua a pasta xsd dentro da system, com os seguintes arquivos:

Image Added

17.1. Falhas de Estrutura

As falhas ocorridas durante o processo serão retornadas para o XML de Resposta e/ou Log Appserver:

  • XXXX-XX-XXT09:39:25.122000-03:00 10084|OMSXWS > OMSValXSD > Verificando as configurações de validação de XML baseada em Schema XSD.

  • XXXX-XX-XXT09:39:25.123000-03:00 10084|OMSXWS > OMSValXSD > Validação do XML de entrada através de XSD não executada por não existir o diretório \system\xsd com os xsds no servidor.

  • XXXX-XX-XXT09:39:25.123000-03:00 10084|OMSXWS > OMSValXSD > Análise das configurações de validação de baseada em Schema XSD concluída.

  • XXXX-XX-XXT09:39:43.890000-03:00 10084|OMSXWS > OMSXConnect > Conteúdo de cErro: Opening and ending tag mismatch: ns2:publishReprogrammingService line 1 and tagParaErro:

  • Opening and ending tag mismatch: soap:Body line 1 and ns2:publishReprogrammingService

  • Opening and ending tag mismatch: soap:Envelope line 1 and soap:Body

  • Extra content at the end of the document

17.2. Falha na Liberação da Viagem

Caso ocorra falha na liberação da viagem, será retornado "N" para a Neolog-TOL e a inconsistência de estrutura estará no log do Protheus:

Image Added

17.3. Falha de Reprogramação ou Cancelamento

Se forem falhas de reprogramação ou cancelamento será retornada a inconsistência no XML de resposta e também para o log:

Image Added

17.4. Se Não Estiver Habilitado

Estas mensagens serão exibidas no log e processo de validação será descartado:

  • XXXX-XX-XXT10:42:29.347000-03:00 10292|OMSXWS > OMSValXSD > Verificando as configurações de validação de XML baseada em Schema XSD.
  • XXXX-XX-XXT10:42:29.347000-03:00 10292|OMSXWS > OMSValXSD > Validação do XML de entrada através de XSD não executada por não existir o diretório \system\xsd com os XSDS no servidor.
  • XXXX-XX-XXT10:42:29.347000-03:00 10292|OMSXWS > OMSValXSD > Análise das configurações de validação de baseada em Schema XSD concluída.


Image Added 18. Geração de Logs

18.1. Função Para Gerar Mensagens Auxiliares Para o Log

Para auxiliar na análise de inconsistências foi desenvolvida uma função para gerar mensagens auxiliares para o log, sendo que ela insere informações como queries e conteúdos de variáveis.
Para habilitar são necessários três parâmetros em todos os ambientes:

Bloco de código
titleParâmetros do Ambiente
collapsetrue
LOGCPLOMS=.T.
FWFRAME_TRACELOG=1
LOGTIPOMS=CONSOLE
  • O terceiro parâmetro, LOGTIPOMS, define a forma de saída das mensagens.
  • Para separar as mensagens e salvar com o nome de omscpl.log dentro da pasta system, informe ARQUIVO.
  • Para salvar no log do Appserver (console.log), não coloque o parâmetro LOGTIPOMS no Appserver.ini ou informe como LOGTIPOMS=CONSOLE

Integração OMS Protheus x Cockpit Logístico NeologInformações Complementares

Por uma questão técnica, em função de poderem ser enviadas informações de diversas empresas/filiais do SIGAOMS para o Cockpit Logístico, 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 Logístico com as empresas/filiais do SIGAOMS. Esta tabela será criada automaticamente na primeira integração de viagem recebida.

A estrutura desta tabela (VIAGEM_OMSxCPL) é apresentada a seguir:
NomeTipoTamanhoObservaçõesEMPRESACaractere

Len(FWGrpCompany())

Padrão 2FILIALCaractereFwFilialSize()CPLMSGIDNumérico10Identificador da Mensagem do Cockpit LogísticoVIAGEMCaractereTamSx3("DK0_VIAGID")[1]Identificador da Viagem do Cockpit LogísticoRECNOVIAGNumérico10Recno() da Viagem do Protheus DK0->(Recno())DATAINTCaractere8Data da Integração - Date()HORAINTCaractere8Hora 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 Cockpit Logístico.