首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle EBS Form 編譯命令完整指南:R12 與 11i 版本差異對照

     編輯:Oracle 資料庫基礎

核心編譯命令對照

版本編譯命令關鍵參數說明
R12frmcmp_batch $AU_TOP/forms/ZHS/test.fmb apps/apps output_file=$CUX_TOP/forms/ZHS/test.fmxfrmcmp_batch 為批次編譯器,$AU_TOP 標準表單源碼路徑,$CUX_TOP 客製化輸出路徑,apps/apps 連線帳密。
11if60gen module=test.fmb userid=apps/apps output_file=/ora1159/prod/prodappl/pa/11.5.0/forms/US/test.fmxf60gen 為 11i 編譯器,module 指定 .fmb,output_file 需寫完整目標路徑。

四大必遵守鐵律

  1. 環境變數正確性: ORACLE_HOME、PATH、LD_LIBRARY_PATH (Linux) 必須指向正確的 Forms 執行檔目錄,否則命令找不到或載入錯誤庫。
  2. 在源碼目錄執行: cd $AU_TOP/forms/ZHS (R12) 或對應 11i 目錄下執行命令。異地執行雖不報錯,但產出的 .fmx 可能缺少相對路徑引用的庫/視窗,導致執行期錯誤。
  3. 客製化輸出統一放 $CUX_TOP: 專案初期即規劃 $CUX_TOP/forms/語言/ 目錄結構,所有客製化 .fmx 輸出至此,便於版控、部署與升級覆蓋管理。
  4. 11i 知識仍需保留: 眾多企業仍在 11i→R12 升級窗口期,雙版本編譯能力為顧問必備技能。

常見錯誤與排查

錯誤現象可能原因解決方向
FRM-30090: Unable to open library環境變數 FORMS_PATH 未包含庫路徑export FORMS_PATH=$AU_TOP/resource:$CUX_TOP/forms/...
FRM-18108: Unable to read form module.fmb 檔案損毀或版本不符確認 Forms Builder 版本與編譯器版本一致
編譯成功但運行報 FRM-40039.fmx 非在源碼目錄編譯產生回到源碼目錄重新編譯

自動化建議

將編譯命令封裝為 Shell/Python 腳本,整合至 CI/CD 流程:

#!/bin/bash
# compile_form.sh
cd $AU_TOP/forms/ZHS
for fmb in *.fmb; do
  frmcmp_batch module=$fmb userid=apps/$APPS_PWD output_file=$CUX_TOP/forms/ZHS/${fmb%.fmb}.fmx
done

總結

R12 用 frmcmp_batch、11i 用 f60gen;環境變數正確、源碼目錄執行、輸出統一放 $CUX_TOP 三鐵律不破,Form 編譯零失誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved