我在YouTube上看了不少视频,对如何找到用户退出(增强功能?)并实现它们有基本的了解。然而,当我尝试复制我所看到的东西时,它似乎并没有工作。
我想创建一个用户退出,当一个生产订单通过CO11N被确认(closedfinished)时,这个用户退出将被执行。有人建议我放一行代码 "BREAK username"。这样我就可以验证我的代码是否在执行。什么都没有中断。我试着把在网上找到的代码中的信息放进去
MESSAGE s208(00) WITH 'TEST'.
没有任何信息显示。我已经激活了include和项目,我尝试了不同的exitsincludes,无论我做什么,似乎都没有破坏或显示消息。我已经尝试了不同的exitsincludes,无论我做什么,似乎都没有中断或显示消息。
是不是我漏掉了什么简单的东西?我试过CONFFPI05和CONFPM05。
CONFPI05是针对工艺订单的。CONFPM05是工厂维护订单。首先你需要检查你使用的是哪种订单。我假设你使用的是生产订单。你应该检查User-Exit 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,这可能会导致数据库的不一致(顺便说一下,这种情况经常发生)。
还有一点需要注意。你应该使用 检查站组 而不是直接使用BREAK-POINT或BREAK用户名。