Árvore de páginas

Versões comparadas

Chave

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

...

Linha de Produto:Microsiga Protheus
Segmento:Varejo
Módulo:SigaLoja - Controle de Loja
Função:

RmiBuscaObj - Classe responsável por buscar informações

RmiBusLiveObj- Classe responsável por buscar informações com particularidades do Totvs ChefLive.

02. SITUAÇÃO/REQUISITO

Disponibilizar um serviço que efetue Permitir que o serviço RMIBUSCA efetue a busca de Cliente  Operador de Caixa no Assinante Live.

03. SOLUÇÃO

Atualizado serviço serviço RmiBusca para o Assinantes Live, que será responsável por buscar os processos nos assinantes , permitindo realizar a busca dos Operadores de Caixa cadastrados no TOTVS LIVE e publica-los na tabela tabela MHQ - Mensagens Publicadas.

Este serviço será executado com base na configuração de Assinantes.

Neste exemplo o processo Venda OPERADOR CAIXA está configurado como busca para o assinantes Live utilizando a operação RecuperarClienteLCRecuperarFuncionarioLC_Integracao_Xml.

Image RemovedImage Added


Definição dos principais campos para efetuar a busca:

...

Bloco de código
{
    "url_token":"http://caminho/PracticoLive/LiveConnector/FacadeIntegracao.svc?wsdl",   	(Url para acessar o LiveConector)
    "operacao":"ObterChaveAcessoLC_Integracao", 											        (Operação para buscar token)
    "sistemasatelite":"123456789", 															(código do sistema satélite)
    "usuario":"[email protected]", 														(nome do usuário)
    "senha":"senha" 																		(senha do usuário)
}

...

  • Configuração do Processo - Necessário para executar a operação RecuperarClienteLCRecuperarFuncionarioLC_Integracao_Xml.
Bloco de código
{
    "url": "http://caminho/PracticoLive/LiveConnector/FacadeIntegracao.svc?wsdl",   (Url para acessar o LiveConector)
    "operacao": "RecuperarClienteLCRecuperarFuncionarioLC_Integracao_Xml",
    "tagretorno": "<LC_TicketClienteSaida>Funcionario>",
    "documentoId": "LCFuncionarioLista:_ClienteSaidaFuncionarios",    
    "ChaveUni": "CPF_CNPJCodigo"
}


  • Layout Envio - Body que o LiveConector precisa para retornar as vendasos Operadores de Caixa
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:RecuperarClienteLCRecuperarFuncionarioLC_Integracao_Xml>
         <liv:codigoSistemaSatelite>" + self:oConfAssin['sistemasatelite'] + "</liv:codigoSistemaSatelite>
         <liv:xmlIdentificacao><![CDATA[<?xml version='1.0' encoding='utf-8'?><LC_Identificacao><Chave>" + self:cToken + "</Chave><CodigoSistemaSatelite>" + self:oConfAssin['sistemasatelite'] + "</CodigoSistemaSatelite><Data/><Hora/></LC_Identificacao>]]></liv:xmlIdentificacao>
      </liv:RecuperarClienteLCRecuperarFuncionarioLC_Integracao_Xml>
   </soapenv:Body>
</soapenv:Envelope>"

...

  • Layout Publi - Layout que será utilizado para gerar a Publicação (tabela MHQ), especificamente o campo MHQ_MENSAG
