Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Dica
titleIntegrando 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.

Aviso
titleImportante

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

...

2- Aguarde a criação automática do cadastro de processo referente ao InventárioCliente.  

3- Verifique se foi criado as Informações abaixo:

...

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.

...

Configuração: Preencha esta campo de acordo com a sua URL da API  Cliente, como mostra o exemplo abaixo:

Bloco de código
{
    	"url": "http://qacorp.brazilsouth.cloudapp.azure.com/PracticoLivexxxxxxx/xxxxxxxx/LiveConnector/FacadeIntegracao.svc?wsdl",
    	"operacao": "ManterClienteLC_Integracao_Xml",
    	"tagretorno": "<LC_Retorno>",
}
	"subsistemasatelite": ""
} 

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

Bloco de código
&"<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:oConfAssin['sistemasatelite']:oLive:getSatelite(self) + "</liv:codigoSistemaSatelite>
            <liv:xmlTicketCliente>
                <			<liv:xmlTicketCliente><![CDATA[<?xml version='1.0'?><LC>
				<LC_TicketCliente>
          					<Chave>" + self:cToken:oLive:getToken(self) + "</Chave>
          					<CodigoSistemaSatelite>" + self:oConfAssin['sistemasatelite']:oLive:getSatelite(self) + "</CodigoSistemaSatelite>
          					<Data>" + DtoS( Date() ) + "</Data>
          					<Hora>" + StrTran(Time(), ':', '') + "</Hora>
          					<Numero>" + FwTimeStampRMITImeStamp(1) + "</Numero>
          <Documentos>
            <LC_Cliente>
              					<Documentos>
						<LC_Cliente>
							<Apelido>" + self:oPublica['A1_NOME'] + "</Apelido>
              							<CPF_CNPJ>" + (self:cIdRetaguarda := self:oPublica['A1_CGC']) + "</CPF_CNPJ>
              <DataNascimento>" +dtoc(sTod							<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>false</Inativo>
              <Indicacao></Indicacao>
              + "</Inativo>
							<Indicacao/>
							<Nome_RazaoSocial>" + self:oPublica['A1_NOME'] + "</Nome_RazaoSocial>
              <Nota>0</Nota>
              <NumeroSequencia>1</NumeroSequencia>
              							<Nota>0</Nota>
							<NumeroSequencia>1</NumeroSequencia>
							<Observacoes>CLIENTE-INTEGRADO-PROTHEUS</Observacoes>
              <Sexo>0</Sexo>
              							<Sexo>1</Sexo>
							<TipoCliente>" + IIF(self:oPublica['A1_PESSOA'] == 'F','0','1') + "</TipoCliente>
              <TipoClassificacaoCliente>2</TipoClassificacaoCliente>
              <ListaDocumentosCliente>
                <LC_DocumentoCliente>
                  							<TipoClassificacaoCliente>1</TipoClassificacaoCliente>
							<ListaDocumentosCliente>
								<LC_DocumentoCliente>
									<Identificacao>" + self:oPublica['A1_CGC'] + "</Identificacao>
									<TipoDocumentoCliente>"+IIF(self:oPublica['A1_PESSOA']                  <TipoDocumentoCliente>2</TipoDocumentoCliente>
                == 'F','2','3')+"</TipoDocumentoCliente>
								</LC_DocumentoCliente>
              </ListaDocumentosCliente>
              <ListaEnderecos>
                <LC_Endereco>
                  							</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>
                									<Numero>0</Numero>
									<TipoEndereco>0</TipoEndereco>
								</LC_Endereco>
              </ListaEnderecos>
              <ListaEnderecosEletronico>
                <LC_EnderecoEletronico>
                  <Descricao>" + 							</ListaEnderecos>
							<ListaEnderecosEletronico>
								<LC_EnderecoEletronico>
									<Descricao>"+ IIF(Empty(self:oPublica['A1_EMAIL'] ),'[email protected]',self:oPublica['A1_EMAIL'])+ "</Descricao>
                  <TipoEnderecoEletronico>0</TipoEnderecoEletronico>
                									<TipoEnderecoEletronico>0</TipoEnderecoEletronico>
								</LC_EnderecoEletronico>
              </ListaEnderecosEletronico>
              <ListaTelefones>
                <LC_Telefone>
                  <Complemento></Complemento>
                  							</ListaEnderecosEletronico>
							<ListaTelefones>
								<LC_Telefone>
									<Complemento/>
									<DDD>" + self:oPublica['A1_DDD'] + "</DDD>
                  									<Numero>" + self:oPublica['A1_TEL'] + "</Numero>
                  <TipoTelefone>0</TipoTelefone>
                									<TipoTelefone>0</TipoTelefone>
								</LC_Telefone>
              </ListaTelefones>
              <ListaLimiteCredito>
                <LC_LimiteCredito>
                  <Ativo>true</Ativo>
                  <CodigoLoja>01851716000165</CodigoLoja>
                  							</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>
        							</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 Processo Inventario Cliente no assinante Live:


Dica
titleFluxo 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.