如何获取ABAP程序执行的调用堆栈 [SYSTEM_CALLSTACK]详解编程语言
编程语言 如何 详解 获取 调用 system ABAP 堆栈
2023-06-13 09:11:51 时间
介绍一个有趣的函数SYSTEM_CALLSTACK(),这个函数可以得到abap程序执行的堆栈,包括事件(event),form。。。
例子代码如下:
REPORT ztest_stack. DATA: num1 TYPE i, num2 TYPE i, sum TYPE i. num1 = 2. num2 = 4. PERFORM frm_call. * ---------------------------------------------------------------------* * Form frm_call * ---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM frm_call. sum = num1 + num2. PERFORM frm_output. ENDFORM. "frm_call * ---------------------------------------------------------------------* * Form frm_output * ---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM frm_output. FIELD-SYMBOLS: fs TYPE any. DATA: l_cstack_tab TYPE sys_callst, ls_cstack_tab LIKE LINE OF l_cstack_tab. WRITE: / Sum of, num1, and, num2, is, sum. CALL FUNCTION SYSTEM_CALLSTACK IMPORTING et_callstack = l_cstack_tab. " internal table * l_cstack_tab 里就是abap的调用堆栈 WRITE: sy-uline. LOOP AT l_cstack_tab INTO ls_cstack_tab. WRITE: / sy-tabix, ls_cstack_tab-eventtype, ls_cstack_tab-eventname. CLEAR: ls_cstack_tab. ENDLOOP. ENDFORM. "frm_output
执行结果,先触发事件 start-of-selection,然后调用frm_call,最后是frm_output.
img >
以上
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19217.html
cjava相关文章
- 由浅入深理解Java线程池及线程池的如何使用详解编程语言
- kafka源码解析之十六生产者流程(客户端如何向topic发送数据)详解编程语言
- 如何引入一个Schema 文件详解编程语言
- Java如何对ArrayList里的元素排序详解编程语言
- Redis如何判断set/get是否为原子操作详解编程语言
- 如何使用Python操作SQLite详解编程语言
- 如何编写更好的java单元测试的7个技巧详解编程语言
- 如何使用java将文件转为字节数组详解编程语言
- 如何使用java生成公钥和私钥详解编程语言
- 如何正确实现Java中的hashCode方法详解编程语言
- 一个div如何随着鼠标的移动而移动详解编程语言
- 如何使用JavaScript对表单中的邮箱做验证详解编程语言
- 如何对JAVASCRIPT中数组进行操作详解编程语言
- java 如何在pdf中生成表格详解编程语言
- 如何给java 中的String类型数据添加双引号详解编程语言
- Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源详解编程语言
- [代码]如何取得表/结构的列名字(cl_abap_structdescr)详解编程语言
- ABAP语言中如何定义嵌套内表(nested internal table)详解编程语言
- 如何根据方法名(method)查找所在类(class)-SE84详解编程语言
- [BAPI]如何修改工单状态-BAPI_ALM_ORDER_MAINTAIN详解编程语言
- 如何在物料主数据(MM01/MM02/MM03)中创建屏幕增强详解编程语言
- [BAPI]读取设备用户状态和系统状态-BAPI_EQUI_GETSTATUS详解编程语言
- 关于如何优雅的停止线程等问题详解编程语言
- 如何修改 SAP 登录后的背景图片详解编程语言
- 如何访问SAP的Domain的Value Range详解编程语言