Oracle EBS中,标准功能允许ERP物料、客户物料存在1对多和多对1的情况。
可以在系统中这样处理(系统标准功能并没有,需要开发):
A、 1对多时,录入ERP物料,客户物料置为空,并警告必须手工选择客户物料;
B、 多对1时,录入客户物料,系统直接弹出要选择对应的ERP物料。
1对多或者多对1都比较难处理,建议Customer Item的用法是1对1。(需个性化限制1对多或多对1)
这样的话,在销售订单界面,输入客户物料,可以自动跳出ERP物料(修改LOV可以实现)。
建立客户物料
定义商业代码(使用客户物料商品代码来为客户物料分组)
路径:INV –> 设定 –> 料号 –> 客户料号商品代码
选择客户名称,输入客户料号,选择商品代码,点击“交叉引用”按钮。
输入对应的厂内料号和级别。
级别的作用:允许对客户物料使用替代或替代库存物料,则可以为单个客户物料定义多个库存物料交叉引用。在这种情况下,必须指定交叉引用的“级别”。
获取客户物料
–对于一个客户,一个厂内料号可能有多个客户料号,取最新建立的客户料号
select mci.customer_id,
mci.customer_item_number,
mcix.inventory_item_id
from mtl_customer_items mci
,mtl_customer_item_xrefs mcix
,(SELECT a.customer_id
,b.inventory_item_id
,max(b.creation_date) l_d
FROM mtl_customer_items a
,mtl_customer_item_xrefs b
WHERE b.customer_item_id = a.customer_item_id
AND (b.inactive_flag = 'N' OR b.inactive_flag IS NULL)
group by a.customer_id, b.inventory_item_id) latest_creation --客户某个厂内料号对应的最新建立的客户料号的建立时间
where mci.customer_item_id = mcix.customer_item_id
and mci.customer_id = latest_creation.customer_id
and mcix.inventory_item_id = latest_creation.inventory_item_id
and mcix.creation_date = latest_creation.l_d
and (mcix.inactive_flag = 'N' or mcix.inactive_flag is null) cust_item
或者多个客户料号拼接起来
FUNCTION get_customer_item(p_organzation_id IN NUMBER
,p_customer_id IN NUMBER
,p_item_id IN NUMBER) RETURN VARCHAR2 deterministic AS
l_customer_item VARCHAR2(2000);
BEGIN
l_customer_item := NULL;
FOR r IN (SELECT DISTINCT mci.customer_item_number
FROM mtl_customer_items mci
,mtl_customer_item_xrefs mcix
,mtl_parameters mp
WHERE mcix.customer_item_id = mci.customer_item_id
AND mci.inactive_flag = 'N'
AND mcix.inactive_flag = 'N'
AND mcix.master_organization_id = mp.master_organization_id
AND mp.organization_id = p_organzation_id
AND mci.customer_id = p_customer_id
AND mcix.inventory_item_id = p_item_id
ORDER BY 1) LOOP
l_customer_item := l_customer_item || '/' || r.customer_item_number;
END LOOP;
IF l_customer_item IS NULL THEN
RETURN NULL;
END IF;
RETURN substr(l_customer_item, 2);
END get_customer_item;
客户物料客制(To be continued)
创建销售订单时,料号栏位可以输入客户料号,自动弹出厂内料号