SAP ABAP 断点调试(四):一次完整的 Debug 需求案例演示 您所在的位置:网站首页 卡西诺手表的调试方法视频教程 SAP ABAP 断点调试(四):一次完整的 Debug 需求案例演示

SAP ABAP 断点调试(四):一次完整的 Debug 需求案例演示

2024-07-02 03:36| 来源: 网络整理| 查看: 265

SAP ABAP 断点调试(四):一次完整的 Debug 需求案例演示

简介: Debug 是对程序运行时环境的跟踪和观测,Debug 调试是开发者需要掌握的核心技能,是解决疑难杂症的金钥匙。这是 SAP ABAP 断点调试的第四篇文章,通过一次完整的 Debug 需求案例演示,贯穿需求、过程和成果输出。

关键字:SAP ABAP Debug 断点调试 BREAK

文章目录 SAP ABAP 断点调试(四):一次完整的 Debug 需求案例演示1 Debug 需求2 Debug 过程3 Debug 成果其他

SAP ABAP 断点调试(一):Debug 基础知识 SAP ABAP 断点调试(二):ABAP Debugger(调试器) SAP ABAP 断点调试(三):经典 Debug 场景 SAP ABAP 断点调试(四):一次完整的 Debug 需求案例演示

1 Debug 需求 需求描述:在动态编程中,需要主动根据搜索帮助选择一个子例程,以执行目标功能。需求示例,如下图所示, 在这里插入图片描述 2 Debug 过程 (1)FORM 子例程清单没有找到实体存储。(2)在程序字段上按 F1,进入技术信息, 在这里插入图片描述(3)可以找到 POV(process on value-request) 实现, 在这里插入图片描述(4)继续深入堆栈查找关键实现, 在这里插入图片描述(5)找到函数F4_PROG_SUBPROGRAM, 在这里插入图片描述(6)SE37 测试函数F4_PROG_SUBPROGRAM, 在这里插入图片描述 测试通过!(7)如果还想继续深入,可以通过 DEBUG 函数F4_PROG_SUBPROGRAM,最终会来到这里, 在这里插入图片描述(8)继续 F5 深入,又跨程序调用了, 在这里插入图片描述 子例程列表被存放在内表REPOSITORY[],进入 PERFORM driver_list_output 后发现已经是对数据的输出了,那么我们返回往前找。(9)创建监控点(Watchpoint)查找内表REPOSITORY[]的值变化, 在这里插入图片描述 注意创建监控点(Watchpoint)的程序名称和变量需要被程序加载后才能创建成功。(10)按 F8 跟踪,得到答案,函数WB_TREE_GET_OBJECTS。 在这里插入图片描述 在这里插入图片描述(11)测试函数 WB_TREE_GET_OBJECTS, 在这里插入图片描述 测试通过! 3 Debug 成果

至此,一共有三种方法可以获得 FORM 子例程清单,对应都可以用来开发搜索帮助。

(1)使用函数 VALUE_REQUEST_READ', l_prg = l_field-fieldvalue. CALL FUNCTION 'VALUE_REQUEST_READ' EXPORTING dynpfield = 'DYNP_VARS-SET_BP-FORM' dynpname = sy-dynnr progname = l_repid value_type = 'FRM' include = l_prg. (2)使用函数 F4_PROG_SUBPROGRAM, CALL FUNCTION 'F4_PROG_SUBPROGRAM' EXPORTING object = fieldtab-fieldvalue program = programmname IMPORTING RESULT = fieldtab-fieldvalue program = new_progname. (3)函数 WB_TREE_GET_OBJECTS, REFRESH ISCOMPO. CALL FUNCTION 'WB_TREE_GET_OBJECTS' EXPORTING OTYPE = L_TYPE PROGRAM = PROG1 TABLES OLIST = ISCOMPO. * globale Daten selektieren DESCRIBE TABLE KEY2 LINES LINE. IF NOT LINE IS INITIAL. LOOP AT ISCOMPO WHERE NOT NAME IN KEY2. DELETE ISCOMPO. ENDLOOP. ENDIF. LOOP AT ISCOMPO. " Datentabelle füllen MOVE PROG1 TO REPOSITORY-PROGRAM. MOVE ISCOMPO-INCL TO REPOSITORY-INCLUDE. MOVE ISCOMPO-NAME TO REPOSITORY-FORM. APPEND REPOSITORY. ENDLOOP. DESCRIBE TABLE REPOSITORY LINES SY-TABIX. IF SY-TABIX = 0. EXIT. ENDIF. IF SY-TABIX > LOOPC AND LOOPC NE SPACE. L_LOOPC = LOOPC + 1. LOOP AT REPOSITORY FROM L_LOOPC. DELETE REPOSITORY. ENDLOOP. ENDIF. * endif. SORT REPOSITORY BY PROGRAM FORM. 其他

我的微信群、QQ群和其他发布平台。

关于微信群、QQ群和其他发布平台

长期提供开发和运维服务。

关于提供开发和运维服务的详情


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有