Páginas filhas
  • DFWKTOOLS-2508 DT Listagem de componentes de janela FreeForm/Metadado


01. DADOS GERAIS

Produto:

TOTVS Manufatura

TOTVS Backoffice

Linha de Produto:

Linha Logix

Segmento:

Manufatura

Módulo:Framework
Função:Acionamento de janelas do tipo DIALOG (Herdadas a partir da classe LFORM)
Requisito/Story/Issue (informe o requisito relacionado) :DFWKTOOLS-2508


02. SITUAÇÃO/REQUISITO

O desenvolvimento de scripts de automação de testes de telas desenvolvidas em Metadado ou Freeform tem como requisito obter o código de refência de componentes instanciados para posterior preenchimento e acionamento de outros eventos, simulando assim o processo de automação.

Foi desenvolvida então uma técnica que viabiliza uma forma de recuperar a referência de objetos a partir do valor de propriedades como:

        HELP_NAME → Nome de referência para criar atalhos para acessar diversas funcionalidades, inicialmente criada com objetivo de ser um identificador para acionar o atalho de ajuda do sistema

        VARIABLE     → Disponível para campos de tela que possuem vínculo com alguma variável de programa, comum para campos editáveis em tela

No entanto, existe agora uma dificudade em identificar os valores das propriedades HELP_NAME e VARIABLE disponíveis em uma janela Freeform/Metadado e com isso é preciso criar alguma funcionalidade para exibir estas informações dos componentes utilizados em uma tela para facilitar o desenvolvimento de rotinas de automação. Esta funcionalidade poderá também ser utilizada para:

♦ Auxiliar o desenvolvimento de pontos de entrada (EPLs)

♦ Auxiliar demais desenvolvimentos onde seja preciso recuperar a referência de componentes de telas FreeForm/Metadado.

03. SOLUÇÃO

Criação de chave de profile chamada logix.freeform.debug.listOfComponents que permite gerar uma listagem com informações dos componentes de telas desenvolvidas com componentes FreeForm/Metadado. Esta chave permite o valor 0 (INATIVO) e 1 (ATIVO).

Essa funcionalidade tem como objetivo principal atender a uma necessidade de equipes de desenvolvimento, principalmente envolvidas com o processo de customizações de telas com interface FreeForm e Metadados, que fazem uso de EPLs (Pontos de Entrada Logix).

A listagem dos dados dos componentes é realizada quando o valor da chave no profile é definida da seguinte forma:

logix.freeform.debug.listOfComponents = 1


Em que momento a listagem dos componentes de uma tela é gerada?


A listagem dos componentes é gerada no arquivo de LOG do AppServer durante a execução dos programas FreeForm/Metadados que fazem uso dos componetes Framework Logix herdados da classe principal chamada LComponent (Classe base de todos os componentes do Metadados/FreeForm) e somente será gerada para componentes herdados deste componente base.

No momento em que cada janela de telas freeform/metadado é aberta e exibida em tela, no arquivo de LOG do AppServer é gerada uma listagem semelhante a lista a seguir:


Nessa lista pode-se observar as seguintes informações:

♦ Título da Janela

♦ Listagem dos componentes da janela com os respectivos valores das propriedades HELP_NAME e VARIABLE e também a classe de componente utilizada (TYPE)


O uso dos dados dessa listagem pode ser demonstrado com um código de exemplo onde é recuperada a referência dos componentes usando:

1) a propriedade COMPONENT_REFERENCE_BY_HELP_NAME da janela com o uso da função 4. _ADVPL_get_property.

2) a propriedade COMPONENT_REFERENCE_BY_VARIABLE da janela com o uso da função 4. _ADVPL_get_property.

3) o valor das propriedades HELP_NAME e VARIABLE que devem ser repassados respectivamente como parâmetros da função 4. _ADVPL_get_property para as propriedades



EXEMPLO
DEFINE l_form_reference       VARCHAR(10)
DEFINE l_menu_inform_referece VARCHAR(10)
DEFINE l_cod_rotina_reference VARCHAR(10)

LET l_form_reference = _ADVPL_GetFormReference("Consulta de Auditorias")

#Recuperar a referência do botão "INFORMAR" existente na barra de ferramentas da janela a partir da propriedade HELP_NAME do botão
LET l_menu_inform_reference = _ADVPL_get_property(l_form_reference,"COMPONENT_REFERENCE_BY_HELP_NAME","menu_inform")

#Acionar o evento de click do botão usando a propriedade DO_CLICK
CALL _ADVPL_get_property(l_menu_inform_reference,"DO_CLICK")

#Recuperar a referência do campo "COD_ROTINA" pelo nome da variavel (Propriedade VARIABLE)
LET l_cod_rotina_reference = _ADVPL_get_property(l_form_reference,"COMPONENT_REFERENCE_BY_VARIABLE","cod_rotina")

#Atribuir o valor "001" para o campo "COD_ROTINA" usando a propriedade VALUE 
CALL _ADVPL_set_property(l_cod_rotina_reference,"VALUE","001")



IMPORTANTE!

Disponível a partir do pacote oficial 12.1.29 ou Framework Fix 12.1.28.(fix03)