ABAP小白开发操作手册+(十)验证和替代——下
目录
一、前言
二、替代步骤详解
1、新建替换
2、新建步骤
3、创建先决条件
4、补充替换
5、ZRGGBS000
三、传输请求
四、DEBUG
一、前言
本章内容分为上下两篇,包括验证和替代,
上篇:验证步骤、传输验证请求、DEBUG
下篇:替代步骤、传输替代请求、DEBUG
这是下篇,关于替代的一个文章,替代也有被称为替换,意思是一样的,其实网站上也有很多前辈已经写下了替代的很多相关知识,因为替代这种开发类型还是比较常见的,不像上篇的验证那样,网上的知识点很分散。但是我想着上一篇的验证都已经写出来了,并且收到了大家的很多好评与期待,所以我还是将替代给写下来了,和上篇验证的文章思路差不多,希望能够对大家有帮助。
替代顾名思义就是将某个字段替换为其它值的意思,可以是常量,也可以是另一个字段的值,也可以是空值。需要注意的是,抬头里面可以把BKPF表中的字段进行替代,行项目里面可以替代BKPF和BSEG的字段,表示我们在写先决条件的时候,必须使用BKPF\BSEG的字段,如果出现了其它表是会报错的,另外系统变量SYST结构里面的字段也是可以使用的,而其它表不行。
二、替代步骤详解
写替代需要在测试环境,使用事务代码GGB1或者OBBH,创建替代步骤,补充先决条件、如果是替代为常量就在配置里面写上就可以,如果是比较复杂的功能就在ZRGGBS000里面做逻辑更改,然后激活ZRGGBS000,再通过事务代码GCT0传输请求到正式机,如果需要DEBUG替代,需要使用=SHDB,进入后台打断点,也可以SE38进入程序ZRGGBS000打断点。下面是步骤详解:
(验证:使用事务代码:GGB0或者OB28,创建验证步骤、先决条件、检验条件、消息内容,然后保存,再通过事务代码GCT9传输请求到正式机,如果需要debug验证,需要使用=SHCD,进入后台打断点。我放在一起,大家可以对比一下替代和验证的不同与相似)
1、新建替换
使用GGB1或者OBBH,进入就可以进入我们平时创建替代的地方,有三个新建的按钮,分别是新建替换,新建步骤,新建规则。如果是一个新公司完全没有做过替代,那么我们需要新建替换;如果是在已经做过的地方新增一个替代,那么我们就直接新建一个步骤就可以了;新建规则基本上没有使用。
这里我就不深入讲解创建替换的步骤了,基本上大家进入公司都不会是啥都没有的情况。QAQ
2、新建步骤
新建步骤这是最常使用的操作,一般提到说做一个替代,那就是创建一个新的步骤了。
如上图我们可以看到在行项目里面已经存在了很多步骤,如果说我们这次是需要替换凭证行项目(就是BSEG表里的某个值),那么我们就在这个目录下面创建一个新的步骤。点击创建步骤后,会出现如下图所示的一个窗口,是让我们选择需要替换值的字段,我们选择后打勾就可以了。
当然,也有某个字段不存在这个弹框里面的情况出现,如下图:
这时候我们就使用SM30,维护视图VWTYGB01,进入GB01的维护界面,找到对应的表和字段,把字段的勾勾取消掉然后保存,这个字段就被放出来了,就可以在替代里面参与使用。
紧接着我们继续在创建替代的界面进行字段选择。选择完字段后,会继续弹框如下图,让我们选择是替代为常量还是退出还是字段分配。
常量:我们需要将该字段替换为某个固定的值,或者为空,那么就选择常量这个选项;
退出:如果逻辑比较复杂,该字段替换的值需要由某些复杂的语句进行查找,那么就选择退出这个选项;
字段分配:如果需要将该字段替换为BSEG或者BKPF的另外一个字段的值,那么就选择字段分配这个选项。
选择完毕后,我们点勾,就会自动生成新的步骤序号,如下:
我这里是选择了贸易伙伴这个字段进行测试,替代选择的是退出,方便我后面讲解ZRGGBS000,大家呢可以根据自己的需求进行选择。
3、创建先决条件
新建步骤后,先补充先决条件,这个和我们写代码类似。如果说我们这次新增的替代逻辑为:当公司为AA时,将贸易伙伴替代为BB。
那么我们的先决条件应该如下写入:
写完后,我们点击语法检查按钮进行一下语法检查,语法无误时,代码会自动变成蓝色。这个先决条件就表明,当公司代码BUKRS为AA时,会进入该替代。
4、补充替换
当先决条件写完后,我们转换到下一个步骤,即替换,如下图所示,因为我之前选择的是“退出”选项,我这里的替代者就是“退出”。
如果是常量或者字段分配就直接填写对应的值和字段就可以了。我这里是退出,那么我需要将ZRGGBS000里面我写的替代退出的编号写上来(注意:要先编写ZRGGBS000的代码激活,然后再激活程序RGUGBR00,然后再返回这里的替换配置,才可以保存成功)。我又添加了两个字段,如下所示:
5、ZRGGBS000
我们看到贸易伙伴退出这里,我写的是Z014,这个编号怎么来的呢?我们一步一步来,首先使用SE38,打开ZRGGBS000这个程序,进入修改,仿照以前别人的代码^~^把退出的编号写上来,这里我的编号是Z014,TEXT可以直接写中文,如下:
然后再新建一个子例程,子例程的名字就和我们的退出的编号一样,叫Z014,然后把我们的逻辑写上去,当公司代码为AA时,贸易伙伴为BB。然后检查语法,激活代码。当然,如果我们前面已经写了先决条件,那这里的代码可以不用写,但是写上会比较保险,在后面运维的时候也更加容易读懂代码,如下:
激活完ZRGGBS000之后还没有完,我们再使用SE38,运行程序RGUGBR00,可以像我下面这样勾选,也可以根据自己的需求勾选,再执行。
这样,我们就可以在搜索帮助里面找到我们的替换退出的编号Z014了。
不运行RGUGBR00激活替代的话,就会出现如下报错。
最后保存我们的替代就可以了。保存后,在当前系统环境上面该校验就已经生效了,可以做测试,这时候不会弹出对话框让我们包上请求号的,替代的请求号和验证一样,都需要单独生成,是使用GC10。
三、传输请求
传输请求就使用GCT0,和传输验证(GCT9)的方式大同小异,如下:
如下图,使用搜索帮助,就是空空旁边重叠的两个小方块,找到我们的那个替代写上去,然后把这些东西全都选上,不容易漏掉,点击执行那个按钮,就会弹出请求框,我们填写相应的信息就可以生成请求号了。然后就和普通的请求号一样用SE09/SE10+STMS进行传输就可以传输到正式环境了。
四、DEBUG
最后就是我们的DEBUG的步骤,也是和验证一样,先进入这个替代的配置界面,使用GGB1和OBBH都可以,用鼠标单击替代名称(一定不要将鼠标放在步骤上面去了,不然进不去哈),再输入 “=SHCB”,点击回车就会进入后台代码。(要注意区别哦,验证的话就是输入的“=SHCD”)
下面就是进入替代后的源代码,注意,这里的代码相当于是在执行先决条件,我们判断先决条件是否满足,就可以在这里打断点,如下,断点打在STEP的旁边就可以,执行了这里才会执行我们ZRGGBS000的代码,要先决条件通过了才会进入替换退出的代码。
而如果我们要判断替代的逻辑是否正确,我们应该在ZRGGBS000这里面的相应子例程打断点。
如果不确定的话,就每个地方都打上断点。
最后就是一个小点需要注意,我们在实际工作中可以发现,其实做凭证时,会很多替代和增强,有时候可能会互相影响,如果说替代没有成功,那么可能是后面的替代把前面的替代逻辑给替代了(这个博主又在说绕口令了),也有可能是增强把替代给覆盖了。因为系统的执行顺序是,先执行替代的代码,再执行增强的代码;替代执行的顺序呢则是从上往下一个步骤一个步骤进行替代,所以这个需要注意,在找不到原因的时候可以多看看是不是别的地方覆盖掉了我们的代码。
好啦,以上就是本次替代的全部内容,希望对大家有所帮助,大家可以和上篇验证的文章一起阅读,链接放在这里:
ABAP小白开发操作手册+(十)验证和替代——上_abap 替代-CSDN博客
https://blog.csdn.net/LilySesy/article/details/143500346
然后就是小白操作手册的其它文章链接:
ABAP小白开发操作手册_LilySesy的博客-CSDN博客
ABAP小白开发操作手册+前导文_abap开发-CSDN博客
ABAP小白开发操作手册+(一)给ALV报表添加字段_abap 报表增加字段并在alv中显示-CSDN博客
ABAP小白开发操作手册+(二)新增ALV报表_abap报表开发-CSDN博客
ABAP小白开发操作手册+(三)给接口添加字段-CSDN博客
ABAP小白开发操作手册+(四)新增RFC接口_abap开发-CSDN博客
ABAP小白开发操作手册+(五)新增批导程序_abap教程-CSDN博客
ABAP小白开发操作手册+(六)创建维护视图及事件_abap 维护视图-CSDN博客
ABAP小白开发操作手册+(七)调用BDC_abap bdc-CSDN博客
ABAP小白开发操作手册+(八)SMARTFORMS打印-CSDN博客
ABAP小白开发操作手册+(九)ABAP调用http_abap教程-CSDN博客
ABAP小白开发操作手册+(十)验证和替代——上_abap 替代-CSDN博客
ABAP小白开发操作手册+(十一)创建Internet服务将事务代码封装成http发布_abap开发入门-CSDN博客
ABAP小白开发操作手册+(十二)JOB_sap job-CSDN博客