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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5195|回复: 20

[OAF] OAF二次开发step by step(二)--二次开发的环境的配置

  [复制链接]
发表于 2008/3/1 16:10:10 | 显示全部楼层 |阅读模式

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

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

x
关于OAF的二次开发,上次说到了初始化OAF的开发环境。
初始化后的环境对于全新开发的功能是没有问题的,但是二次开发因为系统内部结构的关系,还需要进行进一步的环境配置才能正常工作。否则,上千条的ERROR会让你无法编译通过。
首先,在本地恢复服务器环境
1、确认设置用户级变量JDEV_USER_HOME和dbc文件
2、在Jdeveloper中创建数据库连接
3、打开tutorial工作区,并rebuild该project,这样mycalsses目录中的内容就会被创建。
4、创建一个OA Workspace,并创建一个OA Project,在Project Properties面板中,指定刚才下载的dbc文件为该Project的dbc信息文件,并指定Username(应用用户),password,应用短名称和职责关键字。上述的信息需要视你进行的二次开发的模块具体信息而定,比如你要对EAM进行二次开发,就不能在这里使用PM的职责,因为职责权限涉及对后台数据对象以及前台部分模块的访问控制。在默认条件下,myprojects目录下的所有的文件和子目录均会包含进新建的OA Project中,如果你觉得乱的话,可以使用Project Properties对话框中的Exclude选项,将文件或子目录排除出去,只留下该Project相关的文件。
5、用FTP下载服务器上$JAVA_TOP目录下的文件到myclasses目录,一般仅需要下载需要使用的class,比如,EAM开发仅需要下载$JAVA_TOP/oracle/apps/eam下的所有class,注意,下载后的类,需要按照在服务器上的目录结构来进行放置。比如,下载$JAVA_TOP/oracle/apps/eam下的类,在也要将其放置到本地的%JDEV_USER_HOME%\myclasses\oracle\apps\eam目录下。通常会由于网络的问题而导致对于java class文件的下载会比较慢(文件小而多,目录层次深),可以先在telnet上将相应的目录压缩成tar文件,然后再下载。下载下来的目录中包括各层次路径下的java class文件和VO、AM等除RG、PG外的所有的xml文件。
6、将myclasses目录下相应子目录下需要进行二次开发的class文件反编译后拷贝到myprojects的相应的子目录路径下,并删掉对应的class文件。
7、下面是使用xml Exporter工具来导出服务器MDS数据库中的页面文件。
    我一般习惯于写成bat脚本来在cmd窗口中直接执行。
    比如,我的脚本my_export.bat的内容为:
        D:\p6509325_R12_GENERIC\jdevbin\oaext\bin\export.bat %1
          -rootdir D:\export -username apps -password apps
          -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.44)(PORT = 1521))(CONNECT_DATA=(SID=PROD1)))"
        pause
    那么,我需要进行二次开发,导出一个页面的时候,首先使用目标页面上的“关于此页”链接,得到该页面的路径为
        /oracle/apps/eam/workorder/webui/EAM_EW_START_PAGE
    则我在cmd窗口中切换到脚本所在目录,然后,执行以下命令
        my_export /oracle/apps/eam/workorder/webui/EAM_EW_START_PAGE
    出现提示信息
        Exporting /oracle/apps/eam/workorder/webui/EAM_EW_START_PAGE
        Export completed.
    则表明导出页面成功。
    此时,你可以在D:\export\oracle\apps\eam\workorder\webui目录下找到EAM_EW_START_PAGE.xml文件。
    将导出的整个目录结构保留,并拷贝到myprojects目录下,刷新OAProject,则会发现新增了相应路径下的页面文件。
    注:服务器上的$PROD_TOP/mds目录下的xml文件通常情况下与服务器MDS数据库中的xml文件代码是一致的。比如$EAM_TOP/mds目录。但是需要注意xml文件的目录层次结构。
        我估计该目录下的文件是在应用系统安装时,执行批量导入命令的时候,系统原本的xml文件存放的地方。
    系统的批量导入命令,可以在应用用户applprod下执行
        java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/oaf_deploy/oracle/apps/eam/workorder/webui/EAM_EW_START_PAGE.xml -rootdir         $JAVA_TOP/oaf_deploy -username apps -password apps -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ebs.erpsoft.com)(PORT = 1521))(CONNECT_DATA=(SID=PROD)))"
8、Make新建的Workspace和Project,会报出一些错误,如果是xml文件错误:应以根元素开头。
    按照错误提示,将相应的xml文件删除即可。此处的错误可能由于应用程序版本的问题,其中保留了过时不用的空xml文件。
    其他错误大多是无法找到相对应的class,此时再根据错误提示信息,下载相应的java class到myclasses目录即可。
