创建上下文_如何在S/4HANA生产订单创建上下文里拿到前置销售订单的信息

我写了一段ABAP程序,放在我的github上:

https://github.com/i042416/KnowlegeRepository/blob/master/ABAP/S4/ZCREATE_SO.abap

直接执行,可以生成销售订单,即对应的生产订单。

dbf752d73cd93935b9117ca25b82ac24.png

我们知道SAP预留了一个生产订单Update的增强:BAdI definition WORKORDER_UPDATE

在这个增强里,我们可以加入自己的逻辑,在销售订单生成的Production Order保存之际,实现一些自定义逻辑。

4445a03265b03e87b5fc2d7b46e37bb9.png

那么在SAP传入这个增强的输入参数里,并没有销售订单的ID信息。

如果我们想在这个增强里维护前置销售订单和当前待生成的Production Order关联关系,应该如何拿到前置销售订单ID呢?

看这个调用栈:

b12d2b00c9f368d4314c12ac0471e60d.png

在调用函数CO_61_ORDER_POST前,通过SET PARAMETER ID将销售订单的ID保存到SAP shared memory共享内存里了:

L_CALLER = VBAK-VBELN.

SET PARAMETER ID 'COC' FIELD L_CALLER.

3050e453f407e4484d8f75e3c2d01e23.png

那么我们按照同样的思路,在增强实现里用关键字

GET PARAMETER ID将共享内存里的销售订单ID重新取出即可。

DATA: lv_id type VBAK-VBELN.

GET PARAMETER ID 'COC' FIELD lv_id.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值