You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用ScheduleService::scheduleReport()能否覆盖BIP拆分定义的template_name

问题结论

调用ScheduleService::scheduleReport()接口调度带拆分查询的报表时,不支持直接覆写拆分查询中预先写死的TEMPLATE参数值。
OBIEE 12c的BIP调度逻辑中,拆分查询的返回结果优先级高于调度接口传入的全局配置:作业触发后会优先执行配置好的Burst Query,每一行返回结果对应一个独立的拆分投递任务,行内的TEMPLATE、LOCALE、输出格式、投递渠道字段会直接作为该拆分任务的最终配置,接口没有提供单独拦截、修改拆分查询返回字段的入口。

可行实现方案

如果需要动态切换拆分生成报表用的模板,可以用以下两种方式实现,不需要改动现有调度逻辑的整体框架:

  • 方案1:将拆分查询中的TEMPLATE值改为绑定变量
    把原来写死的固定模板值替换为可传入的绑定参数,在调用接口时通过报表参数列表传入实际需要的模板名即可,拆分查询执行时会自动替换为传入的值。
    修改后的拆分查询示例:
    select  "invoice_table"."invid" as "KEY",
                :P_REPORT_TEMPLATE as "TEMPLATE", 
                'en-US' as "LOCALE",
                'PDF' as "OUTPUT_FORMAT",
                'EMAIL' as "DEL_CHANNEL",
                'America/Los_Angeles' as "TIMEZONE"
                 ...
    
    调用scheduleReport()时,在参数集合中增加P_REPORT_TEMPLATE参数,赋值为你需要使用的模板名称即可。
  • 方案2:在拆分查询内写模板匹配逻辑
    如果需要不同拆分条目使用不同模板,不需要额外传参的话,可以直接在TEMPLATE字段中写条件判断逻辑,根据业务字段、全局参数动态返回对应的模板名,示例:
    select  "invoice_table"."invid" as "KEY",
                case 
                  when :P_BIZ_TYPE = 'DOMESTIC' then 'invoice_template_cn'
                  when :P_BIZ_TYPE = 'OVERSEAS' then 'invoice_template_en'
                  else 'invoice_template_default' 
                end as "TEMPLATE", 
                'en-US' as "LOCALE",
                ...
    
注意事项
  • 所有动态传入/逻辑判断返回的模板名,必须是已经上传到该报表关联模板列表中的有效模板,否则拆分任务会直接报错,提示模板不存在。
  • 绑定变量的参数名需要和报表端定义的参数名完全一致,大小写敏感,否则会出现参数传值不生效的问题。

内容的提问来源于stack exchange,提问作者Chandu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:45:34