FORM开发中Profiles的使用
用户配置文件相当于系统参数,可以在不同层级(Site层、应用模块层、责任层、用户层)设置不同的值;作用范围小的覆盖范围大的层,系统已经预设了很多user
profile; 开发人员也可以定义
在EBS
中我们可能定义profile,用于存储特定的用户信息,以便在程序运行中进行调用。相当于全局变量.
1. Profile的定义
Path:application developer/profile
其中的hierarchy type
用来确定profile的作用范围。一般选security.
Profile的作用范围是底层优先的,也就是user
层的最优先,其次是organization….
比较常用的是根据responsibility 来提取profile的信息.
SQL Validation 是用来定义profile value 的value set的,当然不定义,然后手工输入也没问题,但为了安全,还是定义一个比较好,定义方法如下:
SQL="SELECT fv_region.flex_value \"Log Mode\",
fv_region.flex_value
into :visible_option_value,
:profile_option_value
FROM fnd_flex_value_sets fvs_region,
fnd_flex_values fv_region
WHERE fvs_region.flex_value_set_name = 'FAC_REORG_ASSET_REGION'
AND fvs_region.flex_value_set_id = fv_region.flex_value_set_id
AND fv_region.enabled_flag = 'Y' "
COLUMN="\"Log Mode\"(10)"
2. Profile
的维护
Path: System administrator/profile/system
可根据需要,在site/application/responsibility/organization/user层对相应的profile进行赋值。
3.使用profile
几个相关函数的使用说明实例
1.
FND_PROFILE.GET(‘Name of the Profile’,variable name);
[sql]
view plaincopyprint?
1. SELECT fnd_profile.value('PROFILEOPTION')
2. ,fnd_profile.value('MFG_ORGANIZATION_ID')
3. ,fnd_profile.value('ORG_ID')
4. ,fnd_profile.value('LOGIN_ID')
5. ,fnd_profile.value('USER_ID')
6. ,fnd_profile.value('USERNAME')
7. ,fnd_profile.value('CONCURRENT_REQUEST_ID')
8. ,fnd_profile.value('GL_SET_OF_BKS_ID')
9. ,fnd_profile.value('SO_ORGANIZATION_ID')
10. ,fnd_profile.value('APPL_SHRT_NAME')
11. ,fnd_profile.value('RESP_NAME')
12. ,fnd_profile.value('RESP_ID')
13. FROM DUAL;
SELECTfnd_profile.value('PROFILEOPTION')
,fnd_profile.value('MFG_ORGANIZATION_ID')
,fnd_profile.value('ORG_ID')
,fnd_profile.value('LOGIN_ID')
,fnd_profile.value('USER_ID')
,fnd_profile.value('USERNAME')
,fnd_profile.value('CONCURRENT_REQUEST_ID')
,fnd_profile.value('GL_SET_OF_BKS_ID')
,fnd_profile.value('SO_ORGANIZATION_ID')
,fnd_profile.value('APPL_SHRT_NAME')
,fnd_profile.value('RESP_NAME')
,fnd_profile.value('RESP_ID')
FROM DUAL;
2. variable name :=
FND_PROFILE.VALUE(‘Name ofthe profile’);
3.
FND_PROFILE.PUT(‘Name of the profile’, valueof the profile);
[sql]
view plaincopyprint?
1. SET SERVEROUTPUT ON;
2. DECLARE
3. v_conc_login_id NUMBER;
4. BEGIN
5. FND_PROFILE.put ('CONC_LOGIN_ID',1425);
6. fnd_profile.get ('CONC_LOGIN_ID', v_conc_login_id);
7. DBMS_OUTPUT.put_line (v_conc_login_id);
8. END;
9. Output:
10.1425
11.PL/SQL procedure successfully completed
SETSERVEROUTPUT ON;
DECLARE
v_conc_login_id NUMBER;
BEGIN
FND_PROFILE.put ('CONC_LOGIN_ID',1425);
fnd_profile.get ('CONC_LOGIN_ID',v_conc_login_id);
DBMS_OUTPUT.put_line (v_conc_login_id);
END;
Output:
1425
PL/SQLprocedure successfully completed
FND_PROFILE.GET is the procedure and FND_PROFILE.VALUE is the function so,it return a value.
4.FND_PROFILE.SAVE used to set the profile values frombackend.
The table
fnd_profile_options_tl, profileoptions names are kept. Now find the corresponding the Profileoption namefor which you need to update from backend. For thisexample I took my favorite“ORG_ID”
SELECT profile_option_name
FROM fnd_profile_options_tl
WHERE user_profile_option_nameLIKE'MO%'
It returns more than one row but i can make out that "ORG_ID" is thePROFILE_OPTION_NAME for MO: Operating Unit. Now I need to know the Org_ID ofthe Org whose value is to be set in MO: Operating Unit. SO I use thesimpleselect as below
SELECT organization_id,NAME
FROMhr_all_organization_units;
From the organization name I find the one which will be the default OperatingUnit, and I note the ID. In my case the ID for my default Operating Unit is286. Now with the code below I set the profile option value usingfnd_profile.save.
DECLARE
stat BOOLEAN;
BEGIN
DBMS_OUTPUT.DISABLE;
DBMS_OUTPUT.ENABLE(100000);
stat := fnd_profile.SAVE('ORG_ID',286,'SITE');
IF stat
THEN
DBMS_OUTPUT.put_line('Stat = TRUE - profileupdated');
ELSE
DBMS_OUTPUT.put_line('Stat = FALSE - profileNOT updated');
END IF;
COMMIT;
END;
5.fnd_profile.defined
IF (fnd_profile.defined('TRANSACTION_DATE')) THEN
l_profile_value := TO_NUMBER(fnd_profile.value('TRANSACTION_DATE'));
....
In oracle user Profile functionality is provided inthe FND_PROFILE package and the FNDSQF library.
What is inside this API:
· Retrieve user profile values for the current run-time environment
· Set user profile values for the current run-time environment
There are various Objects that can be used with thisAPI's. These are discussed below:
1. Put :This can be used to put a value to the specified user profile option.
Usage:
· FND_Profile.Put('PROFILE_NAME','New_Value')
· FND_Profile.Put('USERNAME', Usr_Name)
· FND_Profile.Put('RESP_ID', Resp_ID)
· FND_Profile.Put('RESP_APPL_ID', Resp_App_ID)
· FND_Profile.Put('USER_ID', User_ID)
2.DEFINED : this is function returns TRUE if a value hasbeen assigned to the specified profile option.
Usage:
· SELECT fnd_profile.defined('ACCOUNT_GENERATOR:DEBUG_MODE')ACC_GEN_DEBUG_SESSION_MODE FROM DUAL;
3.GET :This is used to retrieve the current value of the specified user profileoption
Usage :
Different type of options can be retrieved like
· FND_Profile.Get('PROFILENAME', Profile_name);
· FND_Profile.Get('CONC_LOGIN_ID', Conc_login_id);
· FND_Profile.Get('LOGIN_ID', loginid);
4.VALUE : This is function which returns a character string. Used to retrievethe current value of the specified user profile option.
Usage:
· fnd_profile.value('PROFILEOPTION')
· fnd_profile.value('MFG_ORGANIZATION_ID')
· fnd_profile.value('login_ID')
· fnd_profile.value('USER_ID')
· fnd_profile.value('USERNAME')
· fnd_profile.value('CONCURRENT_REQUEST_ID')
· fnd_profile.value('GL_SET_OF_BKS_ID')
· fnd_profile.value('ORG_ID')
· fnd_profile.value('SO_ORGANIZATION_ID')
· fnd_profile.value('APPL_SHRT_NAME')
· fnd_profile.value('RESP_NAME')
· fnd_profile.value('RESP_ID')
5.VALUE_WNPS: This is a function, returns a character string.This is Used to retrieve the current value of the specified user profile optionwithout caching it.
6.SAVE_USER :This is function used to save a value for a profileoption permanently to the database, for the current user level. It is necessaryto explicitly issue a commit
when using this function. Returns TRUE if profile optionis successfully saved, otherwise FALSE.
7.SAVE :This is function used to save a value for a profile option permanently tothe database, for a specified level. It is necessary to explicitly issue acommit when using
this function. Returns TRUE if profile option is successfullysaved, otherwise FALSE.
Usage
· fnd_profile.save('GUEST_USER_PWD', 'GUEST/ORACLE', 'SITE');
8.INITIALIZE :This is used by internal Applications ObjectLibrary to initialize the internal profile information at the level context.
The cache is first cleared of all database options.
Usage:
· fnd_profile.initialize(user_id);
9.PUTMULTIPLE :This is used by internal Applications Object Libraryto set multiple pairs of profile options and values.
FORM开发中Profiles的使用的更多相关文章
- Form开发中组件控制的几个常用方法
转自:http://oracleseeker.com/2009/09/01/graphical_component_control_in_oracle_ebs_form/ 在Oracle EBS 的F ...
- input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件
最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- 关于 WP 开发中.xaml 与.xaml.cs 的关系
今天我们先来看一下在WP8.1开发中最长见到的几个文件之间的关系.比较论证,在看这个问题之前我们简单看看.NET平台其他两个不同的框架: Windows Forms 先看看Window Forms中的 ...
- iOS开发中 workspace 与 static lib 工程的联合使用
在iOS开发中,其实workspace的使用没有完全发挥出来,最近做了一些研究,也想把之前写过的代码整理下,因为iOS里面的布局方式,交互方式也就那么几种.所以,整理好了之后,更能快捷开发,而且能够形 ...
- highcharts插件使用总结和开发中遇到的问题及解决办法
这里使用的highchart是2014-01-09从官网下载的版本,版本号是3.0.8, 当过了几天后,发现版本号变成了3.0.9,不由得的感叹highchart的版本更新之快. 在jsp中使用hig ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- Web开发中设置快捷键来增强用户体验
从事对日外包一年多以来,发现日本的无论是WinForm项目还是Web项目都注重快捷键的使用,日本人操作的时候都喜欢用键盘而不是用鼠标去点,用他们的话来说"键盘永远比鼠标来的快",所 ...
- iOS开发中遇到的一些问题及解决方案【转载】
iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Creat ...
随机推荐
- Python中time模块详解
Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...
- STM32 - SYSTICK(系统滴答定时器)
SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15).在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基.例如,为多个任务许以不同数目 ...
- WOJ 124. Football Coach 网络流
Problem 1124 - Football Coach Description It is not an easy job to be a coach of a football team. Th ...
- 【bzoj4567 scoi2016】 背单词
题目描述 Lweb 面对如山的英语单词,陷入了深深的沉思,”我怎么样才能快点学完,然后去玩三国杀呢?“.这时候睿智的凤老师从远处飘来,他送给了 Lweb 一本计划册和一大缸泡椒,他的计划册是长这样的: ...
- [bzoj1187][HNOI2007]神奇游乐园
来自FallDream的博客,未经允许,请勿转载,谢谢, 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这是一 ...
- Mysq 索引优化
MYSQL支持的索引类型 BTREE索引 特点: 通过引用以B+权的结构存储数据 能够加快数据的查询速度 更适合进行范围查找 应用: 全值匹配的查询 = 匹配最左前缀的查询 匹配列前缀查询 LIKE ...
- SpringBoot学习之自动依赖
在前面使用SSM集成时,我们可以使用注解实现无配置化注入,但是这种依赖被进行“人工干预了的”,换句话就是说我们手动进行装配,那么此时还没有达到SpringBoot这种自动装配的效果,那么究竟Sprin ...
- C语言第二次作业-----顺序结构
一:改错题 (1)输出指定信息: 将给定源代码输入编译器: 执行编译命令,发现编译器报错,错误信息如下: 经检查,发现源程序将"stdio.h"误拼为"stido.h&q ...
- 光电转研发:和计算机没有一点关系的专业怎么去bat类的公司
光电 女 其实编码能力一般般,拿到百度腾讯研发offer. 一来幸运,二来真的想说行动决定了结果.研一没事就出去家教充实自己赚点钱,研二就开始找实习,去了网易,海康威视,百度实习.感觉还是吃了不少苦的 ...
- Vue.js + Webpack
vue.js Vue.js是一个构建数据驱动的 web 界面的库.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 以上是Vue.js官方定义,故名思议,以数据驱动视 ...