2013年3月3日 星期日

沖銷預留量時發生錯誤


沖銷預留量時發生錯誤
an error occurred while relieving reservations not exist

財務在結成本時,成本 >會計關帳週期 > 存貨會計期間>暫緩>暫緩原物料, 發現此暫緩資料

狀況說明:
1. 錯誤:沖銷預留量時發生錯誤
2. INV > 預留量查詢:找不到此筆訂單的預留資料
3. OM > 訂單查詢 > 訂單狀態:已結
4. OM > 出貨單  > 狀態 :已出貨,下一步:執行介面
5. OM > 出貨 > 介面 >執行 >連接運送航程停靠點 – SRS > 結果 : 警告
6. INV >原物料工作平台:查詢此料號的 Stage 庫存數量不足。

處理說明:請注意, 必須先在測試區試作, 確認沒有問題後才能到正式區執行
  1. 因訂單已結,也沒有預留量資料,無法依照正常作業處理,要正常沖銷預留量,必須(1) 產生一筆預留量資料給系統沖銷 (2) Stage倉數量必須足夠

  1. 料號 2VP116002911

SELECT INVENTORY_ITEM_ID FROM MTL_SYSTEM_ITEMS_B WHERE SEGMENT1=2VP116002911’ AND ORGANIZATION_ID=86

得到 INVENTORY_ITEM_ID=17639

  1. 訂單號碼 1300061.1\.銷貨_外銷.ORDER ENTRY

SELECT HEADER_ID FROM OE_ORDER_HEADERS_ALL WHERE ORDER_NUMBER=1300061

得到 HEADER_ID=86420

SELECT * FROM OE_ORDER_LINES_ALL WHERE HEADER_ID=86420

找到 LINE_ID=122605  >> 我們需要 這個 LINE_ID 來作業

  1. 我們要用別筆訂單預留量資料來 「改造」 成我們需要的資料:
SELECT * FROM mtl_reservations WHERE INVENTORY_ITEM_ID=17639
選定 RESERVATION_ID=125820 DEMAND_SOURCE_LINE_ID=126590,訂單號碼:1300688 來作分項處理



      相關的 TABLE 有 mtl_reservations , mtl_demand


      (1) 將選定訂單的預留量減少 , 由 5 PCS 改成 2 PCS
update mtl_reservations  set RESERVATION_QUANTITY=2,PRIMARY_RESERVATION_QUANTITY=2 WHERE RESERVATION_ID=125820
從資料庫將預留量改為 2 pcs , 這樣從系統中可以再作一筆 預留量 3pcs 的資料出來

(2) 從 INV > 庫存量、可用性 > 預留量 的作業, 針對此訂單 1300688 的同一筆訂單明細行新增一筆預留量資料,數量 3 PCS

(3) 找出新的預留資料
SELECT * FROM mtl_reservations WHERE DEMAND_SOURCE_LINE_ID=126590
新的 RESERVATION_ID =129798
SELECT * FROM mtl_demand WHERE INVENTORY_ITEM_ID=17639
新的DEMAND_ID =129800

(4) 將新的資料加工,變成我們需要的訂單明細行資料,需要調整的欄位有:
  Table  :  mtl_reservations
 Fields : RESERVATION_QUANTITY 保留數量
PRIMARY_RESERVATION_QUANTITY 保留數量
DEMAND_SOURCE_LINE_ID 訂單明細行 ID
DEMAND_SOURCE_HEADER_ID 這個ID 須要用以下方式取得
SELECT inv_salesorder.get_salesorder_for_oeheader(HEADER_ID)
                        FROM OE_ORDER_LINES_ALL  WHERE LINE_ID = 122605
以上的 122605 DEMAND_SOURCE_LINE_ID

指令
update mtl_reservations  set RESERVATION_QUANTITY=23,PRIMARY_RESERVATION_QUANTITY=23 WHERE RESERVATION_ID=129798;

update mtl_reservations  set  DEMAND_SOURCE_LINE_ID =122605 (OE LINE_ID) WHERE RESERVATION_ID =129798;

update mtl_reservations  set DEMAND_SOURCE_HEADER_ID =(SELECT inv_salesorder.get_salesorder_for_oeheader(HEADER_ID) FROM OE_ORDER_LINES_ALL WHERE LINE_ID = 122605 (OE LINE_ID) ) WHERE RESERVATION_ID =129798;

然後要將先前一開始數量由5改成2的預留資料改回原本的 5 pcs
update mtl_reservations  set RESERVATION_QUANTITY=5,PRIMARY_RESERVATION_QUANTITY=5 WHERE RESERVATION_ID=125820;


Table  :  mtl_demand
Fields : LINE_ITEM_QUANTITY 需求數量
PRIMARY_UOM_QUANTITY 需求數量量
DEMAND_SOURCE_LINE 訂單明細行 ID
DEMAND_SOURCE_HEADER_ID 這個ID 須要用以下方式取得
SELECT inv_salesorder.get_salesorder_for_oeheader(HEADER_ID)
                        FROM OE_ORDER_LINES_ALL  WHERE LINE_ID = 122605
以上的 122605 DEMAND_SOURCE_LINE

指令
update mtl_demand  set LINE_ITEM_QUANTITY=23,PRIMARY_UOM_QUANTITY=23 WHERE DEMAND_ID =129800;

update mtl_demand  set DEMAND_SOURCE_LINE =122605 (OE LINE_ID) WHERE DEMAND_ID =129800;

update mtl_demand  set DEMAND_SOURCE_HEADER_ID =(SELECT inv_salesorder.get_salesorder_for_oeheader(HEADER_ID) FROM OE_ORDER_LINES_ALL  WHERE LINE_ID = 122605 (OE LINE_ID)) WHERE DEMAND_ID =129800;

5. 由於 Stage 倉的數量不夠,必須用INV > 異動 > 倉庫移轉 將數量移轉到 Stage 倉,注意日期要與出貨日在同一個會計週期。

完成,可以進入成本 >會計關帳週期 > 存貨會計期間 > 暫緩 > 暫緩原物料 去執行提交

注意事項:這是非正規也是不得已的作法,因為 metalink 中找不到可以用的 datafix