用户配置文件相当于系统参数,可以在不同层级(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的使用的更多相关文章

  1. Form开发中组件控制的几个常用方法

    转自:http://oracleseeker.com/2009/09/01/graphical_component_control_in_oracle_ebs_form/ 在Oracle EBS 的F ...

  2. input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件

    最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...

  3. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  4. 关于 WP 开发中.xaml 与.xaml.cs 的关系

    今天我们先来看一下在WP8.1开发中最长见到的几个文件之间的关系.比较论证,在看这个问题之前我们简单看看.NET平台其他两个不同的框架: Windows Forms 先看看Window Forms中的 ...

  5. iOS开发中 workspace 与 static lib 工程的联合使用

    在iOS开发中,其实workspace的使用没有完全发挥出来,最近做了一些研究,也想把之前写过的代码整理下,因为iOS里面的布局方式,交互方式也就那么几种.所以,整理好了之后,更能快捷开发,而且能够形 ...

  6. highcharts插件使用总结和开发中遇到的问题及解决办法

    这里使用的highchart是2014-01-09从官网下载的版本,版本号是3.0.8, 当过了几天后,发现版本号变成了3.0.9,不由得的感叹highchart的版本更新之快. 在jsp中使用hig ...

  7. ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证

    ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...

  8. Web开发中设置快捷键来增强用户体验

    从事对日外包一年多以来,发现日本的无论是WinForm项目还是Web项目都注重快捷键的使用,日本人操作的时候都喜欢用键盘而不是用鼠标去点,用他们的话来说"键盘永远比鼠标来的快",所 ...

  9. iOS开发中遇到的一些问题及解决方案【转载】

    iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // //  MyScrollView.m //  Creat ...

随机推荐

  1. [LeetCode] Binary Tree Tilt 二叉树的坡度

    Given a binary tree, return the tilt of the whole tree. The tilt of a tree node is defined as the ab ...

  2. [HNOI 2014]世界树

    Description 题库链接 给出一棵 \(n\) 个节点的树, \(q\) 次询问,每次给出 \(k\) 个关键点.树上所有的点会被最靠近的关键点管辖,若距离相等则选编号最小的那个.求每个关键点 ...

  3. [HNOI 2016]序列

    Description 题库链接 给你一个长度为 \(n\) 的序列 \(A\) ,给出 \(q\) 组询问.每次询问 \([l,r]\) ,求该区间内所有的子序列中最小值的和. \(1\leq n, ...

  4. poj 1269 线段与线段相交

    Intersecting Lines Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13605   Accepted: 60 ...

  5. [UOJ UR #4追击圣诞老人]

    来自FallDream的博客,未经允许,请勿转载, 谢谢. 传送门 考虑直接维护一个堆,然后往里面丢链,并且取出k个堆顶就行了. 然后就需要分类讨论啥的,给你的三个点变成两条链,每次取出一条链之后选择 ...

  6. hdu 1828 线段树扫描线(周长)

    Picture Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  7. bzoj3211花神游历各国 线段树

    3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 4252  Solved: 1547[Submit][Status][Discu ...

  8. linux退出状态码及exit命令

    Linux提供了一个专门的变量$?来保存上个已执行命令的退出状态码.对于需要进行检查的命令,必须在其运行完毕后立刻查看或使用$?变量.它的值会变成由shell所执行的最后一条命令的退出状态码: [ro ...

  9. 安装插件出现eclipse An internal error occurred during: "Installing Software". xxxxxxxxx

    就是你自己本来就有那个插件了 百度怎么删吧.... 看一下我这个文章 强烈建议本地安装的时候用第四种安装 http://www.cnblogs.com/ydymz/articles/7203260.h ...

  10. TCP/IP学习笔记__mbuf

    Socket发送和接收数据都是写入和读取mbuf(存储器缓存)来完成的.下面着重介绍下Sendto函数与mbuf的关系: 以UDP协议为例: 1.UDP的输出执行过程: UDP的输出执行过程 2.协议 ...