如何调试事务代码内部通过RFC提交到后台执行的程序/函数

如何调试事务代码内部通过RFC提交到后台执行的程序/函数

 

http://mp.weixin.qq.com/s?__biz=MjM5OTI2MjgyMA==&mid=2651785818&idx=2&sn=e79d38d0dc34688e3eb926c26f59d0dc&chksm=bcc585518bb20c4771d1fbfb3a00547e41921b1c524921a93ad3ac13ab3ff04d97e77558e7da&mpshare=1&scene=5&srcid=121287vtUXgDW1Coc8XJhxp6#rd

 

一些事务代码在内部通过RFC提交一个程序/函数到后台执行,在此场景下,如果想调试那一段程序/函数,一般通用的debug方式往往力不从心,因为点击F5键的话,debugger不会进入,并直接跳到下一行。以下图为例,可执行MRP的函数 MRP_KD_AUFTRAG_RFC 在事务代码VA01通过RFC提交到后台执行,为了查明此函数如何执行MRP, 点击F5键希望进入函数里面的源代码,但是debugger直接跳到函数的下一行代码 endloop,即,无法进入函数MRP_KD_AUFTRAG_RFC



如何调试事务代码内部通过RFC提交到后台执行的程序/函数

 

这种情况下,可采取以下方法. (RFC 一般可通过两种方式提交,一种是 queue RFC, 被提交的程序/函数通过事务代码 SMQ1SMQ2顺序执行并且可以在那些事务代码里debug. 另外一种是 transactional RFC,就是我们在此要讨论的)



刚进入debugger后,到下图显示的菜单 (这是新一代debugger)



如何调试事务代码内部通过RFC提交到后台执行的程序/函数



在弹出的对话框里选择下图显示的选项后,点击F8键一直执行到结束。



如何调试事务代码内部通过RFC提交到后台执行的程序/函数

(在前一代debugger, 到菜单'Settings' > 'Display and change all', 选择 'In background task: Do not process'去触发相同功能。 菜单项 'Display and change all' 只有当 debugger 进入到屏幕的PBO Module子程序后才出现)



现在,因为选择了菜单里的上述项目,即使事务代码已经执行完,函数MRP_KD_AUFTRAG_RFC并没有被执行,而是如下图暂挂到事务代码SM58等待用户手动执行并可以在那里debug



如何调试事务代码内部通过RFC提交到后台执行的程序/函数

用光标选择相关行后,到下图显示的菜单,点击‘Debug LUW’, 就可以debug函数MRP_KD_AUFTRAG_RFC



如何调试事务代码内部通过RFC提交到后台执行的程序/函数



 

 

 

上一篇:Linux Shell脚本测试案例(三)


下一篇:空口资源 | 带你读《5G 空口设计与实践进阶 》之十四