千家信息网

云端ABAP应用调试方法是什么

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"云端ABAP应用调试方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Jerr
千家信息网最后更新 2025年12月02日云端ABAP应用调试方法是什么

本篇内容介绍了"云端ABAP应用调试方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Jerry之前在SAP Cloud Platform上进行nodejs和Java开发的时候,对运行在云上的用这两门语言开发的应用的单步调试很头痛。尽管仍然可以通过Jerry这篇文章 如何提高后台服务应用问题的排查效率?日志 VS 远程调试 里介绍的端口映射方式实现在本地电脑上调试云端应用的功能,但Jerry还是怀念On-Premises ABAP里面那种单步调试的便捷性--鼠标轻轻一点,断点即设置好,无需任何配置,立即就能进行单步调试。

那么现在ABAP到了云端后,其单步调试还和之前的On-Premises环境里一样易于使用么?答案是肯定的。

咱们就拿一个具体例子来体验。

Jerry通过Restful ABAP Programming系列的前两篇,已经开发出了一个支持增删改查,支持自定义数据校验和Action的Fiori应用。

我选中ID为103这条记录,点击Accept Travel按钮后,期望通过该Action将其状态设置为Accepted:

不幸的是,我没能看到期望中的状态变化,而是下面这个所有ABAP编程人员都不愿意看见的ABAP运行时错误提示界面。

不过,大家注意到了上图右下角的Debug超链接么?和SAPGUI一样,点击之后立即就能打开调试器,能够观察发生这个运行时错误的调用栈,引起错误的详细代码位置和相关变量的值。

顺便提一句,如果您想自定义在SAP GUI里出现的ABAP运行时错误显示(就是在On-Premises环境下ST22事务码里看到的内容),比如添加一段"佛祖保佑,永无BUG",那么可以参考Jerry这篇文章:

你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧

回到ABAP Development Tool里,我们先点击Show超链接,就可以看到运行时错误明细:Short Text告诉我们,我们点击Accept按钮后,相关的处理框架有意地抛出一个CX_CSP_ACT_RESPONSE的异常。抛出异常的位置是在程序CL_CSP_ACT_CHECK_FEATS_ACTIONS里,这暗示我们,这个错可能和Action执行前的检查(CHECK)有关。

继续向下滑动鼠标,发现在框架代码内,因为从第353行内表it_feature_result里没有读出任何内容,因此sy-subrc不为0,导致进入第355行的RAISE SHORTDUMP分支。

在SAP Cloud Platform ABAP环境下当前登录用户发生的所有运行时错误,可以在ABAP Development Tool的Feed Reader视图下查看,这个功能相当于SAP GUI里的ST22事务码。

现在我们关于这个运行时错误的静态信息了解得差不多了,下一步在调试器里观察。

重新启动Fiori应用,再次点击Accept按钮,出现运行时错误后点击Debug超链接,ABAP调试器自动弹出,引起运行时错误的那一行代码被高亮,同时左边显示出调用栈。

把鼠标放在it_feature_result上,发现这个内表是空的,当然无法从里面读出数据了。这个内表是当前ABAP类CL_CSP_ACT_CHECK_FEATS_ACTIONS的方法handle_rejected_instances的输入参数,需要搞清楚为啥这个输入参数为空。

从抛出运行时异常的栈帧往外看一帧,就知道这个输入的内表是通过第291行的execute_feature_controllers生成的,这个方法会通过回调函数的方式,调用我们在Behavior Definition实现的一个get_features方法里:

这里我们就找到了引起这个运行时错误的根源:因为之前Jerry出于测试目的,注释了一段代码,导致get_features被框架回调时,没有返回框架期望的数据:

当Jerry把这段需要的代码重新enable然后设置断点,点击Accept按钮,通过调用栈可以清晰看到框架的execute_feature_controllers是如何调用到我们实现的get_features回调方法的。

"云端ABAP应用调试方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

错误 运行 应用 方法 代码 框架 云端 内容 按钮 数据 环境 调试器 链接 鼠标 开发 期望 输入 事务 位置 佛祖 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深澜 认证服务器 九星创客新零售系统软件开发 成功入侵服务器 储存一体服务器怎么互联 网络安全文明上网班会流程 招行南京分行软件开发岗待遇 当前网络安全防范的措施 互联网科技小程序 大型医院网络安全持续化改进 python存储数据库 班主任网络安全倡议书 美国在线服务器 打游戏服务器不稳 重庆联通服务器类型虚拟主机 联想服务器换新硬盘怎么找不到 服务器客户端管理软件 路由器拨号显示服务器不响应 武装突袭服务器无法被搜到 泰拉瑞亚有多少个服务器 保密单位网络安全管理制度 郑州互联网科技有限公司 青浦区综合网络技术咨询口碑推荐 耐药肝癌细胞数据库 计算机网络技术运维类 服务器被入侵了怎么办 陕西专业网络技术服务产品介绍 正式服集合石是全区全服务器的吗 航运保证网络安全 机房的网络技术所属类型 全球锆石年代学数据库
0