sábado, 7 de novembro de 2020

Itens do aplicativo - diferença entre escopo global vs aplicativo

 Olá pessoal,


sabia que o valor de um item do aplicativo pode ser compartilhado entre aplicações do mesmo espaço de trabalho?

Para demonstrar isso, iremos criar duas aplicações em que cada uma delas conterá 2 itens: um com escopo global e outro de aplicativo.

Veremos que o item com escopo de aplicativo só é válido em uma sessão de um único aplicativo e o item com escopo global pode ser compartilhado com outra aplicação desde que compartilhe a mesma sessão.

Detalhe: o compartilhamento de sessão só é permitido entre aplicações do mesmo espaço de trabalho!

Iremos criar um processo para incrementar o valor dos itens e apresentar os valores na tela para ver a diferença.

(Caso queira apenas ver o resultado final, acesse os Passos 8, 12, 13, 14)

Para isso vamos fazer o seguinte:

Criação da aplicação 1

Passo 1 - Acesse "App Builder" > "Criar" > "Novo Aplicativo", defina o Nome para "Aplicação 1" e pressione "Criar Aplicativo".




Após isso, vamos criar um item de aplicativo com escopo global

Passo 2 - Acesse "Componentes compartilhados" > "Itens do Aplicativo" >  "Criar", defina o Nome como "G_GLOBAL", o Escopo para "Global" e pressione "Criar Item do Aplicativo".

Após isso, vamos criar um item de aplicativo com escopo de aplicativo

Passo 3 - Acesse "Componentes compartilhados" > "Itens do Aplicativo" >  "Criar", defina o Nome como "G_APLICATIVO", o Escopo para "Aplicativo" e pressione "Criar Item do Aplicativo".

Para poder compartilhar um item global é necessário habilitar o compartilhamento de sessão.

Passo 4 - Acesse "Componentes compartilhados" > "Esquemas de Autenticação" > Selecione o esquema de autenticação atual > Em Compartilhamento de Sessão escolha o Tipo: "Compartilhamento de Espaço de Trabalho" e clique em "Aplicar Alterações".

Agora vamos criar uma região para exibir o valor dos itens.

Passo 5 - Acesse a página 1 no Designer de Página, clique com o botão direito do mouse em Content Body, escolha "Criar Região", defina como Texto de Origem da região com o código abaixo. (IMPORTANTE: Substitua XYZ pelo id da aplicação que será criada nos próximos passos.


<a href="f?p=XYZ::&APP_SESSION.">Acessar outra aplicação na mesma sessão</a>

<p><p>Global: &G_GLOBAL.

<p>Aplicativo:&G_APLICATIVO.



Agora vamos criar um botão para manipular o valor dos itens.

Passo 6 - Crie um botão na nova região e coloque como Nome do Botão: "INCREMENTAR".

Vamos agora definir o processo que será executado ao clicar no botão.

Passo 7 - Na aba Processamento, crie um Processo chamado "Incrementa itens" e defina para executar o código abaixo:

:G_GLOBAL := NVL(:G_GLOBAL,0) + 1;

:G_APLICATIVO := NVL(:G_APLICATIVO,0) + 1;


Passo 8 Execute a aplicação e clique 5 vezes no botão para incrementar os dois itens para o valor 5.


Agora vamos duplicar a aplicação

Passo 9 - Acesse a página de edição do aplicativo e no canto direito clique em "Copiar este Aplicativo", siga o wizard definindo o novo nome do aplicativo para "Aplicação 2" e o id do aplicativo para o mesmo id definido como XYZ no Passo 5.


Vamos trocar as referências ao termo "Aplicação 1" para "Aplicação 2".

Passo 10 - Na Aplicação 2, clique no ícone de pesquisa no canto superior direito e pesquise pelo termo "Aplicação 1". No relatório que aparece vá clicando no botão "Exibir" e troque todas as referências ao termo "Aplicação 1" por "Aplicação 2".



Agora na Aplicação 2 vamos trocar o link que se encontra na página 1 para que aponte para a Aplicação 1.

Passo 11 - Acesse a página 1 no Designer de Página, na região nova, altere o link para ABC, onde ABC representa o id da Aplicação 1.



Vamos testar?


Passo 12 - Volte para a Aplicação 1 e clique no link para ir para a Aplicação 2 e repare que o item global já está com o valor 5, ou seja, o item foi compartilhado entre as aplicações na mesma sessão. Entretanto, o item de aplicativo não foi inicializado ainda.


Passo 13 - Clique em Incrementar 10 vezes até o item Global ter o valor 15 e o item de aplicativo o valor 10.


Passo 14 - Clique no link para voltar para a Aplicação 1 e veja que o valor do item global também estará 15 e o valor do item com escopo de aplicativo permaneceu com o valor 5.



Espero que tenha gostado.

Até a próxima!