在Oracle EBS 的维护过程中, 经常需要修改fmb 和 pld 文件. 修改好的文件可以放在Unix 环境上编译, 但是由于编译环境的限制, 常常不得不拉下许多依赖文件, 非常麻烦. 编译好的文件又要拉到本机, 再放到测试环境上去, 费时费力.
在Unix 环境上编译的命令
frmcmp.sh XXX.fmb Userid=apps/apps@ML0YD213 frmcmp.sh Module=XXX.pld Userid=apps/apps@ML0YD213 Module_Type=LIBRARY Parse=YES frmcmp.sh Module=XXX.pll Userid=apps/apps@ML0YD213 Module_Type=LIBRARY Compile_All=YES
把 fmb 文件转换成 txt 文件:
frmcmp.sh module=INVATCEN.fmb userid=apps/apps@ML0YD213 output_file=INVATCEN.fmx forms_doc=yes
有更简单的方法, 可以直接在测试环境上编译, 然后直接测试. 这样做的好处是, 不需要拉许多依赖文件, 也不需要从服务器上复制编译好的文件到测试环境上
首先要运行一个环境命令
. /d01/oracle/VID/apps/apps_st/appl/APPSVID_erik-lnx.env ($APPL_TOP目录下)
cd /var/tmp/FORMS_PATH frmcmp_batch XXX.fmb apps/apps frmcmp_batch Module=XXX.pld Userid=apps/apps Module_Type=LIBRARY Parse=YES frmcmp_batch Module=XXX.pll Userid=apps/apps Module_Type=LIBRARY Compile_All=YES
然后修改 Form 的路径, 就能读取到这个目录下的文件了. (不要覆盖EBS 原本的文件, 要修改路径)
form -> help -> examine Block : $PROFILES Field : APPLWRK Value : /var/tmp/FORMS_PATH/ Block : $ENVIRONMENT Field : FORMS_PATH Value : /var/tmp/FORMS_PATH/:(增加在原本的路径前)
export FORMS_PATH=/d01/oracle/VID/apps/apps_st/appl/au/12.0.0/resource:/d01/oracle/VID/apps/apps_st/appl/au/12.0.0/resource/stub:/d01/oracle/VID/apps/apps_st/appl/au/12.0.0/forms/US
export FORMS_PATH=$FORMS_PATH:$AU_TOP/forms/US
前面两段可以在Form 里面找到.
Block : $ENVIRONMENT Field : FORMS_PATH
这样就能很快的在测试环境上直接修改, 编译, 测试了.