ABAP 后台程序BACKGROUND JOB DEBUG的终极大法(可修改数据并反映到结果当中)
在项目中对程序进行白盒测试时,为了将各个测试点都覆盖到,有时候需要在DEBUG中修改数据。
前台程序毋庸置疑,直接在程序中打断点进入DEBUG模式,对于需要修改的变量直接改动即可。
但是后台程序在跑JOB的时候该如何进入到DEBUG模式、并通过修改变量而得到想要的数据or结果呢?
在百度上搜索并没有找到完美的解决方案,去浏览了一下SAP QA社区里面的下面的回答,并整理总结一下项目上get的经验与大家分享。
以下分享三种后台程序DEBUG的方法,其中NO.1大法是可以用来修改数据的,NO.2/3是其他两种比较常见的DEBUG方式。
目录
NO.1 可以修改数据并反应到JOB结果中的DEBUG大法!
STEP 1: 准备工作
STEP 2: 定义JOB (TCODE:SM36)
STEP 3: 结果查看 (T-CODE: SM37)
NO.2 JDBG大法
STEP 1: 选中作业
STEP 2: F7找自己的代码
NO.3 在JOB LOG中回到程序DEBUG界面
STEP 1: 选中作业
STEP 2: DEBUG
NO.1 可以修改数据并反应到JOB结果中的DEBUG大法!
STEP 1: 准备工作
1-1 在程序中设置外部断点(带小人脑袋的那个)
1-2 在选择画面上输入信息,并保存一个Varient变式,作为后续后台执行时的选择画面条件
STEP 2: 定义JOB (TCODE:SM36)
2-1 输入自定义的JOB名称之后点击保存
2-2 保存后会自动弹窗,让用户自定义步骤。在步骤的Name中输入'BTCLOOP',之后点击保存
2-3 保存后①点击新建按钮后会弹出右边框;②在STEP2的名称中填入程序名,在变式中填入刚刚保存的选择画面Varient;③保存
2-4 点击返回
得到以下结果
2-5 点击开始条件Start Condition,选择立刻执行并保存
2-6 点击个人作业Own Jobs
2-7 在自己的JOB LIST中选中刚刚定义的JOB,这部分需要强调一点的是需要注意一下此时JOB的STATUS状态,如果是Scheduled的状态,需要将其Release成Active状态(要Release两遍,第一遍成为Ready状态)。在确保状态是执行中的状态时点击应用程序服务器Application Servers
2-8 双击进入该Server
2-9 选中刚刚定义的BTCLOOP这行,点击菜单栏的管理Administration-程序Program-调试Debugging
2-10 首先会进入开始定义的第一步BTCLOOP循环,这里要手动将I参数改成0以外的其他值,防止死循环。
2-11 此时点击F8,锵锵锵~~~ 就会进入之前在程序中打的外部断点的位置,然后按需修改参数进行测试就可以啦。跑完程序后会退回到2-9的界面,此时去SM37查看就能找到刚刚跑完的JOB。
例如我在这里想要测试主数据取得不到的场合,把GT_A表格清空,并确认SY-BATCH的确为后台执行,然后F8跑出去。
STEP 3: 结果查看 (T-CODE: SM37)
从这里之后的操作与正常查看后台JOB的结果没有不同,点击可查看JOB LOG, Spool, Step等等。
Duration就是程序执行&Debug总共花的时间。有些程序有执行日期/时间的取得逻辑,在进行DEBUG操作时,这部分时间需要注意一下。
PS:如果想再次以这种方法跑一次后台Debug,则退回到2-1的屏幕中,再次点击保存,之后的步骤直接跳到2-5。【这种方法定义的JOB在退掉SM36之后需要重新编辑STEP步骤2-2~2-4】
NO.2 JDBG大法
我在网络上看到有很多前辈推荐JDBG的DEBUG大法,这种方法非常便捷,但是个人觉得有一定的局限性。
前提:用后台跑了一遍JOB A(随便起个名字方便区分)
问题1:这种方法仅仅可以将程序按照JOB A执行的选择画面条件再次执行一次,并不会跑出结果,只是给你看一下过程。
问题2:假如在跑完JOB A这次之后更改了代码逻辑,这样DEBUG进去,会按照新的代码逻辑走,并不能完全还原JOB A那次的过程。(我之前以为会是那种,在系统中自动保存了跑JOB A那次的程序版本,类似一个程序快照的东西。哈哈 后来发现我想多了)
优势:这种方法的优势在于,跑完JOB A之后直接DEBUG进去可以检查程序逻辑,找问题所在。
下面简单介绍一下这种方法如何实现,网络上已经有很多个教学版本了。
STEP 1: 选中作业
1-1 T-CODE SM37勾选中作业,并在T-CODE栏处输入JDBG后按回车
STEP 2: F7找自己的代码
2-1 回车进去后会跑到系统代码里面,此时慢慢按几次F7就能跳转到自己的代码中(不同的系统按F7的次数不同,有时还会跳转回第一种方法的2-10界面,需要手动改I值防止死循环)
跳回自己的代码中啦
NO.3 在JOB LOG中回到程序DEBUG界面
第三种方法也是之前我在网络上搜索到的教程,不过这种方法在我看来无异于在SM38重新执行一次程序,没有什么特殊的优势。
STEP 1: 选中作业
1-1 勾选中作业后点击STEP步骤
1-2 光标选中一个步骤之后(有红框),点击上方的转到Goto-程序Program
STEP 2: DEBUG
2-1 ①跳转到自己的程序后,点击F8执行。
②在选择画面中输入完条件后,再次点击执行,就会进入到DEBUG模式当中(记得提前设断点)。
以上就是几种常见的后台JOB的DEBUG方式,主要还是想跟大家分享第一种可以修改数据的方法。 文中如有表述不准确的地方,欢迎各位前辈指正。/鞠躬
ABAP 后台程序BACKGROUND JOB DEBUG的终极大法(可修改数据并反映到结果当中)相关推荐
- 用JQuery中的Ajax方法获取web service等后台程序中的方法
用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...
- csdn的blog后台程序的导航菜单的实现
研究了一下csdn的 blog后台程序的导航菜单的实现,其特点是每个导航菜单项的宽度不一样,所以,被用作导航条背景的图片不能是一个单一固定长度的图片,所以,csdn采用了一种称之为滑动门的技术,每个菜 ...
- vhm在服务器上创建虚拟机,一步步实现ABAP后台导入EXCEL到数据库【1】
在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...
- 检查 ABAP/4 程序用户的 权限
要在 ABAP/4 程序中检查 用户权限, 请使用 AUTHORITY-CHECK 语句,如下 所示:语法 AUTHORITY-CHECK OBJECT '<object>' ...
- SAP ABAP CDS view里的注解在ABAP后台是如何被解析的?
我们在ABAP Development Tool里编写SAP CDS view,为视图维护这些以@开头的注解,同Java Spring里广泛应用的annotation一样,都是一种为developme ...
- 利用VSCode阅读OpenFOAM源代码及其调试Debug【终极总结篇】
利用VSCode阅读OpenFOAM源代码及其调试Debug[终极总结篇] 1. 本文总结了Win10系统中利用VSCode连接wsl或远程服务器,阅读OF源代码及其调试Debug的方法(不仅适用于W ...
- django源码简析——后台程序入口
django源码简析--后台程序入口 这一年一直在用云笔记,平时记录一些tips或者问题很方便,所以也就不再用博客进行记录,还是想把最近学习到的一些东西和大家作以分享,也能够对自己做一个总结.工作中主 ...
- C++ 后台程序实时性能监控
面对的问题: 做后台程序经常会被问一句话,你的程序能撑多少人.一般官方一点的回答是这个得根据实际情况而定.实际上后台程序的性能是可以被量化的.我们开发的每一个服务器程序,对性能都非常有底,以为我们有数 ...
- bash 后台程序_如何向您的Bash程序添加帮助工具
bash 后台程序 在本系列的第一篇文章中,您创建了一个很小的单行Bash脚本,并探讨了创建Shell脚本的原因,以及为什么它们是系统管理员而非编译程序最有效的选择. 在第二篇文章中 ,您开始了创建一 ...
最新文章
- Git远程仓库Github
- Linux中source命令的用法
- 关于坐标系的那些事儿!(转)
- [转]侯捷对进入IT行业的年轻人的建议
- QT的QImage类的使用
- jakob slam_Jakob Nielsen针对用户界面设计的第二种可用性启发法
- java erlang_Java开发人员的Erlang
- MinIO存储桶通知指南 ​​​​​​​
- vista系统服务器,Vista系统中怎么设置IIS服务器
- 吃瓜笔记 | Momenta王晋玮:让深度学习更高效运行的两个视角
- 远端异步调用事件结果
- 分析 : BSOD案例 2013-0821
- java实体类中的枚举类型_Java枚举类的使用
- vue-video-player,切换页面时控制台报错:TypeError: this.el_.vjs_getProperty is not a function解决方案
- FFmpeg进阶: 给视频添加背景音乐
- 获取公众号关注页面链接
- java容器~面试知识点整理
- S-function入门及案例详解(2)——S-function基本案例介绍
- 【数据结构】红黑树前置知识——4阶B树
- CSS3案例之安卓机器人图形
热门文章
- 网易官宣:免费培养30名游戏开发人才!
- 一个人做饭简单食谱_如何通过两个简单的寿司布局食谱来理解CSS浮动
- 计算机ppt继续教育,word、excel、PPT继续教育计算机第四次.doc
- QQ活动助手,通过作者也就是我搜集各种QQ有关的活动,整理成软件的形式让大伙参加,实现一键参与和抽奖的一款小软件。。O(∩_∩)O~不过涉及的东西还是挺多的
- Android 10.0 Launcher3 电话和短信app图标显示未读短信和未接来电的条数
- [Python嗯~机器学习]---对于音乐推荐引擎的基本理解
- 蓝桥杯真题 包子凑数 c++代码实现 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 N 种蒸笼,其中第 i种蒸笼恰好能放 Ai个包子。
- 大气 html5 企业网站,高端大气HTML5科技企业网站响应式网站带后台
- lol服服务器维护算逃跑吗,英雄联盟掉线几分钟算逃跑
- ldap管理linux用户,ldap服务器用户及权限管理控制linux操作系统 -电脑资料