前段时间在本地XP系统上测试了一些整合javabean的Form例子,想着发布到服务器段去看看能否运行正常,一开始以为会和本地XP系统一样,部署到相关的目录下进行一些配置就可以了,但实际过程却和想象的大相径庭,部署到服务器上可称得上是一波三折。下面将Oracle EBS Form 发布到Server端的若干注意事项阐述如下:
1、确定EBS版本
由于不同版本EBS配置jar文件和发布javabean jar包的位置存在一些差异,所以必须要知道EBS版本,这样遇到问题才好搜索对应的解决方案。可以通过SQLPlus连接EBS数据库来查看服务器上的EBS版本:
SQL*Plus: Release 10.1.0.4.2 - Production on 星期二 11月 17 11:10:46 2015
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select RELEASE_NAME from fnd_product_groups;
RELEASE_NAME
--------------------------------------------------------------------------------
12.1.1
SQL>
可以看到本地是12.1.1的版本。
2、确定服务器的操作系统
据了解,EBS在不同操作系统上,javabean jar包配置和上传的目录也存在一些差异,例如我的本地环境是XP,服务器是Linux(Redhat),配置环境就不一样,这也是我一开始安装本地配置总是找不到相应的javabean jar包的原因。XP(windows)系统上传jar包的位置为/forms/java/下,配置文件为form/server/formsweb.cfg.但是Linux为appsweb.cfg!!!
3、确定部署位置
由上面可知待发布的服务器是Linux操作系统,EBS版本为12.1.1。Oracle EBS 中的appsweb.cfg有两个位置,分别是:
1. $OA_HTML/bin and (此配置文件供R11用)
2. $ORA_CONFIG_HOME/10.1.2/forms/server/ (此配置文件供R12用)
在服务器的终端输入一下命令查看$ORA_CONFIG_HOME/10.1.2/forms/server/的实际目录,然后编辑其目录下的appsweb.cfg
[appldev@erp ~]$ $ORA_CONFIG_HOME/10.1./forms/server/
-bash: /u01/oracle/VIS/inst/apps/VIS_erp/ora/10.1./forms/server/: is a director
[appldev@erp ~]$
在appsweb.cfg中找到archive节点(需要追加javahost.jar =>/OA_JAVA/oracle/apps/fnd/jar/javahost.jar,注意是逗号分隔):
archive=/OA_JAVA/oracle/apps/fnd/jar/fndforms.jar,/OA_JAVA/oracle/apps/fnd/jar/fndformsi18n.jar,/OA_JAVA/oracle/apps/fnd/jar/fndewt.jar,/OA_JAVA/oracle/apps/fnd/jar/fndswing.jar,/OA_JAVA/oracle/apps/fnd/jar/fndbalishare.jar,/OA_JAVA/oracle/apps/fnd/jar/fndaol.jar,/OA_JAVA/oracle/apps/fnd/jar/fndctx.jar,/OA_JAVA/oracle/apps/fnd/jar/javahost.jar
这里看到OA_JAVA为虚拟目录,到终端查看其实际目录为:
[appldev@erp ~]$ $OA_JAVA/oracle/apps/fnd/jar/
-bash: /u01/oracle/VIS/apps/apps_st/comn/java/classes/oracle/apps/fnd/jar/: is a
directory
[appldev@erp ~]$
因此将javahost.jar上传到/u01/oracle/VIS/apps/apps_st/comn/java/classes/oracle/apps/fnd/jar/下,这个和$COMMON_TOP/java/classes/oracle/apps/fnd/jar一致。
[appldev@erp ~]$ $COMMON_TOP/java/classes/oracle/apps/fnd/jar
-bash: /u01/oracle/VIS/apps/apps_st/comn/java/classes/oracle/apps/fnd/jar: is a
directory
[appldev@erp ~]$
至此,部署到服务器的文件上传和配置工作完成,然后上传Form到对应的目录,配置菜单即可(客户端和服务器的SSH工具为Bitvise SSH Client)。
4、其他
想在打开javabean窗体时,启用一个进程,打开网址:(苹果系统用open) cmd /c start www.baidu.com?uid=username^&pwd=pwd (此处^可以转义&符号)
执行按钮WHEN-BUTTON-PRESSED触发器代码为:
:BL.RESULT := '' ;
--Set_Custom_Property( 'BL.BEAN', 1, 'SET_PROG', :BL.CMD ) ;
-- use ^ to escape & in teh command line like this:
Set_Custom_Property( 'BL.BEAN',1, 'SET_PROG','cmd /c start www.microstarsoft.com?uid=username__pwd^&pwd=2') ;
然后用代码模拟用户单击,在窗体激活时(WHEN-WINDOW-ACTIVATED)触发按钮事件:
--自动执行单击事件
--GO_ITEM('<block_name>.<button_name>');
--EXECUTE_TRIGGER('WHEN-BUTTON-PRESSED');
GO_ITEM('BL.EXECUTE');
EXECUTE_TRIGGER('WHEN-BUTTON-PRESSED');
默认情况下,Oracle窗体加载后单击关闭按钮无效,在窗体的KEY-EXIT下:
exit_form(no_validate);