SAP那些事-实战篇-2-会计凭证确认和替代

如果您觉得这篇文章对你所有帮助的话,您的顺手点赞和转发将是对作者持续发文的重要动力,您的支持和鼓励很重要!


所有文章在公众号“MZ信息化咨询杂谈”同步更新!​



​郑重声明:本博客所发文章全部为原创,其他地方所看到同样文章如无授权,均为盗用!以下为本篇正文(文章是多年以来积累所写,以前主要发布于知乎,后续陆续发布到此博客):​


今天(此处的今天已是好多年前的某天)来和大家聊一聊SAP中确认和替代的问题。


首先呢,我们要了解,确认和替代本质其实是把需要通过写程序完成的一些业务逻辑通过设置或者说配置完成,这是SAP的一大特点。


也就是尽量不通过程序代码实现业务逻辑,而是通过配置方式实现,从广义上说,确认和替代也是配置的一种形式。


  还有一点呢,就是SAP中不仅仅是财务模块可以进行确认和替代,其他模块也可以使用,比如PS模块,不过总的来说,在财务模块用应用比较广泛。


 那么确认和替代的区别是什么呢?所谓确认就是检查业务逻辑是否为真,或者说我们需要设置一个业务逻辑,让系统按照这个逻辑进行检查,如果不满足,则系统给出警告消息或者错误消息,警告消息则提醒用户确认这个输入是否准确,错误消息则表示这个输入不允许。


比如我们经常可以使用确认检查某些凭证字段是否必输。当然,有的朋友会说,通过字段状态组也可以实现检查某些凭证字段是否必输呀。是的,不过如果在不同公司下,字段状态组统一设置,对同一个字段,有的公司是必输,有的公司则是可选,那么就可以在字段状态组层面设置为可选,然后通过确认对某个公司使用确认的方式设置为必输。


所谓替代,就是根据一定的业务逻辑替代原来过账的数据,比如我们经常替代一些文本到凭证摘要中,因为SAP中很多业务自动产生的凭证是没有摘要的。


  贴图比较麻烦(还是“懒”作怪:)),我们还是以问答的方式写完这个帖子吧,以下的问答都是项目中可能经常遇到的一些问题,供大家参考。


1.     如何查询所有的确认和替代?

答:GGB0可查询所有可进行确认的业务模块,GGB1可查询所有可进行替代的业务模块。


2.     如果要在确认中使用“非”条件逻辑如何写语句?

答:如果要使用“非”条件逻辑,需要在语句前写“NOT”,比如检查条件哦按为凭证类型不等于“SA”,那么需要写“NOT BKPF-BLART = ‘SA’”。


3.     如果要在确认中使用“集”如何操作?

答:首先GS01创建集,然后在确认步骤中使用IN后面跟集的名称来使用集,比如检查条件为多个会计科目,则GS01创建会计科目的集,假设集的名字为ZKJKM,然后在确认步骤中写语句“BSEG-HKONT IN ZKJKM”。


4.     如果要在确认中使用前几位字符的判断语句,如何编写?

答:格式为:字段加冒号加第几位数字开始加冒号加第几位数字结束,比如要检查会计科目的前四位,则语句为“BSEG-HKONT :1-4:”。

注意:使用时注意科目是否有前置零,因为SAP默认科目长度为10位,如果只用了8位,那么检查前四位就要考虑前置零,应写为“BSEG-HKONT :1-6 = ‘00XXXX’或BSEG-HKONT :3-6 = ‘XXXX’(XXXX表示科目的前四位)。



 

5.     确认中的判断条件为“真”还是“假”?

答:判断条件一定为“真”,即需要检查的结果是什么,就写什么结果,比如需要检查凭证类型为SA,则凭证摘要不为空,则检查条件为“BKPF-BLART = ‘SA’”,判断条件为“BKPF-BKTXT<> ‘’”。


6.     如何修改确认中的消息类?

答:在创建确认时会默认一个消息类,这个消息类会被后续的步骤一起使用,如果要修改消息类,需要选择最上层的确认比如“财务会计-行项目”,然后选择菜单“环境-修改消息”,或者执行程序“RGUGBR28”修改消息类。


7.     确认和替代的程序是哪个?

答:GCX2可查看标准的确认和替代的程序,标准确认程序为RGGBR000,标准替代的程序为RGGBS000,如果要使用出口进行确认和替代,一般拷贝标准程序为Z开头程序,然后在GCX2中分配相应的应用区域,因为如果需要标准程序,需要向SAP申请Access Key。


8.     替代和确认相关的表有哪些?

答:主要是GB开头的表,重要的比如GB01,这个表的字段决定了某个凭证字段是否可进行替代,比如会计科目(BSEG-HKONT)默认是不允许替代的,需要把Exclude的标识去掉,才可以进行替代。另外,GB90是用来存储规则的表。


9.     确认和替代中的Rule(规则)的作用是什么?

答:规则的作用就是反复被使用的一些业务逻辑,可使用在多个确认或替代步骤中,可反复被调用。类似于一个公用的函数。


10.  有的时候确认或替代不起作用怎么办?

答:可能的原因有,确认中的字段内容不符合长度要求,比如科目,有的时候需要填充前置0,要么是GB01中的字段不允许替代。

如果确认和替代步骤没有问题,则考虑执行程序“RGUGBR00”和“RGUGBR01”重新生成确认和替代程序。


11.  CO产生的FICO统驭凭证校验起作用吗?

答:目前测试来看,不起作用,只有从其他模块过账产生FI凭证或者直接录入FI凭证,校验才会起作用,反过来从CO进行操作产生FI凭证,校验不起作用。


12.  替代中的全局变量如何使用?

在集成凭证的替代时,可使用全局变量来实现如果无法根据已有的凭证信息进行替代的情况,比如在销售开票和会计凭证的集成替代中,可以在销售开票的增强出口RV60AFZZ中写一段逻辑,把销售发票中的某个字段先保存在全局变量中,(代码示例:  EXPORT LV_PLTYP TO MEMORY ID 'LV_KUNNR'.),然后在会计凭证的替代中再使用此全局变量,然后进行替代。相当于用全局变量作为一个数据的中转载体。


最后,在S4版本中,大家需要注意,因为传统的确认、替代是针对BKPF/BSEG表的,而S4中,会计凭证的基础表已变为ACDOCA,目前有些凭证是不更新BSEG,直接更新BKPF/ACDOCA的,比如折旧凭证、外币评估凭证,我们对这些凭证使用确认、替代就不会起作用。需要通过其他的BADI增强实现。

你可能感兴趣的:(MZ,SAP那些事,sap,制造)