Abap CO11N中生产订单确认的用户退出?

Abap CO11N中生产订单确认的用户退出?,abap,sap-erp,badi,Abap,Sap Erp,Badi,我在YouTube上看过不少视频,对如何找到用户出口(增强功能?)并实现它们有了基本的了解。然而,当我试图复制我所看到的东西时,它似乎不起作用 我希望创建一个用户出口,在生产订单通过CO11N确认(关闭/完成)后执行。有人建议我输入一行代码“BREAK username”,这样我就可以验证我的代码是否启动了。什么都不坏。我试着从互联网上找到的代码中输入一条消息 MESSAGE s208(00) WITH 'TEST'. 不显示任何消息。我已经激活了include和项目。我尝试了不同的退出/包含

我在YouTube上看过不少视频,对如何找到用户出口(增强功能?)并实现它们有了基本的了解。然而,当我试图复制我所看到的东西时,它似乎不起作用

我希望创建一个用户出口,在生产订单通过CO11N确认(关闭/完成)后执行。有人建议我输入一行代码“BREAK username”,这样我就可以验证我的代码是否启动了。什么都不坏。我试着从互联网上找到的代码中输入一条消息

MESSAGE s208(00) WITH 'TEST'.
不显示任何消息。我已经激活了include和项目。我尝试了不同的退出/包含,无论我做什么,似乎都没有任何东西会破坏或显示消息

有什么简单的东西我遗漏了吗?我尝试了CONFPI05和CONFPM05。

我检查了:

CONFPI05在保存确认后更新您自己的数据

在这篇文章中,我发现了另一个警告:

在本客户增强版中,严禁发送错误消息或其他消息,否则会有数据不一致的危险。SAP对此不承担任何责任

这听起来像是更新任务中的更改。默认情况下,不启用更新任务中的断点

在按下“保存”按钮后是否应处理代码

如果是,您可以尝试什么:

  • 在任何地方设置断点。或者在数据插入期间尝试
    /h
  • 在调试屏幕中,激活更新调试:
  • 用F8继续此过程
  • 希望你在你的转折点停下来

CONFPI05用于处理订单。CONFPM05用于工厂维护订单。首先,您需要检查您使用的是哪种订单。我假设你使用生产订单。您应该检查用户出口CONFPP05,而不是

无论如何,我建议使用BAdI WORKORDER\u确认。在此BAdI中,有一些方法可用于引发错误消息

从BAdI文档中:

注意,在这些方法中,不能发送任何系统消息。唯一的 例外情况是AT_SAVE和AT_CANCEL检查方法。在这些 方法时,可以发出系统消息,但仅当您触发 异常错误,\u带有\u消息(用于AT\u保存方法)或不允许\u(用于 同时取消检查方法)

还请注意,在这些方法中,“提交工作”指令可能 不执行此操作,因为这将导致系统中的数据不正确 数据库

我强烈建议不要在任何用户出口或BAdI实现中使用消息语句。MESSAGE语句将隐式调用COMMIT WORK,这可能会导致数据库不一致(顺便说一下,这种情况经常发生)


另加一项说明。您应该检查using,而不是直接使用BREAK-POINT或BREAK-username。

如果您已经设置了BREAK,那么您应该已经注意到它是否触发了。看起来您需要找到另一个用户出口。感谢您的回复。我现在还尝试了CONFPP05(我们已经有一个用户退出了),但这对我来说仍然没有中断。我是否需要处于调试模式才能发生中断?我用/h打开了它,但它还是没有中断。你只需要设置一个中断点,不需要处于调试模式。或者,如果您想100%确定,可以使用代码尝试断点:
断点。
(不要忘记在测试后将其删除)。您是否使用了增强功能或使用了用户出口?你激活密码了吗?您是否检查了系统日志(SM21)?您的更改是否在更新任务中?您可以尝试使用logpoints(使用事务SAAB激活它)来代替断点。@knut CMOD创建一个项目。分配了增强功能(例如CONFPI05)。然后在SE38中创建代码(匹配上面项目中的“include”名称)。激活项目和代码。我在SM21上什么也没看到。我会对萨博做一些研究。