01. DADOS GERAIS
Produto: | Solucoes_totvs_parceirosexptotvs |
---|
|
|
---|
Linha de Produto: | |
---|
Segmento: | |
---|
Módulo: | Modulos_framework |
---|
ModulosFramework | Framework (Linha Logix) - Administração Logix |
---|
|
|
---|
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 acionar o botão PESQUISAR no programa LOG00087 apresenta a seguinte mensagem de erro:
Bloco de código |
---|
|
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.
Card documentos |
---|
Informacao | Disponível a partir do pacote oficial 12.1.2301 ou Framework Fix 12.1.2209.(fix01) |
---|
Titulo | IMPORTANTE! |
---|
|
05. ASSUNTOS RELACIONADOS
...