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 

2013年1月1日 星期二

採購收貨(直接入庫) 或是 IQC檢驗後, 資料卡在介面如何處理



1.      原因: 不明
2.      狀況: 可以從 收貨 > 異動狀態彙總查詢到資料 (就是已驗收但是沒有轉入下一關, INTERFACE介面卡住就會這樣)

3.      處理方式
(1)   簡單:直接從 異動狀態彙總 將資料刪除, 然後請USER重作

(2)   複雜
 A. 將處理模式由 ONLINE 改為BATCH.
SQL
如下:
A-1: 先查 data : select * from rcv_transactions_interface
A-2: update rcv_transactions_interface 
set PROCESSING_MODE_CODE='BATCH'
where to_organization_id =86  ---存貨組織
and INTERFACE_TRANSACTION_ID=82714 – ID
         B.執行 PO_HS >報表 >執行 > 收貨異動處理程式
            要給 GROUP ID  作業單位代號

文件序號 (OM訂單編號) 設定錯誤之處理


一、原因:
使用者於設定文件序號時設定錯誤, 訂單序號在 2013年應該是1300001 開始編號, USER誤設定為 1200001 , 造成營業部輸入訂單時訂單序號會與2012年重複。

二、處理方式:

1. 查序號設定檔案

select * from FND_DOCUMENT_SEQUENCES order by name 

從這裡去查出 DB_SEQUENCE_NAME 和 DOC_SEQUENCE_ID

這次的CASE中
DOC_SEQUENCE_ID  = FND_DOC_SEQ_205_S
DOC_SEQUENCE_ID=205

表示系統在 APPLSYS 下產生了一個 名為 FND_DOC_SEQ_205_S  SQUENCE 用來作訂單編號

2. 更改 SEQUENCE
DROP SEQUENCE APPLSYS.FND_DOC_SEQ_205_S;

CREATE SEQUENCE APPLSYS.FND_DOC_SEQ_205_S
  START WITH 1300001
  MAXVALUE 999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  NOCACHE
  ORDER;

DROP SYNONYM APPS.FND_DOC_SEQ_205_S;

CREATE OR REPLACE SYNONYM APPS.FND_DOC_SEQ_205_S FOR APPLSYS.FND_DOC_SEQ_205_S;

GRANT ALTER, SELECT ON APPLSYS.FND_DOC_SEQ_205_S TO APPS WITH GRANT OPTION;

3. 回頭更改FND_DOCUMENT_SEQUENCES 使資料一致

UPDATE FND_DOCUMENT_SEQUENCES SET INITIAL_VALUE=1300001 WHERE DOC_SEQUENCE_ID=205


至於已經開出的訂單, 就不用管他了, 還好只有兩三張