BAPI zur Erstellung von FI-Buchungen

SAP bietet eine Reihe von BAPI Funktionsbausteinen an, die für Schnittstellenlösungen zum Rechnungswesen eingesetzt werden können. In Unternehmensumgebungen werden i.d.R. auch rechnungslegungsrelevante Anwendungen eingesetzt, die nicht zum SAP Produktportfolio gehören. Weitere Szenarios für solche Schnittstellenlösungen stellen das Outsourcing von Einkaufs- und Verkaufsprozessen (Purchase to Pay PTP, Order to Cash OTC) an externe Dienstleistungsunternehmen dar. Hier besteht die Herausforderung im Rechnungswesen, diese rechnungslegungsrelevanten Geschäftsprozesse gemäß den Grundsätzen ordnungsmäßiger Buchführung (GoB) abzubilden. Daher sind regelmäßige Schnittstellenverbuchung in das SAP FI notwendig. Die GoBD konkretisieren diese Anforderungen im Hinblick auf solche IT-Umsetzungen (Teilziffer 26).

Diese Grundsätze sollten bei der Umsetzung von rechnungslegungsrelevanten Schnittstellen berücksichtig werden, damit diese neben der grundsätzlichen Funktionsfähigkeit auch eine Revisionssicherheit mit sich bringen.

Je nach Anwendungsfall bietet SAP unterschiedliche BAPI Funktionsbausteine an, die für eine solche Schnittstellenverarbeitung in das externe Rechnungswesen genutzt werden kann. Je nach Funktionsbaustein werden auch Überleitungsfunktionen in das Gemeinkostencontrolling CO-OM und in die Ergebnisrechnung CO-PA unterstützt.

In diesem Beispiel soll die Funktionsweise der BAPIs BAPI_ACC_GL_POSTING_POST sowie BAPI_ACC_DOCUMENT_POST kurz aufgezeigt werden. Mit dem Funktionsbaustein BAPI_ACC_GL_POSTING_POST können Geschäftsvorfälle verbucht werden, die hauptsächlich die Hauptbuchhaltung betreffen. Nebenbuchhaltungen wie Debitoren- und Kreditorenbuchhaltung können mit dem Funktionsbaustein BAPI_ACC_DOCUMENT_POST angesprochen werden. Dies ist möglich, da in diesem Funktionsbaustein eine interne Tabelle mit den jeweiligen Positionen zur Nebenbuchhaltung mitgegeben werden können. Vereinfacht könnte man sagen das man für Geschäftsvorfälle, die mit der Transaktion FB50 verbucht werden, den BAPI „BAPIs BAPI_ACC_GL_POSTING_POST“ nutzen sollte. Für FB60, FB70 Geschäftsvorfälle muss hingegen der BAPI „BAPI_ACC_DOCUMENT_POST“ verwendet werden.

Weiterhin stehen Prüfungs- und Korrekturfunktionen in Form einer Buchungsverifizierung und Umkehrbuchungen bereit.

Für dieses Beispiel soll eine Ausgangsrechnungsverbuchung simuliert werden, die neben einer Erlösbuchung auch einen offenen Posten bei einem Debitoren erzeugt. Hierzu muss der BAPI BAPI_ACC_DOCUMENT_POST verwendet werden. Die Datengrundlage hierfür soll eine beispielhafte Schnittstellendatei darstellen, die 2 unterschiedliche Rechnungen auf den gleichen Debitoren belasten soll.

Dem Funktionsbaustein müssen Belegkopfinformationen als Workarea übergeben werden. Die Erlöskonten Positionszeile sowie die offene Posten Positionszeile werden in unterschiedlichen internen Tabellen übergeben. Die Betragsinformationen zu diesen Positionen müssen hingegen in einer internen Tabelle separat geliefert werden. Das Soll / Haben Kennzeichen wird durch den Betragswert bestimmt.

Nach dem Funktionsaufruf kann mit Hilfe der internen Tabelle Return ein Fehlerhandling erfolgen. Hier werden unvollständige oder fehlerhafte Parameter zurückgemeldet.

Die Befüllung der Positionszeilen könnte wie folgt durchgeführt werden. Wichtig ist hierbei das die internen Tabellen vor dem Funktionsaufruf vollständig gefüllt sind.

Hier noch die notwendigen Datendeklarationen sowie der Aufbau der internen Tabelle für den Datenimport mit Hilfe der Funktion „GUI_UPLOAD“ sowie für die Schleifendurchführung.

Nach dem ersten Durchlauf des BAPIs müssen die internen Tabellen für die Belegpositionen und Währung mit dem Befehl „clear“ wieder geleert werden.

Im Debugging kann die Überprüfung der Übergabeparameter auf Richtigkeit erfolgen. Auch bei diesem BAPI muss die Funktion „BAPI_TRANSACTION_COMMIT“ noch getätigt werden, damit eine Echtverarbeitung ausgeführt wird.

Die Belege konnten erfolgreich erzeugt werden.

Der offene Posten ist nun auch in der Nebenbuchhaltung zu finden.