Oracle EBS Interface/API(17)-申请单导入(相同批次相同物料不同供应商申请行导入问题)

背景:
         采购申请导入时,相同批次同相物料接口表行不同供应商,提交请求“申请导入”完成以后,系统总是默认“来源补充规则”其中一个供应商

解决方法:
参考代码实例如下:

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.

猜你喜欢

转载自blog.csdn.net/chenxianping/article/details/103155632