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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4099|回复: 14

[OAF] OAF二次开发step by step(四)--OAF二次开发程序的部署

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

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

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

x
在二次开发完成后,可以将所做的修改部署到测试环境上去进行初步的流程测试,以发现bug,修正错误。
因为是二次开发,在你本地的myclasses目录下既有系统原有的标准代码,也有你自己二次开发过的代码。如果涉及到的java类的数量比较多的话,部署的时候也会比较费劲。所以在做开发的时候,一边做一边整理出一个列表绝对会是个好习惯的。整理个类的清单出来,这样在部署的过程中,就不容易发生覆盖错误。一般在部署之前,先把$JAVA_TOP下的做了二次开发的目录整个打个tar包备份出来,以备发生严重错误时进行恢复。然后再根据整理出来的清单,把需要覆盖掉的系统原标准类添加后缀bak。这样做的好处是,如果发生了少量的类的覆盖错误,可以直接将原来的bak类恢复,如果发生了无法解决的系统问题,可以将整个目录用原来备份的tar包覆盖,看问题是否能够解决。另外还需注意EBS的官方patch对应用系统的影响,每次在打补丁之前应做仔细评估,看是否需要打,打了以后是否需要调整原有的客户化程序。
我的部署方式:
    1、对于少量的修改,直接使用ftp将myclasses下修改过的class文件,上传到应用服务器上相对应的目录下。将修改的PG或者RN文件,导入到EBS数据库中去。
    每在一个环境下开发,我一般会创建两个bat脚本文件,一个是my_export.bat,一个是my_import.bat
    其内容如下:
    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=ebs.erpsoft.com)(PORT = 1521))(CONNECT_DATA=(SID=PROD)))"
    pause
    my_import.bat
    D:\p6509325_R12_GENERIC\jdevbin\oaext\bin\import.bat %1 -rootdir D:\p6509325_R12_GENERIC\jdevhome\jdev\myprojects -username apps -password apps
-dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ebs.erpsoft.com)(PORT = 1521))(CONNECT_DATA=(SID=PROD)))"
    pause
    有了以上两个文件,则进行手工导出时,可以在cmd中运行如下命令:
    D:\oaf_bat\prod>my_export /oracle/apps/eam/workorder/webui/EAM_WO_SEARCH_RG
    其中后面的/oracle/apps/eam/workorder/webui/EAM_WO_SEARCH_RG通过查看环境中页面的“关于此页”链接可以得到。
    在进行手工导入时,可以在cmd中运行如下命令:
    D:\oaf_bat\prod>my_import D:\p6509325_R12_GENERIC\jdevhome\jdev\myprojects\oracle\apps\eam\workorder\webui\EAM_WO_SEARCH_RG.xml
    注意导入时需要加xml的后缀,而在导出时则不需要加xml后缀。
    2、对于大量的部署,则可以直接使用自动脚本来完成。
    当然,首先还是需要整理出一个部署清单才行。
    在$JAVA_TOP目录下新建一个oaf_deploy目录,在其下再创建oracle/apps目录,
    将你的myclasses目录下的oracle/apps下的需要部署的应用子目录整个上传到该目录下。
    完成上面的工作后,需要编写两个脚本:oaf_cp.sh和oaf_imp.sh
    oaf_cp.sh针对需要直接覆盖的xml和class文件
    其中的内容为
    mv $JAVA_TOP/oracle/apps/eam/server/AssetNumberRVO.xml
          $JAVA_TOP/oaf_deploy/oracle/apps/eam/server/AssetNumberRVO.xml.bak
    cp $JAVA_TOP/oaf_deploy/oracle/apps/eam/server/AssetNumberRVO.xml
          $JAVA_TOP/oracle/apps/eam/server/AssetNumberRVO.xml
    mv $JAVA_TOP/oracle/apps/eam/workorder/server/WorkOrdersVORowImpl.class        
          $JAVA_TOP/oaf_deploy/oracle/apps/eam/workorder/server/WorkOrdersVORowImpl.class.bak
    cp $JAVA_TOP/oaf_deploy/oracle/apps/eam/workorder/server/WorkOrdersVORowImpl.class        
         $JAVA_TOP/oracle/apps/eam/workorder/server/WorkOrdersVORowImpl.class
    oaf_imp.sh针对需要导入数据库的PG和RN文件
    其中的内容为
    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)))"
    java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/oaf_deploy/oracle/apps/eam/workorder/webui/EAM_WO_SEARCH_RG.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)))"
    然后将上面创建的两个脚本上传到$JAVA_TOP目录下,修改文件属性,使其可以在应用用户(比如applprod)下执行。
    上述过程完成后,即可执行自动脚本进行批量部署。
    3、部署完成后,需要重启服务,一般需要重启apache和oacore服务,命令如下:
    cd /u01/prod/inst/apps/PROD_erpprod/admin/scripts
    adapcctl.sh stop
    adoacorectl.sh stop
    sleep 10
    adapcctl.sh start
    adoacorectl.sh start
    可以把下面的命令编写为脚本,以方便使用。当然用时候为了省事,直接重启全部应用亦可。
