Den Zahlungen an „Schurkenstaaten“ in SAP auf der Spur

Nachdem wir im letzten Blog Post bereits die Top10 der „Schurkenstaaten“ ausgemacht haben, analysieren wir diese Woche, ob tatsächlich Zahlungen an ein Bankkonto in eines der dubiosen Staaten geflossen ist und in welchem Umfang. Mehr muss an dieser Stelle gar nicht gesagt werden. Machen wir uns die Hände schmutzig!

Grundlagen der „Schurkenstaaten“

Der Begriff „Schurkenstaaten“ ist für Sie ein Fremdwort und Sie können sich nicht vorstellen, was sich dahinter verbirgt? Dann lege ich Ihnen den Blog Post aus der letzten Woche ans Herz. Für die faulen Leser eine kurze Zusammenfassung:

Diverse Organisationen beschäftigen sich mit der Klassifizierung von Ländern hinsichtlich des Umfangs von Korruption. Das Gebiet ist sehr weitläufig, weshalb die Organisationen unterschiedliche Schwerpunkte, wie z.B. Geldwäsche, Finanzierung von Atomwaffen oder ähnlichem haben. Die nichtstaatliche Organisation Transparency International veröffentlich zum Beispiel jedes Jahr den Korruptionswahrnehmungsindex (kurz CPI), -eine Liste zum wahrgenommenen Korruptionsniveau. Demnach finden sich die skandinavischen Länder (Dänemark, Norwegen, Schweden, Finnland) unter den Top6 mit der geringsten wahrgenommen Korruption. Deutschland belegt immerhin Platz 10. Doch der Blick ans Ende der Liste soll uns für die Analyse in SAP als Grundlage dienen:

RangLandScore
166 Irak17 
166Venezuela 17
168Guinea-Bissau16
169Afghanistan 15
170Jemen 14
170Libyen 14
170Sudan 14
174Nordkorea 12
175Südsudan 11
176Somalia 10 

Nun ist es natürlich abhängig von Ihrem Unternehmen, Ihrer Branche und Ihren Handlungsbeziehungen, aber diese Länder wollen wir in der Regel nicht bei kriminellen Machenschaften mit Geldern aus unserem Unternehmen unterstützen. Die Top10 der größten „Schurkenstaaten“ hätten wir damit schon einmal identifiziert. Gucken wir uns das Spektakel einmal in SAP an.

Datengrundlage für die Auswertung der Zahlungen in „Schurkenstaaten“

Bevor wir auch nur ansatzweise eine Analyse durchführen können benötigen wir zunächst die relevanten Daten für eine Auswertung. Diese bekommen wir im Wesentlichen aus den SAP Tabellen „REGUP“ (Bearbeitete Positionen aus Zahlprogramm) und „REGUH“ (Regulierungsdaten aus Zahlprogramm). In den Tabellen finden wir nützliche Informationen z.B. zur Bankleitzahl der Bank des Zahlungsempfängers, den zahlenden Buchungskreis, aber auch direkt den Länderschlüssel der entsprechenden Bank (Tabelle REGUH Felder: ZBNKL, ZBUKR und ZBNKS) oder die Belegnummer der bezahlten Rechnung (Tabelle REGUP Feld: BELNR). Zudem sind wir nur an den tatsächlichen Zahlungen interessiert und wollen einen Probezahllauf außer Acht lassen. Damit ist das Feld „XVORL“ der beiden Tabellen außerdem spannend. Soweit zu den Informationen der relevanten Bankdaten / Regulierungsdaten in SAP, die für Zahlungen verwendet wurden.

Allerdings interessiert uns auch die Höhe der Geldflüsse in die dubiosen Staaten. Die relevanten Felder für die Auswertung finden sich ebenfalls in der Tabelle REGUP:

  • BUZEI (Nummer der Buchungszeile innerhalb des Buchhaltungsbelegs)
  • LIFNR (Lieferantennummer)
  • SHKZG (Soll- /Haben-Kennzeichen)
  • DMBTR (Betrag in Hauswährung)

So besteht die einfache Möglichkeit neben der Höhe der bezahlten und unbezahlten Rechnungen auch die absolute Anzahl an Rechnungen herauszufinden. Setzen wir die einzelnen Puzzleteile für die Auswertung im SQL Editor (SAP Transaktion: DBACOCKPIT – Diagnose – SQL-Editor) zusammen, so erhalten wir folgendes Query (getestet auf einer HANA Datenbank):

SELECT R.MANDT,P.BUKRS,P.GJAHR,ZBNKS BANKLAND,COUNT(DISTINCT P.BELNR) ANZAHL_RECHNUNGEN_BEZAHLT,SUM(CASE WHEN P.SHKZG=’H‘ THEN P.DMBTR ELSE 0 END) SUMME_HABEN,SUM(CASE WHEN P.SHKZG=’S‘ THEN P.DMBTR ELSE 0 END) SUMME_SOLL, SUM(CASE WHEN P.SHKZG=’H‘ THEN P.DMBTR ELSE 0 END)-SUM(CASE WHEN P.SHKZG=’S‘ THEN P.DMBTR ELSE 0 END) SUMME_BEGLICHEN
FROM REGUH R JOIN REGUP P ON
(R.MANDT=P.MANDT AND R.LAUFD=P.LAUFD AND R.LAUFI=P.LAUFI AND R.ZBUKR=P.ZBUKR AND R.LIFNR=P.LIFNR AND P.VBLNR=R.VBLNR AND R.EMPFG=P.EMPFG AND ((R.XVORL IS NULL OR R.XVORL LIKE “) AND (P.XVORL IS NULL OR P.XVORL LIKE “)))
WHERE P.LIFNR NOT LIKE “ AND R.LIFNR NOT LIKE “ AND ZBNKS NOT LIKE “
GROUP BY R.MANDT,P.BUKRS,P.GJAHR,ZBNKS

