怎样编译 fmb & pld 文件

在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目录下)

然后把源代码文件放在临时目录下, 我通常放在 /var/tmp/FORMS_PATH 目录下

   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/:(增加在原本的路径前)

如果有编译好的文件不能用的情况, 运行下面的命令: (增加的最后一段, 也就是$AU_TOP 下的form 路径)

   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

这样就能很快的在测试环境上直接修改, 编译, 测试了.

你可能感兴趣的:(compile,编译,fmb,pld)