Páginas filhas
  • APPLICATION_setDependent

Define uma aplicação dependente para uma outra aplicação.

As aplicações dependentes não são cadastradas no menu para que não possam ser executadas diretamente, apenas pela aplicação principal.

Esta função é utilizada pelos nos programas que possuem aplicações dependentes e que torna possível a visualização dos programas dependentes no programa de permisões de acesso, sem a necessidade de registrá-los no menu.

Para mais informações de QUANDO E COMO USAR esta função acesse o tópico Observações.


Sintaxe

APPLICATION_setDependent( < l_appMain >, < l_appDependent >, < l_appDependentTitle > )

Parâmetros

Nome

Tipo

Obrigatório?

Descrição

l_appMain

CHAR

Sim

Nome da aplicação principal pra qual será definida uma aplicação dependente.

l_appDependent

CHAR

Sim

Nome da aplicação dependente pra qual será definida uma aplicação dependente.

l_appDependentTitle

CHAR

Sim

Título da aplicação dependente.

(informação) Se a aplicação dependente estiver no menu ou for um formulário metadado, pode ser informado nulo neste parâmetro, pois o título será recuperado automaticamente do cadastro do formulário metadado.

Exemplo

#-----------------------------------------------#
 FUNCTION APPLICATION_setDependent_test()
#-----------------------------------------------#
     CALL APPLICATION_setDependent("LOG05050","LOG02700","") # Neste caso é formulário metadado que possui título cadastrado via FRM1002
     CALL APPLICATION_setDependent("LOG05050","LOG02710","")
     CALL APPLICATION_setDependent("LOG05050","LOG02720","")
     CALL APPLICATION_setDependent("LOG05050","LOG00077","")

     CALL APPLICATION_setDependent("LOG05050","LOG5500","Permissão Acesso") # Neste caso é informado um título no 3o parâmetro pois é um formulário desenvolvido em FREEFORM que não possui título definido.
     CALL APPLICATION_setDependent("LOG05050","LOG5510","Permissão Acesso (Consulta Relacional)")

     CALL APPLICATION_setDependent("LOG05050","LOG00081","")
     CALL APPLICATION_setDependent("LOG05050","LOG00082","")
 END FUNCTION

Informações

Fontes: application.4gl

Observações 

Quando utilizar esta função?

Quando houver necessidade de visualizar a lista de programas acionados a partir de outro programa  que é desenvolvido com uma interface para centralizar chamada de diversos programas, denominado como estilo COCKPIT, que possui um menu lateral com a lista de programas que o usuário pode acionar.

Esta visualização geralmente é interessante a partir do programa de Permissões de Acesso (Central de Usuários → Permissões de Acesso), para que seja possível aplicar permissões para o programa principal (estilo COCKPIT) e replicar estas permissões para os programas dependentes.

Isso ocorre, pois geralmente, no caso de programas no estilo COCKPIT, apenas o programa principal tem seu atalho cadastrado no menu do produto e os demais programas acionados a partir dele são considerados como os "Programas Dependentes" e não precisam ser registrados no menu quando o programa principal tem definida a lista completa de programas dependentes, que muitas vezes não podem ser executados individualmente.

Como aplicar o uso desta função?

É necessário desenvolver uma função no programa principal para identificar quais são os seus programas dependentes. Esta função precisa seguir um padrão de nomeclatura pré-definida da seguinte forma:

           <PROGRAMA_PRINCIPAL>_get_app_dependents(), onde <PROGRAMA_PRINCIPAL> é o nome do programa centralizador, como por exemplo, CON10000_get_app_dependents().

Dentre as instruções contidas na função <PROGRAMA_PRINCIPAL>_get_app_dependents() deverá ser prevista uma ou mais chamadas da função APPLICATION_setDependent(), sendo uma chamada para cada programa que será definido como dependente. Veja um exemplo:

#--------------------------------------#
 FUNCTION log05050_get_app_dependents()
#--------------------------------------#
     #Neste caso o 3o parâmetro foi informado EM BRANCO pois se tratam de formulários cadastrados no metadado e o título dos programas é recuperado automaticamente do cadastro metadado
     CALL APPLICATION_setDependent("LOG05050","LOG02700","")
     CALL APPLICATION_setDependent("LOG05050","LOG02710","")
     CALL APPLICATION_setDependent("LOG05050","LOG02720","")
     CALL APPLICATION_setDependent("LOG05050","LOG00077","")

     #Neste caso o 3o parâmetro foi informado com o título do programa LOG5500, pois ele não se trata de um formulário metadado e sim um programa desenvolvido no estilo FREEFORM (Desenvolvimento livre utilizando os mesmos componentes do metadado)
     CALL APPLICATION_setDependent("LOG05050","LOG5500","Permissão Acesso")
     CALL APPLICATION_setDependent("LOG05050","LOG5510","Permissão Acesso (Consulta Relacional)")

     CALL APPLICATION_setDependent("LOG05050","LOG00081","")
     CALL APPLICATION_setDependent("LOG05050","LOG00082","")
 END FUNCTION

IMPORTANTE:  

  • Por padrão de desenvolvimento, esta função deve ser chamada SEMPRE na função <PROGRAMA_PRINCIPAL>_get_app_dependents() do programa principal, para que o sistema, a partir de funções Framework, consiga identificar automaticamente a lista de programas dependentes de outro programa e aplicar algumas regras de segurança.
  • Quando um programa possuir dependentes, estes dependentes devem também sempre prever a chamada da função LOG_initApp() no início da aplicação para que respeite as regras das permissões de acesso.