Lange war es ruhig geworden um die Journal Entry Testing Reihe, aber jetzt folgt der nächste Teil: Buchungen am Abschlussstichtag, oder auch Abschlussbuchungen sind notwendig und komplettieren den Jahresabschluss. Irgendwas ist zum Jahresende jedoch immer noch offen und muss vervollständigt werden, bevor es vergessen wird! Interessant sind deshalb solche Buchungen am Abschlussstichtag, die noch schnell gebucht wurden, bevor die Periode geschlossen wird. In diesem Artikel zeige ich einen Weg auf, wie Sie in SAP diese Vorgänge analysieren können und worauf Sie achten sollten.
Welche Vorgänge kann man am Jahresende erwarten?
Am Ende das Geschäftsjahres werden vor allem Vorgänge verbucht, die unterjährig noch nicht berücksichtigt wurden oder noch nicht berücksichtigt werden mussten. Dies können sein:
- Rückstellungen mit besonderem Charakter (z.B. Drohverlustrückstellungen)
- Abschreibungen, die regelmäßig in den Monatsabschlüssen noch nicht gebucht wurden, z.B. außerplanmäßige Abschreibungen.
- Inventurdifferenzen, die erst am Jahresende bekannt werden
- Aktive und passive Abgrenzungen (ARAPs und PRAPs), um den Jahreserfolg korrekt zu erfassen
- Besondere Vorgänge im Eigenkapital (z.B. Zu- / Abgänge durch Einlagen)
Besonders interessant sind auch Buchungen am Abschlussstichtag, wenn diese erst nach sehr langer Zeit nach diesem Abschlussstichtag erfasst wurden. Dieser Umstand sollte besonders bei einer Analyse berücksichtigt werden.
Wie kann man in SAP Buchungen am Abschlussstichtag analysieren?
Buchungen am Abschlussstichtag kann man in SAP einerseits daran erkennen, dass das Buchungsdatum genau am Abschlussstichtag liegt. Andererseits gibt es in SAP Buchungsperioden „nach Dezember“, also Buchungsmonate größer 12, welche für Abschlussbuchungen vorgesehen sind.
Normalerweise kennt man natürlich den Abschlussstichtag des untersuchten Unternehmens. In SQL kann man aber auch ermitteln lassen, welches Buchungsdatum das „größte“ ist. Dies sollte dann automatisch den Abschlussstichtag ermitteln. Sie können folgende Queries einfach direkt selber ausprobieren. Dazu rufen Sie einfach die Transaktion „DBACOCKPIT“ in SAP auf und navigieren anschließend über „Diagnose“ zum „SQL-Editor“:
SELECT MAX(BUDAT)
FROM BKPF
WHERE MANDT='800' AND BUKRS='1000' AND GJAHR=2019;
Ersetzen Sie MANDT (Mandant), BUKRS (Buchungskreis) und GJAHR (Geschäftsjahr) auf die Werte, die Sie untersuchen wollen.
In meinem Testdatensatz führt dies zu folgendem Ergebnis:
MAX(BUDAT) | 31.12.2019 |
Das sieht insofern logisch aus, als dass hier das Kalenderjahr dem Geschäftsjahr entspricht.
Was für Geschäftsvorfälle gab es am Abschlussstichtag?
Jetzt soll ermittelt werden, welche Geschäftsvorfälle am Abschlussstichtag gebucht wurden. Dafür werden alle Buchungen an dem Tag ermittelt und ausgegeben:
SELECT MANDT, BUKRS, GJAHR, BELNR, BLART, BUDAT, CPUDT, MONAT
FROM BKPF
WHERE MANDT='800' AND BUKRS='1000' AND GJAHR=2019 AND
(BUDAT= ( SELECT MAX(BUDAT)
FROM BKPF
WHERE MANDT='800' AND BUKRS='1000' AND GJAHR = 2019) OR MONAT > 12)
ORDER BY CPUDT DESC
Das Query ermittelt alle Buchungen (Belegnummern BELNR) und deren Belegart (BLART) am Abschlussstichtag (BUDAT), sowie die Buchungsperiode (MONAT) und ordnet diese nach dem spätesten Erfassungsdatum (CPUDT). Dies ergibt folgenden Ausschnitt:
BELNR | BLART | BUDAT | CPUDT | MONAT |
---|---|---|---|---|
100009086 | AB | 31.12.2019 | 17.09.1998 | 12 |
100009087 | AB | 31.12.2019 | 17.09.1998 | 12 |
100009085 | AB | 31.12.2019 | 17.09.1998 | 12 |
100009084 | AB | 31.12.2019 | 17.09.1998 | 12 |
100009089 | AB | 31.12.2019 | 17.09.1998 | 12 |
… | … | … | … | … |
Ein solches Ergebnis stimmt nachdenklich, denn es wurden für den Abschlussstichtag am 31.12.2019 noch Buchungen im September 1998 gebucht. Das sollte dem Revisor die ein oder andere Rückfrage wert sein.
Die Ergebnismenge des letzten Queries kann sehr groß sein, da einzelne Belege ermittelt werden. Da kann man schnell den Überblick verlieren.
Zum Einstieg kann deshalb eine Übersicht helfen, die aufzeigt, welche Belegarten wie oft am Abschlussstichtag vorkamen:
SELECT BLART, COUNT(*), MIN(CPUDT), MAX(CPUDT), MIN(MONAT), MAX(MONAT)
FROM BKPF
WHERE MANDT='800' AND BUKRS='1000' AND GJAHR=2019
AND (BUDAT = (SELECT MAX(BUDAT)
FROM BKPF
WHERE MANDT='800' AND BUKRS='1000' AND GJAHR=2019) OR MONAT > 12 )
GROUP BY BLART
ORDER BY COUNT(*) DESC
In meinem Testdatendatz ergibt sich folgendes Ergebnis:
BLART | COUNT(*) | MIN(CPUDT) | MAX(CPUDT) | MIN(MONAT) | MAX(MONAT) |
---|---|---|---|---|---|
AB | 1087 | 03.03.1998 | 17.09.1998 | 12 | 12 |
AF | 122 | 23.02.1998 | 23.02.1998 | 12 | 12 |
ZP | 27 | 04.03.1998 | 04.03.1998 | 12 | 12 |
SA | 8 | 30.09.2019 | 05.03.1998 | 12 | 12 |
RV | 8 | 28.08.2019 | 30.12.2019 | 12 | 12 |
KZ | 1 | 05.03.1998 | 05.03.1998 | 12 | 12 |
Die Spalten zeigen eine Übersicht pro Belegart (BLART) und zählen die Anzahl der Buchungen am Abschlussstichtag (COUNT). Zur Orientierung wird weiterhin ermittelt, wie das früheste (MIN CPUDT) und späteste Erfassungsdatum (MAX CPUDT) der Belege in dieser Belegart ist.
Meine Empfehlung ist auf Belegarten zu achten, die eindeutig operativen Geschäftsvorfällen zuzuordnen sind. In dem Beispiel wären das Zahlungen (ZP) und Rechnungen (RV), sowie Kreditorenzahlungen (KZ). Zusätzlich sollten diese sehr spät erfasst worden sein.
So sieht man, dass die Kreditorenzahlung erst im März für das alte Geschäftsjahr erfasst wurde. Hier sollte der Revisor die Frage nach der richtigen Abgrenzung stellen. Denn Zahlungen erfasst man normalerweise zeitnah am Geldabfluss.
Die Rechnungen (RV) sind eher unverdächtig, da die Erfassung durchgehend im Geschäftsjahr lag, also „zeitnah“.
Generell sollte der Revisor pro Belegart insbesondere die Belege ansehen, die sehr spät (nachträglich) erfasst wurden.
Weitere Auswertungen, z.B. mit Einbezug der Beträge in den Belegen wären außerdem denkbar.