adesso business consulting Stellenangebote
Software Engineer Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
BAPI ACC DOCUMENT POST
Nachfolger: Bevorzugt I_JOURNALENTRYTP verwenden
Abhängigkeit: Kreditor- bzw Debitor- zu Sachkontenzeile 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 |
Erweiterungsparameter "extension2" / BAdI "ACC_DOCUMENT"
Mithilfe des Importparameters "extension2" können dem BAPI vor der Verarbeitung noch weitere Daten mitgeliefert werden.
Nachdem der Importparameter "extension2" mitgegeben wird, muss noch eine Implementierung beim BAdI "ACC_DOCUMENT" angelegt und die jeweilige Interface Methode ausprogammiert werden, jenachdem welche zusätzliche Daten mitgeliefert werden sollen.
Problem: BAPI erzeugt Buchung mit nicht erwarteten Buchungsschlüssel in Kreditor- oder Debitorzeile
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.
Wie oben beschrieben, versucht der BAPI selber zu erkennen welche Art von Buchung anhand der Importparameter (Account Payables, Account Receivable, etc.) erzeugt werden sollen.
Die Folge ist, dass bestimmte Buchungen nicht erkannt werden und immer mit Buchungschlüssel je nach Debitor- oder Kreditorzeile mit 01 oder 31 gebucht werden.
Aus diesem Grund können, bevor der BAPI die Verarbeitung durchführt, explizit die Buchungsschlüssel gesetzt werden. Dem BAPI ist mit dem Erweiterungsparameter "extension2" die aktuellsten Buchungsschlüssel der jeweiligen Buchung mitzugeben.
Anschließend ist die Interface Methode des BAdIs auszuprogrammieren:
=> Vorgehen: Buchungsschlüssel explizit mit BAdI setzen
Nützliche Seiten / Dokumente
Dieses Wiki wird privat in Freizeit nach bestem Wissen und Gewissen gepflegt und dient primär als eigene Wissenssammlung für die tägliche Arbeit im SAP-ERP-Umfeld.
Alle dargestellten Softwareprodukte, auch in Form von Screenshots, sind Eigentum der SAP SE. Ihre Marken, vgl. Link, sind u.a.: SAP®, ABAP®, SAP Fiori®, SAP HANA®, SAP S/4HANA®, SAP S/4HANA® Cloud