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

来源:互联网 发布:java开发实例大全 pdf 编辑:程序博客网 时间:2024/04/30 10:53

关于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,一般都是提示类型转换的警告,忽略即可。    到这里,二次开发的环境的配置基本算是完成了。

0 0