01. DADOS GERAIS
Produto: | TOTVS Backoffice
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Backoffice |
Módulo: | TOTVS Backoffice (Linha Protheus) - Automação Fiscal |
Função: | TAFPROC5.PRW WSTAF024.PRW |
Ticket: | |
Requisito/Story/Issue (informe o requisito relacionado) : | DSERTAF1-35854 |
02. SITUAÇÃO/REQUISITO
* Na ocorrêcia de um error.log no processo de consulta, o mesmo não está sendo exibido no console.
* Em algumas situações o processo de consulta está ficando travado por conta do semaforo utilizando o lockbyname.
03. SOLUÇÃO
1 - Remoção da Função BEGIN SEQUENCE: A função BEGIN SEQUENCE, que era utilizada no serviço de consulta do Angular (POUI) para tratar error.log, foi removida. Dependendo da sua implementação, essa função podia ocultar erros no console.
2 -Criação de Função de Controle Dinâmico de Semáforo: Foi desenvolvida uma nova função para substituir o lockByName, que realiza um controle de semáforo dinâmico. Essa função verifica se o processo está travado, e, em caso afirmativo, o semáforo é desabilitado seguindo as seguintes regras:
Primeira Execução: Na primeira execução, o sistema armazena a quantidade atual a ser processada, realiza o lock e permite o processamento. Ao final da execução, o sistema libera o bloqueio, permitindo novas execuções.
Manutenção do Bloqueio: Se, ao iniciar uma nova execução, a quantidade a ser processada for diferente da anterior, o sistema entende que o processo está fluindo normalmente e mantém o bloqueio, permitindo a continuação do processamento.
Verificação de Execução em Andamento: Quando uma nova execução é iniciada, o sistema verifica se já existe uma execução em andamento. Se houver, ele compara a quantidade processada pela última thread com a quantidade que a nova thread precisa processar. Se as quantidades forem iguais, o sistema não executa o novo processo e incrementa o contador de tentativas. Se a quantidade de processamento permanecer a mesma por 5 execuções consecutivas, o sistema assume que o processo está travado e o libera.
Adicionalmente foi Criado o seguinte parâmetro para desabilitar o controle de semáforo:
Nome do parâmetro: | MV_TAFCLOC |
---|---|
Tipo | Lógico (.T. - Habilita o Semáforo, .F. - Desabilita o Semáforo) |
Decrição: | Desabilita o controle de semáforo na rotina TAFPROC5 (consulta de documentos e-social) |
Desabilitar este parâmetro pode resultar em processamentos desnecessários e causar duplicidades na gravação dos totalizadores.
04. DEMAIS INFORMAÇÕES
Não se aplica
05. ASSUNTOS RELACIONADOS
Não se aplica