9、当出现0 error(s)提示时,可以Run一下该页面(注意该页面应该是可以在系统功能直接访问的独立页面,而不是明细类的页面,否则需要设置运行时的初始化参数值)。
    运行后的页面,可能会在页面上方出现一大堆的Warning,一般都是提示类型转换的警告,忽略即可。
    到这里,二次开发的环境的配置基本算是完成了。


http://www.erp100.com/131/viewspace-6759901.html  OAF二次开发step by step(一)--OAF开发环境的配置
http://www.erp100.com/131/viewspace-6759997.html  OAF二次开发step by step(三)--对具体的BC4J对象的客户化

[ 本帖最后由 atomic79 于 2008-3-4 14:30 编辑 ]
发表于 2008/3/1 20:17:36 | 显示全部楼层
总结的挺不错的,支付一下
发表于 2008/3/1 20:30:35 | 显示全部楼层
我在服务器端批量部署的时候,也就是按照目录进行部署,为什么不能成功呢?
 楼主| 发表于 2008/3/1 20:52:50 | 显示全部楼层
批量部署不成功,有什么提示吗?
发表于 2008/3/2 21:40:59 | 显示全部楼层
谢谢楼主啦!~ OAF正在学习中 唉 郁闷啊 累啊……
发表于 2008/7/5 00:02:27 | 显示全部楼层

为什么会出现这个错误

error
     Unable to open file
D:\p6509325_R12_GENERIC\jdevhome\jdev\myprojects\oracle\apps\fnd\framework\toolbox\attributesetFwkTbxAd
dresses.xmls\"
the document is not in  the XML_path"C:\p6509325_R12_GENERIC\jdevbin\jdev\myproject,
C:\p6509325_R12_GENERIC\jdevbin\jdev\appsmdsxml"
发表于 2008/7/5 00:05:45 | 显示全部楼层

怎么会这样???

一切部署好后,run->rebuild 就出现
error
     Unable to open file
D:\p6509325_R12_GENERIC\jdevhome\jdev\myprojects\oracle\apps\fnd\framework\toolbox\attributesetFwkTbxAd
dresses.xmls\"
the document is not in  the XML_path"C:\p6509325_R12_GENERIC\jdevbin\jdev\myproject,
C:\p6509325_R12_GENERIC\jdevbin\jdev\appsmdsxml"
 楼主| 发表于 2008/7/5 21:36:23 | 显示全部楼层
你是不是以前放在C盘根目录下了?另外检查你的JDEV_USER_HOME是不是指向你当前的工作路径。另外检查开发工作中Project Properties和Default Project Properties属性面板中的Oracle Applications节点下的MDS XML Path指定的是否正确的路径?
建议,解压后,在移动开发目录前,不要打开开发工具,否则开发工具会根据你的目录来自动指定一些Library的路径。最好一次解压到目录中!
发表于 2009/9/8 10:32:41 | 显示全部楼层
6、将myclasses目录下相应子目录下需要进行二次开发的class文件反编译后拷贝到myprojects的相应的子目录路径下,并删掉对应的class文件。
如何反编译?
 楼主| 发表于 2009/9/8 13:33:45 | 显示全部楼层
反编译工具网上一查一大把啊,现在基本都是基于JAD的,但是似乎对5.0以后的支持的不太好。我开发时使用的Jdecompiler,当然如果使用小颖反编译工具也可以,支持批量编译。但是小颖在5.0以后可能反编译不生成文件,需要替换jad的。
二次开发中,反编译class不是必需的,具体视你的需求而定了。我一般是反编译用来研究系统代码的。另外,越是高版的jdk越有可能反编译失败哦。
发表于 2009/9/8 14:52:18 | 显示全部楼层
哦,谢谢。。。那我直接放到myprojects应该可以吧?
发表于 2009/9/8 16:05:45 | 显示全部楼层
明白了,如果要改动原来的CLASS就需要反编译,自己重新开发然后挂在相应模块的就不需要。
 楼主| 发表于 2009/9/8 22:48:27 | 显示全部楼层
楼上正解
发表于 2009/9/9 10:31:20 | 显示全部楼层
....是刘兄解释清晰明了
发表于 2010/3/25 10:25:52 | 显示全部楼层
谢谢楼主分享!!!!!
发表于 2010/5/14 16:35:58 | 显示全部楼层
好东西就要顶啊!!顶出个顺序来
发表于 2010/5/27 07:40:16 | 显示全部楼层
楼主辛苦了。
发表于 2011/4/9 15:21:36 | 显示全部楼层
好是好就是水平还不足以看懂
发表于 2011/5/9 17:19:40 | 显示全部楼层
好东西………………
发表于 2011/9/6 14:32:30 | 显示全部楼层
{:soso_e142:}非常非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025/11/29 01:16 , Processed in 0.021871 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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