预留单新增修改增加日志

17 篇文章 8 订阅
6 篇文章 2 订阅

公司碰到一个需求,由于预留单在抛到条码扫描过账系统之后发生了更改,造成实际中仓库的不方便,需要做一个自制表存储日志。

刚好RESB在CDHDR里面又没有日志记录,不得不在程序里面做增强,需要在MB21/MB22 (  直接创建预留单 )、BAPI创建修改删除预留单、CJ20N(  项目 库存类物料组件生成预留单)/CN22,生产订单保存创建预留CO01/CO02,委外PO会展BOM产生预留(不用考虑)。

首先介绍一下预留单号:预留单号是可能不留号的,原因是预留单的Number Range有设20的缓冲编号,如果需要保证连号需要调整。

预留是向仓库发出一种请求,要求仓库在某个时间保证某个物料在就绪状态。

1、手工创建预留单:

MB21/MB22除了我们正常的部门领料会用到,其实还有一些其他的用途。

在新机研发新品打样上的用料,因无法对工单实施发料,又想把这种消耗纳入到SAP系统作全局控制;此时手工创建预留可起到很大的帮助;

首先:可对研发新品打样,建立成本中心;如果有用料,审请后创建成本中心预留,

RUN MRP后自动产生采购审请,经审批后产生采购订单,

再对预留(成本中心)发料。这一过程发生的费用,即可纳入到SAP核算体系;

其它:

正常下客户订单,通过RUN MRP产生的工单预留,转成PO后,预留在这整个过程是不能被修改的,查看库存明细,即可看到明细,其中包括预留数量;

对工单发料后,库存中的预留自动消失;

而手工创建的预留,则是可以删除的,对手工预留删除后,不能反删除!

自动预留:当Procduction orders, networks, WBS,委外 PO 一创建,需要的元/组件就会在仓库自动建立预留。如果在仓库级采用再订购点计划(Reorder Point Planning),当可用库存低于再订购点时,系统自动生成库存调拔预留补上差量。

用户不能手动修改预留(MB21/MB22),必须从发起预留的事务对象单据间接修改,修改工单,网络,委外PO数量,间接更新预留单数量。

MB22/MB21增强比较简单:使用的标准用户出口User Exit:MBCF0007。

2、BAPI创建修改删除预留单

BAPI的函数组:MB_BUS2093,注意:BAPI_RESERVATION_CREATE已经过时,无法使用,请选择函数:BAPI_RESERVATION_CREATE1

增强内的更新语句都存放在MBRE函数组的函数里面,而且在函数的最后都有BADI去实现增强

但是我用SE19去新建BADI的实现的时候,系统表示这个BADI还没有开放给我们普通用户,这个控制是在表SXS_ATTR的INTERNAL字段控制的。

后来还是没写增强,在BAPI后面写上的日志逻辑,大家如果有什么更好的办法,请私聊。

3、CJ20N和CN22的预留单

CJ20N和CN22的预留单用不了User Exit和BADI,用系统留下来的enhancement point,但是两者的增强不能写到一起。

首先预留是挂在网络中的,所以单独用CN22也是能够修改预留(注:只能修改预留单数量,并不能创建,必须在CJ20N新增物料组件)。

修改预留和修改网络NETWORK同步的,都在函数 CO_ZV_ORDER_POST 中,但是CN22 只修改网络,CJ20N 在修改网络之后还需要修改项目和WBS ,这种使用的是 SAP LUW的理念, 使三者同时提交或者回滚。主要使用的是UPDATE FUNCTION 和PERFORM ON COMMIT  两种语法。

SAP LUW可以参考我的历史文章:https://blog.csdn.net/weixin_42646630/article/details/107253498

这种语法的提交回滚都是在 commit work / commit work and wait 一时刻提交的, 两种语法的差异可以参考上面的文章。

CJ20N 在调用 CO_ZV_ORDER_POST的时候,通过入参 控制函数不会提交,而是在修改完项目之后一起提交。 为了避免差异,我再update function中写了增强,这样可以保持一致性,注意:请不要再提交commit work 后面写增强,在这里CN22/CJ20N/BAPI的提交语法的地点都不一致。

生产预留CO01/CO02 目前并不启用, 所以也就没有去找。

可以参考这篇文章:https://blog.csdn.net/weixin_42646630/article/details/111029171

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值