>转自
安全验证 - 知乎
一种不会更新到ACDOCA中的财务凭证_noted item sap_SAP-nkGavin的博客-CSDN博客
统一日记账(Universal Journal)是S/4HANA在财务领域最大的创新。它把原先分散的SAP财务模块数据,整合到了一个完全集成的后台表中,就是Table ACDOCA。
下图就展示了ACDOCA是如何将总账(General Ledger),利润中心会计(Profit Center Accounting),固定资产会计(Fixed Asset Accounting),物料账(Material Ledger),成本(Controlling),获利分析(Profitability Analysis)等各个财务子模块的数据集成到一起的。
这样一个集成的信息源,就能生成各式各样的报表:固定资产,库存,应收应付,利润,销售成本COGS),资产负债表,损益表等等。它也让以前ECC系统中的很多后台索引表(Index)和汇总表(Total)变得不再需要。
在本文中,我将就一些关键点,跟ECC的数据结构做一个比较。
以下的一些凭证行项目,都是只在ACDOCA表里面存在,而在BSEG表里不存在的(你可以通过BKPF表的BSTAT字段的凭证状态U来识别):
ACDOCA把上一年度的结转数放在Period 000中,这样便于计算YTD(year-to-date)数字,你不需要回去找上一年度末的数字。
ACDOCA表中的行项目数量可能会非常大,因为评分拆分,所有的行项目都被拆分到了最小的维度,再考虑到多个账套的存在,凭证行项目数量还要翻倍。
所以,从长期业务运行的角度,数据库大小和磁盘大小都需要提前考虑好。
当你在财务模块中做数据归档时,对应数据会被从BKPF/BSEG表中删除。
然而,在ACDOCA表中,数据不会立刻被删除,而是添加一条反向的凭证到ACDOCA表里,让汇总余额为0。
要实际上删除ACDOCA中的数据,必须要执行Compression Run。
Compression Run是一个数据压缩的过程,它用汇总数据来替代明细数据。它的数据颗粒度就跟年末余额结转的颗粒度一致,对于余额不产生影响。
对于同一条记录的同一个字段,你可能会发现在BSEG和ACDOCA中的值可能会不一样。
例如,你可以在Entry View上,通过替代(Substitution)来修改Assignment字段(ZUONR)的值,但是它不一定会被拷贝到ACDOCA表里面。拷贝到ACDOCA是由BAdI BADI_FINS_ACDOC_BSEG_FIELDS控制的,所以当你在系统中做替代时,需要关注一下。
当你在Coding Block中添加自定义字段的时候,自定义字段也会被增加到ACDOCA中。
但是,在各种凭证输入的场景中,这些自定义字段是如何被使用的,将取决于具体的定义。你在Table FINSC_ACDOC_FCT中,能看到这些自定义字段的各种属性。例如,自定义字段在以下各种流程的使用都是可以具体定义的:
有时候报表不仅仅是关于财务细节的,它可能会混合其他维度,例如主数据中的字段,供应商名称,成本中心层次等。
所以,在报表设计时,你需要考虑使用SAP预建的一些CDS view,它们已经混合了ACDOCA的数据和其他维度的数据。并且对于新报表来说,应该尽量基于ACDOCA做开发,而不是BSEG。
更精确的理解ACDOCA,应该意识到其是一个存储实际财务凭证(Actuals)的表,对于noted item(例如down payment request预付款请求凭证),并不会更新到ACDOCA中,而是仍然存储在BSEG中。
请见下例 (F-47创建一笔预付款请求)-
对于注释项目noted item,其属于标记的项目,并不会产生直接的财务影响。
ACDOCA用于用于最终财务表报的出具,而BSEG仍然会存在并用于相关应收/应付(AP/R)流程凭证的记录,例如清账,付款,催款,预付款请求等操作。
在上例中,预付款请求凭证不会更新到ACDOCA中,但如果对于这个预付款请求发生的真实的付款动作,那么这个真实的付款凭证则会被更新至ACDOCA中。
更简单的理解,可以认为一笔真实的财务凭证,一定是有借有贷的。
统一日记账ACDOCA整合了财务模型,但BSEG仍然会用于相关财务流程中数据的存储,对于Item级别的凭证数据,应当结合ACDOCA和BSEG查看数据。
但在ACDOCA中并没有这个FI凭证的记录 -