Pessoal, bom dia.
Estou iniciando na tecnologia, tendo que desenvolver à toque de caixa um relatório na ferramenta BI Publisher para a empresa e, me deparei com um problema e gostaria da opinião dos experts:
Cenário:
Preciso utilizar uma TEMP_TABLE para gerar o meu report.
Erro:
Não consigo passar os parâmetros do meu Data Set para a chamada da procedure, no Event_Trigger.
Solução Encontrada:
Vi num fórum que, para que o parameter que você cria no teu Data Set funcionar, na SPEC da package, deve, obrigatóriamente, ter os mesmos parâmetros, mesmo que sem utilização deles.
Dúvida:
Vocês utilizam desta forma também, ou, fazem algum outro tipo de chamada? Gostaria de trabalhar nas melhores práticas aqui.
Muito obrigado,
Trevisolli
BI Publisher - Parâmetro para Functions / trigger before
-
- 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
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
- dr_gori
- 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ê já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Sim. É assim mesmo. É meio chato fazer funcionar as triggers no bi publisher. Eu já fiz inúmeras vezes e sempre tenho que olhar num exemplo pra ver como é.
Trevis, eu não estou no meu PC agora. Me pede segunda feira pra postar aqui um exemplo, beleza?
Trevis, eu não estou no meu PC agora. Me pede segunda feira pra postar aqui um exemplo, beleza?
-
- 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
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Fala Dr_Gori, blzinha?
quanto tempo... me desculpe a ausência, é que, troquei de emprego e, to numa correria pra aprender o BI Publisher...
Eu fiz aqui umas coisas tb e, vou estar postando uns exemplos..
Mas, como você entende muito mais disso, se puder postar aqui pra gente...
Muito obrigado brother, aquele abraço.
Trevis
quanto tempo... me desculpe a ausência, é que, troquei de emprego e, to numa correria pra aprender o BI Publisher...
Eu fiz aqui umas coisas tb e, vou estar postando uns exemplos..
Mas, como você entende muito mais disso, se puder postar aqui pra gente...
Muito obrigado brother, aquele abraço.
Trevis
- dr_gori
- 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ê já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Trévis... É assim: Pra dar certo você tem que seguir a risca o que eu vou colocar abaixo:
NO data-definition do XML, você precisa informar qual é a DefaultPackage e o dataSourceRef, veja como está o meu header: (no meu caso, XG_PKG_AR_002)
Repare que eu tenho vários parâmetros. Eu vou utilizar apenas 1 na minha PACKAGE, mas eu preciso "referenciar" todos eles, exatamente como está ali em cima, veja como está a minha package SPEC: (eu criei variáveis na package-spec EXATAMENTE com o mesmo nome dos parametros!!!)
Depois disso, basta você colocar la no data-definition a chamada da trigger BEFORE ou AFTER.
(se for after, você precisa colocar depois do <dataStructure>, se for before, é antes! )
Pronto! Se fizer de acordo com esses passos, tem que dar certo !
NO data-definition do XML, você precisa informar qual é a DefaultPackage e o dataSourceRef, veja como está o meu header: (no meu caso, XG_PKG_AR_002)
<?xml version="1.0" encoding="UTF-8"?>
<dataTemplate name ="XG_XML_AR_002"
description ="XG - AR - Relatório de Comissões"
dataSourceRef ="APPS"
defaultPackage="XG_PKG_AR_002"
version ="1.0">
<parameters>
<parameter name="p_gl_period" dataType="varchar2" />
<parameter name="p_selecao" dataType="varchar2" />
<parameter name="p_tipo_comissao" dataType="varchar2" />
<parameter name="p_repres_numero" dataType="varchar2" />
<parameter name="p_tipo_ordem" dataType="varchar2" />
</parameters>
<dataQuery>
<sqlStatement name="Q_DATAS">
<![CDATA[
select * blablablabla
Repare que eu tenho vários parâmetros. Eu vou utilizar apenas 1 na minha PACKAGE, mas eu preciso "referenciar" todos eles, exatamente como está ali em cima, veja como está a minha package SPEC: (eu criei variáveis na package-spec EXATAMENTE com o mesmo nome dos parametros!!!)
CREATE OR REPLACE PACKAGE xg_pkg_ar_002 IS
-- *****************************************************
-- !!!!!!!!!!!!!! IMPORTANTE !!!!!!!!!!!!!!!!!!!
-- *****************************************************
-- Se adicionar mais parametros no XML, deve também
-- adicionar os mesmos parametros abaixo
-- *****************************************************
p_gl_period VARCHAR2(60); --MESMO nome do parâmetro vindo do XML Publisher.
p_selecao VARCHAR2(100); --não USADO
p_tipo_comissao VARCHAR2(100); --não USADO
p_repres_numero VARCHAR2(100); --não USADO
p_tipo_ordem VARCHAR2(100); --não USADO
FUNCTION fnc_xml_before_trigger
( p_gl_period VARCHAR2
) RETURN BOOLEAN;
END;
/
(se for after, você precisa colocar depois do <dataStructure>, se for before, é antes! )
.
.
.
</sqlStatement>
</dataQuery>
<dataTrigger name="beforeReport" source="XG_PKG_AR_002.fnc_xml_before_trigger( :p_gl_period )" />
<dataStructure>
<group name="G_EMPRESA" source="Q_EMPRESA">
<element name="NOME_EMPRESA" value="NOME_EMPRESA" />
</group>
<group name="G_DATAS" source="Q_DATAS">
<element name="DTINI" value="DTINI" />
.
.
.
-
- 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
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Fala meu rei, blzinha? Espero q tudo em ordem...
Então brother, obrigado mesmo pelas dicas, mais uma vez...
Pelo que percebi, essa dica que passou, é pro Publisher 10???
É que realizei o processo aqui no 11 e, vou só deixar documentado abaixo como fiz, para quem precisar (e ver se fiz certo rs...):
No Data Model, no campo logo após o Data Source, que é o Default Package, informei o nome da minha PCK (que contém os parâmetros na SPEC, como o mesmo nome declarado no Publisher:
Após esse passo, automaticamente, quando se vai criar um Event Trigger, a package aparece na parte de "Available Functions" para que você possa utilizar.
Dessa forma, você pode utilizá-la, passando os parâmetros necessários (do lado direito, em "Event Trigger"), seguindo a premissa de que os parâmetros devem estar, obrigatoriamente, na SPEC da package.
Notas importantes:
Muito obrigado mais uma vez.
Grande abraço,
Trevis
Então brother, obrigado mesmo pelas dicas, mais uma vez...
Pelo que percebi, essa dica que passou, é pro Publisher 10???
É que realizei o processo aqui no 11 e, vou só deixar documentado abaixo como fiz, para quem precisar (e ver se fiz certo rs...):
No Data Model, no campo logo após o Data Source, que é o Default Package, informei o nome da minha PCK (que contém os parâmetros na SPEC, como o mesmo nome declarado no Publisher:
Oracle DB Default Package: PCK_UTIL
Dessa forma, você pode utilizá-la, passando os parâmetros necessários (do lado direito, em "Event Trigger"), seguindo a premissa de que os parâmetros devem estar, obrigatoriamente, na SPEC da package.
Notas importantes:
- Os parâmetros devem ter o mesmo nome, e, mesmo não sendo utilizados, devem estar na SPEC da package;
- A lista dos objetos que irá aparecer, irá conter apenas Functions e, estas devem, obrigatoriamente, retornar um BOOLEAN;
Muito obrigado mais uma vez.
Grande abraço,
Trevis
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes