1.几个功能和相关配置文件 1)打开“关于此页”功能,需要启用 FND:诊断(FND: Diagnostics) 2)打开“个性化页”功能,需要启用 个性化自助定义(Personalize Self-Service Defn) FND:已启用“个性化区域”链接(FND: Personalization Region Link Enabled) 说明: 1)一般情况下,这两个功能只针对开发人员启用,也就是在用户层设置为启用,而在地点层是禁用的。 2)由于OAF界面缓存的原因,设置后,可能需要清除缓存(从功能管理员进入)或者重新登录 2.页面个性化 两种方式可以进入页面的个性化设置界面 1)知道页面的路径,从功能管理员进入,个性化,输入页面路径,查询后进入。 OAF 个性化基础-编程知识网 2)当前打开的页面是要进行个性化的页面,并且已经打开了个性化功能(参考1),直接点击右上角“个性化页”,进入设置界面。 OAF 个性化基础-编程知识网 3)进入页面后,可以对当前的某个组件分层次进行设置,这个预置文件的类似,分为site,组织,职责三个层次,能设置的属性比JDeveloper里进行开发时设置的属性少,是目前Oracle所能支持的个性化属性,更多的属性只能通过个性化CO,通过代码进行设置了。 4)还可以在某个region下添加组件,点击创建项目图标,OAF 个性化基础-编程知识网,进入创建界面,此界面和JDeveloper中的创建界面很像,但项目样式也比JDeveloper里少 OAF 个性化基础-编程知识网

 

填入必要的内容,保存即可 5)单纯的个性化页面比较简单,也比较少,一般局限在修改组件的显示文本,隐藏组件等静态操作,更多的则是通过配合个性化CO,VO来实现更多更强大的功能。 3.CO个性化 1)主要逻辑都在CO里,界面上只需要个性化设置一下组件的Controller Class属性。 OAF 个性化基础-编程知识网 2)这里的CO一般都是从页面原始CO继承(上一张图的原始定义),而不是OAControllerImpl,这样通过super.processRequest方法和super.processFormRequest就能继承原有逻辑,然后添加自己的逻辑代码。 OAF 个性化基础-编程知识网 4.VO个性化 1)查看VO的方法:每个页面左下有“关于此页”,点击进入,有此页面的详细信息, OAF 个性化基础-编程知识网 有一条目是“视图对象” OAF 个性化基础-编程知识网 OAF 个性化基础-编程知识网 点击VO,进入,可以查看sql等信息,很方便 OAF 个性化基础-编程知识网 还可以直接从服务器把VO的源文件拿下来(包括XXX.xml、XXXImpl.class、XXXRowImpl.class),反编译查看。 2)将VO配置文件(即xml文件、Class反编译后的java文件)放在与服务器相同目录的本地文件夹中,使用JDeveloper功能生成相应的java文件。 OAF 个性化基础-编程知识网 3)反编译下载下来的class文件,拷贝到生成的VOImpl和VORowImpl文件中(注意:一些VO的Class文件除了JDeveloper工具自动生成的方法外,还可能有作者自己编写的方法,所以强烈建议反编译class文件) 4)在自己的工作目录下新建一个VO,继承原有VO(即所要客户化的VO) OAF 个性化基础-编程知识网 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; OAF 个性化基础-编程知识网 说明确实导入成了,在界面上再次查看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)从功能管理员进入,个性化,导入/导出,个性化信息库 OAF 个性化基础-编程知识网 2)可以从树状结构中找到某个界面,选中,然后点击“导出至文件系统”,然后就会将该界面的个性化导出成文件,便于导入其他环境。 3)导出成功后会提示文档路径 OAF 个性化基础-编程知识网 7.导入个性化 1)首先使用FTP将个性化文件放到服务器上,根路径由配置文件“FND:个性化文档根路径”所决定。 2)从功能管理员进入,个性化,导入/导出,导出的个性化 OAF 个性化基础-编程知识网

 

3)可以从树状结构中找到对应的个性化文件,可以查看最后更新时间以确定是否为最新的文件,选中,然后点击“从文件系统导入”

转载于:https://www.cnblogs.com/objmodel/p/7601514.html