executar procedure via link apex

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Bom dia pessoal,

Eu tenho uma procedure no banco xx_update

Gostaria de saber como faço para executar essa procedure no apex.

Eu uso o Apex somente para gerar relatorio que no final da geração dos relatorio gera um link aí eu coloco esse link na intranet da empresa.

Queria fazer o mesmo executar a procedure via link web tem como ?

Qualquer dica e bem vindo.

Abs..
chunning
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Seg, 28 Mar 2011 11:39 am
Localização: Feliz - RS

Olá madmax.. (gosto dos teus filmes... hehehe..)

Basta criar um processo de página (page proccess)
No campo Processo basta definir sua chamada.

Selecionar tudo

begin
  prc_executa_sql(:P25_DATAINICIAL,:P25_DATAFINAL);
end;

Tem que definir também o momento da execução:
Ao submeter...
Ao carregar...
etc..
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Olá Chunning

Realmente os meus filmes são otimos.....rs

Cara desculpe a falta de conhecimento em APEX mas, você teria um exemplo ou uma pagina no google explicando melhor , eu fiz uma pagina em branco e em page > CREATE PAGE PROCESS tem varias opções para escolher.

Fui em PL/SQL que seria o certo fui em NEXT e pede o POINT coloquei o (ON LOAD BEFORE REGION)

Enter PL/SQL Page Process:

Selecionar tudo

begin 
DB_INTEGRACAO.HELLO_WORD; -- nome da procedure
end;
Da erro que :

Selecionar tudo

ORA-06550: line 3, column 1: PLS-00201: identifier 'DB_INTEGRACAO.HELLO_WORD' must be declared ORA-06550: line 3, column 1: PL/SQL: Statement ignored
Você teria um exemplo que eu possa seguir porque de APEX so sei fazer relatorios mesmo... e não achei nada no google.

Obrigado.
chunning
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Seg, 28 Mar 2011 11:39 am
Localização: Feliz - RS

Olá Madmax...

está certo como você fez.
Pelo erro que deu, o usuário que está executando a página apex não tem permissão de execução da procedure.

Neste link tem exemplo de quase tudo sobre apex e mostra o código da página.
http://apex.oracle.com/pls/otn/f?p=3151 ... 121606::NO

Abaixo segue uma chamada de package de impressão de relatórios que tenho numa aplicação minha.

Selecionar tudo

begin
  xlog('PRC_SHOW_REPORT_TUNNEL', 'url (orig):' || :p5_report_url);

  xlib_jasperreports.set_report_url(:P5_JASPER_REPORT_URL);
  xlib_jasperreports.show_report (p_rep_name     => :p5_rep_name,
                                  p_rep_format   => :p5_rep_format,
                                  p_data_source  => :p5_data_source,
                                  p_out_filename => :p5_out_filename,
                                  p_rep_locale   => :p5_rep_locale,
                                  p_rep_encoding => :p5_rep_encoding,
                                  p_additional_params => :p5_additional_params);

  apex_application.g_unrecoverable_error := true;

exception
  when others then 
    xlog('PRC_SHOW_REPORT_TUNNEL', sqlerrm, 'ERROR');
    raise;
end;
Qualquer dúvida, manda aí...

Abraço.
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Caraka Chunning...

Deu certo cara !!!

Só falta uma coisa para ficar perfeito.

exemplo:

Fiz a pagina que executa a procedure que faz update na tabela que queria e o APEX atualiza a tabela beleza com esse link

http://dominio.com:8080/apex/f?p=129:1:2986165668078133:::::

Gostaria de passar um parametro nesse link para executar teria como tipo assim

http://intranetbr.adecoagro.com:8080/ap ... 3:::::p_id

Obrigado !
chunning
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Seg, 28 Mar 2011 11:39 am
Localização: Feliz - RS

Beleza Madmax!!!

Pode passar parametros sim.
Na url que chama uma página apex logo após a sessao tem uma sequencia de ::: cada intervalo deles recebe determinado tipo de informação.

Selecionar tudo

f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly
Dá uma olhada no link abaixo que mostra direitinho como inserir os parâmetros.
http://docs.oracle.com/cd/B32472_01/doc ... m#BEIGDEHF

Abraço.
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Chunning !!!

Deu certo meu amigo obrigado pela ajuda !!!

Eu criei um ITEM como parametros com nome P1_X e ao chamar via link passo o valor desse parametro:

http://dominio.com:8080/apex/f?p=129:1: ... :P1_X:0101

Valeu :-o
Responder
  • Informação
  • Quem está online

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