Journal Entry Testing: The Best Queries about Money in SAP

Nach der Urlaubszeit kennt wohl jeder den Spruch: Am Ende des Geldes ist noch so viel Monat übrig. Was im Privatleben gerne als Floskel verwendet wird, kann in Unternehmen schnell von Bedeutung werden. Denn letztendlich kommt es immer auf die Liquidität an. Oder einfach gesagt: kein Geld, kein Bestehen. Der Revisor sollte deshalb immer ein Auge auf die Bankkonten in der Finanzbuchhaltung haben. Ich zeige Ihnen deshalb, wie Sie insbesondere Auszahlungen in SAP analysieren können.

Die Abstimmung von Geldkonten ist eine wohlbekannte Prüfungshandlung. Einen Saldo abzugleichen, spricht zwar für einen korrekten Saldo, aber interessant ist letztlich doch auch, wie eine nähere Analyse von Auszahlungen aussehen könnte.

Geldkonten in SAP

Zunächst wäre es wichtig, die Geldkonten im Kontenplan zu erfahren. Natürlich kann man nun den Kontenplan durchgehen und anhand der Kontenbezeichnungen die Geldkonten identifizieren. Aber geht das nicht einfacher? Tatsächlich sollten die Finanzbuchhaltungskonten im Kontenplan, die Geldkonten repräsentieren, auch als solche im Kontenplan gecustomized sein. Man kann Geldkonten daher im buchungskreisspezifischen Kontencustomizing in der Tabelle SKB1 erkennen. Das Feld XGKON=‘X‘ bedeutet dabei, dass es sich um ein Geldkonto handelt.

Folgendes SQL Query ermittelt für einen bestimmten Buchungskreis und ein bestimmtes Geschäftsjahr, wie viele Belege auf das jeweilige Geldkonto gebucht wurden. Damit hat man schon mal eine Indikation für die „Wichtigkeit“ eines Geldkontos. Sie können das Query selbst in SAP mit dem Ausführen der Transaktion „DBACOCKPIT“ und anschließenden Navigation über „Diagnose“ zu „SQL-Editor“ ausprobieren:

SELECT HKONT, SKAT.TXT50, COUNT(DISTINCT BELNR) AS Anzahl_Belege
FROM BSEG
JOIN T001 ON (BSEG.MANDT = T001.MANDT AND BSEG.BUKRS = T001.BUKRS)
JOIN SKB1 ON (BSEG.MANDT = SKB1.MANDT AND BSEG.BUKRS = SKB1.BUKRS AND BSEG.HKONT = SKB1.SAKNR)
LEFT JOIN SKAT ON (SKAT.MANDT = BSEG.MANDT AND SKAT.KTOPL = T001.KTOPL AND SKAT.SAKNR = BSEG.HKONT AND SKAT.SPRAS = 'D')
WHERE SKB1.XGKON = 'X' AND BSEG.MANDT = '800' AND BSEG.BUKRS = '1000' AND GJAHR = 2007
GROUP BY HKONT, SKAT.TXT50
ORDER BY COUNT(DISTINCT BELNR) DESC

HKONTTXT50Anzahl_Belege
113103Deutsche Bank (Ausgangs-Ueberweisungen Ausland)176
113102Deutsche Bank (Ausgangs-Ueberweisungen Inland)18
113100Deutsche Bank Inland6
113130Deutsche Bank – Bargeldausgang2
119999Derivate Verrechnungskonto2
113300Commerzbank Frankfurt2
113108Deutsche Bank (Scheckeingang)1
113131Deutsche Bank – Bargeldeingang1

Wie man sieht, wird die Deutsche Bank am meisten verwendet.

Die größten Auszahlungen

Wir wollen uns nun einen Überblick verschaffen über die Auszahlungen auf den Geldkonten. Auszahlungen lassen sich darüber abgrenzen, dass diese im Haben stehen, also passivisch „abgegangen“ sind. Weiter schichten wir alle Positionen auf den Konten in 1000er Beträgen ab und erhalten dann die Anzahl der Belege pro 1.000 € Schicht und deren Summe. Das Query dazu sieht wie folgt aus und ist eine Anpassung des Queries zuvor:

SELECT HKONT, SKAT.TXT50, ROUND(DMBTR/1000, 0, ROUND_DOWN) AS Betragsschichten, COUNT(DISTINCT BELNR) AS Anzahl_Belege, SUM(DMBTR) AS SUMME_IN_EUR FROM BSEG
JOIN T001 ON (BSEG.MANDT = T001.MANDT AND T001.BUKRS = BSEG.BUKRS)
JOIN SKB1 ON (BSEG.MANDT = SKB1.MANDT AND BSEG.BUKRS = SKB1.BUKRS AND BSEG.HKONT = SKB1.SAKNR)
LEFT JOIN SKAT ON (SKAT.MANDT = BSEG.MANDT AND SKAT.KTOPL = T001.KTOPL AND SKAT.SAKNR = BSEG.HKONT AND SKAT.SPRAS = 'D' )
WHERE SKB1.XGKON = 'X' AND BSEG.MANDT = '800' AND BSEG.BUKRS = '1000' AND GJAHR = 2007
AND SHKZG = 'H'
GROUP BY HKONT, SKAT.TXT50, ROUND(DMBTR/1000, 0, ROUND_DOWN)
ORDER BY HKONT, ROUND(DMBTR/1000, 0, ROUND_DOWN)

Das Ergebnis sieht dann in meinem Testdatensatz wie folgt aus:

HKONTTXT50Betrags-
schichten
Anzahl_
Belege
SUMME_IN_
EUR
113100Deutsche Bank Inland111.551,03
113100Deutsche Bank Inland414.599,00
113100Deutsche Bank Inland1271127.917,30
113100Deutsche Bank Inland5671567.110,00
113100Deutsche Bank Inland8901890.900,00
113100Deutsche Bank Inland1267531126.753.714,81
113102Deutsche Bank (Ausgangs-Ueberw. Inland)06157,00
113102Deutsche Bank (Ausgangs-Ueberw. Inland)270038.100.028,00
113102Deutsche Bank (Ausgangs-Ueberw. Inland)400028.000.000,00
113102Deutsche Bank (Ausgangs-Ueberw. Inland)483414.834.625,00 €
113102Deutsche Bank (Ausgangs-Ueberw. Inland)5000315.000.000,00
113102Deutsche Bank (Ausgangs-Ueberw. Inland)19133119.133.380,07

Die Betragsschichten (dritte Spalte) sind hier pro Konto aufsteigend sortiert. Der Revisor sollte insbesondere auf krasse Sprünge entlang der Betragsschichten achten. Beim Geldkonto „113100 Deutsche Bank Inland“ z.B. gibt es eine Schicht mit nur einer Zahlung von ca. 890.900 € und dann ist die nächste Schicht 126.753 Tausend-€. Dies ist ein krasser Sprung und solche „Unstetigkeitsstellen“ sollte sich der Revisor genauer ansehen. Andere deutlich sichtbare Sprünge sind gelb markiert. Letztlich haben wir mit dem Query die Datengrundlage für ein Histogramm geschaffen.

Artikel teilen

Facebook
Twitter
XING
LinkedIn