Executar um Shell Script via Reports

Dicas e truques sobre Oracle Reports Builder - modo gráfico ou modo caractere, ascii, arquivo .PRT, etc
Responder
LC_JK
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 46
Registrado em: Ter, 24 Ago 2004 2:02 pm
Localização: São Paulo
Contato:

Galera, estou precisando executar um shell script via Reports. Será que alguém poderia me ajudar?!

Como eu faço essa chamada do Shell pelo reports?!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Olá LC_JK

Cara, eu não conheço nenhuma forma de rodar um script local no reports. Você não pode rodar esse schell script ANTES de chamar o report ?
LC_JK
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 46
Registrado em: Ter, 24 Ago 2004 2:02 pm
Localização: São Paulo
Contato:

Na verdade esse reports fica no servidor Unix (pois é um reports para o Oracle Applications), portanto ele gera um arquivo texto no Unix tbém. Estava pensando em chamar esse shell na trigger After Report...... e esse shell tbém vai estar no Unix.......

Não tem idéia de como faz isso?!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Você pode criar uma Java Stored Procedure que executa comandos no S.O.
http://glufke.net/oracle/viewtopic.php?t=377

Aqui tem um exemplo, chamado "RunCommand"
http://glufke.net/oracle/viewtopic.php?t=257

Ou seja, você cria uma procedure que executa comandos no servidor e chama ela onde quiser no seu Reports.

Aqui tem um outro exemplo:

Selecionar tudo

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "HOST" AS
import java.lang.*;
import java.io.*;

public class Host
{
 public static void executeCommand (String command, String etype) throws IOException
 {
   String[] wFullCommand = {"C:\\winnt\\system32\\cmd.exe", "/y", "/c", command};
   String[] uFullCommand = {"/bin/sh", "-c", command};
   if (etype.toUpperCase().equals("W"))
     Runtime.getRuntime().exec(wFullCommand);
   else if(etype.toUpperCase().equals("U+"))
     Runtime.getRuntime().exec(uFullCommand);
   else if(etype.toUpperCase().equals("U"))
     Runtime.getRuntime().exec(command);
 }
};
/

Selecionar tudo

CREATE OR REPLACE PROCEDURE Host_Command_Proc (p_command  IN  VARCHAR2, p_etype  IN  VARCHAR2)
AS LANGUAGE JAVA
NAME 'Host.executeCommand (java.lang.String, java.lang.String)';
/

Exemplos

Selecionar tudo

host_command_proc ('cd home/yourdir/another_dir', 'U+');
host_command_proc ('rm -f *', 'U+');
LC_JK
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 46
Registrado em: Ter, 24 Ago 2004 2:02 pm
Localização: São Paulo
Contato:

Cara... esta dando um erro: "ORA-29532: chamada Java finalizada por exceção Java não-detectada:".

Sabe o que pode estar acontecendo?!

ah.. e tenho outra duvida: o shell que vai ser executado tem que estar no mesmo lugar que esta o meu reports?!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Deu as permissões necessárias ?

http://glufke.net/oracle/viewtopic.php?t=257
(no final do tópico tem um texto chamado "Importante", explicando sobre os grants)
Responder
  • Informação