Keine Sorge bei dem Query handelt es sich lediglich um ein „SELECT“ Query, sodass wir nur lesend auf die Daten zugreifen. Dabei werden keine Daten in SAP verändert, sodass wir das Query bedenkenlos über die Schaltfläche „Ausführen (F8)“ ausführen können. Das Ergebnis kann beispielsweise folgendermaßen aussehen:

Auf diese Art und Weise wird zum einen sehr schnell deutlich in welche Länder gezahlt wurde (Spalte BANKLAND), aber zum anderen auch, wie hoch die Verbindlichkeiten in die entsprechenden Länder insgesamt waren (SUMME_HABEN), wie hoch potentielle Gutschriften waren (SUMME_SOLL) und wie viel davon bereits beglichen wurde (SUMME_BEGLICHEN). Über die Möglichkeit des „Exports – Tabellenkalkulation“ (im Bild rot markiert) haben wir die Möglichkeit die Ergebnisse in Excel genauer auszuwerten und zu visualisieren.

Die weitere Analyse in Excel

An dieser Stelle folgt unser Standardvorgehen, dass sich über die vergangenen Wochen und Monate als bewährte Methode zur Visualisierung durchgesetzt hat: Ein Diagramm aus einem PivotTable.

Dafür navigieren wir nach dem Export der Daten in Excel auf den Reiter „Einfügen – PivotTable“. Excel sollte den Tabellenbereich dann automatisch selektieren, sodass wir nur noch über „OK“ bestätigen müssen. Für die PivotTable wählen wir dann z.B. die Felder:

  • BANKLAND (als Zeilen)
  • ANZAHL_RECHNUNGEN_BEZAHLT (als Werte)
  • SUMME_BEGLICHEN (als Werte)

Anschließend fügen wir noch schnell ein Diagramm über „Einfügen – Diagramme – Säulen – Gruppierte Säulen“ ein und dann sind wir auch schon fast fertig. In meinem Beispiel liegen extrem viele Verbindlichkeiten innerhalb Deutschlands vor, weshalb ich für die Y-Achse eine Logarithmische Skalierung zur Basis 10 verwende. Das bewirkt, dass extrem große Zahlen relativiert werden und vergleichbarer zu kleineren Werten werden. Im Ergebnis wird nur noch das Verhältnis dargestellt und keine absoluten Zahlen mehr, z.B. wird aus 100.000 der Wert 5. Etwas deutlicher wird der Zehnerlogarithmus eventuell mit der Darstellung seiner Umkehrfunktion:

y = 10X beschreibt die Umkehrfunktion und ist damit gleichbedeutend mit x = log(y)

Mit konkreten Werten bedeutet das:

Umkehrfunktion:            100.000 = 105

Logarithmus:                     5 = log(100.000)

Diese Einstellung können Sie ganz einfach vornehmen indem Sie auf die Skala der Y-Achse klicken und im rechten Fenster auf „Achsenoptionen“ gehen und „Logarithmische Skalierung“ wählen. In der Regel ist die Basis 10 dann bereits voreingestellt. Mein Ergebnis sieht dann wie folgt aus:

Und siehe da. Neben Japan (JP) findet sich ein direkter Nachbar von Ägypten: Libyen (LY). Ehrlich gesagt musste ich LY auch nachgucken, weil ich keine Ahnung hatte für welches Land das stehen sollte. Nun gut, gehen wir ein Schritt zurück und werfen einen Blick auf unsere Top10 „Schurkenstaaten“, so findet sich Libyen auf Platz 4 neben dem Sudan und Jemen. Volltreffer und in jedem Fall ein Augenschein wert, wenn sie nicht gerade bei einem der bekannten Rüstungsunternehmen arbeiten.

Sie verstehen bei SQL, Query und SELECT nur Bahnhof? Dann lassen Sie zap Audit alle Tätigkeiten der Datenanalyse für Sie erledigen und tun Sie das, was Sie am Besten können: Prüfen. Denn genau das ermöglicht Ihnen zap Audit. Automatisierte Datenanalyse mit der Fokussierung des Prüfers auf das Wesentliche. Sie haben immer noch Zweifel? Dann werden Sie Ihre Fragen schnell und unkompliziert los:

„Der, die, das
Wer, wie, was
Wieso weshalb warum?
Wer nicht fragt bleibt dumm.
1000 Tolle Sachen die gibt es ueberall zu sehen
Manchmal muss man fragen um sie zu verstehen.“

Kontaktieren Sie uns hier.

Artikel teilen

Facebook
Twitter
XING
LinkedIn