Histórico da Página
| Dica | ||
|---|---|---|
| ||
Abaixo iremos mostrar como configurar o Processo de 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 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- 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 Cliente.
34- Verifique se foi criado as Informações abaixo:
...
Tabela: SA1
Chave: A1_FILIAL+A1_COD+A1_LOJA
Vinculando o Processo de Cliente ao Assinante Live
1- No módulo 12 (Controle de Lojas), acesse Atualizações/ RMI/ Cadastros/ Assinantes.
...
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 Cliente, 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": "http://xxxxxxx/xxxxxxxx/LiveConnector/FacadeIntegracao.svc?wsdl",
"operacao": "RecuperarClienteLC_Integracao_Xml",
"tagretorno": "<LC_TicketClienteSaida>",
"documentoId": "LC_ClienteSaida",
"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:RecuperarClienteLC_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:cTokenoLive:getToken(self) + "</Chave><CodigoSistemaSatelite>" + self:oConfAssin['sistemasatelite']:oLive:getSatelite(self) + "</CodigoSistemaSatelite><Data/><Hora/></LC_Identificacao>]]></liv:xmlIdentificacao> </liv:RecuperarClienteLC_Integracao_Xml> </soapenv:Body> </soapenv:Envelope>" |
...
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 |
|---|
{
"A1_FILIAL": "&xFilial('SA1')",
"A1_NOME": "&SubStr(self:oRegistro:_Nome_ApelidoRazaoSocial:Text",
"A1_LOJA":"01",
"A1_COD":"",
"A1_CGC":"&,1,TamSX3('A1_NOME')[1])",
"A1_TIPO": "&IIF(Alltrim(self:oRegistro:_CPF_CNPJTipoClassificacaoClienteCodigo:Text) == '2','R','F')",
"A1_DTNASCLOJA": "&DtoS( CtoD( SuperGetMV('MV_LOJAPAD',.F., '01')",
"A1_NREDUZ": "&SubStr(self:oRegistro:_DataNascimentoNome_RazaoSocial:Text, 1, 10) ))TamSX3('A1_NREDUZ')[1])",
"A1_NREDUZCGC": "&self:oRegistro:_NomeCPF_RazaoSocialCNPJ: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_COD_MUNEST": "&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_Cidade_NumeroMunicipioIBGEEstado:Text",
"A1_COMPLEM": "&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_Complemento:Text",
"A1_ESTEND": "&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_EstadoLOGRADOURO:Text",
"A1_COD_ENDMUN": "&SUBSTR(self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_LOGRADOUROCidade_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 Cliente no assinante Live:
...