Skip to Content
Technical Articles
Author's profile photo Gaurav Agarwal

What a universal journal table ACDOCA covers and what not?

Gaurav Agarwal

 

Yes, universal journal is the biggest innovation in the area of Finance in S/4HANA which is clubbing various SAP components into a single accounting document as a true integrated information system. Below picture is depicting the structure of the universal journal in S/4HANA covering general ledger, profit center accounting, fixed asset accounting, material ledger, controlling, profitability analysis.

Such integrated information helps in generating various reports of fixed assets, inventory related topics, receivables, payables, revenue, COSG, balance sheet, profit and loss etc. from this data source. This also resulted in the reduction of various tables (index, totals etc.).

 

In this blog, I am listing some key observations when comparing with classical data structure:

  1. Not everything in ACDOCA is there in BSEG

Below postings contains the line items in ACDOCA table only and not in BSEG table (identified with document status as “U” in BSTAT field in BKPF table) for the database improvement, performance etc.:

  • Asset depreciation postings
  • Ledger specific postings
  • Foreign currency valuation postings
  • CO internal postings

 

  1. The year-end carry-forward figures are stored as period 000 in ACDOCA
  • ACDOCA contains carry forward figures in period 000 in the table, and thus when calculating YTD (year-to-date) figures, you do not need to go back to previous years and can total 000 period related figures with other periods needed.

 

  1. ACDOCA volumn is quite large compared to BSEG
  • Number of line items in ACDOCA table can be huge, as entries are breaked down to the lowest level considering document splitting and entries also gets multiplied based on the number of ledgers implemented in the environment.
  • So, the database size and partitioning need to consider such ACDOCA volumn with a medium to long term business operation view.

 

  1. Archived data appearance in ACDOCA even after deletion of BKPF/BSEG records
  • When you archive data in financial accounting, with delete step data in BKPF/BSEG gets deleted for eligible records.
  • However, ACDOCA table entries are not archived immediately and instead an entry with inverted sign is inserted into ACDOCA to set the resulting balance to zero.
  • A real data record reduction from ACDOCA will take place by executing compression run.
  • The compression run replaces all entries of ACDOCA fulfilling above criteria with aggregated entries. This aggregation takes place on the granularity of the balance carry forward, thus no changing this balance. In case balance will be zero (i.e. all documents and totals are already archived), no aggregated entry will be written.

 

  1. There can be difference between BSEG and ACDOCA for same dimension
  • You may observe the same field having different value in BSEG Vs. ACDOCA for same record.
  • g. you may be doing assignment (ZUONR) field changes in the entry view from substitution process, but that substituted value may not have copied to the ACDOCA table line. The field to be copied are governed from BAdI BADI_FINS_ACDOC_BSEG_FIELDS and you should have a look on this during your system substitution etc. on the financial information.

 

  1. Custom fields in coding block – Integration to ACDOCA:
  • When you add a custom field in the coding block structure, then will also get added to ACDOCA as integrated.
  • But how that field will be used in various unified journal entry process, will be depending on the settings for such custom fields. You can see that in a central table FINSC_ACDOC_FCT, which has various attributes of such custom, e.g. for the process of:
    • Usage for Balance carry forward for profit and loss
    • Usage for Balance carry forward for balance sheet
    • Usage for G/L totals
    • Usage for G/L reporting
    • Usage for G/L balance valuation
    • Usage for allowed changes in G/L during update FI doc
    • Usage for directly user changes in G/L during update FI-doc
    • Usage for G/L Allocations
    • Usage for Summarization Level of a field in ACDOCA (Whether summarized independently or depending on other criteria’s or not summarize at all)

 

  1. Reporting may go beyond ACDOCA – “most of time”
  • Reporting may not be purely for Financial details and that may need to be mixed with other dimensions, like master data attributes, name of supplier, cost center hierarchy etc.
  • So, during reporting design, you need to leverage the SAP provided pre-build CDS view combining universal journal data with other dimensions. And yes, for new reports best practice is to develop based on ACDOCA architecture rather than BSEG setup.

 

I hope this provided you some new perspective on looking at the universal journal table ACDOCA!

Assigned Tags

      5 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Abdullah Galal
      Abdullah Galal

      Nice observations, thank you for sharing!

      I'm making a video on Universal Journal, and will definitely use some of this information there!

      Author's profile photo Sanjay Rajarao
      Sanjay Rajarao

      Below statement deservers a blog by itself...., look forward to your future posts.

      The compression run replaces all entries of ACDOCA fulfilling above criteria with aggregated entries. This aggregation takes place on the granularity of the balance carry forward, thus no changing this balance. In case balance will be zero (i.e. all documents and totals are already archived), no aggregated entry will be written

      Author's profile photo Anja-Katja Kerber
      Anja-Katja Kerber

      Agree ... is there a blog for this topic?

       

      Author's profile photo Andrea Molina
      Andrea Molina

      Hi. Great post.

      I'm an ABAP developer and I'm doing ATC at the moment. I'm trying to map a field that existed in BSEG and does not exist in ACDOCA. Do you know where I can find the mapping of the data? In this case, I'm trying to find a Payment Method (ZLSCH) but I'm pretty sure that I'll need to map other fields too.

      Thanks

      Andrea

      Author's profile photo Thomas Schachner
      Thomas Schachner

      You can have a look into table FINSTS_ACDOC_FCT: It contains a list of fieldnames of table ACDOCA and a column "BSEG_FIELD". So this is basically the mapping of fieldnames between ACDOCA and BSEG.