Histórico da Página
Dica | ||
---|---|---|
| ||
Abaixo iremos mostrar como configurar o Processo de Inventário Cliente no Protheus para integra-lo com o sistema Totvs Live. Siga o Passo a Passo. |
Aviso | ||
---|---|---|
| ||
|
Cadastrando o Processo de
...
Cliente
Para integrarmos o Inventário Cliente com o Totvs Live primeiramente é necessário acessar o cadastro do Processo para verificar se o Inventário Cliente foi criado automaticamente no Protheus.
...
1- No módulo 12 (Controle de Lojas), acesse Atualizações/ RMI/ Cadastros/ Processos.
2- Ajustar dicionario conforme a documentação: https://tdn.totvs.com/x/WfCnI
3- Aguarde a criação automática do cadastro de processo referente ao InventárioCliente.
34- Verifique se foi criado as Informações abaixo:
Processo: INVENTARIO Cliente
Tabela: SB7 SA1
Chave: B7A1_FILIAL+B7_DATA+B7A1_COD+B7_LOCAL+B7_LOCALIZ+B7_NUMSERI+B7_LOTECTL+B7_NUMLOTE+B7_CONTAGE A1_LOJA
Vinculando o Processo de
...
Cliente ao Assinante Live
1- No módulo 12 (Controle de Lojas), acesse Atualizações/ RMI/ Cadastros/ Assinantes.
...
3- Na guia Assinantes x Processos, preencha os seguintes campos:
Processo: InventarioCliente
Ativo: Sim
Tipo Process: Busca
Filiais Proc: Informe o código das filiais que deseja Buscar o Processode apenas uma filial para buscar o Processo. (todas as lojas abaixo do sistema satélite serão retornadas)
Configuração: Preencha esta campo de acordo com a sua URL da API InventarioCliente, como mostra o exemplo abaixo:
Obs: A tag ChaveUni pode processar um array de Tags XML ou Variável disponível no momento do processamento para formar a chave única do cliente que será gravado na tabela MHQ no campo MHQ_CHVUNI.
Bloco de código |
---|
{ "url_token": "http://caminhoxxxxxxx/PracticoLivexxxxxxxx/LiveConnector/FacadeIntegracao.svc?wsdl", (Url para acessar o LiveConector) "operacao": "RecuperarInventarioLCRecuperarClienteLC_Integracao_Xml", (Operação para buscar token) "sistemasatelitetagretorno": "123456789", (código do sistema satélite)<LC_TicketClienteSaida>", "usuariodocumentoId":"[email protected] "LC_ClienteSaida", (nome do usuário) "senha":"senha" (senha do usuário) }"ChaveUni": [ "Self:cConfirma", "CPF_CNPJ" ] } |
Layout Envio: Preencha este campo de acordo com o exemplo abaixo: Lembrando que é permitido utilizar macro execuções no Layout abaixo, após o &.
Bloco de código |
---|
&"<?xml version='1.0' encoding='UTF-8'?> <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:liv='http://LiveConnector/'> <soapenv:Header /> <soapenv:Body> <liv:RecuperarInventarioLCRecuperarClienteLC_Integracao_Xml> <liv:codigoSistemaSatelite>" + self:oConfAssin['sistemasatelite']:oLive:getSatelite(self) + "</liv:codigoSistemaSatelite> <liv:xmlIdentificacao><![CDATA[<?xml version='1.0' encoding='utf-8'?><LC_Identificacao><Chave>" + self:cToken:oLive:getToken(self) + "</Chave><CodigoSistemaSatelite>" + self:oConfAssin['sistemasatelite']:oLive:getSatelite(self) + "</CodigoSistemaSatelite><Data/><Hora/></LC_Identificacao>]]></liv:xmlIdentificacao> </liv:RecuperarInventarioLCRecuperarClienteLC_Integracao_Xml> </soapenv:Body> </soapenv:Envelope>" |
Layout Publicação: Layout que será utilizado para gerar a Publicação (tabela MHQ), especificamente o campo MHQ_MENSAG
Obs: Os campos abaixo são configuráveis conforme a sua necessidade após o &. Podendo incluir mais campos e chamada de funções para preenchimento.
Bloco de código |
---|
{ "B7 "A1_FILIAL": "&RmiDePaRetxFilial('LIVESA1')", 'SM0', "A1_NOME": "&SubStr(self:oRegistro:_INVENTARIO:Nome_CNPJLojaRazaoSocial:Text,.F.1,TamSX3('A1_NOME')[1])", "B7_DOC "A1_TIPO": "&IIF(Alltrim(self:oRegistro:_INVENTARIOTipoClassificacaoClienteCodigo:_CodigoInventario:TextText) == '2','R','F')", "A1_LOJA": "B7_DATA":"&DtoS(CtoD("&SuperGetMV('MV_LOJAPAD',.F., '01')", "A1_NREDUZ": "&SubStr(self:oRegistro:_INVENTARIO:Nome_DataFechamentoRazaoSocial:Text,1,10))TamSX3('A1_NREDUZ')[1])", "SB7 "A1_CGC": [ { "B7_COD":"&RmiDePaRet('LIVE', 'SB1',self:oRegistro:_INVENTARIO:_ProdutosLista:_Produto[nItem]:_CodigoProduto:text,.F.)", "B7_LOCAL": "01", "B7_QUANT":"&self:oRegistro:_INVENTARIO:_ProdutosLista:_Produto[nItem]:_QtdEstoquePosicaoAtual:text", "B7_CONTAGE": "1", "B7_ORIGEM": "LOJAINT" } ]"&self:oRegistro:_CPF_CNPJ:Text", "A1_PESSOA": "&IIF(UPPER(Alltrim(self:oRegistro:_TipoCliente:Text)) == 'JURIDICA','J','F')", "A1_BAIRRO": "&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_BAIRRO:Text", "A1_CEP": "&StrTran( self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_CEP:TEXT, '-', '' )", "A1_EST": "&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_Estado:Text", "A1_COMPLEM": "&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_Complemento:Text", "A1_END": "&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_LOGRADOURO:Text", "A1_COD_MUN": "&SUBSTR(self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_Cidade_NumeroMunicipioIBGE:Text,3,5)", "A1_DDD": "&IIF(!EMPTY(self:oRegistro:_LISTATELEFONESSAIDA:TEXT),Iif(ValType(self:oRegistro:_LISTATELEFONESSAIDA:_LC_TELEFONESAIDA) == 'A',self:oRegistro:_LISTATELEFONESSAIDA:_LC_TELEFONESAIDA[1]:_DDD:TEXT,self:oRegistro:_LISTATELEFONESSAIDA:_LC_TELEFONESAIDA:_DDD:TEXT),'11')", "A1_TEL": "&IIF(!EMPTY(self:oRegistro:_LISTATELEFONESSAIDA:TEXT),Iif(ValType(self:oRegistro:_LISTATELEFONESSAIDA:_LC_TELEFONESAIDA) == 'A',self:oRegistro:_LISTATELEFONESSAIDA:_LC_TELEFONESAIDA[1]:_NUMERO:TEXT,self:oRegistro:_LISTATELEFONESSAIDA:_LC_TELEFONESAIDA:_NUMERO:TEXT),'31110300')", "A1_MSBLQL": "&IIF(UPPER(Alltrim(self:oRegistro:_Inativo:Text))=='FALSE','2','1')", "A1_DTNASC": "&self:oRegistro:_DataNascimento:Text", "A1_EMAIL": "&StrTran( IIF( XmlChildEx(self:oRegistro:_LISTAENDERECOSELETRONICOSAIDA, '_LC_ENDERECOELETRONICOSAIDA') <> Nil, IIF(ValType(self:oRegistro:_LISTAENDERECOSELETRONICOSAIDA:_LC_ENDERECOELETRONICOSAIDA) == 'A', self:oRegistro:_LISTAENDERECOSELETRONICOSAIDA:_LC_ENDERECOELETRONICOSAIDA[1]:_DESCRICAO:TEXT, self:oRegistro:_LISTAENDERECOSELETRONICOSAIDA:_LC_ENDERECOELETRONICOSAIDA:_DESCRICAO:TEXT), '' ), '´', '')" } |
Exemplo da configuração do Processo Inventario Cliente no assinante Live:
Dica | ||
---|---|---|
| ||
Após ter realizado as configurações acima a integração do Inventário Cliente seguirá o seguinte fluxo: Com os serviços RMIPUBLICA, RMIDISTRIB e RMIENVIA configurados e ativos, será gerado as publicações na tabela MHQ. Após a busca da publicação sera realizado a distribuição das publicações de Inventários para Cliente para o Assinante Live na tabela MHR. Com as distribuições realizadas o serviço RMIENVIA realizara o envio de Inventário para Cliente para o Totvs Protheus, após a finalização do serviço RMIENVIA, no campo MHR_ENVIO, será gravado o json que enviamos para o Protheus e no campo MHR_RETORN é gravado a mensagem de retorno do Live, se obteve sucesso ou não na inclusão do Inventário Cliente . |