01. DADOS GERAIS

Produto:

Linha de Produto:

Franquias e Redes

Segmento:

Módulo:TaskManager / Financeiro
Função:Log configurável
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DVARLIVEBT-5234


02. SITUAÇÃO/REQUISITO

Esporadicamente algumas das mensagens de venda e de pagamento que foram criadas tanto pelo PDV Desktop quanto pelo MobShop, após enviadas ao servidor de fila do Totvs Franquias e Redes (LiveQueue), é verificado que foram processadas sem nenhuma falha, entretanto as informações não constam no sistema.

Exemplo de alguns casos com cupons de 6 lojas tanto MobShop quanto Desktop, conforme figura abaixo.

Hoje não existe nenhum rastreamento que possibilite uma análise mais aprofundada do problema. Mesmo se tratando de falha uma esporádica, essa situação causa um enorme problema nos fechamentos, por exemplo:

Exemplo de uma situação de divergência, onde cupom 106473 foi finalizado em duas formas de pagamento DINHEIRO e VALE TROCA.

Ao detalhar o cupom, na sub aba TROCAS é possível verificar o correto valor.

Entretanto na  sub aba Pagamentos, não existem valores.

E também se realizar o filtro na aba Financeiro, procurar por Receitas, cupom 106473 não foi localizado.

03. SOLUÇÃO

Implementado uma rotina de gravação configurável de log para proporcionar uma análise mais adequada e clara da execução, carregamento e exceções nas rotinas de processamento de mensagens.

Com o log, será possível análisar os cenários já descritos bem como novos problemas que possam surgir no processo assíncrono de processamento de mensagens do PDV Desktop e MobShop.

Para o TaskManager responsável por executar a fila de mensagens, foi desenvolvido um Plugin para persistir os logs de cada execução e de cada mensagem, ficando com a estrutura similar à:

Para o Financeiro, também foi adicionado diversos logs por toda à extensão do processo específico de processamento de Pagamentos, ficando similar à:


Detalhes

Para realizar a configuração para uso do log Plugin, é necessário acessar o site Monitoramento e efetuar o login:

Na tela inicial, selecionar e clicar no botão 5000, referente a interface de configuração do log do TaskManager, conforme:

Acessar também o menu de configuração e verificar o nível de log:

O campo Ativo deve estar com o valor 1 (ligado) e campo LogLevel com valor diferente de 0:

Após rodar o instalador da Fila, deve-se conferir o arquivo spf.exe.config:

Verificar se existe a chave "Integracao.ConnectionString" e caso não existir, criar manualmente conforme o exemplo:

Verificar a existência do arquivo "Plugin.Spf.LogIntegracao.dll", que é o próprio Plugin:

Na ausência do Plugin no diretório de instalação, entrar em contato com time de produto.

OBS: O diretório de instalação pode variar dependendo do ambiente e apenas a existência do Plugin no diretório Queue não significa que o log será gravado, sendo necessário configurar.

TaskManager: Exemplo de consulta para análise

Para realizar a configuração para uso do log no processamento dos pagamentos do Financeiro, é necessário acessar o site Monitoramento e efetuar o login:

Na tela inicial, selecionar e clicar no botão 2000, referente a interface de configuração do log do Financeiro, conforme:

Acessar também o menu de configuração e verificar o nível de log:

O campo Ativo deve estar com o valor 1 (ligado) e campo LogLevel com valor diferente de 0:

Financeiro: Exemplo de consulta para análise


04. DEMAIS INFORMAÇÕES

O modelo de Plugin implementado no TaskManager utiliza o MEF, muito interessante para baixo acoplamento e controle de dependências.



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

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>