笔者在长达16年的 SAP 从业生涯中,曾经接到过无数次类型的咨询:
Jerry,我在使用 SAP XXX 产品的 YYY 流程时遇到了错误消息 ZZZ,你遇到过这种情况吗?该如何解决?
其实这类问题除了直接求助专家之外,也可以尝试自己通过搜索引擎的方式来查找网络上是否有 SAP 从业者遇到类似的问题。可是通过什么作为搜索关键字呢?一种思路是将 SAP 产品名称 XXX
和 流程名称 YYY
,以及错误消息文本 ZZZ
的组合作为关键字。
如果想让搜索结果更加精确,可以把 ZZZ
替换成其在 ABAP 后台服务器的消息 ID.
什么是消息 ID?我们看个具体的例子。
我们在事务码 SE38 里,随便输入一个不存在报表名称,比如 ZAAA,点击 Display 按钮:
看到错误提示消息:Program ZAAA does not exist. 点击 View details 超链接,就能看到弹出对话框。里面显示的 DS 就是消息文本所属的消息类名称 DS
,017
就是消息编号。
我们使用事务码 SE91,打开消息类 DS,定位到第 17 条记录,就能看到这条消息的模板文本:
选中这条编号为 17 的记录,点击工具栏上的 Where Used List 按钮,就能找到所有抛出了这条消息的 ABAP 程序列表。
由此可见,找准 UI 上一条错误消息的 ID,对使用技术手段找到这条消息被抛出的准确的 ABAP 代码位置至关重要。
但如果我们在 SAP UI5 框架开发的 Fiori UI,而不是 SAPGUI 里运行应用时出现错误,又该怎么找到错误消息在 ABAP 后台对应的消息 ID 呢?
比如下图是 SAP S/4HANA 里 Sales Order 的管理应用:
我们在明细页面对某个销售订单进行修改之后保存,会看到一些提示消息:
- Document is incomplete
- Standard Order 38500 has been saved.
如何在这种 Fiori UI 找到消息的 ID?请参考这篇文章的步骤来操作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。