01. DADOS GERAIS
| Produto: | TOTVS Framework
|
|---|---|
| Linha de Produto: | Linha Logix |
| Segmento: | Tecnologia |
| Módulo: |
Framework (Linha Logix) - Administração Logix
|
| 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.
Disponível a partir do pacote oficial 12.1.2511 ou Framework Fix 12.1.2507(fix02)IMPORTANTE!
05. ASSUNTOS RELACIONADOS
- Não se aplica.