背景:
採購申請導入時,相同批次同相物料接口錶行不同供應商,提交請求“申請導入”完成以後,系統總是默認“來源補充規則”其中一個供應商。
解決方法:
參考代碼實例如下:
DECLARE
Lt_Pr_Rec Po_Requisitions_Interface_All%ROWTYPE;
Ln_Org_Id NUMBER := 82; --業務實體標識
Ln_Employee_Id NUMBER := 1972; --編制人(員工)標識
BEGIN
-- Init Applications Context
Mo_Global.Init('PO');
Mo_Global.Set_Policy_Context('S', Ln_Org_Id);
Fnd_Global.Apps_Initialize(User_Id => 110, Resp_Id => 293824, Resp_Appl_Id => 20003);
Lt_Pr_Rec.Header_Description := 'PR申請導入測試'; --申請題頭說明
Lt_Pr_Rec.Authorization_Status := 'INCOMPLETE'; --狀態
Lt_Pr_Rec.Preparer_Id := Ln_Employee_Id; --編制人標識
Lt_Pr_Rec.Preparer_Name := 'Joe Li'; --編制人
Lt_Pr_Rec.Interface_Source_Code := 'Manual Import'; --導入來源
Lt_Pr_Rec.Org_Id := Ln_Org_Id; --業務實體標識
Lt_Pr_Rec.Requisition_Type := 'PURCHASE'; --申請類型
--Who Column
Lt_Pr_Rec.Last_Updated_By := Fnd_Global.User_Id;
Lt_Pr_Rec.Last_Update_Date := SYSDATE;
Lt_Pr_Rec.Last_Update_Login := Fnd_Global.User_Id;
Lt_Pr_Rec.Creation_Date := SYSDATE;
Lt_Pr_Rec.Created_By := Fnd_Global.Login_Id;
--Line 1
Lt_Pr_Rec.Destination_Type_Code := 'INVENTORY'; --目的地類型
Lt_Pr_Rec.Quantity := 1; --申請數量
Lt_Pr_Rec.Batch_Id := '20191120'; --導入批次標識
Lt_Pr_Rec.Autosource_Flag := 'P'; --控制自動來源
Lt_Pr_Rec.Item_Id := 17492890; --物料標識
Lt_Pr_Rec.Item_Segment1 := 'MDA2914PVC001'; --物料編碼
Lt_Pr_Rec.Charge_Account_Id := 1079; --借記帳戶標識
Lt_Pr_Rec.Unit_Of_Measure := 'PCS'; --單位
Lt_Pr_Rec.Uom_Code := 'PCS'; --單位代碼
Lt_Pr_Rec.Line_Type := '貨物'; --行類型
Lt_Pr_Rec.Reference_Num := 'Manual Import*20191120'; --行參考編號
Lt_Pr_Rec.Destination_Organization_Id := 126; --目的庫存組織標識
Lt_Pr_Rec.Destination_Organization_Code := '11G'; --目的庫存組織代碼
Lt_Pr_Rec.Destination_Subinventory := 'M01'; --子庫存代碼
Lt_Pr_Rec.Deliver_To_Location_Id := 225; --地點標識
Lt_Pr_Rec.Deliver_To_Location_Code := 'Gobao-11G-TianJing'; ---地點
Lt_Pr_Rec.Deliver_To_Requestor_Id := 1432; --申請標識
Lt_Pr_Rec.Deliver_To_Requestor_Name := 'Alan Chen,'; --申請人
Lt_Pr_Rec.Suggested_Vendor_Name := '廣東XXXX有限公司'; --供應商
Lt_Pr_Rec.Suggested_Vendor_Id := 221; --供應商標識
Lt_Pr_Rec.Suggested_Vendor_Site := 'XXX-GuangDong'; --供應商地點
Lt_Pr_Rec.Suggested_Vendor_Site_Id := 160; --供應商地點標識
Lt_Pr_Rec.Need_By_Date := To_Date('2017-12-21', 'yyyy-mm-dd'); --需要日期
Lt_Pr_Rec.Source_Type_Code := 'VENDOR';
INSERT INTO Po_Requisitions_Interface_All
VALUES Lt_Pr_Rec;
--Line 2
Lt_Pr_Rec.Org_Id := Ln_Org_Id; --業務實體標識
Lt_Pr_Rec.Requisition_Type := 'PURCHASE'; --申請類型
Lt_Pr_Rec.Destination_Type_Code := 'INVENTORY'; --目的地類型
Lt_Pr_Rec.Quantity := 200; --申請數量
Lt_Pr_Rec.Authorization_Status := 'INCOMPLETE'; --狀態
Lt_Pr_Rec.Batch_Id := '20191120'; --導入批次標識
Lt_Pr_Rec.Autosource_Flag := 'P'; --控制自動來源
Lt_Pr_Rec.Item_Id := 17492890; --物料標識
Lt_Pr_Rec.Item_Segment1 := 'MDA2914PVC001'; --物料編碼
Lt_Pr_Rec.Charge_Account_Id := 1079; --借記帳戶標識
Lt_Pr_Rec.Unit_Of_Measure := 'PCS'; --單位
Lt_Pr_Rec.Uom_Code := 'PCS'; --單位代碼
Lt_Pr_Rec.Line_Type := '貨物'; --行類型
Lt_Pr_Rec.Reference_Num := 'Manual Import*20191120'; --行參考編號
Lt_Pr_Rec.Destination_Organization_Id := 126; --目的庫存組織標識
Lt_Pr_Rec.Destination_Organization_Code := '11G'; --目的庫存組織代碼
Lt_Pr_Rec.Destination_Subinventory := 'M02'; --子庫存代碼
Lt_Pr_Rec.Deliver_To_Location_Id := 225; --地點標識
Lt_Pr_Rec.Deliver_To_Location_Code := 'Gobao-11G-TianJing'; ---地點
Lt_Pr_Rec.Deliver_To_Requestor_Id := 1432; --申請標識
Lt_Pr_Rec.Deliver_To_Requestor_Name := 'Alan Chen,'; --申請人
Lt_Pr_Rec.Suggested_Vendor_Name := '廣州XXXX有限公司'; --供應商
Lt_Pr_Rec.Suggested_Vendor_Id := 134; --供應商標識
Lt_Pr_Rec.Suggested_Vendor_Site := 'XXX_GrangZhou'; --供應商地點
Lt_Pr_Rec.Suggested_Vendor_Site_Id := 237; --供應商地點標識
Lt_Pr_Rec.Need_By_Date := To_Date('2017-11-23', 'yyyy-mm-dd'); --需要日期
Lt_Pr_Rec.Source_Type_Code := 'VENDOR'; --來源
INSERT INTO Po_Requisitions_Interface_All
VALUES Lt_Pr_Rec;
END;
重點注意代碼中“Lt_Pr_Rec.Autosource_Flag := 'P'; --控制自動來源” 表示指定接口錶行中供應商
通過啓用調試日誌找出默認供應商規則,它根據“來源補充規則”的優先級高低分別: 級別>分配比例
1.級別數值越大優先級越高
2.分配比例越高優先級越高
參考標準包Mrp_Sourcing_Api_Pk.Mrp_Sourcing代碼:
SELECT Misl.Vendor_Id
,Misl.Vendor_Site_Id
,Misl.Source_Organization_Id
,Misl.Allocation_Percent
,Nvl(Misl.Rank, 9999)
,Misl.Sourcing_Rule_Id
FROM Mrp_Item_Sourcing_Levels_v Misl
WHERE Misl.Source_Type IN (1, 3)
AND Misl.Inventory_Item_Id = Arg_Item_Id
AND Misl.Organization_Id = Arg_Dest_Organization_Id
AND Misl.Assignment_Set_Id = Var_Set_Id
AND Arg_Autosource_Date BETWEEN Misl.Effective_Date AND Nvl(Disable_Date, To_Date(2634525, 'J'))
AND Po_Asl_Sv.Check_Asl_Action('2_SOURCING'
,Misl.Vendor_Id
,Misl.Vendor_Site_Id
,Arg_Item_Id
,-1
,Arg_Dest_Organization_Id) <> 0
AND Nvl(Nvl(p_Source_Organization_Id, Misl.Source_Organization_Id), -23453) =
Nvl(Misl.Source_Organization_Id, -23453)
ORDER BY Misl.Sourcing_Level ASC
,Allocation_Percent DESC
,Nvl(Misl.Rank, 9999) ASC;
參考官方文檔:Frequently Asked Questions: Requisition Import (文檔 ID 224025.1)如下內容
How can I avoid sourcing from overriding my vendor information?
You have to set the autosource_flag to 'P' for partial sourcing.