BAdI Nutzung für die Segmentermittlung

Mit der Einführung des neuen Hauptbuchs im Frühjahr 2005 wurde das Kontierungsobjekt „Segment“ neu eingeführt. Die Segmentberichterstattung ist für einige Rechnungslegungsvorschriften z.B. IFRS oder US-GAAP verpflichtend. Man verwendet die Segmentberichterstattung um Positionen der Bilanz und der Gewinn- und Verlustrechnung nach Segmenten aufzuschlüsseln, um somit einen besseren Einblick in die Vermögens-, Finanz- und Ertragslage eines Unternehmen zu erhalten. Die Segmentinformationen können entweder manuell oder automatisch per Regeldefinition einer jeden Buchung mitgeteilt werden. Die Segmentangabe erfolgt durch die Zuordnung mit einem Profitcenter in den Profitcenterstammdaten. In diesem Beispiel soll eine automatische per Regeldefinition hinterlegte Bestimmung der Segmentangabe erfolgen. Hierzu soll ein Business Add-Ins (BAdI) verwendet werden, welches diese Funktionalität bereitstellt. BAdIs basieren technisch auf ABAP Objects und sind vordefinierte Erweiterungsoptionen, die von den Kunden implementiert werden können.

Das BAdI „FAGL_DERIVE_SEGMENT“ dient für die Ableitung von Segmenten bei Buchungsvorgängen. Sofern bei einer manuellen Buchung kein Segment eingegeben wird, ermittelt das System das Segment aus einer hinterlegten Regel. Wenn das System das Segment nicht aus der Regel ermitteln kann, wird das Segment aus dem bebuchten Profitcenter hergeleitet. Im ersten Schritt muss eine neue Klasse aus dem BAdI-Builder „FAGL_DERIVE_SEGMENT“ mit der Transaktion SE18 erzeugt werden.

In der Menüleiste muss über die Auswahl: Implementierung -> Anlegen ein neuer Implementierungsname angegeben werden. Die nun neu angelegte Implementierung muss einem Kostenrechnungskreis zugeordnet werden. Zunächst einmal ist die BAdI-Implementierung noch inaktiv und benötigt für die Speicherung die Angabe eines Paketes. Für Testzwecke kann eine Speicherung als lokales Objekt „$TMP“ erfolgen, sodass keine Zuordnung zu einem Auftrag vorgenommen wird.

Eine Regel für die Segmentermittlung kann unter dem Reiter „Interface“ mit einem Doppelclick auf die Methode „GET_SEGMENT“ bestimmt werden.

In diesem Beispiel wird das Segment „Test“ verwendet, dass bei jeder Buchung durch den definierten User erfolgt. Im nächsten Schritt muss die neue BAdI-Klasse noch aktivert werden. Nach erfolgreicher Aktivierung, kann die hinterlegte Segmentierungsregel mit Hilfe einer Beispielbuchung geprüft werden.

Hierzu wird über die Transaktion FB50 „Sachkontenbeleg erfassen“ eine Aufwandsbuchung mit Angabe eines gültigen Profitcenters verbucht.

In den Stammdaten des Profitcenters 9990 ist ein Segment hinterlegt worden. Im Normalfall würde somit eine Zuordnung bzw. Buchung auf dem Segment 1000 erfolgen.

Der durchgeführte Buchungsvorgang zeigt, dass die herkömmliche Buchungslogik mit Hilfe der aktiven BAdI-Klasse „ZFAGL_DERIVE_TEST“ umgangen wurde und das Segment „TEST“ bebucht wurde.