經同仁反應,訂單的單價常會不明原因自動被更改掉,而user都不知道.
經查發現原因如下:
因為訂單會指定price list ,故只要訂單項次有調整任何一欄位(unit selling price欄除外),則系統會再自動從price list中取回目前最新的設定.
而該行為的主要原因是控制在一Profile => OE: AutoPrice , 該Profile的值預設為空值所導致的關係.
以下是該Profile設定的說明 : (本人測試得來的結果)
空值 => 不論是Entered 或是 Booked狀態皆會自動取回最新的price list值
Entry => 只有在訂單狀態為Entered 時才會自動取回最新的price list值
Booking => 不論狀態如何皆不會自動取回最新的price list值.
Ps :
以上純為本人測試之結果,若讀者測試後有任何心得請不吝指教,以該本人更新正確之資訊~
<<2013/08/04 不具名的網友 補充以下說明>>
通常業務流程而言, 應該定義為N (calculate_price_flag) , 避免訂單預定後仍可能因為手動或API變更而改變售價
*reference Doc ID 134326.1
· If it’s set to ‘Y’, both pricing and freight charge calculations are done.
· If it’s set to ‘P’, only the freight charge calculation is done.
'P' also indicates that modifiers assigned to a pricing phase
where freeze override is enabled could also be applied.
· If it’s set to ‘N’, neither pricing nor freight charge is calculated.
1. 這是個初學農友的農友日誌~ 2. Oracle ERP 分享 3. Oracle DBA 心得 4. Android 開發心得 5. MoJo寵物手作粉絲成員 6. 程式客製及外包專案接案
2013年7月31日 星期三
2013年7月30日 星期二
Oracle ERP R12. 如何透過Personalize功能呼叫另一form來回傳值. Get another form's result value (user personalize) .
狀況假設 :
A-Form(Rcv_transaction) 要呼叫另一客制form (B-Form),由B-Form運算後產生一結果回轉A-Form
Step 1. 建立一function用來取回B-Form的result
例 :
create or replace function
HPX_WEN_TEST_F(I_KEY VARCHAR2) return varchar2 is
T_Result VARCHAR2(100);
T_EXIT VARCHAR2(1) := 'N';
T_EXIT_TIME DATE := SYSDATE+5/(24*60);
begin
WHILE T_EXIT = 'N' LOOP
SELECT DECODE(COUNT(*),
0,'N',
'Y'),
MAX(HC.VALUE_2)
INTO T_EXIT,
T_RESULT
FROM HPX_CONFIG_T HC –假設該table為result
WHERE HC.KEY_ID = 'TEST'
AND
HC.VALUE_1 = I_KEY; --Key值,用來確認所抓取的資料無誤
--
IF T_EXIT_TIME <= SYSDATE THEN
T_EXIT := 'Y'; --逾時離開以避免無窮迴圈
END IF;
END LOOP;
return(T_Result);
end HPX_WEN_TEST_F;
Step 2. 在A-Form的WHEN-NEW-FORM-INSTANCE 加入一LOCAL
VARIABLE KEY的宣告,
及MENU BUTTON的宣告.
例 :
將游標固定至等定ITEM
呼叫B-Form
Step 4. 設定A-Form重新取得控制權後的行為動作.並由判斷KEY是否有值來確認是否要進入該程序
注意 : 由B-Form返回A-Form時只會觸發 WHEN-NEW-ITEM-INSTANCE , 故上步驟會先GO_ITEM.
訂閱:
文章 (Atom)