查找生产订单的用户出口

时间:2015-09-25 19:45:14

标签: sap abap

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

我正在寻找创建一个用户出口,该出口将在通过CO11N确认(关闭/完成)生产订单时执行。有人建议我输入一行代码“BREAK用户名”。这样我就可以验证我的代码是否正在触发。什么都没有打破。我试过从互联网上的代码中输入一条消息

MESSAGE s208(00) WITH 'TEST'.

未显示任何消息。我已经激活了包含和项目。我尝试了不同的退出/包括,无论我做什么,似乎没有什么打破或显示消息。

有什么简单的我不见了吗?我试过CONFPI05和CONFPM05。

2 个答案:

答案 0 :(得分:2)

CONFPI05适用于流程订单。 CONFPM05用于工厂维护订单。首先,您需要检查您使用的订单类型。我假设您使用生产订单。你应该检查用户退出CONFPP05而不是。

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

来自BAdI文档:

  

请注意,在这些方法中,不会发送任何系统消息。唯一的   例外是AT_SAVE和AT_CANCEL_CHECK方法。在这些内   方法,可以发出系统消息,但只有在你触发时才会发出   异常ERROR_WITH_MESSAGE(对于AT_SAVE方法)或NOT_ALLOWED(对于   AT_CANCEL_CHECK方法)同时。

     

另请注意,在方法中,"提交工作"指示可能   没有执行,因为这将导致不正确的数据   数据库中。

我强烈建议不要在任何User-Exit或BAdI实现中使用MESSAGE语句。 MESSAGE语句将隐式调用COMMIT WORK,这可能导致数据库不一致(顺便发生)。

另外一个注意事项。您应该使用Checkpoint Groups检查,而不是直接使用BREAK-POINT或BREAK用户名。

答案 1 :(得分:1)

我查看了documentation

  

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

another documentation我发现了另一个警告:

  

在此客户增强功能中,严禁发送错误消息或其他消息,否则可能会导致数据不一致。 SAP不对此负责!!

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

推送保存后是否应该处理代码?

如果是,您可以尝试:

  • 在任何地方设置断点。或者在插入数据时尝试/h
  • 在调试屏幕中激活更新调试: enter image description here
  • 使用F8继续该过程。
  • 希望你停在你的突破点。