In einem Projekt musste ich Anpassungen im Code von Arbeitskollegen vornehmen, womit anschließend mit BAPI BAPI_ACC_DOCUMENT_POST verschiedene FB01 Buchungen erzeugt werden.

Zu dem Zeitpunkt konnten nur Debitor- und Kreditorbuchungen mit Buschungsschlüssel 01 und 31 automatisch gebucht werden. Eine Erweiterung sah vor auch Buchungen mit Buchungschlüssel 05, 11, 15, 21, 25 und 35 verarbeiten zu können.

Der BAPI bietet Importparameter je nach Buchungsart also Debitor-, Kreditor oder Sachkontenbuchung sowie zusätzlich Parameter für die Steuerzeile und Währungspositionen. Ein Buchungsschlüssel bei der Debitor-, Kreditor- und Sachkontenzeile kann nicht mitgegeben werden und der BAPI versucht diese selbst zu ermitteln.

Leider hat der BAPI nie den richtigen Buchungsschlüssel ermittelt bzw. zum Beispiel 35 mit 31 überschrieben, sodass in dem Beispiel immer eine 31 Buchung erzeugt wurde. Der BAPI hat ein Importparameter namens “extension2” mit dem sich ein überschreiben verhindern lässt, indem explizit der Buchungschlüssel mitgegeben wird.

Um den Blogeintrag nicht zu sprengen, verweise ich auf meinen Wiki-Eintrag.

Als Entwickler war für mich wichtig zu verstehen wie die Abhängigkeit der jeweiligen Kreditor- bzw. Debitorzeile mit der Sachkontenzeile ist. Hier eine Tabelle zu den einzelnen Buchungschlüssel der Kreditor- und Debitorzeile mit den relevanten Sachkontenzeilen sowie S/H Kennzeichen:

Buchungsschlüssel Kreditor-/Debitorzeile S/H Kennzeichen Kreditor-/Debitorzeile Buchungsschlüssel Sachkontenzeile S/H Kennzeichen Sachkontenzeile
01(Debitor) S 50 H
31(Kreditor) H 40 S
05(Debitor) S 50 H
11(Debitor) H 40 S
15(Debitor) H 40 S
21(Kreditor) S 50 H
25(Kreditor) S 50 H
35(Kreditor) H 40 S