Bloco de código
{    
    "A1A6_FILIAL":"&xFilial()",
    "A1_NOME":"&RmiDePaRet('LIVE', 'SM0',self:oRegistro:_ApelidoLojaCNPJ:Text,.F.)",
    "A1A6_CGCCOD":"&self:oRegistro:_CPF_CNPJCodigo:Text",
    "A1A6_DTNASCNOME":"&DtoS( CtoD( SubStr(self:oRegistro:_DataNascimentoNome:Text, 1, 10) ))",
    "A1A6_NREDUZDATAFCH":"&self:oRegistro:_Nome_RazaoSocial:TextDtoS(dDatabase)",
    "A1A6_PESSOAHORAFCH":"&IIF(UPPER(Alltrim(self:oRegistro:_TipoCliente:Text)) == 'JURIDICA','J','F'isBlind(),Substr(Time(),1,5),Substr(GetRmtTime(),1,5))",
    "A1A6_BAIRROMOEDA":"&self:oRegistro:_LISTAENDERECOSSAIDA:_LC_ENDERECOSAIDA:_BAIRRO:Text1",
    "A1A6_CEP":"&self:oRegistro:_LISTAENDERECOSSAIDAEnderecosLista:_LC_ENDERECOSAIDAEnderecos:_CEP:TEXT",
    "A1A6_COD_MUNEND":"&self:oRegistro:_LISTAENDERECOSSAIDAEnderecosLista:_LC_ENDERECOSAIDAEnderecos:_Cidade_NumeroMunicipioIBGELogradouro:TextTEXT",
    "A1A6_COMPLEMBAIRRO":"&self:oRegistro:_LISTAENDERECOSSAIDAEnderecosLista:_LC_ENDERECOSAIDAEnderecos:_ComplementoBairro:TextTEXT",
    "A1A6_EST":"&self:oRegistro:_LISTAENDERECOSSAIDAEnderecosLista:_LC_ENDERECOSAIDAEnderecos:_Estado:TextTEXT",
    "A1A6_ENDMUN":"&self:oRegistro:_LISTAENDERECOSSAIDAEnderecosLista:_LC_ENDERECOSAIDAEnderecos:_LOGRADOURO:Text",
    "A1_DDD":"&self:oRegistro:_LISTATELEFONESSAIDA:_LC_TELEFONESAIDA:_DDD:Municipio:TEXT",
    "A1	"A6_TEL":"&self:oRegistro:_LISTATELEFONESSAIDATelefoneLista:_LC_TELEFONESAIDATelefone:_NUMERONumero:TEXTText"
}

Observação:

& - Este carácter define que deve macro executar tudo o quem depois em tempo de execução.

self:oRegistro - Possibilita o acesso a todas as TAGs retornadas pela operação RecuperarClienteLCRecuperarFuncionarioLC_Integracao_Xml do LiveConector,  definido por uma venda por vez. 
Caso seja necessário receber mais algum campo deve ser incluído no layout acima.

...

Exemplo de geração do mensagem publicada (MHQ_MENSAG):

Bloco de código
{
	"A1A6_CEP": "0203901002018000",
	"A1A6_PESSOAMOEDA": "F"1,
	"A1_DTNASC": "20010101",
	"A1_EST": "PB",
	"A1_A6_END": "Rua Teste23/03/2020 16:55:171",
	"A1A6_DDDEST": "65SC",
	"A1A6_FILIALDATAFCH": "        20200512",
	"A1A6_COMPLEMHORAFCH": "Complemento23/03/2020 16:55:1712:26",
	"A1A6_COD_MUNBAIRRO": "2507507Bairro1",
	"A1A6_CGCCOD": "143154763821234",
	"A1A6_NOME": "Apelido 23/03/2020 16:55:17Usuario de Teste 0904",
	"A1A6_NREDUZFILIAL": "Cliente 23/03/2020 16:55:17D RJ 02",
	"A1A6_TEL": "76352618888889999",
	"A1A6_BAIRROMUN": "B23/03/2020 16:55:17FLORIANOPOLIS"
}


Neste serviço serão utilizadas as seguintes tabelas:

...

MHQ - Mensagens Publicadas

04. DEMAIS INFORMAÇÕES

A configuração do assinante Live deverá seguir a documentação na seguinte estrutura: Assinante Live.

Exemplo de configuração do Job no AppServer.ini

...

Não há.

05. ASSUNTOS RELACIONADOS

Dúvidas Frequentes - Varejo

Guia da Integração RMI - Retail Integration Management

Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>