接触了S/4HANA项目的过程中,可能会发现一个问题: 在S/4HANA系统里面,表COBK/COEP中的部分凭证编号变成了A00XXXXX00之类带有字母的编号,而不同于以往ECC系统里面的纯数字编号。
这样设置的原因是什么?
为什么有些凭证编号还是数字编号?
这其中和以往ECC系统的区别是什么?
本文中,将对以上几个问题进行阐释。如果能将上述问题都研究透彻,那么对于S/4 HANA系统和以往ECC系统在CO凭证管理方面的区别,都会比较了解了。同时,这也可以作为了解S/4HANA Finance的一个很好的切人点。
稍微了解过S/4HANA的朋友应该都知道,在S/4HANA系统里面,将FI凭证和CO凭证都整合在表ACDOCA里面了。
但是这里所说的CO凭证,指的仅仅是值类型等于4的CO凭证(COEP-WRTTP=4)。至于值类型不等于4的凭证,还和以往的ECC系统一样,没有变化。基于此,可以直接检查表COEP,查看值类型,如果数字编号凭证的值类型不等于4(COEP-WRTTP<>4),即该凭证为非实绩值(Actual Value)凭证,凭证管理方式和编号方式还和以往ECC系统一样,也就可以解释为什么尚且有数字编号的凭证了。
还有一部分凭证,值类型也等于4,比如在KB*1N过账的凭证(见下图),这一类型的CO凭证,也和以往的ECC系统一样,进行数字编号。这里就引出另外一个知识点: Prima Nota。 关于Prima Nota可以参照下面一句话:For classic(manual) CO posting, the Prima Nota is still written totable COEP. The corresponding journal entries are written to table ACDOCA. APrima Nota is written as well in cases, where "CO" is triggered viaBAPI interface (AWTYP <> AFRU. CATS) 。 这也就解释了剩下的数字凭证编号的由来。
介绍完上述两种CO凭证数字编号的情况,剩下的是非数字编号的情况。在介绍非数字编号的程序逻辑之前,需要对表COEP和表ACDOCA如何mapping进行一个简单的说明,前面提到,在COEP和ACDOCA统合之后,actualposting直接写到表ACDOCA里面了,同样的值如果再写到COEP里面,显然就是冗余浪费空间了。但是为什么我们依然可以通过COEP看到想要的所有数据,下图中就很明白的解释了这种数据获取逻辑:
凭证编号A00XXXXX00到底是怎么编出来的?为了更好的理解此问题,通过debug来看一下程序的逻辑。首先,程序会去查看numberrange object ACDOCA_AUX(可以在SNRO里面查看),ACDOCA_AUX通常都会是一个带buffering的编号对象。通过函数NUMBER_GET_NEXT得到一个12位数的数据编号,再通过方法CL_FINS_ACDOC_AUXILIARY_DOCNO =>transform_num12_to_char08 将得到的12位数字编号转换成带字母的8位编号,最后末尾00也就变成了A00XXXXX00, so easy !
SAP S/4HANA产品介绍:
SAP S/4HANA 是SAP 面向数字商务推出的实时ERP 套件,构建于我们的高级内存计算平台SAP HANA 之上,通过SAP Fiori 提供个性化的消费者级用户体验。SAP S/4HANA 支持云部署和企业预置部署模式,能推动各个行业、各种规模的企业在各条业务线快速实现价值。
如需了解更多可拨打热线咨询:400-850-7988
点击了解>>工博科技
客户案例>>客户案例