Oracle OM 標準的報價單 (Quote) 功能只能產生一張訂單 (Sales Order),這個機制對我們來說並不適合,所以我們轉而使用批量銷售協議 (Blanket Sales Agreement, BSA)。
BSA 可以重複地產生 Sales Order,並且可以綁價格表 (Price List),也可以設定可以使用的時間區間。
但是,打訂單的時候我們發現,如果去修改 Request Date,系統應該是要重新抓取對應到的明細行 (Blanket Line),卻沒有抓到而造成 SO Line 的 Blanket Line Number 欄位被清空,進而發出 Note Message;如果再修改一次 Request Date,這次就抓到了。就演變成改一次不可以,改第二次可以的錯誤循環。
所以,一樣開了 SR 給 Oracle,不過 Oracle 方面似乎不認為這是個 Bug (?),所以給我以下的修正方式:
*****
Package Name:OE_Dependencies_Extn
在 ELSIF p_entity_code = OE_GLOBALS.G_ENTITY_LINE THEN 底下新增下列 Code:
-- to disable dependency G_REQUEST_DATE -> G_BLANKET_LINE_NUMBER,
x_extn_dep_tbl(l_index).source_attribute := OE_LINE_UTIL.G_REQUEST_DATE;
x_extn_dep_tbl(l_index).dependent_attribute := OE_LINE_UTIL.G_BLANKET_LINE_NUMBER;
x_extn_dep_tbl(l_index).enabled_flag := 'N';
l_index := l_index + 1;
oe_debug_pub.add('G_BLANKET_LINE_NUMBER', 1);
*****
就解決了我的問題。