01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:

Função:Componentes LDialog e LForm
País:Brasil
Ticket:22778601 
Requisito/Story/Issue (informe o requisito relacionado) :DFWKLOGIX-2055


02. SITUAÇÃO/REQUISITO

Na aplicação SUP21003 (Central cockpit de Manutenção de Ordens de Compra), ao tentar acionar a opção "Informações complementares" no menu lateral para uma ordem de compra de estoque, é acionada o formulário SUP210036, onde ao selecionar o botão MODIFICAR, uma transação de banco de dados é iniciada, mas quando o usuário, fechasse a janela deste formulário de forma indevida, usando o botão X no canto superior direito ao invés de acionar o botão CONFIRMAR ou CANCELAR da barra de tarefas desta mesma janela, a transação de banco de dados não era devidamente finalizada, fazendo com que diversas operações posteriores realizadas pelo usuário em outras telas acionadas a partir do mesmo menu lateral do programa SUP21003, não fossem devidamente efetivadas no banco de dados, pois no momento de fechar a aplicação principal e retornar para o menu, nenhuma ação de COMMIT no banco de dados havia sido realizada e com isso uma ação automática de ROLLBACK era então realizada, fazendo com todos dados efetivados no banco de dados durante a transação ativa, fossem perdidos.

03. SOLUÇÃO

Todo componente de janela de Diálogo que fizer uso da classe LGX - LDIALOG, passa a prever uma função de ação VALID no fechamento da janela, com objetivo de avaliar ações pendentes, como operações iniciadas e não concluídas pelo usuário através dos botões CONFIRMAR ou CANCELAR. Em caso de fechamento da janela de forma indevida a ação CANCELAR da operação será executada de forma automática, fazendo com que todo processo em andamento seja desfeito, e possível transação de banco de dados iniciada seja também desfeita, fazendo a ação de ROLLBACK no banco de dados.

Foi também identificada uma falha intermitente no build 32 bits usando appserver linux, no acesso a propriedade hWnd que é válida para todo e qualquer objeto ADVPL instanciado, no entanto alguma situação desconhecida, estava provocando falha de atributo inválido e gerando queda de appserver, onde a solução foi trocar a lógica atual utilizada para acessar o mesmo atributo hWnd do objeto na função GetComponentByHandle().  Esta correção foi também adotada na issue DFWKLOGIX-2043, pois eram situações que impediam os mesmos processos envolvidos

Alguns formulários não estavam reconhecendo a ação do clique do botão CONFIRMAR como se o botão da operação em andamento não tivesse ação alguma.

04. DEMAIS INFORMAÇÕES

Não se aplica.



05. ASSUNTOS RELACIONADOS