Oracle寄售功能 價格客制化

來源:互聯網
上載者:User

前言:

用Oracle R12的寄售功能的時候,碰到了一個很麻煩的問題:價格抓取的問題。

由於這個問題導致寄售功能在公司一直用不好,庫存報表基本都需要他們人工出(自己算每個月每種價格的產品的進出存)。

請教了別的公司的EBS同事,加上自己的實際解決邏輯的考慮,終雩都將問題給解決了,現在總結一下解決的思路,有類似需求的朋友可以參考一下。

由於機密性的考慮,開發的原始碼就不共用了,希望理解哈。

一、問題提出

首先,對標準的寄售功能大概說明:

下一攬子PO(BPA)à下標準POà標準PO接收入庫à領料等動作(消耗供應商庫存)à所有權轉移(轉移的單價取BPA的(分段)價格)à產生應付(應付的價格取BPA的價格)

標準的寄售功能不能滿足的核心問題點:

標準的寄售功能,做消耗的時候,價格都是抓一攬子PO(BPA)行的價格。而實際上,業務部門希望做消耗的時候,抓的價格應該是實際入庫的標準PO行的價格(每次接收都是不一樣的價格,這樣子更加合理)。

同理,傳到應付的價格也應該是標準PO行的價格。

就這個價格的問題,需要客制化。

二、問題分析和解決

(一)  客制化邏輯:

核心邏輯是料號啟用批次管理,每次接收入庫都新增一個批次,這個批次就是從頭到尾跟蹤物料消耗價格的依據。

舉個例子:

料號A下了一攬子PO:BPA1,行價格是1元。

接著料號A用標準PO:SPO1,行價格是1.2元,入庫入1000個,批次LOT001。

然後料號A用標準PO:SPO2,行價格是1.5元,入庫入2000個,批次LOT002。

如果是直接用標準的寄售功能,在料號A消耗的時候,做所有權轉移等物料交易處理的價格都是1元。

應收的價格也是1元。

客制修改後,可以實現的效果:

料號A消耗的時候,因為料號A啟用批次管理,則其必須挑選一個消耗的批次。

如果挑選的是批次LOT001,則所有權轉移的價格(交易成本)是1.2元,傳到應付的價格也是1.2元。

如果挑選的是批次LOT002,則所有權轉移的價格(交易成本)是1.5元,傳到應付的價格也是1.5元。

不同的入庫批次,消耗的價格是完全可以分開的。

(二)  程式實現過程:

主要的開發點是要修改系統在做雜發(或者庫存轉移)的時候,需要針對消耗寄售的庫存部分做定製修改。

大概過程:

例如User是做雜發領料。

1每過賬一行(準備做交易的時候),先判斷該行是否一定走寄售的流程(是否會自動發生所有權轉移)。

由於,料號A的庫存,在雜發畫面是供應商庫存和本公司庫存是混合在一起了,按照優先消耗本公司庫存的嚴則,所以要首先判斷是否是完全屬於寄售的庫存的交易,或者完全屬於XYG庫存的交易。

舉個例子,物料A,庫存共有5000個;其中本公司庫存2000個,供應商庫存3000個。

如果發料<=2000個,則肯定是直接扣本公司的庫存,不需要走寄售流程了。

如果發料>2000個,則提示錯誤並禁止其發料。如果允許User這樣子操作,程式邏輯很難走了,因為寄售的交易的價格是標準PO的價格,而非寄售交易的價格應該是走系統標準成本(我這裡用的是移動平均成本)。一筆物料交易不可能有2個成本。

由於交易是按照組織+庫別+貨位+料號+批次來進行的,一般寄售的物料的庫存和本公司的庫存都是分開庫別的,所以同時一個庫別有2種不同類型的庫存是很少的。

2上面第一步已經確定了該筆交易是否屬於寄售的交易行。

2.1如果不是,則按照普通的交易走,不做任何的特殊處理。

2.2如果是屬於寄售的庫存的交易,那麼系統會自動做所有權轉移。所以,這時候要根據標準PO的價格更新BPA價格和交易成本。

1)根據批次找到對應接收的PO的資訊(首次接收的)

更新批次表,記錄對應的PO行ID。

自動更新接收方式:將發票匹配選項自動更新為接收R。

2)根據Po_Line_ID找到接收PO的價格

3)根據物料ID,供應商ID,供應商地點ID找到對應的一攬子協議的PO(BPA)行,然後直接根據標準的PO行價格更新BPA行價格。

4)強烈建議將上面找的資訊記錄到一個中間的控制記錄表格。

3調用MTL_ONLINE_TRANSACTION_PUB.PROCESS_ONLINE過賬對應的領料行。

4如果過賬成功,並且是屬於寄售的交易行,這時候應該要將寄售行的單價資訊更新回去原來的。

按照上面的步驟一步一步來做,基本可以實現User的目的。

財務方面:

因為做的寄售雜發交易的單價(包括自動產生的所有權轉移的交易行價格),都是標準接收PO的單價。

傳到應付裡面的價格也是標準接收PO的單價。

為了讓User方便操作,AP標準的發票匹配畫面我也做了一定的客制化。

主要的修改是,匹配畫面的預設匹配數量=對應接收編號的PO行的消耗數量-已經開票的數量。

(標準的是,對應接收編碼的PO行接收的數量-已經開票的數量)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.