壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2234|回复: 7

[OAF] OAF个性化:扩展标准程序之本地环境设置

[复制链接]
发表于 2009/7/7 13:48:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
扩展标准程序之本地环境设置
客户化开发一个OAF程序与扩展标准程序有很大区别,客户化开发一个OAF程序只需象Toolbox练习那样,开发全新的程序。而扩展标准程序是在标准程序的基础上,通过面向对象的继承方式,来进行扩展。OAF的扩展功能理论上可以实现OAF页面上的任意扩展,甚至可以把标准页面改得面目全非。但是有时扩展进行起来是非常困难的,此时从新客户化全新的程序是一个不错的选择。
扩展标准程序最关键的是对Oracle的程序能够完全读懂,然后才能谈如何去设计,才能决定扩展哪部分程序是最合适的。那么要读标准程序,最关键的是建立本地开发环境。这篇文章将介绍创建本地开发环境的一般步骤。
1、获取标准代码
1) 获取Java代码及BC4J XML文件
从EBS服务器$JAVA_TOP下,下载恰当的代码到%JDEV_USER_HOME%\myclasses下。恰当是指比如当前页面的AP模块的,页面路径为/oracle/apps/ap/......,那么将$JAVA_TOP/oracle/apps/ap目录全部下载下来(可以通过单击页面底部的“关于此页”链接,可以得到页面的完整URL)。
提示:一般来说FND应用下的类很多时候都会用到,所以可以把$JAVA_TOP/oracle/apps/fnd也下载到本地
2) 获取页面定义文件
页面定义文件在各模块主目录下,如$AP_TOP/mds,以AP为例,将$AP_TOP/mds目录下所有内容全部下载到%JDEV_USER_HOME%\myclasses\oracle\apps\ap
3) 将需要的代码复制到myproject目录
可以选择将myclasses下所有文件都拷贝到myproject下(这个在开发过程中可能会带来一点JDeveloper加载文件时的开销),也可以只将需要的内容复制到%JDEV_USER_HOME%\myprojects目录下,或者先只拷贝需要去读懂代码的必要的几个文件,以后根据需要在添加更多的代码文件。
提示:此时在本地已经可以运行程序了,运行结果也与服务器上运行一致。
2、反编译标准代码
由于服务器上只有Java class文件,必须通过反编译才能阅读代码。通过反编译工具将myprojects下的class文件反编译成java源代码。
3、创建项目
创建新的OA项目,将myprojects下的源代码加入项目中。
4、设置项目属性
不管什么反编译工具,不能保证编译出来的代码都是正确的,很可能编译出来的代码是不能重新编译的,尤其是R12中高版本JDK编译的Java class文件,不过大部分编译错误可以很容易就修改正确。
当本地程序运行时,JDeveloper默认会编译整个项目,如果没有编译错误,则会启动OC4J来运行程序。这种默认设置对扩展项目来说不是很合适的,所以必须更改这个设置。
11i中,JDeveloper设置如下图:

在项目设置中,Configurations/Development/Runner/Options节点中Before Running的Make Project取消选择。
R12中,JDeveloper设置如下图:

在项目属性中选择Run/Debug,然后更改项目设置,选择Edit按钮

在Edit Run Configuration对话框中,选择Tool Setting节点Before Running的Make Project取消选择。
5、其它说明
当设置完开发环境后,就可以进行开发调试了。一般情况下我们不应该去修改标准的代码,如果在本地运行的话,可以通过编译标准代码进行调试,而且如果程序有异常抛出,只有编译后,才能找到正确的代码行。
对于扩展在本地开发来说,置换BC4J对象通过设置运行参数,加入-Djbo.project参数;而对于控制器类的扩展,通过直接更改页面的控制器设置,发布到服务器时,是通过个性化设置进行。
另外:有时在扩展FND相关的应用时,可能会存在问题,比如扩展通知详细页面,因为很多版本的JDeveloper都包含了FND模块的类,所以无法进行扩展开发,因为JDeveloper运行时,首先去加载本地的FND类库,而不会使用myclasses下的类,遇到这种情况,需要将本地FND类库中某些类排除在项目中。有时还会遇到版本冲突的问题,造成程序无法再本地运行,此时可以通过下载与服务器OA Framework版本一致的JDeveloper版本,或者将服务器上相关的Java类打包,替代本地的类库。本地的FND模块的在<Jdev_install_dir>\jdevbin\jdev\appslibrt中。
发表于 2009/8/11 09:25:29 | 显示全部楼层
学习...
发表于 2009/8/12 15:59:29 | 显示全部楼层
好!不错,前几天还用到过!只是看不到图片!
发表于 2009/8/12 16:57:55 | 显示全部楼层
真不错!
发表于 2011/11/28 16:01:39 | 显示全部楼层
谢谢楼主分享
发表于 2011/11/29 15:38:23 | 显示全部楼层
看不到图片!
发表于 2011/12/2 13:19:36 | 显示全部楼层
非常好,学习oaf  ing
发表于 2011/12/20 11:33:24 | 显示全部楼层
谁给一个demo文档看看呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 19:04 , Processed in 0.020743 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表