如何调试事务代码内部通过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



De.ion: http://mmbiz.qpic.cn/mmbiz_png/MyOJCrxcqF0ur7eLPmrOVyffc6kZHeiaIAfG9uiaf1QqkBLKG6be0bjkcfXl8E6OVdCNZ7G4tibeAO5gkibvB2ia3PA/640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

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



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



De.ion: http://mmbiz.qpic.cn/mmbiz_png/MyOJCrxcqF0ur7eLPmrOVyffc6kZHeiaIRxYFwzZibXFxmnzNDq3m947xc4kwTYKgUsSIYIwSZEKsCGBW1TS4BWQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1



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



De.ion: http://mmbiz.qpic.cn/mmbiz_png/MyOJCrxcqF0ur7eLPmrOVyffc6kZHeiaI5jia3krEibLtH8N5SMJFFVHdA2CWSUBkge436ialbRU9RwCqtToQ17icHw/640?wx_fmt=png&wxfrom=5&wx_lazy=1

(在前一代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



De.ion: http://mmbiz.qpic.cn/mmbiz_png/MyOJCrxcqF0ur7eLPmrOVyffc6kZHeiaINwmvWSbwI4tlE4w5fKPfJqYkRm8pKlnXh8INCsmulyxbrh7O3ciaLDw/640?wx_fmt=png&wxfrom=5&wx_lazy=1

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



De.ion: http://mmbiz.qpic.cn/mmbiz_png/MyOJCrxcqF0ur7eLPmrOVyffc6kZHeiaIfknFWicdWmDvkeN572ic9jgqNLKKRa9pVibWc0OaNsaWib5TQuAxXMWadQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1



 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值