背景:
采购申请导入时,相同批次同相物料接口表行不同供应商,提交请求“申请导入”完成以后,系统总是默认“来源补充规则”其中一个供应商。
解决方法:
参考代码实例如下:
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.