Oracle EBS 物料与客户物料查询
首先,在Oracle EBS中,标准功能允许ERP物料、客户物料存在1对多和多对1的情况。可以在系统中做这样的处理:
- 1对多时,录入ERP物料,客户物料置为空,并警告必须手工选择客户物料;
- 多对1时,录入客户物料,系统直接弹出要选择对应的ERP物料。
当然这样的功能开发出来后,必须经过充分测试才能投入生产环境中使用。这里就需要在后台找到可测试的数据。
ERP物料和客户1对多:
SELECT ABC,COUNT(*) DEF FROM (SELECT MCIXV.CUSTOMER_NUMBER || MCIXV.INVENTORY_ITEM_ID AS ABC,MCIXV.CONCATENATED_SEGMENTS,MCIXV.CUSTOMER_ITEM_NUMBER FROM MTL_CUSTOMER_ITEM_XREFS_V MCIXV) GROUP BY ABC ORDER BY DEF DESC; --同一客户,相同的ERP物料对应不同的客户物料。
这里把客户编号和ERP物料ID联结为一个字段,统计出重复次数超过1的,这样,得出的结果去掉客户编号就是ERP的物料ID。可以再根据ERP的物料ID找到对应该客户的不同客户物料。
ERP物料和客户多对1:
SELECT * FROM (SELECT CIX.CUSTOMER_ITEM_ID,COUNT(*) CIA FROM MTL_CUSTOMER_ITEM_XREFS CIX GROUP BY CIX.CUSTOMER_ITEM_ID ORDER BY CIX.CUSTOMER_ITEM_ID) M WHERE M.CIA > 1; --一个客户物料对应多个ERP物料。
统计一个CUSTOMER_ITEM_ID对应多个INVENTORY_ITEM_ID的数据。 使用上面的数据,就可以快速做相关ERP物料和客户物料的测试啦。