作者在16年的SAP生涯中,收到过无数种咨询:Jerry,我是不是遇到过使用SAPXXX产品的YYY流程时出现错误消息ZZZ?如何解决?其实对于此类问题除了直接寻求高手帮助外,还可以尝试通过搜索引擎查找一下网上是否有遇到过类似问题的SAP从业者。但是什么用作搜索关键字?一种想法是使用SAP产品名称XXX和流程名称YYY的组合,以及错误消息文本ZZZ作为关键字。如果想让搜索结果更准确,可以在ABAP后台服务器中将ZZZ替换成它的消息ID。什么是消息ID?让我们看一个具体的例子。在事务码SE38中,我们随便输入一个不存在的报表名称,比如ZAAA,点击显示按钮:看到错误信息:程序ZAAA不存在。单击“查看详细信息”超链接,您将看到一个弹出对话框。其中显示的DS为消息正文所属的消息类名DS,017为消息编号。我们使用事务码SE91,打开消息类DS,定位到第17条记录,可以看到这条消息的模板文本:选中编号为17的这条记录,点击工具栏上的WhereUsedList按钮,可以找到一条抛出此消息的所有ABAP程序的列表。可见,在UI上找到一条错误信息的ID,对于使用技术手段准确找到抛出信息的ABAP代码位置至关重要。但是如果我们在SAPUI5框架开发的FioriUI而不是SAPGUI中运行应用程序时出现错误,我们如何在ABAP后台找到错误信息对应的消息ID呢?例如下图是SAPS/4HANA中销售订单的管理应用:我们在明细页修改了一个销售订单后保存,会看到一些提示信息:DocumentisincompleteStandardOrder38500hasbeensaved。如何保存在这个FioriUI中找到的消息的ID?请参考本文步骤操作。
