通过BADI/用户出口创建PO时设置EKPO-BSGRU

2020-09-28 07:10发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我真的很想在创建P...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我真的很想在创建PO时设置高级退货管理字段EKPO-BSGRU的问题。 我想创建一个返回STO。 通过ME21N手动创建退货STO时,我需要在行项目中指定物料,数量和地点并在保存之前按Enter键,将退货原因(EKPO-BSGRU)字段设置为Z **(示例:Z77)。

我尝试通过BADI'ME_PROCESS_PO_CUST'和'MSR_TRC'设置此值,但是这些BADI并没有帮助我。 请让我知道如何满足此要求,否则我在某处出错。

根据配置,此字段为必填字段,用户要求通过ABAP代码设置此字段。

1)当我实现process_item方法ME_PROCESS_PO_CUST时,我面临以下问题。

标准SAP不允许我们通过BADI更改原因代码,并且消息日志返回以下信息消息:

无法更改订单原因。

在进一步分析标准代码时,我发现标准SAP正在检查BSGRU字段的字段状态。

如果为"-",表示已被抑制,则将用交易产生的旧值(空白)覆盖已更改的值(Z **)。

2)当我实现接口IF_EX_MSR_TRC的MSR_TRC,GET_DEFAULT方法时,值Z **被替换为空白。

请帮助,这对于客户来说确实很紧急。 正确答案将得到奖励。

此致

Titiksha

4条回答
我是小鹏鹏啊
2020-09-28 07:19 .采纳回答

您好 Titiksha

关于退货管理方案的任何更新,或者一般来说,FOR PO标头(EKKO)或PO项目(EKPO)都是有趣的情况。

我们面临类似的问题,而您在调试的深处发现的是标准代码检查中字段选择组的配置原理。 " +"/"-"等组合。有关SAP如何将某些字段视为仅显示而将某些字段视为启用输入的情况。

实际上,诀窍是在这种情况下,您不应该在BADI中编写任何代码。

将您的业务逻辑放置在EXIT中。 这应该工作得很好。 我们已经完成了许多要求(例如,覆盖退货项和用于基于某些逻辑的退货订单的确认控制)

SMOD增强功能:MM06E005

实施退出-> EXIT_SAPMM06E_016

在退出实现上方使用调用堆栈方法:VALUE'(SAPLMEPO)EKPO'分配采购订单项引用。

此致

Avik

一周热门 更多>