Como chamar outras aplicações, dependendo dos parametros

Prezados colegas

Gostaria de saber se é possivel obter a seguinte funcionalidade.

Digamos que temos a seguinte situacao : uma aplicacao que pode chamar aplicacoes diferentes, dependendo dos parametros passados.

Por exemplo.

se controle1 ==> chama grid1 ==> chama blank1
se controle2 ==> chama grid1 ==> chama blank2
se controle3 ==> chama grid1 ==> chama blank3

Esse tipo de comportamento eu até consigo fazer funcionar. A aplicacao grid1 chama a blank dependendo dos parametros que recebeu de controle1, controle2 ou controle3.

O problema é que no scriptcase, se eu abrir 3 abas com controle1, controle2 e controle3, a aplicacao grid1 nao vai se comportar adequadamente. Ela nao saberá encapsular adequadamente as variaveis.

Por exemplo, eu abro o controle1 na primeira aba, vou para o grid1, e clico num botao que executa a blank. Neste momento a blank1 será executada.
Porem, se logo em seguida eu abro a aba2, o controle2, a grid1 será aberta na mesma aba do controle2. Neste momento, o que será chamado será a blank2.
Agora, se eu retornar para a aba1, com a grid1 ainda aberta, e neste momento eu clicar no botao executar, o que será executado nao será a blank1, e sim a blank2.
O fato é que eu preciso que uma aplicacao intermediaria (como a grid1) possa chamar outras aplicacacoes, dependendo dos parametros que receba, e que nao perca essas informacoes, mesmo que ele seja invocada a partir de outra aba.
Seria possivel conseguir isso no scriptcase?

Uma mesma aplicação não pode ser aberta em abas diferentes por que compartilha a mesma sessão.
Copie a grid1 para grid2 e grid3, e controle1 chama grid1, controle2 chama grid2 e controle 3 chama grid3 assim vai funcionar, apesar de não ser agradável e nada ideal.

2 Curtidas

Oi Haroldo.

Que pena.
Isso de fato é bem chato. Pq me obriga a duplicar aplicacoes desnecessariamente, e ao fazer isso, aumenta a complexidade da manutencao. Deveria haver alguma maneira de encapsular essas informacoes.
Mas fazer o que. Nao se pode ter tudo.
Vou pensar noutra forma.
De todo modo, muito obrigado pela ajuda.

Você não consegue criar apenas uma blank com 3 funções dentro dela e de acordo com o parâmetro que você passa na aplicação anterior chama essa função ?

1 Curtida

o fato que uma passagem de parametros para uma GRID1 pode interferir nos dados da mesma se ela estiver aberta em outra aba… mas pode tentar passar os parametros via GET e evitar ao maximo usar globais entre elas… mas é apenas um teste que tem que fazer para ver se dá bom: veja macro sc_make_link() para juntar os parametros que acho consegue.

A própria aplicação utiliza internamente valores em sessão que entrariam em conflito se a app for aberta mais de uma vez na mesma sessão, ou seja, vai ter problema de qualquer forma abrindo a mesma app em mais de uma aba.