在 Oracle EBS Form 中,要針對標準(內建)畫面或客製化畫面的某一欄位設定「必填(Required)」警示,最推薦、最安全且完全不需修改原始碼(FMB 檔案)的方法是使用 Form Personalization(表單個人化)。完整的設定步驟說明如下:
核心設定步驟
- 開啟個人化視窗:將游標停在該 Form 畫面上,點選上方選單的
Help->Diagnostics->Custom Code->Personalize。 - 設定觸發時機(Condition):
- Trigger Event:選擇
WHEN-VALIDATE-RECORD(在使用者存檔或跳離該筆紀錄時進行驗證)。 - Processing Mode:選擇
Not in Enter-Query Mode(確保在查詢模式下不會觸發必填警示)。
- Trigger Event:選擇
- 設定警示與阻擋動作(Actions):
- 第一條 Action(顯示警告訊息):
- Type:
Message - Message Type:
Show或Error(若選Error會直接中斷存檔動作)。 - Message Text:輸入你要提示使用者的文字(例如:
銷售渠道為必填欄位,請務必輸入!)。
- Type:
- 設定觸發條件(Condition 欄位下方的 Condition 語法):
- 輸入:
:${區塊名}.${欄位名} IS NULL(例如::ORDER.SALES_CHANNEL_CODE IS NULL)。
- 輸入:
- 第一條 Action(顯示警告訊息):
詳細操作範例(以 OM 訂單畫面為例)
假設要設定「客戶訂單(Customer PO)」為必填,若使用者未填寫,在存檔時要跳出錯誤視窗並阻擋:
步驟 1:找出欄位的實體名稱
- 滑鼠點擊該欄位,點選
Help->Diagnostics->Examine。 - 記下
Block(如ORDER)與Field(如CUST_PO_NUMBER)。

步驟 2:建立個人化規則
- 進入
Form Personalization視窗,新增一行規則:- Seq:
10 - Description:
設定客戶訂單不可空白 - Level:
Site或Responsibility(依據你想套用的範圍決定)
- Seq:

步驟 3:配置 Condition(條件)
- Trigger Event:
WHEN-VALIDATE-RECORD - Trigger Object:輸入你的 Block 名稱(例如:
ORDER) - Condition:
:ORDER.CUST_PO_NUMBERIS NULL - Processing Mode:Both 或
Not in Enter-Query Mode
步驟 4:配置 Actions(動作)
切換到 Actions 頁籤,新增一行:
- Seq:
10 - Type:
Message - Message Type:
Error(使用 Error 型態會自動中斷 Forms 的存檔程序,逼使用者一定要輸入) - Message Text:
錯誤:客戶訂單號碼不可空白!!,請輸入資料後再進行存檔!

儲存個人化設定後,關閉該 Form 畫面並重新打開。故意將該欄位留白並按下存檔(Ctrl + S),系統就會完美跳出您設定的警示視窗並阻止存檔。




