如何在oracle PL/SQL程序中调用RDF报表?
How to call RDF report in oracle PL/SQL Procedure?
我想在 oracle pl/sql 过程中调用 RDF 报告,动态 parameter.And 将该报告输出发送到电子邮件。我正在使用 Oracle EBS 12.1.3.
如果报告与数据库位于同一台服务器上,您可以设置一个 DBMS_SCHEDULER 作业,该作业 运行 是一个调用 rwrun
的 shell 脚本,并且在您的 PLSQL 中调用它。
rwrun
命令有通过电子邮件发送结果的选项:
rwrun report=myrep.rdf userid=un/pw@db desformat=pdf DESTYPE=mail DESNAME="u1@myc.com, u2@myco.com" cc="u3@myco.com" bcc="u4@myco.com" replyto="me@myco.com" from="me@mycop.com"
其他选项是使用 UTL_HTTP
或类似方式向 运行 报告发出 rwcgi
请求。
查看此处以了解运行生成报告的可用选项:
https://docs.oracle.com/cd/B14099_19/bi.1012/b14048/pbr_cla.htm#i634293
https://docs.oracle.com/cd/A97329_03/bi.902/a92102/pbr_cla.htm#634395
已编辑以展示如何通过 DBMS_SCHEDULER.
创建
DBMS_SCHEDULER 是 Oracle 的一个高度灵活和可配置的特性,有很多选项,通常提供一些做事的方法,所以下面是一个通用的例子来帮助你入门。
首先创建一个 shell 脚本,其中 运行 报告:
run_rdf.sh:
rwrun report=myrep.rdf ...
现在创建 DBMS_SCHEDULER 作业的脚本:
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name=> 'RUN_RDF',
program_type=> 'EXECUTABLE',
program_action => '/bin/bash run_rdf.sh',
enabled=> TRUE,
comments=> 'Run RDF report'
);
END;
/
您可以向该程序添加参数,然后将其传递给脚本:
BEGIN
DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT (
program_name => 'RUN_RDF',
argument_position => 1,
argument_name => 'arg_name',
argument_type => 'VARCHAR2',
default_value => '');
END;
/
因此您必须决定是否将 parameters/arguments 硬编码到 shell 脚本中,在上面定义 program_action
时作为命令行参数直接传入,或者通过DEFINE_PROGRAM_ARGUMENT
功能(明白我说的有几种使用方法的意思吗?)。
将此设置为运行可行的工作但不指定时间:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'RUN_RDF_JOB',
program_name => 'RUN_RDF',
start_date => NULL,
repeat_interval => NULL,
end_date => NULL,
enabled => FALSE,
auto_drop => FALSE,
comments => '');
END;
/
至运行:
BEGIN
-- Set arguments values
DBMS_SCHEDULER.set_job_argument_value('RUN_RDF_JOB',1,'arg1 value');
DBMS_SCHEDULER.ENABLE_JOB('RUN_RDF_JOB'); -- Might need this
DBMS_SCHEDULER.RUN_JOB('RUN_RDF_JOB');
END;
/
通过视图监控作业(必要时ALL/USER/DBA):
ALL_SCHEDULER_JOB_RUN_DETAILS
ALL_SCHEDULER_JOB_LOG
将 test.rdf 部署到自定义顶部位置。
Select 系统管理员
- 创建可执行文件
- 可执行文件名称应用程序名称
- 执行方式
- 报告 (.rdf) 文件名
通过链接到 test.rdf
创建可执行文件
可执行文件名称应为仅在服务器中可用的报表名称。
创建并发程序并附加:并发程序是可执行文件的实例以及输入参数和不兼容的程序。示例报告的开发和迁移到 Oracle 应用程序并执行。
一个。可执行
b.参数
C。不兼容性
创建并发程序,创建时为此提供可执行文件名称。
单击“参数”选项卡并转到屏幕以提供如下屏幕所示的详细信息。标记值应该类似于 Report Builder 中的参数。
创建请求组并附加并发程序
转到请求组屏幕,创建组或打开现有组以附加我们的并发程序名称。
转到请求组屏幕,创建组或打开现有组以附加我们的并发程序名称。
创造责任
a. Request Group – Collection of Concurrent Programs
b. Data Group – Collection of User IDs
c. Menu – Collection of forms
转到责任屏幕并创建一项责任并将我们的请求组附加到该责任。
创建用户附加责任给用户
转到用户屏幕并将我们的责任附加到现有的业务用户。
运行 通过 SRS 报告 window。
- 转到文件 —-> 切换责任 —–a select 责任
- 去View—a Request—a>找到然后在screen下面我们就可以了。
- 单击“提交新请求”按钮。
点击确定按钮提交单个请求。然后把我们的报告打电话给运行 SRS window.
在单击“确定”按钮之前提供参数值。
单击“否”按钮不提交另一个请求。
单击刷新按钮使我们的报告进入完整的正常阶段。
我想在 oracle pl/sql 过程中调用 RDF 报告,动态 parameter.And 将该报告输出发送到电子邮件。我正在使用 Oracle EBS 12.1.3.
如果报告与数据库位于同一台服务器上,您可以设置一个 DBMS_SCHEDULER 作业,该作业 运行 是一个调用 rwrun
的 shell 脚本,并且在您的 PLSQL 中调用它。
rwrun
命令有通过电子邮件发送结果的选项:
rwrun report=myrep.rdf userid=un/pw@db desformat=pdf DESTYPE=mail DESNAME="u1@myc.com, u2@myco.com" cc="u3@myco.com" bcc="u4@myco.com" replyto="me@myco.com" from="me@mycop.com"
其他选项是使用 UTL_HTTP
或类似方式向 运行 报告发出 rwcgi
请求。
查看此处以了解运行生成报告的可用选项:
https://docs.oracle.com/cd/B14099_19/bi.1012/b14048/pbr_cla.htm#i634293
https://docs.oracle.com/cd/A97329_03/bi.902/a92102/pbr_cla.htm#634395
已编辑以展示如何通过 DBMS_SCHEDULER.
创建DBMS_SCHEDULER 是 Oracle 的一个高度灵活和可配置的特性,有很多选项,通常提供一些做事的方法,所以下面是一个通用的例子来帮助你入门。
首先创建一个 shell 脚本,其中 运行 报告:
run_rdf.sh:
rwrun report=myrep.rdf ...
现在创建 DBMS_SCHEDULER 作业的脚本:
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name=> 'RUN_RDF',
program_type=> 'EXECUTABLE',
program_action => '/bin/bash run_rdf.sh',
enabled=> TRUE,
comments=> 'Run RDF report'
);
END;
/
您可以向该程序添加参数,然后将其传递给脚本:
BEGIN
DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT (
program_name => 'RUN_RDF',
argument_position => 1,
argument_name => 'arg_name',
argument_type => 'VARCHAR2',
default_value => '');
END;
/
因此您必须决定是否将 parameters/arguments 硬编码到 shell 脚本中,在上面定义 program_action
时作为命令行参数直接传入,或者通过DEFINE_PROGRAM_ARGUMENT
功能(明白我说的有几种使用方法的意思吗?)。
将此设置为运行可行的工作但不指定时间:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'RUN_RDF_JOB',
program_name => 'RUN_RDF',
start_date => NULL,
repeat_interval => NULL,
end_date => NULL,
enabled => FALSE,
auto_drop => FALSE,
comments => '');
END;
/
至运行:
BEGIN
-- Set arguments values
DBMS_SCHEDULER.set_job_argument_value('RUN_RDF_JOB',1,'arg1 value');
DBMS_SCHEDULER.ENABLE_JOB('RUN_RDF_JOB'); -- Might need this
DBMS_SCHEDULER.RUN_JOB('RUN_RDF_JOB');
END;
/
通过视图监控作业(必要时ALL/USER/DBA):
ALL_SCHEDULER_JOB_RUN_DETAILS
ALL_SCHEDULER_JOB_LOG
将 test.rdf 部署到自定义顶部位置。 Select 系统管理员
- 创建可执行文件
- 可执行文件名称应用程序名称
- 执行方式
- 报告 (.rdf) 文件名
通过链接到 test.rdf
创建可执行文件可执行文件名称应为仅在服务器中可用的报表名称。
创建并发程序并附加:并发程序是可执行文件的实例以及输入参数和不兼容的程序。示例报告的开发和迁移到 Oracle 应用程序并执行。
一个。可执行 b.参数 C。不兼容性
创建并发程序,创建时为此提供可执行文件名称。
单击“参数”选项卡并转到屏幕以提供如下屏幕所示的详细信息。标记值应该类似于 Report Builder 中的参数。
创建请求组并附加并发程序
转到请求组屏幕,创建组或打开现有组以附加我们的并发程序名称。
转到请求组屏幕,创建组或打开现有组以附加我们的并发程序名称。
创造责任
a. Request Group – Collection of Concurrent Programs
b. Data Group – Collection of User IDs
c. Menu – Collection of forms
转到责任屏幕并创建一项责任并将我们的请求组附加到该责任。
创建用户附加责任给用户 转到用户屏幕并将我们的责任附加到现有的业务用户。 运行 通过 SRS 报告 window。
- 转到文件 —-> 切换责任 —–a select 责任
- 去View—a Request—a>找到然后在screen下面我们就可以了。
- 单击“提交新请求”按钮。
点击确定按钮提交单个请求。然后把我们的报告打电话给运行 SRS window.
在单击“确定”按钮之前提供参数值。
单击“否”按钮不提交另一个请求。 单击刷新按钮使我们的报告进入完整的正常阶段。