我在YouTube上观看了不少视频,并对如何查找用户出口(增强功能?)并实施它们有基本的了解。然而,当我试图复制我所看到的东西时,似乎并没有起作用。
我正在寻找创建一个用户出口,该出口将在通过CO11N确认(关闭/完成)生产订单时执行。有人建议我输入一行代码“BREAK用户名”。这样我就可以验证我的代码是否正在触发。什么都没有打破。我试过从互联网上的代码中输入一条消息
MESSAGE s208(00) WITH 'TEST'.
未显示任何消息。我已经激活了包含和项目。我尝试了不同的退出/包括,无论我做什么,似乎没有什么打破或显示消息。
有什么简单的我不见了吗?我试过CONFPI05和CONFPM05。
答案 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不对此负责!!
这听起来像更新任务中的更改。默认情况下,未启用更新任务中的断点。
推送保存后是否应该处理代码?
如果是,您可以尝试: