天天看點

Oracle EBS VMI/寄售(6)--不能建立沖減解決方案

最近,QQ群友反應他們公司的部分VMI/寄售耗用以後,物料事務處理的“沖減通知”的建立狀态一直是“待定”,如下圖

Oracle EBS VMI/寄售(6)--不能建立沖減解決方案

其它VMI/寄售供應商或該供應商的耗用,在該事務處理之前或之後都可以通過建立沖通知産生一攬子發放。反複送出請求“建立沖減通知單”也沒有作用。

我提供了一條SQL在背景查詢有沒有産生一攬子發放,如下

Select PRA.*
  From MTL_CONSUMPTION_TRANSACTIONS MCT, PO_RELEASES_ALL PRA
 Where MCT.CONSUMPTION_RELEASE_ID = PRA.PO_RELEASE_ID
   And MCT.TRANSACTION_ID = &TRANSACTION_ID
           

經過查詢沒有産生一攬子發放單。

再提供一條SQL在背景查詢VMI/寄售事務處理表有沒有記錄,如下

Select MCT.*
  From MTL_CONSUMPTION_TRANSACTIONS MCT
 Where MCT.TRANSACTION_ID = &TRANSACTION_ID
           

他所查詢的結果也是沒有記錄。汗!!!不可能呀,這麼會沒有記錄呢?其它的VMI/寄售用什麼方式産生一攬子發放呢?

通常VMI/寄售耗用時,物料事務處理會産生多條記錄,以(設定)子庫存移耗用會産生4條記錄如下,其中有一條記錄的TRANSACTION_ID與MTL_CONSUMPTION_TRANSACTIONS.TRANSACTION_ID字段對應,本例的TRANSACTION_ID為最後一條21136347

Oracle EBS VMI/寄售(6)--不能建立沖減解決方案
Oracle EBS VMI/寄售(6)--不能建立沖減解決方案

經過多次測試不同TRANSACTION_ID值,找到背景對物料事務處理記錄如下:

Oracle EBS VMI/寄售(6)--不能建立沖減解決方案

通過檢視記錄字段CONSUMPTION_RELEASE_ID(一攬子發放的PO_RELEASE_ID)、CONSUMPTION_PROCESSED_FLAG(Y表示已産生一攬子發放;N表示未産生一攬子發放)和BATCH_ID(為249611,說明建立減沖通知時産生的批辨別ID),判斷結果:沒有産生一攬子發放,并且送出“建立沖減通知”請求。但是後續沒有自動送出“建立沖減通知工作程序”,有可能DBA維護系統時,強制Kill該請求的程序,導緻請求中斷。

首先,我們要從VMI/寄售耗用到一攬發放業務的了解。如下圖

Oracle EBS VMI/寄售(6)--不能建立沖減解決方案

參考:Oracle EBS 寄銷/VMI(2)-->采購篇

再次,送出“建立沖減通知”以後會自動送出請求“建立沖減通知工作程序”。其中,請求“建立沖減通知”通過包INV_CONSUMPTION_ADVICE_PROC的過程batch_allocation配置設定mtl_consumption_transactions.batch_id的值,而請求“建立沖減通知工作程序”建立一攬子發放單,并且更新表MTL_CONSUMPTION_TRANSACTIONS字段:CONSUMPTION_RELEASE_ID和CONSUMPTION_PROCESSED_FLAG。

根據以上介紹,本案的解決二種方案:

1.送出請求“建立沖減通知工作程序”。

2.修改對應未産生一攬子發放的VMI寄售事務處理表,如下

UPDATE mtl_consumption_transactions
   SET consumption_po_header_id   = Null,
       consumption_release_id     = Null,
       BATCH_ID                   = Null
 Where CONSUMPTION_PROCESSED_FLAG = 'N'
   And BATCH_ID Is Not Null
   And error_code Is Null
           

然後,送出“建立沖減通知”請求。

本案QQ群友采用了第二種方案解決結果如下

Oracle EBS VMI/寄售(6)--不能建立沖減解決方案