注:本文为原创,作为学习交流使用,转载请标明作者及出处,作者保留追究法律责任的权力。

Lumen Su
------------------------------------------------------------------------------------------------------
 
 
在开发oracle report(report 6i)的时候,常常会用到fnd_global或fnd_profile来获取当前的环境变量,如
当前用户:fnd_global.user_id,fnd_global.user_name
当前并发程序所在应用:fnd_global.prog_appl_id
当前并发程序:fnd_global.conc_program_id
当前并发请求:fnd_global.conc_request_id
获取配置文件:fnd_profile.VALUE()
 
这些变量的使用如果实在PLSQL SRS中,是可以直接使用的,而在oracle report(report 6i)中,需要特殊处理。
 
一  解决的问题
oracle report(report 6i)使用fnd_global或fnd_profile全局变量
 
二 问题描述
e.g.
DataModel里存在一个公式列,公式列的处理函数中,直接返回fnd_global.conc_program_id
 
结果:返回-1,说明没有获取到
 
三  解决方法
使用SRW.USER_EXIT('FND SRWINIT');
1. 在before_report触发器内初始化 SRW.USER_EXIT('FND SRWINIT');
2. 获取全局参数
3. 在after_report触发器内再次调用SRW.USER_EXIT('FND SRWINIT');
 
示例代码
1. 设置用户参数(作用是RDF内全局可以使用),P_CONC_PROGRAM_ID,类型Number,宽度15
2. 修改before_report触发器
 function BeforeReport return boolean is
begin SRW.USER_EXIT('FND SRWINIT');
//srw.message(100,'Concurrent request Id : '|| :P_CONC_REQUEST_ID);
//srw.message(100,'Concurrent PROGRAM Id : '|| fnd_global.CONC_PROGRAM_ID);
//srw.message(100,'Concurrent PROGRAM APP Id : '|| fnd_global.PROG_APPL_ID);
:P_CONC_PROGRAM_ID := fnd_global.CONC_PROGRAM_ID;
:P_PROG_APPL_ID := fnd_global.PROG_APPL_ID; return (TRUE);
end;
3. 修改after_report触发器
function AfterReport return boolean is
begin SRW.USER_EXIT('FND SRWEXIT'); return (TRUE);
end;

4. 修改公式列函数

function CF_CONC_PROGRAM_IDFormula return Number is
begin
RETURN P_CONC_PROGRAM_ID;
end;

注:本文为原创,作为学习交流使用,转载请标明作者及出处,作者保留追究法律责任的权力。

Lumen Su
------------------------------------------------------------------------------------------------------

Oracle Report(Report 6i/RDF)使用全局变量fnd_global, fnd_frofile的更多相关文章

  1. Creating Timer in Oracle D2k / Forms 6i and Displaying a Clock

    Creating Timer in Oracle D2k / Forms 6i and Displaying a Clock This is about timer in D2k An externa ...

  2. Refresh / Updating a form screen in Oracle D2k Forms 6i

    Refresh / Updating a form screen in Oracle D2k Forms 6i ProblemYou want to show number of records pr ...

  3. Oracle EBS Report 输出字符字段前部"0"被Excel自动去掉问题

    Oracle  EBS 提供多种报表的开发和输出形式,由于MS Excel在处理数据方面的优势明显,报表输出用Excel打开是很常见的开发项. 但是正是由于Excel的"过于智能而不智能&q ...

  4. 如何在Report Builder中使用fnd_profile.value

    在EBS的Report开发中,需要根据客户化的一个Profile来控制用户可以访问的数据,可是在开发的过程中发现一直取不到该Profile的值,后来百度才找到了原因. 解决方法: 1.添加用户参数p_ ...

  5. AWR Report 关键参数详细分析

    WORKLOAD REPOSITORY report for DB Name DB Id Instance Inst num Startup Time Release RAC CALLDB 12510 ...

  6. Download Oracle Forms 6i

    To download Oracle Forms Developer 6i from Oracle click this link http://download.oracle.com/otn/nt/ ...

  7. Crystal Report在.net中的两种显示方式

    Crystal Report在.net中的两种显示方式 编写人:CC阿爸 2014-7-29 近来在完成深圳一公司的项目,对方对各方面要求相当严格,一不满意就拒绝签收,为了对修正水晶报表显示及导出的一 ...

  8. How to get the underlying SSRS Report Query, reset query , add your own ranges and execute report [AX2012]

    Below is the small code snippet to get the underlying query of the SSRS report, reset query, prompt ...

  9. 机房收费系统中的Grid++Report报表设计器的应用

    在进行账单查询功能的时候我应用了Grid++Report报表设计器,下面我就为大家介绍一下,还望大家多多指点. 首先,在Grid++Report报表设计器中进行报表界面的设置.在属性编辑窗口中这里对报 ...

随机推荐

  1. 【贪心+优先队列】POJ3190-Stall Reservations

    [题目大意] 给出每个奶牛挤奶的时间,同一时间同一畜栏内不会有两头奶牛挤奶,问至少要多少个畜栏. [思路] 将奶牛按照挤奶开始的时间进行升序排序,再用一个小顶堆维护每一个畜栏当前的挤奶结束时间.对于当 ...

  2. ZeroMQ——一个轻量级的消息通信组件

    ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关 ...

  3. Clover 的功能就是给资源管理器加上 Chrome 一样的标签页

    官网下载地址:http://cn.ejie.me/

  4. 论MORMOT序列的JSON格式

    论MORMOT序列的JSON格式 JSON 数据使用 UTF-8 编码 BLOB 字段值会用 Base64编码 JSON数据是一个对象数组: [ {"col1":val11,&qu ...

  5. windows2012 IIS部署GeoTrust证书踩过的坑。

    系统:windows2012 环境:IIS8 在阿里云上买了GeoTrust证书, 按照说明下载证书到服务器,  导入证书, 给IIS站点部署https. 阿里云部署帮助文档:https://help ...

  6. [Android Pro] Property Animation

    声明:下面的内容需要Android API level 11的支持 Property Animation是如何运作的 首先,来看一下两个不一样的Property Animation场景: 场景一(Li ...

  7. Mybatis数据库操作的返回值

    mybatis配置 <!-- 配置mybatis --> <bean id="sqlSessionFactory" class="org.mybatis ...

  8. 18.并发类容器MQ

    package demo7.MQ; public class QueueData { private int id; private String name; private String taskC ...

  9. $stateProvider resovle 无法找到的原因

    $stateProvider 在写resolve的时候,也要写上controller,不能直接在页面上用ng-controller 来指定!!!! 不然的话,就是报依赖注入异常,找不到该provide ...

  10. VLAN讲解

    VLAN(Virtual Local Area Network)的中文名为"虚拟局域网".VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术. ...