Como utilizar variáveis globais no Form Personalization

variáveis globais - capa

Sabe as variáveis globais do Oracle Forms? Elas também podem ser utilizadas no Form Personalization do Oracle EBS (e isso é ótimo).

As variáveis globais (global variables) são muito utilizadas por desenvolvedores no Oracle Forms, devido ao poder que elas dão à aplicação.

E é incrível ter a possibilidade de utilizá-las dentro do Form Personalization, assim conseguimos armazenar valores temporariamente para utilizá-los depois em outro momento.

E como ela é “global”, podemos trocar informações entre forms diferentes.

Gostou das variáveis globais e quer saber como utilizar no Form Personalization? Então acompanhe esse artigo para saber mais sobre:

  • Propriedade INITIAL_VALUE
  • Propriedade VALUE
  • Sintaxe de referência

Propriedade INITIAL_VALUE

Um dos principais usos de variáveis globais é para permitir a troca de informações entre forms.

Exemplo:

Uma personalização no form A armazena um valor na variável global Y e na sequência chama o form B.

A personalização no form B recebe o conteúdo da variável global Y e toma alguma ação com base nesse valor.

Resumindo, esse é o processo macro de utilização.

Mas tem um detalhe importante: O form B nem sempre será chamado pelo form A via personalização, ele pode ser chamado nativamente pelo menu do EBS. O problema é que quando esse form B é aberto diretamente pelo menu, a variável global ainda não foi criada (o form A que cria a variável, não foi chamado), causando um erro de sistema ao referenciá-la.

É aí que a propriedade INITIAL_VALUE entra, ela trata exatamente esse ponto. Caso a variável ainda não exista, ela cria e já define um valor inicial para ela, evitando o erro.

Essa personalização deve ficar no form que será chamado (no caso aqui, o form B), geralmente na trigger WHEN-NEW-FORM-INSTANCE para garantir que seja ativada logo ao abrir o form:

variáveis globais - initial value

Utilizamos uma Action da seguinte maneira:

Type: Property

Object Type: Global Variable

Target Object: Nome da variável global, utilizei como exemplo XX_VARIAVEL_EXEMPLO

Property Name: INITIAL_VALUE

O valor inicial fica a seu critério, geralmente é utilizado =NULL.

Propriedade VALUE

É com a propriedade Value que definimos o conteúdo da variável global.

Essa personalização fica no form “chamador” (no exemplo aqui, form A):

variáveis globais - value

Utilizamos uma Action da seguinte maneira:

Type: Property

Object Type: Global Variable

Target Object: Nome da variável

Property Name: VALUE

Value: :RA_TERMS.TERM_ID (Campo do form)

No exemplo passei para a variável o conteúdo de um campo do form, agora é possível referenciar e utilizar esse valor na personalização do outro form.

Logo depois de utilizar a variável é importante “zerar” o seu conteúdo para evitar conflitos futuramente.

Sintaxe de referência

Se quisermos referenciar a variável global em algum momento da personalização (exemplo: na caixa de condições para fazer alguma validação), podemos fazer da seguinte maneira:

:GLOBAL + . + <NOME DA VARIÁVEL>

Utilizando o exemplo acima, ficaria:

:GLOBAL.XX_VARIAVEL_EXEMPLO

Também é possível pelo botão Insert ‘Get' Expression:

variáveis globais - get expression button

📌 Quer ver um exemplo prático e bem interessante no uso de variáveis globais? Confira esse vídeo

Conclusão sobre variáveis globais

Elas definitivamente levam suas personalizações para um próximo nível.

Mas é preciso ter cuidado, se não forem projetadas e configuradas corretamente, conflitos podem ocorrer facilmente entre variáveis globais.

Como elas ficam ativas durante toda a sessão, caso alguma outra personalização ou o código de um form utilize o mesmo nome, elas vão conflitar.

Também é vital “zerar” a variável logo após o uso para evitar problemas no form que é chamado, pois ele só deve receber essa variável preenchida quando for chamado da sua personalização.

Se gostou desse conteúdo e ainda não fez o download do eBook gratuito “11 incríveis usos de Oracle EBS Personalization que você precisa conhecer”, baixe agora mesmo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *