OAF 个性化基础
Posted 无涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OAF 个性化基础相关的知识,希望对你有一定的参考价值。
1.几个功能和相关配置文件
1)打开“关于此页”功能,需要启用
FND:诊断(FND: Diagnostics)
2)打开“个性化页”功能,需要启用
个性化自助定义(Personalize Self-Service Defn)
FND:已启用“个性化区域”链接(FND: Personalization Region Link Enabled)
说明:
1)一般情况下,这两个功能只针对开发人员启用,也就是在用户层设置为启用,而在地点层是禁用的。
2)由于OAF界面缓存的原因,设置后,可能需要清除缓存(从功能管理员进入)或者重新登录
2.页面个性化
两种方式可以进入页面的个性化设置界面
1)知道页面的路径,从功能管理员进入,个性化,输入页面路径,查询后进入。

2)当前打开的页面是要进行个性化的页面,并且已经打开了个性化功能(参考1),直接点击右上角“个性化页”,进入设置界面。

3)进入页面后,可以对当前的某个组件分层次进行设置,这个预置文件的类似,分为site,组织,职责三个层次,能设置的属性比JDeveloper里进行开发时设置的属性少,是目前Oracle所能支持的个性化属性,更多的属性只能通过个性化CO,通过代码进行设置了。
4)还可以在某个region下添加组件,点击创建项目图标,
,进入创建界面,此界面和JDeveloper中的创建界面很像,但项目样式也比JDeveloper里少


填入必要的内容,保存即可
5)单纯的个性化页面比较简单,也比较少,一般局限在修改组件的显示文本,隐藏组件等静态操作,更多的则是通过配合个性化CO,VO来实现更多更强大的功能。
3.CO个性化
1)主要逻辑都在CO里,界面上只需要个性化设置一下组件的Controller Class属性。

2)这里的CO一般都是从页面原始CO继承(上一张图的原始定义),而不是OAControllerImpl,这样通过super.processRequest方法和super.processFormRequest就能继承原有逻辑,然后添加自己的逻辑代码。

4.VO个性化
1)查看VO的方法:每个页面左下有“关于此页”,点击进入,有此页面的详细信息,

有一条目是“视图对象”


点击VO,进入,可以查看sql等信息,很方便

还可以直接从服务器把VO的源文件拿下来(包括XXX.xml、XXXImpl.class、XXXRowImpl.class),反编译查看。
2)将VO配置文件(即xml文件、Class反编译后的java文件)放在与服务器相同目录的本地文件夹中,使用JDeveloper功能生成相应的java文件。

3)反编译下载下来的class文件,拷贝到生成的VOImpl和VORowImpl文件中(注意:一些VO的Class文件除了JDeveloper工具自动生成的方法外,还可能有作者自己编写的方法,所以强烈建议反编译class文件)
4)在自己的工作目录下新建一个VO,继承原有VO(即所要客户化的VO)

5)更改sql语句,一般是添加字段(在最后添加)或限制条件,不改变原有字段
6)替换VO
在JDeveloper工具条里,Tools -> Project Properties -> Bussiness Components -> Substitutions 左侧选中之前的VO,右侧选中编辑后的新VO,Add,确定,保存项目。
用文本编辑器打开jdevhome\\jdev\\myprojects\\XXX.jpx,看最后是否添加了一行代码,表示VO替换,代码类似于
<Substitutes>
<Substitute OldName =" oracle.apps.XXX.XXXVO" NewName ="cux.oracle.apps.XXX.CUXXXXVO" />
</Substitutes>
7)搞定VO,接下来就是最最关键的一步,将客户化的VO导入到数据库中
这是我的导入语句,大家可以改改,在本地DOS命令行中运行
C:\\my\\p9879989_R12_GENERIC\\jdevbin\\oaext\\bin\\jpximport.bat C:\\my\\p9879989_R12_GENERIC\\jdevhome\\jdev\\myprojects\\XXX.jpx -username apps -password apps -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.1)(PORT=8000))(CONNECT_DATA=(SERVICE_NAME=XXX)(INSTANCE_NAME=XXX)))"
会显示导入成功,并且会显示客户化的路径
在pl/sql里查看
Begin
jdr_utils.printDocument(\'/oracle/apps/eam/server/customizations/site/0/AssetNumberRVO\');
End;

说明确实导入成了,在界面上再次查看VO,可以再次验证,查看VO的方法同第一步。
5.常用 SQL
1)查出个性化生成的页面
BEGIN
jdr_utils.listcustomizations(p_document => \'/oracle/apps/XXX/XXXPG\');
END;
2)查看个性化的内容
BEGIN
jdr_utils.printdocument (p_document => \'/oracle/apps/XXX/site/0/XXPG\');
END;
3)删除个性化内容
BEGIN
jdr_utils.deleteDocument(p_document => \'/oracle/apps/XXX/site/0/XXPG \');
END;
6.导出个性化
1)从功能管理员进入,个性化,导入/导出,个性化信息库

2)可以从树状结构中找到某个界面,选中,然后点击“导出至文件系统”,然后就会将该界面的个性化导出成文件,便于导入其他环境。
3)导出成功后会提示文档路径

7.导入个性化
1)首先使用FTP将个性化文件放到服务器上,根路径由配置文件“FND:个性化文档根路径”所决定。
2)从功能管理员进入,个性化,导入/导出,导出的个性化

3)可以从树状结构中找到对应的个性化文件,可以查看最后更新时间以确定是否为最新的文件,选中,然后点击“从文件系统导入”
以上是关于OAF 个性化基础的主要内容,如果未能解决你的问题,请参考以下文章