01. DADOS GERAIS

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

RmiBusca - Serviço controlador de buscas

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

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

02. SITUAÇÃO/REQUISITO

Disponibilizar um serviço que efetue a busca de Vendas no Assinante Live.

03. SOLUÇÃO

Atualizado serviço RmiBusca para o Assinantes Live, que será responsável por buscar os processos nos assinantes e publica-los na tabela MHQ - Mensagens Publicadas.

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

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


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

2=Busca


{
    "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)
}


{ 
    "url":"http://caminho/PracticoLive/LiveConnector/FacadeIntegracao.svc?wsdl",
    "operacao":"RecuperarCupomFiscalLC_Integracao_Xml",
    "tagretorno":"<LC_TicketCupomFiscal>",
    "SL2":"self:oRegistro:_Itens:_Lc_ItemCupomfiscal",
    "SL4":"self:oRegistro:_FormasPagamento:_Lc_FormaPagamento"
}


&"<?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:RecuperarCupomFiscalLC_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:RecuperarCupomFiscalLC_Integracao_Xml>
   </soapenv:Body>
</soapenv:Envelope>"

Observação:

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


{
    "L1_FILIAL":"&self:aArrayFil[self:nFil][2]",
    "L1_VEND":"",
    "L1_CLIENTE":"&self:oRegistro:_IdentificacaoCliente:Text",
    "L1_LOJA":"&SuperGetMv('MV_LOJPAD', .F., '01')",
    "L1_OPERADO":"C02",
    "L1_EMISSAO":"&DtoS( CtoD( SubStr(self:oRegistro:_DataHora:Text, 1, 10) ) )",
    "L1_NUMCFIS":"&self:oRegistro:_Numero:Text",
    "L1_DOC":"&cValToChar(self:oRegistro:_Numero:Text)",
    "L1_SERIE":"",
    "L1_KEYNFCE":"&IIF(self:oRegistro:_SiglaModelo:Text <> '2D', self:oRegistro:_ChaveNFCe:Text, '')",
    "L1_SERSAT":"&IIF(self:oRegistro:_SiglaModelo:Text == '59', self:oRegistro:_SerieNFCe:Text, '')",
    "L1_SERPDV":"&IIF(self:oRegistro:_SiglaModelo:Text == '2D', self:oRegistro:_NumeroImpressora:Text, '')",
    "L1_COMIS":0,
    "L1_VLRTOT":"&Val(self:oRegistro:_ValorLiquido:Text)",
    "L1_VALBRUT":"&Val(self:oRegistro:_ValorBruto:Text)",
    "L1_VLRLIQ":"&Val(self:oRegistro:_ValorLiquido:Text)",
    "L1_VALMERC":"&Val(self:oRegistro:_ValorBruto:Text)",
    "L1_DESCONT":"&Val(self:oRegistro:_ValorDesconto:Text)",
    "L1_MSEXP":"&DtoS(Date())",
    "L1_CONDPG":"CN",
    "L1_SITUA":"IP",
    "L1_TIPO":"V",
    "L1_TIPOCLI":"F",
    "L1_PDV":"&self:oRegistro:_NumeroPDV:Text",
    "L1_ORIGEM":"N",
    "SL2":[
        {
            "L2_FILIAL":"&self:aArrayFil[self:nFil][2]",
            "L2_PRODUTO":"&self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_CodigoProduto:Text",
            "L2_ITEM":"&Right( AllTrim(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_NumeroItem:Text), TamSx3('L2_ITEM')[1])",
            "L2_DESCRI":"",
            "L2_QUANT":"&Val(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_Quantidade:Text)",
            "L2_VRUNIT":"&Val(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_ValorUnitarioLiquido:Text)",
            "L2_VLRITEM":"&Val(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_ValorTotalLiquido:Text)",
            "L2_LOCAL":"01",
            "L2_UM":"&self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_UnidadeMedida:Text",
            "L2_TES":"&SuperGetMv('MV_TESSAI', .F., '501')",
            "L2_CF":"",
            "L2_EMISSAO":"&DtoS( CtoD( SubStr(self:oRegistro:_DataHora:Text, 1, 10) ) )"
        }
    ],
    "SL4":[
        {
            "L4_FILIAL":"&self:aArrayFil[self:nFil][2]",
            "L4_DATA":"&DtoS( CtoD( SubStr(self:oRegistro:_DataHora:Text, 1, 10) ) )",
            "L4_VALOR":"&Val(self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_ValorPagamento:Text)",
            "L4_ADMINIS":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_DescricaoProdutoEletronico:Text",
            "L4_FORMA":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_DescricaoFormaPagamento:Text",
            "L4_AUTORIZ":"&AllTrim(self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_Autorizacao:Text)",
            "L4_NSUTEF":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_NSU:Text",
            "L4_PARCTEF":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_Parcela:Text"
        }
    ]
}

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


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

MHP - Assinantes x Processos

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

[RMIBUSCA]
Main=RmiBusca
Environment=12_1_25 (Ambiente)
nParms=2
Parm1=T1 (Empresa)
Parm2=D MG 01 (Filial)

05. ASSUNTOS RELACIONADOS

Dúvidas Frequentes - Varejo

Guia da Integração RMI - Retail Integration Management


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