Páginas filhas
  • DFWKLOGIX-658 DT LOG00087 Exceção ao acionar botão PESQUISAR

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Produto:

Solucoes_totvs
Solucao TOTVS Framework

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Logix

Segmento:

Segmentos_totvs
SegmentoTecnologia

Módulo:

Modulos_cross_segmentos

Modulos_framework
ModulosFrameworkFramework (Linha Logix) - Administração Logix

Modulos_totvs_construcao

Modulos_totvs_juridico

Modulos_totvs_logistica

Modulos_totvs_manufatura

Modulos_totvs_rh

Modulos_totvs_saude

Função:Componente LDialog
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :

DFWKLOGIX-658


02. SITUAÇÃO/REQUISITO

Ocorre o erro abaixo ao clicar no pesquisar do log00087Ao tentar aciona o botão PESQUISAR no programa LOG00087 mostra a seguinte mensagem de erro:


Bloco de código
languageapplescript
argument #2 error, expected N->O,  function NEW on LDIALOG:CREATEINSTANCE(LDIALOG.PRW) 00/00/0000 00:00:00 line : 81
[TOTVS build: 7.00.210324P-20220916]
Called from LDIALOG:NEWLDIALOG(LDIALOG.PRW) 00/00/0000 00:00:00 line : 47
Called from {|x,y,p1,p2,p3,p4,p5| LDIALOG():NewLDIALOG(x,y,p1,p2,p3,p4,p5) }(FREEFORM.PRW) 00/00/0000 00:00:00 line : 83Called83
Called from CREATE_COMPONENT(FREEFORM.PRW) 00/00/0000 00:00:00 line : 83
Called from [email protected](LOG00087.4GL) 00/00/0000 00:00:00 line : 249

03. SOLUÇÃO

Devido a uma alteração no construtor do componente LDIALOG que passou prever algumas funcionalidades adicionais, ficou faltando um parâmetro fixo que atualmente a função O componente LDIALOG no momento de sua criação, via desenvolvimento FREEFORM,não pode receber parâmetro no CONSTRUTOR da classe, ou seja, a chamada da função precisa ser da seguinte forma: _ADVPL_create_component(NULL,"LDIALOG")

Mas o programa LOG00087 está enviando parâmetro adicional e, isso acabou gerou conflito justamente com uma alteração recente que foi realizada no Framework para permitir telas ADVPL serem abertas a partir de telas 4GL.

03. SOLUÇÃO

Foi realizado ajuste no componente LDIALOG para ignorar o parâmetro inválido e assim, mesmo que existam outros programas que criem um LDIALOG incorretamente, não irá mais gerar problema.

) já utiliza que seria a referência do objeto considerado CONTAINER, ou seja, sobre qual componente esta nova DIALOG é exibida.

O programa LOG00087 que é desenvolvido em modo FreeForm, instanciava o componente LDIALOG enviando uma referencia de um componente LPANEL, o que acabou fazendo com que o novo parâmetro de construtor da classe LDIALOG que é formato numérico passou a assumir a referencia de um componente CONTAINER, gerando o conflito de tipos de dados esperados. Com isso o programa LOG00087 foi ajustado para instanciar o componente LDIALOG sem enviar novos parâmetros para o método construtor da classe.

O componente LDIALOG foi alterado para considerar o seu primeiro parâmetro de construtor como a referência de um componente CONTAINER, por compatibilidade com o padrão de instância de todos componentes FreeForm realizados pela função _ADVPL_create_component(), para evitar problemas de troca de parâmetros pelo método Construtor do componenteTambém foi ajustado no LOG00087 para eliminar o parâmetro do construtor LDIALOG.

04. DEMAIS INFORMAÇÕES

Não se aplica.

...