在報價單中有三個日期
報價生效 VBAK-ANGDT
報價失效 VBAK-BNDDT
請求交貨日 VBAK-VDATU 及 VBEP-EDATU


如果要更改這三個日期有前後關係
當然失效日期要大於生效日期
還有請求交貨日要大於生效日期

假如請求交貨日『2012/7/31』
此時一旦下達
HEADER-QT_VALID_F = 'X'.
headerv-QT_VALID_F = '20120810'.
去更改報價生效日
這樣會產生number 445的錯誤
{A schedule line with date 2012/07/31 already exists for item 000010}

 

一般是不會有這個狀況啦..這只是邏輯問題而已

 

再來還有個更重要的一點

如果要更改報價生效日期,不能跟『請求交貨日一起』改

比方說如果原先是

請求交貨日:2012/08/25

報價生效:2012/8/1

報價失效:2012/8/10

要改成

請求交貨日:2012/10/25

報價生效:2012/10/1

報價失效:2012/10/10

日期看起來很合理,但執行BAPI_SALESORDER_CHANGE

仍然會出現項目已有請求交貨日2012/8/25的錯誤

 

所以感覺雖然執行一次但系統似乎會先更改表頭資料後!排成明細都還沒修正的時候

就檢查到新的報價日期2012/10/10跟『舊的請求交貨日期』2012/8/25有邏輯上的問題

所以只能把這東西切成兩個來看

 

先執行BAPI_SALESORDER_CHANGE 改『請求交貨日』

再呼叫BAPI_SALESORDER_CHANGE改報價生失效日 

 

ROACH 發表在 痞客邦 PIXNET 留言(0) 人氣()