发表于 2008/3/31 10:41:39 | 显示全部楼层
对于学习OAF,部署OAF十分有帮助,谢谢。
发表于 2008/5/9 16:09:35 | 显示全部楼层
Very good. Thanks for your efforts.
发表于 2008/5/13 19:42:28 | 显示全部楼层
感谢atomic79的努力,
发表于 2008/5/17 09:14:39 | 显示全部楼层
執行my_export.bat時,出現下列訊息,請問這是什麼問題呀?!

Error: Document "xxxxxxxxxxxxxx" does not exist in the repository.
Export failed.
 楼主| 发表于 2008/5/23 14:19:12 | 显示全部楼层
你输入的路径下找不到该文件,导出时路径从“关于此页”中获取,并且要区分大小写,最终的PG或者RN不能带xml后缀,你仔细检查一下,再试试
发表于 2009/4/23 14:07:32 | 显示全部楼层
刚刚接触OAF,感谢楼主的无私帮助!
发表于 2009/4/24 10:57:23 | 显示全部楼层
问题1:这样做ORACLE 一般不推荐,如果系统升级或patch后会有问题? 如何避免系统冲突
cp $JAVA_TOP/oaf_deploy/oracle/apps/eam/server/AssetNumberRVO.xml
          $JAVA_TOP/oracle/apps/eam/server/AssetNumberRVO.xml
问题2:重启oacore服务的目的是什么,在什么情况下需要做这个?一般我觉得重启apache就可以了呀?
发表于 2009/5/4 15:40:55 | 显示全部楼层
看过了,谢谢,很好
发表于 2009/10/13 18:35:41 | 显示全部楼层
谢谢善心的解答!
 楼主| 发表于 2009/10/14 08:55:53 | 显示全部楼层
问题1:这样做ORACLE 一般不推荐,如果系统升级或patch后会有问题? 如何避免系统冲突
cp $JAVA_TOP/oaf_de ...
imzh 发表于 2009-4-24 10:57



    Oracle不推荐的做法多了。项目上线后,除非遇到严重的bug,否则一般谁会主动升级?而且打patch不是光dba说了就能做的,dba只是个干活的,不拥有决定权,在打patch的时候肯定要分析这个patch对现有系统功能包括差异开发的功能有没有影响的。避免系统冲突的最好办法是仔细分析,做好备份,按部就班操作。对于patch更新的功能和你进行差异开发功能重合的地方,你怎么样都是需要重写的。除非你打了patch后,不要原有的差异功能了。
问题2:重启oacore服务的目的是什么,在什么情况下需要做这个?一般我觉得重启apache就可以了呀?imzh 发表于 2009-4-24 10:57

     重启apache是在11i下就可以的。在EBS R12版本上做的OAF开发,除需要重启apache服务外,还需要重启oacore服务。应该是11i和R12的OAF架构有些变化。
发表于 2010/2/22 16:24:26 | 显示全部楼层
太感谢了,有种找到家的感觉,呵呵
发表于 2010/5/14 16:34:56 | 显示全部楼层
好东西就要顶啊!!
发表于 2010/5/27 07:43:57 | 显示全部楼层
谢谢楼主的辛勤劳动。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025/11/29 07:15 , Processed in 0.019827 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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