Chamar Classe Java do Forms.

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

PessoALL, beleza?

Fiz uns testes aqui, jogando um código java (uma classe) no banco e, realizando a chamada da classe via procedure e function.
Até ai tudo bem, funcionou normalmente, desde que eu não utilizasse recursos gráficos do java, como o Swing.

Nota importante: Manjo nada de JAVA!

Mas, tenho uma dúvida: Tem como, via FORMS (6i - Version 6.0.8.27.0), eu chamar uma classe java que está no meu sistema operacional, e não no banco?

Caso positivo, se tiverem algum exemplo ou indicação de link, agradeço mesmo.

Muito obrigado.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Cara eu desenvolvo em Java e tenho o mesmo problema seu.

No meu caso eu nem preciso que o Java fique incorporado ao Forms ou ao Report, ele precisa apenas chamar meu app Java passando parâmetros.

Mas não encontrei nada que funcionasse.
rafaellomba
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Ter, 14 Ago 2007 9:39 am
Localização: Rio de Janeiro - RJ
Rafael Lomba

Olá pessoal,

Não sei se é isso que o trevisolli está falando, mas existe o comando host no FORMS que você pode executar qualquer linha de comando do Windows e como um arquivo java é executado via linha de comando acho que pode ser resolvido assim.

HOST('comando do windows')

Exemplo:

Selecionar tudo

HOST('java c:\projetos\classe1.class')
Só não sei se o comando para chamar o arquivo java está correto.

Espero poder ter ajudado.

Abraços.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Cara, eu também estou precisando desse recurso, eu tinha pensado em alguma coisa como um build-in, mas esse comando já vai ajudar um bocado.
Só uma dúvida: esse comando também funciona no reports? Pois tenho um relatório que preciso chamar um gráfico a partir dele.

Outra coisa, para chamar corretamente um app Java o ideal é que esse app esteja com build no formato .jar e para chama-lo faz isso:

Selecionar tudo

java -jar meuAppJava.jar
Se alguém precisar de mais ajuda em Java é só me procurar.

vlw.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Fala Pyro, beleza brother?

Então, pro Forms, não sei se já ouviu falar...
Eu já ouvi, mas, não utilizei, um tipo de item "BEAN AREA".

Creio que seja para se trabalhar com Classe Java no Forms.

Se alguém já utilizou desta forma e puder nos orientar.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Já tentei utilizar ela, mas não funcionou de jeito nenhum. :-o
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Testei o comando host() aqui mas somente pisca uma tela e não chama a minha aplicação.
Alguém tem alguma dica?
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Completando o post anterior, ao piscar na tela aparece escrito

Selecionar tudo

unable to java archive
Testei e tanto os caminhos como a JVM estão corretos na máquina, alguém sabe se o host() apresenta alguma restrição?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother, uma dica seria usar neste exemplo do prórprio Forms (do Help dele) o FORM_SUCESS.

Veja o retorno do erro apresentado se é omesmo informado anteriormente:

Selecionar tudo


** built-in:  HOST
** Example:   Execute an operating system command in a 
**            subprocess or subshell. Uses the 
**            'Get_Connect_Info' procedure from the 
**            GET_APPLICATION_PROPERTY example. 
*/ 
PROCEDURE Mail_Warning( send_to VARCHAR2) IS 
  the_username VARCHAR2(40); 
  the_password VARCHAR2(40); 
  the_connect  VARCHAR2(40); 
  the_command  VARCHAR2(2000); 
BEGIN 
  /* 
  ** Get Username, Password, Connect information 
  */ 
  Get_Connect_Info(the_username,the_password,the_connect); 
  /* 
  ** Concatenate together the static text and values of 
  ** local variables to prepare the operating system command 
  ** string. 
  */ 
  the_command := 'orasend '|| 
      ' to='||send_to|| 
      ' std_warn.txt '|| 
      ' subject="## LATE PAYMENT ##"'|| 
      ' user='||the_username|| 
      ' password='||the_password|| 
      ' connect='||the_connect; 
 
  Message('Sending Message...', NO_ACKNOWLEDGE); 
  Synchronize; 
  /* 
  ** Execute the command string as an O/S command The 
  ** NO_SCREEN option tells forms not to clear the screen 
  ** while we do our work at the O/S level "silently". 
  */ 
  Host( the_command, NO_SCREEN ); 
  /* 
  ** Check whether the command succeeded or not 
  */ 
  IF NOT Form_Success THEN 
    Message('Error -- Message not sent.'); 
  ELSE 
    Message('Message Sent.'); 
  END IF; 
END; 
Faz umas adaptações ai e, qualquer coisa manda pra gente.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

cara, como estou utilizando o Windows Vista aqui o Forms Builder está muito instável.
Foi só reiniciar o PC que funcionou.

Vlw.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

beleza brother.

Só para deixar aqui para que os demais também saibam, caso necessitem:

-Você realizou a chamada somente com HOST?

Valeu mesmo.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

sim, foi somente utilizando host e ficou da seguinte forma:

Selecionar tudo

host('java -jar \\meu_caminho\meu_app.jar')
Foi somente isso.

Não ficou build-in como eu queria mas está rodando, é melhor do que nada.
alfredofonseca
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 13 Jun 2007 5:31 pm
Localização: Goiânia
NM Alfredo Fonseca
Analista de sistemas
62 84740311

Use o Java Bean Area ..

Pesquise mais na web sobre isso
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Já pesquisei e testei mas não funcionou a contento, por isso adotei outra solução mesmo.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes