欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

EBS 替代接收实例、sql查询及接口程序

程序员文章站 2022-04-28 18:39:32
...

EBS版本:11i今天做了一外围接口,需要用到替代接收,以前没做过,现研究了下。1、设置物料可替代接收属性:职责:库存超级用户菜单:物料-》主组织物料-》接收-

EBS版本:11i


今天做了一外围接口,需要用到替代接收,以前没做过,现研究了下。

1、设置物料可替代接收属性

职责:库存超级用户

菜单:物料-》主组织物料-》接收-》允许替代接收:“是”

此处对应 mtl_system_items_b.allow_substitute_receipts_flag 字段,存储为'Y'/'N',默认空为不允许替代接收。

EBS 替代接收实例、sql查询及接口程序


2、复制一个物料用于测试:

新建一个物料301000010000010,输入物料描述后,工具菜单-》复制自。输入要复制的物料编码,即30100001000001,完成即可。 然后将此物料分配给某个组织。

EBS 替代接收实例、sql查询及接口程序


3、维护一个替代接收关系:

菜单:物料-》产品关系

在弹出的快捷窗口中选择“新建”,起始物料输入源物料,,终止物料输入新建的物料,类型选择“替代”,保存。

EBS 替代接收实例、sql查询及接口程序


4、创建采购订单并审批:

职责:采购超级用户

菜单:采购订单-》采购订单

采购物料录入源物料30100001000001,数量100。

在发运-》接收控制中,选择“允许替代接收”并选择接收方式为“直接交货”。

发运组织选择给新物料分配的那个组织。

依次填写发运、分配信息,保存并审批。

订单编号:810007928

EBS 替代接收实例、sql查询及接口程序


5、接收:

职责:采购超级用户

菜单:接收-》接收

选择发运填写的组织,输入订单编号:810007928并查找,弹出窗口中选新建接收,关闭此小窗口。

在行标签页可以看到默认显示物料是订单物料,可以在此字段上选择,即可看到刚维护的替代接收的物料。

该行信息录入完毕后,勾选此行前的复选框,保存即可。

EBS 替代接收实例、sql查询及接口程序


6、查询接收事务处理:

稍等几十秒,等待接收事务处理完成后即可查询是否替代接收成功。

职责:采购超级用户

菜单:接收-》接收事务处理汇总

查询界面输入采购订单编号:810007928, 亦可在物料栏位输入替代接收的物料编码,查找。

选择查出的记录,点击事务处理按钮。

可以看到接收物料是新建的替代接收物料,成功了!

EBS 替代接收实例、sql查询及接口程序


相关SQL:

1、物料是否允许替代接收:

SELECT Nvl(Msi.Allow_Substitute_Receipts_Flag, 'N') FROM Mtl_System_Items_b Msi WHERE Msi.Inventory_Item_Id = Pi_Item_Id AND Msi.Organization_Id = Pi_Organization_Id AND Inventory_Item_Status_Code IN ('有效', 'Active') AND Nvl(Enabled_Flag, 'N') = 'Y' AND Nvl(Start_Date_Active, Trunc(Pi_Transaction_Date)) Trunc(Pi_Transaction_Date);


2、订单发运行是否允许替代接收

SELECT Nvl(Plla.Allow_Substitute_Receipts_Flag, 'N') FROM Po_Headers_All Pha, Po_Lines_All Pla, Po_Distributions_All Pda, Po_Line_Locations_All Plla WHERE 1 = 1 AND Pda.Po_Distribution_Id = Pi_Distribution_Id AND Pda.Line_Location_Id = Plla.Line_Location_Id AND Pda.Po_Header_Id = Pha.Po_Header_Id AND Pla.Po_Header_Id = Pha.Po_Header_Id AND Pla.Po_Line_Id = Pda.Po_Line_Id AND Pha.Po_Header_Id = Pi_Header_Id AND Nvl(Plla.Cancel_Flag, 'N') 'Y' AND Nvl(Plla.Closed_Code, 'OPEN') NOT IN ('CLOSED', 'CLOSED FOR RECEIVING', 'FINALLY CLOSED') AND Nvl(Plla.Approved_Flag, 'N') = 'Y';


3、供应商是否允许替代接收

SELECT Nvl(Pv.Allow_Substitute_Receipts_Flag, 'N') FROM Po_Vendors Pv WHERE Vendor_Id = Vn_Vendor_Id;


4、是否存在产品关系

SELECT COUNT(1) FROM Mtl_Related_Items_All_v Mri WHERE 1 = 1 AND Mri.Inventory_Item_Id = Vn_Item_Id AND Mri.Related_Item_Id = Vn_Substitute_Item_Id AND Mri.Relationship_Type_Id = 2 AND Mri.Reciprocal_Flag = 'Y' AND SYSDATE BETWEEN Nvl(Mri.Start_Date, SYSDATE) AND Nvl(Mri.End_Date, SYSDATE);


接口程序:

相比普通物料的采购接收,在插入RTI(RCV_TRANSACTION_INTERFACE)时,替代接收需注意以下字段。

1、Inspection_Status_Code

替代接收:'NOT INSPECTED'

普通接收:null。

2、Substitute_Unordered_Code

替代接收:'SUBSTITUTE'

普通接收:null

3、Substitute_Item_Id

替代接收:替代接收物料ID

普通接收:null


另,退货时,RTI中所填写的item_id为接收物料的ID,并非订单物料ID。


附:接口程序样例及测试脚本。



本文出自 “路漫漫其修远兮…” 博客,请务必保留此出处