目录
本章内容分为上下两篇,包括验证和替代
- 上篇:验证步骤、传输验证请求、DEBUG
- 下篇:替代步骤、传输替代请求、DEBUG
一、前言:
SAP验证和替代,也是增强的一种类型,不过更加倾向于业务顾问的配置,对业务顾问更加友好,基本用不上开发顾问。
比如说F-02生成会计凭证时,我们需要设置用户输入的某个字段不能为空,我们就可以用验证(有时候也会被叫做确认、校验)来做;如果说我们生成会计凭证时,在某个特定条件下,需要将某个字段赋值为其它内容,我们就可以用替代来做(替代在下一篇讲解)。
验证的大致步骤:
写验证需要在测试机,使用事务代码:GGB0或者OB28,创建验证步骤、先决条件、检验条件、消息内容,然后保存,再通过事务代码GCT9传输请求到正式机,如果需要debug,需要使用=SHCD,进入后台打断点。下面是步骤详解:
二、步骤详解:
-
新建确认:
对于验证的开发,我们可以使用事务代码GGB0或者OB28,GGB0进入的页面如下:
OB28进入的界面如下:
OB28的界面双击进入,就是GGB0的会计凭证的验证界面
GGB0是所有可以增加验证的出口的合集,OB28就是财务会计这一个小模块的出口,下面放个对比图:
所以我们在两个事务代码下进行开发配置都是可以的。找到了做验证的界面,那我们现在就开始进行验证的开发,一般会用到“新建确认”和“新建步骤”两个功能,如下:
“新建确认”比“新建步骤”高一层级。这里我简单展开说一下:
很多公司都是像上图这样配置的校验,这就导致在实际进行校验先决条件填写的时候,需要进行公司代码的区分,如下图所示,这里就表示如果本次凭证行项目公司代码是1070则不进行校验,其余不是1070的公司代码数据全部要进行校验:
因为他们都是使用的同一套“确认”,只能在校验步骤里面进行公司代码的区分。比较好的解决方法是,像集团这种比较特殊的公司,单独使用一套“确认”,其余的子公司再根据自身需求配置一套“确认”。
好了,说回来我们的“新建确认”功能。
我这次做测试,那我就新建一个“确认”层级:TEST,然后再在测试test确认下,新建一个步骤。
如果说咱们接到的开发申请只需要在原有的校验基础上进行修改、新增卡控校验,那就不需要新建确认,直接在原有的“确认”层级下,新建一个步骤就好了。
-
新建步骤:
这个才是我们在实际工作中经常使用的功能
-
先决条件:
新建步骤后,先补充先决条件,这个和我们写代码类似。如果说我们这次新增的验证为:当公司代码为1234,且总账科目为123456789时,订单号不能为空,为空则不能生成会计凭证,并报错“该公司总账科目为123456789时订单号不能为空”,不为空则验证通过。
那么我们的先决条件应该如下写入:
写入代码后,进行语法校验,和我们平时做开发一样,点击上面这个一高一低的按钮,随即系统会给我们提示,状态灯为红色表示我们这次代码写得有问题,需要进行检查。
我这里是科目的字段名称写错了,正确的字段名是HKONT,我写的是HKNOT,修改过后,再次进行校验,则状态灯为绿色表示成功。
代码蓝色应该是表明系统已经识别到这是最新的一段代码,不用管,反正语法不出错就可以进行下一步操作。
-
检查步骤:
数据在满足先决条件后,会进入检查,即“订单号不能为空”,所以我们在检查这里应该写入如下代码:
这里一定要注意,检查的条件是什么就写什么上去,校验A字段不能为空,就写 A <> ‘’;校验A字段必须为空,就写A = ‘’。
表明当公司代码BUKRS为1234,且总账科目HKONT为123456789时,进入该验证,如果订单号AUFNR 不为空则校验通过,如果订单号AUFNR为空则校验不通过,则返回前台报错消息。
-
消息设置:
消息设置可以在SE91里面设置。
(上面这张是我后面补的图,消息类别是ID:ZFI,消息编号007对应的消息文本就是下面007编号;消息编号015对应的就是测试文本)
做完校验之后,一定要保存,保存后,在当前系统环境上面该校验就已经生效了,可以做测试,这时候不会弹出对话框让我们包上请求号的,校验的请求号需要单独生成,是使用GCT9。
三、传输请求
GCT9
包上请求号之后,就可以像平时的请求一样使用SE10或者SE09释放请求号,再使用STMS传输请求到正式机。
四、DEBUG
如果在实际工作中需要调试我们的验证是否生效,我们可以使用下面这种方式进入调试界面。
先进入配置验证的界面,GGB0和OB28都可以,然后用鼠标单击验证名称(一定不要将鼠标放在步骤上面去了,不然进不去哈),再输入 “=SHCD”,点击回车就会进入后台代码。
后台代码如下截图所示:
G_STEP=‘001’,就是验证步骤1的意思。
找到我们自己需要调试的验证步骤,断点就可以打在这些语句上面。
打好断点后,我们再进行前台操作业务,断点就可以直接生效了。
注意哦,验证和替代都是直接对屏幕上输入的值进行卡控校验,所以是比增强要先一步运行的。有时候我们做了替代或是验证而且明明都已经显示成功了,后面对字段的卡控又失效了,很可能就是因为后面的增强或是其它步骤,把验证或替代的逻辑给覆盖掉了,这时候就需要仔细找找找了。
以上就是校验以及传输校验到正式机的步骤,原本准备替代和校验一起写的,但是感觉篇幅过长了,就放在下一篇再写吧~
标签:操作手册,验证,新建,步骤,代码,确认,小白,校验,ABAP From: https://blog.csdn.net/LilySesy/article/details/143500346