EBS INV:客户料号

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)
创建销售订单时,料号栏位可以输入客户料号,自动弹出厂内料号

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值