Integrando Cliente
Abaixo iremos mostrar como configurar o Processo de Envio Cliente do Protheus para integra-lo com o sistema Totvs Live. Siga o Passo a Passo.
Importante
É obrigatório a criação do campo A1_MSEXP, para que não ocorra um loop infinito, quando o processo de CLIENTE está ativo para BUSCA e ENVIO no mesmo assinante.
Cadastrando o Processo de Cliente
Para integrarmos o Cliente com o Totvs Live primeiramente é necessário acessar o cadastro do Processo para verificar se o Cliente foi criado automaticamente no Protheus.
1- No módulo 12 (Controle de Lojas), acesse Atualizações/ RMI/ Cadastros/ Processos.
2- Aguarde a criação automática do cadastro de processo referente ao Cliente.
3- Verifique se foi criado as Informações abaixo:
Processo: Cliente
Tabela: SA1
Chave: A1_FILIAL+A1_COD
Vinculando o Processo de Cliente ao Assinante Live
1- No módulo 12 (Controle de Lojas), acesse Atualizações/ RMI/ Cadastros/ Assinantes.
2- Com o assinante Live previamente cadastrado, posicione no assinante Live e clique em alterar.
3- Na guia Assinantes x Processos, preencha os seguintes campos:
Processo: Cliente
Ativo: Sim
Tipo Process: Envia
Filiais Proc: Informe o código das filiais que deseja Enviar o Processo
Configuração: Preencha esta campo de acordo com a sua URL da API Cliente, como mostra o exemplo abaixo:
{ "url": "http://xxxxxxx/xxxxxxxx/LiveConnector/FacadeIntegracao.svc?wsdl", "operacao": "ManterClienteLC_Integracao_Xml", "tagretorno": "<LC_Retorno>", "subsistemasatelite": "", "subtoken": "", "qtdereenvio": [ 1, 6, 9 ] }
Caso seja necessário enviar os clientes cadastros no Protheus para um sistema satélite diferente, deve-se preencher a tag subsistemasatelite com o código do satelite desejado.
Layout Envio: Preencha este campo de acordo com o exemplo abaixo: Lembrando que é permitido utilizar macro execuções no Layout abaixo, após o &.
Obs: Verificar o que deve enviar na TAG <TipoClassificacaoCliente>?<TipoClassificacaoCliente>
Opções: 0 = Indefinido, 1= Cliente, 2= Revendedor
&"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:liv='http://LiveConnector/'> <soapenv:Header/> <soapenv:Body> <liv:ManterClienteLC_Integracao_Xml> <liv:codigoSistemaSatelite>" + self:oLive:getSatelite(self) + "</liv:codigoSistemaSatelite> <liv:xmlTicketCliente><![CDATA[<?xml version='1.0'?> <LC_TicketCliente> <Chave>" + self:oLive:getToken(self) + "</Chave> <CodigoSistemaSatelite>" + self:oLive:getSatelite(self) + "</CodigoSistemaSatelite> <Data>" + DtoS( Date() ) + "</Data> <Hora>" + StrTran(Time(), ':', '') + "</Hora> <Numero>" + RMITImeStamp() + "</Numero> <Documentos> <LC_Cliente> <Apelido>" + self:oPublica['A1_NOME'] + "</Apelido> <CPF_CNPJ>" + (self:cIdRetaguarda := self:oPublica['A1_CGC']) + "</CPF_CNPJ> <DataNascimento>" +IIF(!Empty(self:oPublica['A1_DTNASC']),Substr(self:oPublica['A1_DTNASC'],1,4)+'-'+Substr(self:oPublica['A1_DTNASC'],5,2)+'-'+Substr(self:oPublica['A1_DTNASC'],7,2),'2003-10-30')+ "</DataNascimento> <Inativo>" + IIF(self:oPublica['A1_MSBLQL']=='2','false','true') + "</Inativo> <Indicacao/> <Nome_RazaoSocial>" + self:oPublica['A1_NOME'] + "</Nome_RazaoSocial> <Nota>0</Nota> <NumeroSequencia>1</NumeroSequencia> <Observacoes>CLIENTE-INTEGRADO-PROTHEUS</Observacoes> <Sexo>1</Sexo> <TipoCliente>" + IIF(self:oPublica['A1_PESSOA'] == 'F','0','1') + "</TipoCliente> <TipoClassificacaoCliente>1</TipoClassificacaoCliente> <ListaDocumentosCliente> <LC_DocumentoCliente> <Identificacao>" + self:oPublica['A1_CGC'] + "</Identificacao> <TipoDocumentoCliente>"+IIF(self:oPublica['A1_PESSOA'] == 'F','2','3')+"</TipoDocumentoCliente> </LC_DocumentoCliente> </ListaDocumentosCliente> <ListaEnderecos> <LC_Endereco> <Bairro>" + self:oPublica['A1_BAIRRO'] + "</Bairro> <CEP>" + self:oPublica['A1_CEP'] + "</CEP> <Cidade_NumeroMunicipioIBGE>" +RmiRetIBGE(self:oPublica['A1_EST'], self:oPublica['A1_COD_MUN']) + "</Cidade_NumeroMunicipioIBGE> <Complemento>" + self:oPublica['A1_COMPLEM'] + "</Complemento> <Estado>" + self:oPublica['A1_EST'] + "</Estado> <Logradouro>" + self:oPublica['A1_END'] + "</Logradouro> <Numero>0</Numero> <TipoEndereco>0</TipoEndereco> </LC_Endereco> </ListaEnderecos> <ListaEnderecosEletronico> <LC_EnderecoEletronico> <Descricao>"+ IIF(Empty(self:oPublica['A1_EMAIL']),'[email protected]',self:oPublica['A1_EMAIL'])+ "</Descricao> <TipoEnderecoEletronico>0</TipoEnderecoEletronico> </LC_EnderecoEletronico> </ListaEnderecosEletronico> <ListaTelefones> <LC_Telefone> <Complemento/> <DDD>" + self:oPublica['A1_DDD'] + "</DDD> <Numero>" + self:oPublica['A1_TEL'] + "</Numero> <TipoTelefone>0</TipoTelefone> </LC_Telefone> </ListaTelefones> <ListaLimiteCredito> <LC_LimiteCredito> <Ativo>true</Ativo> <CodigoLoja>"+self:aArrayFil[1][1]+"</CodigoLoja> <LimiteCredito>" + cValToChar(self:oPublica['A1_LC']) + "</LimiteCredito> <LimiteMensal>" + cValToChar(self:oPublica['A1_LC']) + "</LimiteMensal> <NomeContrato>" + self:oPublica['A1_NOME'] + "</NomeContrato> </LC_LimiteCredito> </ListaLimiteCredito> <ListaModalidades> <LC_Modalidade> <Codigo>1</Codigo> <Descricao>Consumidor Final</Descricao> </LC_Modalidade> </ListaModalidades> </LC_Cliente> </Documentos> </LC_TicketCliente> ]]></liv:xmlTicketCliente> </liv:ManterClienteLC_Integracao_Xml> </soapenv:Body> </soapenv:Envelope>"
Exemplo da Configuração do campo de exportação A1_MSEXP via Configurador:
Exemplo da configuração do Processo Cliente no assinante Live:
Fluxo de integração
Após ter realizado as configurações acima a integração do 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 o envio da publicação sera realizado a distribuição das publicações de Cliente para o Assinante Live na tabela MHR.
Com as distribuições realizadas o serviço RMIENVIA realizara o envio de Cliente para o Totvs Live.