41
Michael Rohrbach ABAP ® -Programmierung für die SAP ® -Finanzbuchhaltung – Kundeneigene Erweiterungen Bonn Boston

ABAP-Programmierung für die SAP-Finanzbuchhaltung

Embed Size (px)

Citation preview

Michael Rohrbach

ABAP®-Programmierung für die SAP®-Finanzbuchhaltung – Kundeneigene Erweiterungen

Bonn � Boston

1863.book Seite 3 Montag, 4. Juni 2012 9:47 09

5

Inhalt

Einleitung ................................................................................................. 11

1 Allgemeines zu kundeneigenen Erweiterungen ................... 15

1.1 Verwendung von SAP-Erweiterungen (SMOD/CMOD) ............ 151.1.1 SAP-Erweiterungen anzeigen ...................................... 161.1.2 SAP-Erweiterungen implementieren ............................ 181.1.3 SAP-Erweiterungen aktivieren und deaktivieren .......... 251.1.4 SAP-Erweiterungen testen .......................................... 251.1.5 SAP-Erweiterungen finden .......................................... 26

1.2 Verwendung von Business Transaction Events .......................... 271.2.1 Verwendung und Gruppierung .................................... 281.2.2 Business Transaction Events anzeigen .......................... 301.2.3 Business Transaction Events implementieren ............... 321.2.4 Business Transaction Events konfigurieren ................... 341.2.5 Business Transaction Events testen .............................. 351.2.6 Technische Details zu Business Transaction Events ...... 361.2.7 Business Transaction Events finden ............................. 36

1.3 Verwendung von klassischen Business Add-Ins ........................ 381.3.1 Klassische Business Add-Ins anzeigen .......................... 391.3.2 Klassische Business Add-Ins implementieren ............... 401.3.3 Klassische Business Add-Ins aktivieren und

deaktivieren ................................................................ 431.3.4 Klassische Business Add-Ins testen .............................. 431.3.5 Klassische Business Add-Ins finden .............................. 44

1.4 Verwendung von neuen Business Add-Ins ............................... 451.4.1 Neue Business Add-Ins anzeigen ................................. 451.4.2 Neue Business Add-Ins implementieren ...................... 471.4.3 Neue Business Add-Ins aktivieren und deaktivieren ..... 491.4.4 Neue Business Add-Ins finden ..................................... 49

1.5 Verwendung von impliziten Erweiterungen .............................. 491.6 Zusammenfassung ................................................................... 50

TEIL I: Kundeneigene Erweiterungen von Stammdaten

2 Sachkontenstammdaten ...................................................... 53

2.1 Technische Details und Transaktionen ..................................... 532.2 Ziel der Erweiterung der Sachkontenstammdaten .................... 55

1863.book Seite 5 Montag, 4. Juni 2012 9:47 09

Inhalt

6

2.3 Erweiterung der Datenbanktabellen und Strukturen ................. 562.3.1 Datenelement und Domäne für das Zusatzfeld ............ 562.3.2 Wertetabelle für das Zusatzfeld ................................... 582.3.3 Langtexte zu Wertetabelle für das Zusatzfeld ............... 602.3.4 Pflege-View zu Wertetabelle für das Zusatzfeld ........... 622.3.5 Erweiterung der Tabelle SKB1 ..................................... 642.3.6 Erweiterung der Verarbeitungsstrukturen .................... 65

2.4 Dialogerweiterung in der Sachkontenstammdatenpflege .......... 682.4.1 Subscreen für das Zusatzfeld anlegen .......................... 692.4.2 Integration des Subscreens für das Zusatzfeld .............. 712.4.3 Definition der Verarbeitungslogik für das Zusatzfeld .... 76

2.5 Zusätzliche Prüfungen für Sachkontenstammdaten ................... 802.6 Schnittstellen für Sachkontenstammdaten ................................ 832.7 Zusammenfassung ................................................................... 84

3 Debitorenstammdaten ......................................................... 85

3.1 Technische Details und Transaktionen ..................................... 853.2 Ziel der Erweiterung der Debitorenstammdaten ....................... 863.3 Erweiterung der Datenbanktabellen und Strukturen ................. 873.4 Dialogerweiterung in der Debitorenstammdatenpflege ............ 88

3.4.1 Subscreen für das Zusatzfeld anlegen .......................... 893.4.2 Bildgruppe zu Subscreen definieren ............................. 903.4.3 Bildgruppe aktivieren und Subscreen zuordnen ........... 913.4.4 Definition der Verarbeitungslogik für das Zusatzfeld .... 97

3.5 Zusätzliche Prüfungen für Debitorenstammdaten ..................... 1033.6 Schnittstellen für Debitorenstammdaten .................................. 104

3.6.1 Erweiterung der Batch-Input-Struktur ......................... 1073.6.2 Erweiterung des Batch-Input-Programms .................... 108

3.7 Zusammenfassung ................................................................... 111

4 Kreditorenstammdaten ........................................................ 113

4.1 Technische Details und Transaktionen ..................................... 1144.2 Ziel der Erweiterung der Kreditorenstammdaten ...................... 1144.3 Erweiterung der Datenbanktabellen und Strukturen ................. 1154.4 Dialogerweiterung in der Kreditorenstammdatenpflege ........... 117

4.4.1 Definition der Verarbeitungslogik für das Zusatzfeld .... 1214.4.2 Fortschreibung von Änderungsbelegen für das

Zusatzfeld ................................................................... 1274.4.3 Anzeige von Änderungsbelegen für das Zusatzfeld ...... 131

1863.book Seite 6 Montag, 4. Juni 2012 9:47 09

Inhalt

7

4.5 Zusätzliche Prüfungen für Kreditorenstammdaten .................... 1334.6 Schnittstellen für Kreditorenstammdaten ................................. 1354.7 Zusammenfassung ................................................................... 136

TEIL II: Kundeneigene Erweiterungen von Geschäftsvorfällen

5 Buchhaltungsbelege ............................................................. 139

5.1 Technische Details der Buchhaltungsbelege ............................. 1395.2 Transaktionen .......................................................................... 1465.3 Dialogerweiterungen von Buchungstransaktionen .................... 147

5.3.1 Zusätzliche Funktionscodes in der Erfassung von Belegpositionen .......................................................... 147

5.3.2 Pflege zusätzlicher Belegkopfdaten in Enjoy-Transaktion für Sachkontenbelege ............................... 152

5.3.3 Pflege zusätzlicher Belegkopfdaten in Enjoy-Transaktion für Debitoren- und Kreditorenbelege ....... 158

5.4 Kundeneigene Zusatzkontierungen in Buchhaltungsbelegen .... 1615.5 Erweiterungen der Belegbuchung ............................................ 1665.6 Schnittstellen für Buchhaltungsbelege ...................................... 167

5.6.1 Batch-Input bzw. Call Transaction ............................... 1685.6.2 Direct Input ................................................................ 170

5.7 Validierungen und Substitutionen ............................................ 1715.7.1 Implementierung von User-Exits ................................. 1725.7.2 Beispielsubstitution mit User-Exits .............................. 174

5.8 Zusammenfassung ................................................................... 177

6 Elektronischer Kontoauszug ................................................ 179

6.1 Technischer Ablauf der Kontoauszugsverarbeitung ................... 1796.2 Programme und Transaktionen ................................................ 1836.3 Erweiterungen während des Einlesens

der Kontoauszugsdaten ........................................................... 1836.3.1 SWIFT-Standardformat MT940 ................................... 1836.3.2 Erweiterungen während des Einlesens des

MT940-Formats .......................................................... 1856.4 Erweiterungen während der Interpretation der

Kontoauszugsdaten ................................................................. 1886.5 Erweiterungen während der Buchung der

Kontoauszugsdaten ................................................................. 1926.6 Erweiterungen in der Nachbearbeitung von

Kontoauszugsdaten ................................................................. 195

1863.book Seite 7 Montag, 4. Juni 2012 9:47 09

Inhalt

8

6.7 Interpretationsalgorithmen ...................................................... 2006.7.1 Standard-Interpretationsalgorithmen ........................... 2006.7.2 Kundeneigene Interpretationsalgorithmen .................. 205

6.8 Suchmuster .............................................................................. 2106.9 Zusammenfassung ................................................................... 215

7 Mahnlauf .............................................................................. 217

7.1 Technische Details und Ablauf des Mahnlaufs .......................... 2177.2 Programme und Transaktionen ................................................ 2197.3 Erweiterungen des Mahnlaufs .................................................. 220

7.3.1 Erweiterungen der Transaktion F150 ........................... 2217.3.2 Erweiterungen während der Mahnselektion ................ 2267.3.3 Erweiterungen während des Mahndrucks .................... 234

7.4 Zusammenfassung ................................................................... 236

8 Zahllauf ................................................................................. 237

8.1 Technische Details und Verlauf des Zahllaufs ........................... 2378.2 Programme und Transaktionen ................................................ 2398.3 Erweiterungen des Zahllaufs .................................................... 240

8.3.1 Erweiterungen der Transaktion F110 ........................... 2418.3.2 Erweiterungen des Zahlungsprogramms ...................... 2438.3.3 Erweiterungen in der Regulierungsliste ........................ 250

8.4 Erweiterungen in der Payment Medium Workbench ................ 2538.4.1 Zeitpunktbausteine ..................................................... 2548.4.2 Aufbau des Verwendungszwecks ................................. 2578.4.3 Formatspezifische Parameter ....................................... 2618.4.4 Kundeneigene Granularität ......................................... 263

8.5 Zusammenfassung ................................................................... 265

9 Reporting – Einzelpostenliste .............................................. 267

9.1 Technische Details und Transaktionen ..................................... 2679.2 Erweiterungen der Einzelpostenliste in den

Transaktionen FBL*N ............................................................... 2699.2.1 Erweiterung der Kopfzeilen der Einzelpostenliste ........ 2699.2.2 Menüerweiterungen der Einzelpostenliste ................... 2739.2.3 Zusätzliche Felder in der Einzelpostenliste ................... 280

9.3 Erweiterungen der Einzelpostenliste in der Transaktion FAGLL03 ............................................................... 284

1863.book Seite 8 Montag, 4. Juni 2012 9:47 09

Inhalt

9

9.3.1 Menüerweiterungen der Einzelpostenliste ................... 2859.3.2 Zusätzliche Felder in der Einzelpostenliste ................... 285

9.4 Zusammenfassung ................................................................... 286

A Übersicht der Erweiterungen in der SAP-Finanzbuchhaltung ...................................................... 287

A.1 Sachkontenstammdaten ........................................................... 288A.2 Stammdaten Debitoren-/Kreditorenbuchhaltung ..................... 289A.3 Geschäftsvorfälle Debitoren-/Kreditorenbuchhaltung ............... 298A.4 Buchhaltungsbelege ................................................................. 301A.5 Elektronischer Kontoauszug ..................................................... 319A.6 Mahnlauf ................................................................................. 324A.7 Zahllauf ................................................................................... 330A.8 Reporting ................................................................................ 334A.9 Periodische Arbeiten ............................................................... 340A.10 Meldewesen ............................................................................ 349A.11 Archivierung ............................................................................ 354A.12 IDoc-Verarbeitung ................................................................... 358A.13 Länderspezifische Erweiterungen ............................................. 365A.14 Klassische Zahlungsträgerprogramme ....................................... 370

B Der Autor ............................................................................. 373

Index ........................................................................................................ 375

1863.book Seite 9 Montag, 4. Juni 2012 9:47 09

11

Einleitung

Die Finanzbuchhaltung als Teil des SAP ERP-Moduls Finanzwesen (FI) ist auf-grund der umfangreichen Customizing-Möglichkeiten auch ohne kunden-eigene Erweiterungen sehr flexibel. Trotzdem gelangt man früher oder späteran einen Punkt, an dem bloßes Customizing für die Umsetzung einer Anfor-derung nicht mehr ausreicht.

Bevor die verschiedenen SAP-Erweiterungstechniken eingeführt wurden,mussten in so einem Fall Standardprogramme modifiziert werden, was auf-grund des vollständig vorliegenden Quellcodes des SAP-Systems technischauch kein Problem darstellte. Der Nachteil bei der Anpassung von Standard-programmen bestand allerdings darin, dass solche Modifikationen zu Proble-men bei Release-Wechseln führen konnten und SAP keine Verantwortungfür das Verhalten von modifizierten Programmen übernimmt.

Um den Kunden trotzdem die Möglichkeit zu geben, die Verarbeitungslogikvon Standardprogrammen anzupassen, ohne den Support-Anspruch zu ver-lieren, führte SAP nach und nach verschiedene Erweiterungstechniken ein.Seitdem ist es möglich, das SAP-System bei Bedarf an definierten Punktenmodifikationsfrei zu erweitern und Daten über festgelegte Schnittstellen zuändern oder sogar eigene Funktionen in den Programmablauf zu integrieren.

Zielsetzung

Dieses Buch vermittelt Ihnen zunächst die nötigen technischen Grundlagenfür die Implementierung von kundeneigenen Erweiterungen. Anschließendsehen Sie verschiedene Anwendungsbeispiele für Erweiterungen von ausge-wählten Stammdaten und Geschäftsvorfällen in der Finanzbuchhaltung. Indetaillierten Schritt-für-Schritt-Anleitungen mit ABAP-Beispiel-Codings wirddas Vorgehen zur Realisierung diverser Anforderungen gezeigt. Gegebenen-falls werden hier mehrere Alternativen vorgestellt. In Ergänzung zu dieseninhaltlich beschriebenen Erweiterungen finden Sie im Anhang eine vollstän-dige Übersicht über alle Erweiterungsmöglichkeiten in der SAP-Finanzbuch-haltung.

1863.book Seite 11 Montag, 4. Juni 2012 9:47 09

Einleitung

12

Das Ziel dieses Buches ist dabei, Ihnen anhand der hier ausgewählten Bei-spiele aus der Hauptbuchhaltung sowie der Debitoren- und Kreditorenbuch-haltung eine systematische Herangehensweise an die Implementierung vonErweiterungen zu vermitteln. Gleichzeitig soll Ihnen das Buch als Nachschla-gewerk für typische Erweiterungen in der Finanzbuchhaltung dienen.

Aufbau und Inhalt

Das Buch beginnt in Kapitel 1, »Allgemeines zu kundeneigenen Erweiterun-gen«, mit einer ausführlichen Einführung in die verschiedenen Arten vonkundeneigenen Erweiterungen in der SAP-Finanzbuchhaltung. Anhand voneinfachen Beispielen lernen Sie, wie Sie User-Exits, Business TransactionEvents (BTE) und Business Add-Ins (BAdI) verwenden und aktivieren. Außer-dem sehen Sie, wie Sie selbst Erweiterungspunkte im System finden können,sei es über das Infosystem oder auf technischem Weg über ein Debuggingder betreffenden Programme. Das Kapitel wird ergänzt um die Beschreibungvon impliziten Erweiterungen.

Die folgenden Ausführungen in Teil 1, »Kundeneigene Erweiterungen vonStammdaten«, behandeln kundeneigene Erweiterungen von Stammdaten inder Finanzbuchhaltung. In Kapitel 2, »Sachkontenstammdaten«, Kapitel 3,»Debitorenstammdaten«, und Kapitel 4, »Kreditorenstammdaten«, erfahrenSie zunächst, wie diese Stammdaten im SAP-System abgebildet und welcheTransaktionen für die Pflege verwendet werden. Anschließend sehen Sie,wie die Stammdaten um kundeneigene Daten erweitert und die zugehörigenPflegedialoge modifikationsfrei angepasst werden können. Außerdem wirdbeschrieben, wie Schnittstellen für Stammdaten in der Finanzbuchhaltungrealisiert werden und welche Erweiterungsmöglichkeiten existieren.

Die in Teil 2, »Kundeneigene Erweiterungen von Geschäftsvorfällen«, folgen-den Kapitel beinhalten kundeneigene Erweiterungen von wichtigen Geschäfts-prozessen in der Finanzbuchhaltung. Zunächst werden in Kapitel 5, »Buchhal-tungsbelege«, mögliche Erweiterungen von Buchhaltungsbelegen und inKapitel 6, »Elektronischer Kontoauszug«, Erweiterungen zum elektronischenKontoauszug beschrieben. Weitere Geschäftsprozess-Erweiterungsmöglichkei-ten lernen Sie in Kapitel 7, »Mahnlauf«, und in Kapitel 8, »Zahllauf«, kennen.Exemplarisch für das Reporting werden in Kapitel 9, »Reporting – Einzelpos-tenliste«, mögliche Erweiterungen der Einzelpostenliste dargestellt. Zu jedemder Geschäftsvorfälle werden zunächst die technischen Grundlagen erläutertund darauf aufbauend Erweiterungen der Verarbeitungslogik bzw. der Dialogeanhand von Praxisbeispielen dargestellt. Die Coding-Beispiele sind dabei

1863.book Seite 12 Montag, 4. Juni 2012 9:47 09

Einleitung

13

bewusst einfach gehalten, vermitteln Ihnen aber das nötige Wissen, umanschließend Ihre ganz individuellen Anforderungen selbst umsetzen zu kön-nen. Die Schwierigkeit einer Erweiterung liegt nämlich häufig nicht in derImplementierung selbst, sondern darin, das unterliegende Datenmodell bzw.die unterliegenden Prozesse zu verstehen.

Anhang A, »Übersicht der Erweiterungen in der SAP-Finanzbuchhaltung«,enthält schließlich eine Übersicht über alle User-Exits, Business TransactionEvents und Business Add-Ins, die in der SAP-Finanzbuchhaltung am häufigs-ten zum Einsatz kommen. Zu jedem Erweiterungspunkt beinhaltet die Über-sicht eine kurze Beschreibung der Funktion sowie die Komponenten undAufrufstellen der entsprechenden Erweiterungsimplementierung, sodass Siefür Ihre eigenen Erweiterungsprojekte schnell die geeigneten Exits findenkönnen.

Um Ihnen die Lektüre zu erleichtern, werden in diesem Buch die folgendenSymbole verwendet:

Dieses Symbol weist Sie auf Besonderheiten hin, die Sie beachten sollten. Eswarnt Sie außerdem vor häufig gemachten Fehlern oder Problemen, die auf-treten können.

Mit diesem Symbol werden Tipps markiert, die Ihnen die Arbeit erleichternkönnen. Auch Empfehlungen, die Ihnen z. B. dabei helfen, weiterführendeInformationen zu dem besprochenen Thema zu finden, werden mit diesemSymbol hervorgehoben.

Wenn das besprochene Thema anhand von praktischen Beispielen erläutertund vertieft wird, werden Sie mit diesem Symbol darauf aufmerksamgemacht.

Zielgruppe

Dieses Buch richtet sich in erster Linie an ABAP-Entwickler, die einen Ein-stieg in die Erweiterungsmöglichkeiten der SAP-Finanzbuchhaltung suchen,ist aber auch für FI-Berater mit grundlegenden Programmierkenntnissengeeignet. Darüber hinaus können sich technische Projektleiter einen Über-blick über die Erweiterungen verschaffen, ohne sich zu sehr in Implementie-rungsdetails vertiefen zu müssen.

Das Buch richtet sich daher an Leser mit unterschiedlichen fachlichen undtechnischen Kenntnissen und soll trotzdem jeder dieser Gruppen das nötigeWissen über Erweiterungsmöglichkeiten in der Finanzbuchhaltung vermit-

1863.book Seite 13 Montag, 4. Juni 2012 9:47 09

Einleitung

14

teln. Daher wird versucht, sowohl fachliche als auch technische Grundlagen,die für das Verständnis einer Erweiterung nötig sind, ausreichend detailliertzu erläutern. Das Hauptaugenmerk dieses Buch liegt aber – wie der Titelschon andeutet – auf der technischen Umsetzung der Erweiterungen. Dietechnische Umsetzung wird daher ausführlich beschrieben, während fach-liche Zusammenhänge gegebenenfalls vereinfacht dargestellt werden.

Voraussetzungen

Für das Verständnis der Erweiterungsimplementierungen sind Grundkennt-nisse in der ABAP-Programmierung erforderlich. Einige Erweiterungsmög-lichkeiten sind außerdem objektorientiert umgesetzt, sodass entsprechendeABAP Objects-Kenntnisse von Vorteil sind. Diese sind allerdings keinesfallsein Muss, da diese Erweiterungen durch die Benutzerführung im SAP-Sys-tem auch implementiert werden können, ohne zu wissen, dass es sich imKern um eine objektorientierte Umsetzung handelt.

Für alle Leser mit fachlichem Hintergrund, die sich nur einen Überblick überdie Erweiterungsmöglichkeiten verschaffen möchten, sind die Kapitel außer-dem so strukturiert, dass die Implementierungsdetails bei Bedarf auch über-sprungen werden können.

Danksagung

Ich danke meinem Arbeitgeber, der ConVista Consulting AG, und hier spezi-ell Oliver Kewes, für die entgegenkommende Arbeitszeitregelung, die diesesBuch überhaupt erst ermöglicht hat. Außerdem danke ich meinem KollegenSamuel Gonzalez, der viele Stunden seiner Freizeit für Anregungen, Verbes-serungsvorschläge und Korrekturen geopfert hat. Darüber hinaus möchte ichmich bei Janina Schweitzer und Stefan Proksch von Galileo Press für das Lek-torat und die Unterstützung während der Manuskripterstellung bedanken.

Der größte Dank gilt allerdings meiner Frau, die mir besonders in den letz-ten Wochen privat jede erdenkliche Arbeit abgenommen hat und mir so dienötige Zeit verschafft hat, dieses Buch pünktlich fertigzustellen.

Michael Rohrbach

1863.book Seite 14 Montag, 4. Juni 2012 9:47 09

139

5 Buchhaltungsbelege

Buchhaltungsbelege sind das zentrale Objekt für Bewegungsdaten in derFinanzbuchhaltung, denn jede Bewegung auf Sach-, Debitoren- und Kredito-renkonten erfordert die Buchung eines Belegs. Grundlage dieses Kapitels bil-den die Darstellung der verwendeten Datenbanktabellen für die Ablage vonBuchhaltungsbelegen sowie die verschiedenen Transaktionen für derenErfassung, Änderung und Anzeige. Im Anschluss an die Darstellung derGrundlagen sehen Sie, welche Möglichkeiten Sie haben, Buchungsdialogeanzupassen oder sogar in die Belegerstellung selbst einzugreifen. Außerdemfinden Sie Informationen zur Erweiterung von Schnittstellen, sowohl ausanderen Modulen als auch aus externen Quellen. Das Kapitel schließt mitErläuterungen zur Verwendung von User-Exits in Validierungen und Substi-tutionen.

5.1 Technische Details der Buchhaltungsbelege

Grundsätzlich ist die Struktur eines Buchhaltungsbeleges sehr einfach undbenötigt eigentlich nur zwei Datenbanktabellen: eine für den Belegkopf undeine, die die Belegpositionen enthält. Wie Sie in diesem Abschnitt sehenwerden, existieren jedoch wesentlich mehr Tabellen, die teilweise redun-dante Informationen enthalten. Diese zusätzlichen Tabellen ermöglichenaber z. B. die performante Erstellung von Steuermeldungen oder Einzelpos-ten-, Offene-Posten- (OP) und Saldenlisten, die ohne sie nicht möglichwären.

Belegkopf (Tabelle BKPF)

Belegköpfe werden in der Tabelle BKPF abgelegt und enthalten positions-übergreifende Informationen wie das Beleg- und Buchungsdatum, die Beleg-art oder die Währung eines Belegs. Ein Belegkopf wird durch die Kombina-tion von Buchungskreis, Belegnummer und Geschäftsjahr eindeutigidentifiziert.

1863.book Seite 139 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

140

Belegpositionen (Tabelle BSEG)

Die Tabelle BSEG enthält alle Positionen eines Belegs und ist über die FelderBuchungskreis, Belegnummer und Geschäftsjahr mit der Tabelle BKPF ver-knüpft. Die Tabelle BSEG enthält im Schlüssel zusätzlich noch einen dreistel-ligen Zähler für die Buchungszeile.

Die Tabelle BSEG enthält über 300 Datenfelder, von denen die wichtigstenhier kurz dargestellt und erläutert werden:

� Buchungsschlüssel (BSCHL)Der Buchungsschlüssel beschreibt die Art der Bewegung in einer Beleg-position. Aus dem Buchungsschlüssel ergeben sich unter anderem diebebuchte Kontoart und die Zuordnung zur Soll- oder Haben-Seite. Außer-dem ist es möglich, für den Buchungsschlüssel einen Feldstatus zu hinter-legen, das heißt zu definieren, welche Eingaben bei der Verwendungeines Buchungsschlüssels vorgenommen werden können oder müssen.Dies kann z. B. bei debitorischen und kreditorischen Positionen sinnvollsein, da hier eine differenzierte Ausgestaltung des Feldstatus nicht immerüber das zugehörige Hauptbuchkonto erfolgen kann.

� Kontoart (KOART)Die Kontoart legt fest, ob ein Sachkonto (S), ein Debitor (D) oder ein Kre-ditor (K) in der Buchungszeile bebucht wird. Daneben gibt es noch Kon-toarten für Buchungen in der Anlagenbuchhaltung und Materialwirt-schaft, auf die hier nicht näher eingegangen wird.

� Soll-/Haben-Kennzeichen (SHKZG)Das Soll-/Haben-Kennzeichen legt fest, ob es sich um eine Soll- oderHaben-Position handelt, was letztlich für die korrekte Fortschreibung derSummentabellen (siehe Abschnitt »Summentabellen des Hauptbuchs(GLT0 und FAGLFLEXT)«) von Bedeutung ist.

� Betrag in Hauswährung (DMBTR)Der Hauswährungsbetrag enthält den Betrag in der Währung, die alsHauswährung für den Buchungskreis definiert wurde.

Belegpositionen bei Schnittstellenimplementierung

Ein Beleg kann demnach maximal 999 Positionen enthalten, was gerade bei derImplementierung von Schnittstellen berücksichtigt werden muss. Dabei ist außer-dem zu beachten, dass vom System z. B. bei Steuerbuchungen oder buchungskreis-übergreifenden Buchungen automatisch zusätzliche Zeilen erzeugt werden, dieebenfalls noch in den Beleg passen müssen.

1863.book Seite 140 Montag, 4. Juni 2012 9:47 09

Technische Details der Buchhaltungsbelege 5.1

141

� Betrag in Transaktionswährung (WRBTR)Der Transaktionswährungsbetrag enthält den Betrag in der Währung, dieim Belegkopf festgelegt wurde.

� Konto (HKONT, KUNNR, LIFNR)Abhängig von der Kontoart, finden Sie das bebuchte Konto in unter-schiedlichen Feldern: bei Sachkontenpositionen im Feld HKONT, bei Debi-torenpositionen im Feld KUNNR und bei Kreditorenpositionen im FeldLIFNR. Bei Debitoren- oder Kreditorenpositionen ist außerdem zusätzlichdas Feld HKONT gefüllt und enthält das Abstimmkonto des Debitors- bzw.Kreditors, da die Buchung auch auf diesem Konto fortgeschrieben wird.

� Steuerkennzeichen (MWSKZ)Das Steuerkennzeichen legt fest, ob eine Belegposition steuerrelevant ist,und bestimmt die Art (z. B. Unterscheidung zwischen Vorsteuer und Aus-gangssteuer) und Höhe der Steuer.

� Positionstext (SGTXT)Im Positionstext kann zu jeder Belegposition ein beschreibender Texterfasst werden.

� Zuordnungsnummer (ZUONR)Die Zuordnungsnummer ist ein weiteres Freitextfeld, das als Zusatzinfor-mation am Beleg häufig für die Sortierung in Einzelpostenlisten oder zurGruppierung von Posten beim OP-Ausgleich verwendet wird.

� CO-Kontierungen (KOSTL, AUFNR etc.)Bei der Buchung auf Kostenarten enthält die Belegposition das oder diezugehörigen CO-Kontierungsobjekte.

� Partnergesellschaft (VBUND)Die Partnergesellschaft ist eine konzernweit eindeutige Gesellschaftsnum-mer und wird in der Regel dazu verwendet, Forderungen, Verbindlichkei-ten, Aufwände und Erträge einer Gesellschaft einer anderen Gesellschaftdes Konzerns zuzuordnen. Dadurch wird zum Beispiel die Eliminierungkonzerninterner Forderungen und Verbindlichkeiten für die Erstellungeiner Konzernbilanz ermöglicht.

Technisch ist die Tabelle BSEG eine Cluster-Tabelle und zusammen mit ande-ren Tabellen einem Tabellen-Cluster (RFBLG) zugeordnet. Das heißt, dass dieTabelle nicht wie transparente Tabellen eins zu eins auch in der Datenbankexistiert. Stattdessen enthält der Tabellen-Cluster in der Datenbank nur allegemeinsamen Schlüsselfelder der enthaltenen Cluster-Tabellen und alleanderen Felder werden komprimiert in einer einzigen Spalte abgelegt. Da-raus ergibt sich zum einen die Einschränkung, dass die Tabelle BSEG nicht in

1863.book Seite 141 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

142

SQL-Joins verwendet werden darf, und außerdem ist ein performanterZugriff nur über den Tabellenschlüssel möglich.

CPD-Daten (Tabelle BSEC)

Bei der Erfassung von Belegpositionen zu CPD-Debitoren oder -Kreditoren(CPD steht für Conto pro Diverse) werden zusätzliche Buchungsinformatio-nen wie Adressen oder Bankverbindungen auf Belegpositionsebene in derTabelle BSEC gespeichert.

Buchungskreisübergreifende Buchungen (Tabelle BVOR)

Bei buchungskreisübergreifenden Buchungen wird pro beteiligtenBuchungskreis ein normaler Beleg mit den entsprechenden Einträgen in denTabellen BKPF, BSEG etc. erstellt. Gleichzeitig wird eine Nummer vergeben,die eine übergreifende Klammer über alle Einzelbelege in den Buchungskrei-sen bildet und in der Tabelle BVOR gespeichert wird.

Steuerdaten zur Belegposition (Tabelle BSET)

Die Tabelle BSET ist ebenfalls eine Cluster-Tabelle im Tabellen-Cluster RFBLGund enthält Steuerpositionen. Steuerpositionen können sowohl manuellerfasst als auch automatisch vom System erzeugt werden. Bei der Erzeugungvon Steuerzeilen werden alle steuerrelevanten Buchungszeilen nach Steuer-kennzeichen gruppiert, dann wird für jedes Steuerkennzeichen ein resultie-render Steuerbetrag berechnet und das Ergebnis als einzelne Steuerzeilehinzugefügt. Im Allgemeinen gibt es also keine Eins-zu-eins-Beziehung zwi-schen einer steuerrelevanten Zeile und einer Steuerzeile.

Sekundärindextabellen (Tabellen BS*)

Sekundärindextabellen enthalten redundante Informationen aus den Tabel-len BKPF und BSEG und ermöglichen die performante Erstellung von OP-und Einzelpostenlisten. Wie bereits erwähnt, kann auf die Tabelle BSEG nurüber den Schlüssel, das heißt über Belege, performant zugegriffen werden.Bei der Erstellung von OP- und Einzelpostenlisten wird aber ein Zugriff überKontonummern bzw. Ausgleichsinformationen von Positionen benötigt.

Daher gibt es verschiedene Tabellen, die neben dem Schlüssel der TabelleBSEG die Kontonummer, das Ausgleichsdatum, den Ausgleichsbeleg und dieZuordnung enthalten und verschiedene Datenfelder aus BKPF und BSEG für

1863.book Seite 142 Montag, 4. Juni 2012 9:47 09

Technische Details der Buchhaltungsbelege 5.1

143

Auswertungen zusammenfassen. Insgesamt gibt es sechs solcher Sekundär-indextabellen, die alle mit dem Präfix BS beginnen. Es gibt unterschiedlicheTabellen für offene und ausgeglichene Posten sowie für Sachkonten-, Debi-toren- und Kreditorenposten. Der Tabellenname ergibt sich in Ergänzungzum Präfix BS wie folgt: Der dritte Buchstabe des Tabellennamens unter-scheidet zwischen offenen (I) und ausgeglichenen (A) Posten, und der vierteBuchstabe unterscheidet zwischen Sachkonten (S), Debitoren (D) und Kredi-toren (K). Daraus ergeben sich die folgenden Sekundärindextabellen:

� BSIS und BSAS für Sachkontenpositionen

� BSID und BSAD für Debitorenpositionen

� BSIK und BSAK für Kreditorenpositionen

Beim Ausgleich eines Sachkonten-, Debitoren- oder Kreditoren-OPs wird diezugehörige Tabellenzeile aus der Tabelle BSI* entfernt und in die TabelleBSA* eingefügt. Dabei werden das Ausgleichsdatum und die Ausgleichsbe-legnummer gefüllt. Ein Posten eines OP-geführten Sachkontos, eines Debi-tors oder eines Kreditors kann demnach immer nur entweder in der TabelleBSI* oder der Tabelle BSA* enthalten sein, wobei das Ausgleichsdatum unddie Ausgleichsbelegnummer in den Tabellen BSI* immer leer und in denTabellen BSA* immer gefüllt sind.

Bei der Auswertung von offenen Posten über die Tabellen BSI* und BSA* istzu beachten, dass die Tabelle BSI* immer den aktuellen Stand von offenenPosten enthält. Mit den Informationen aus beiden Tabellen lassen sichjedoch die offenen Posten zu jedem beliebigen Stichtag in der Vergangenheitbestimmen. Dazu müssen folgende Positionen aus BSI* und BSA* zusammen-gefasst werden:

Besonderheit der Tabelle BSIS

Der Inhalt der Tabelle BSIS unterscheidet sich dabei etwas vom Inhalt der TabellenBSID und BSIK – von dem Unterschied in der betreffenden Kontoart einmal abge-sehen. Während Debitoren und Kreditoren immer OP-geführt sind, kann ein Sach-konto OP- oder einzelpostengeführt sein, oder es werden gar keine Einzelpostenfür das Sachkonto fortgeschrieben. Die Tabelle BSIS wird allerdings nicht nur beiOP-Führung des Kontos fortgeschrieben, sondern auch bei Einzelpostenführung,um die Erstellung von Einzelpostenlisten zu ermöglichen. Die Tabelle BSIS enthältalso nicht ausschließlich offene Posten, sondern für einzelpostengeführte Kontenalle Positionen. Positionen von OP-geführten Konten können dabei über dasKennzeichen XOPVW identifiziert werden.

1863.book Seite 143 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

144

� alle Posten aus BSI* mit Buchungsdatum kleiner gleich dem Stichtag

� alle Posten aus BSA* mit Buchungsdatum kleiner gleich dem Stichtag undAusgleichsdatum größer gleich dem Stichtag

Summentabellen des Hauptbuches (GLT0 und FAGLFLEXT)

In der Finanzbuchhaltung werden häufig Auswertungen zu Sachkontensal-den sowie natürlich zur Bilanz und Gewinn- und Verlustrechnung (GuV)benötigt. Technisch wäre es problemlos möglich, Kontensalden über die Ein-zelpostentabellen (BSI*) oder sogar über die Belegtabellen (BKPF und BSEG)zu berechnen. Zum Beispiel für die Erstellung einer Eröffnungsbilanz müss-ten dann allerdings alle jemals in der Vergangenheit gebuchten Posten bzw.Belege ausgewertet werden. Daher werden bereits bei der Buchung im Hin-tergrund Tabellen mit gebuchten Summen pro Periode und Saldovortragfortgeschrieben. Für eine Eröffnungsbilanz muss so nur noch der Saldovor-trag selektiert werden bzw. für eine Schlussbilanz der Saldovortrag und diePeriodenwerte des laufenden Jahres.

Die verwendete Summentabelle ist abhängig davon, ob New GL im Systemaktiviert ist oder nicht. Die grundlegende Tabellenstruktur ist identisch undwird daher im Folgenden anhand der Summentabelle des klassischen Haupt-buches beschrieben. Anschließend wird auf die Unterschiede eingegangen,die bei der Verwendung der neuen Hauptbuchbuchhaltung zu beachtensind.

Besonderheiten bei der Verwendung des neuen Hauptbuches

Bei Verwendung des neuen Hauptbuches (New General Ledger, kurz New GL) wer-den noch in weitere Tabellen Belegpositionen bzw. Einzelposten fortgeschrieben:

� Die Tabelle BSEG_ADD enthält alle Belegzeilen von Belegen, die in nicht füh-renden Ledgern gebucht werden. Da bei der Buchung in nicht führende Ledgereinige Funktionen nicht unterstützt werden, enthält die Tabelle BSEG_ADDwesentlich weniger Datenfelder als die Tabelle BSEG. Als Beispiel seien hier alleFelder zu Buchungen auf Debitoren und Kreditoren genannt.

� Des Weiteren werden alle Einzelposten ledgergruppenspezifisch in der TabelleFAGLFLEXA fortgeschrieben.

� Seitdem die Möglichkeit besteht, Sachkonten auch ledgergruppenspezifischauszugleichen, gibt es außerdem die Tabellen FAGLBSIS und FAGLBSAS, die inAufbau und Funktion grundsätzlich den Tabellen BSIS und BSAS entsprechenund die offenen und ausgeglichenen Posten von ledgergruppenspezifisch OP-geführten Konten enthalten. Im Gegensatz zur Tabelle BSIS enthält die TabelleFAGLBSIS allerdings keine Posten von einzelpostengeführten Konten.

1863.book Seite 144 Montag, 4. Juni 2012 9:47 09

Technische Details der Buchhaltungsbelege 5.1

145

Ist New GL nicht aktiviert, wird die Tabelle GLT0 als Summentabelle für dasHauptbuch verwendet. Darin werden die Verkehrszahlen in Abhängigkeitvon Buchungskreis, Geschäftsjahr, Konto, Geschäftsbereich, Währung undSoll-/Haben-Kennzeichen fortgeschrieben. Maximal können in der TabelleGLT0 Periodenwerte für 16 Perioden gespeichert werden: Hauswährungs-werte finden sich in den Spalten HSL01 bis HSL16, Transaktionswährungs-werte in den Spalten TSL01 bis TSL16.

Außerdem gibt es noch die Periodenwerte KSL01 bis KSL16 für eine soge-nannte Konzernwährung bzw. parallel geführte Hauswährung. Diese Perioden-werte werden zum Beispiel verwendet, wenn innerhalb eines KonzernsBuchungskreise mit unterschiedlichen Hauswährungen existieren, aber eineKonzernbilanz in einer Währung erstellt werden soll. Neben den Perioden-werten enthält die Tabelle GLT0 die Saldovorträge des Geschäftsjahres inHauswährung (Feld HSLVT), Transaktionswährung (Feld TSLVT) und Konzern-währung (Feld KSLVT). Der Wert des Saldovortrages entspricht genau derSumme aus Saldovortrag und allen Periodenwerten des Vorjahres.

Bei aktiviertem New GL wird standardmäßig die Summentabelle FAGL-FLEXT verwendet, die im Hinblick auf die Periodenwerte der Tabelle GLT0entspricht, allerdings die Fortschreibung von Verkehrszahlen für mehrereDimensionen erlaubt. So ist es zum Beispiel möglich, Periodenwerte inAbhängigkeit von Kostenstellen, Partnergesellschaften oder sogar kundenei-genen Kontierungen fortzuschreiben.

Verwendung der Periodenwerte

Der Inhalt des Feldes RPMAX gibt an, wie viele der 16 Periodenwerte in der TabelleGLT0 tatsächlich verwendet werden. In den meisten Fällen wird im SAP-Systemeine Geschäftsjahresvariante mit 16 Perioden verwendet, wobei die ersten zwölfPerioden den Monaten des Geschäftsjahres entsprechen und die letzten vier soge-nannten Sonderperioden für Buchungen im Rahmen des Jahresabschlusses verwen-det werden.

Für diese Geschäftsjahresvariante werden daher alle 16 Periodenwerte benötigt. Eskönnen aber auch Geschäftsjahresvarianten verwendet werden, die weniger alsvier Sonderperioden enthalten und damit nicht alle 16 Periodenwerte erfordern.Aus diesem Grund sollte in Summentabellen das Feld RPMAX bei Berechnungenimmer berücksichtigt werden. Außerdem sollten Sie bei der Ableitung derBuchungsperiode aus dem Buchungsdatum stets den Funktionsbaustein DATE_TO_PERIOD_CONVERT verwenden, falls die Geschäftsvariante ein verschobenesGeschäftsjahr besitzt und daher der Monat des Jahres nicht mit der Periode über-einstimmt.

1863.book Seite 145 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

146

Summentabellen der Nebenbücher (KNC1 und LFC1)

Auch in den Nebenbüchern werden Summentabellen fortgeschrieben, umdie performante Auswertung von Debitoren- (KNC1) und Kreditorensalden(LFC1) zu ermöglichen. Im Gegensatz zum Soll-/Haben-Kennzeichen in denSummentabellen im Hauptbuch ist das Soll-/Haben-Kennzeichen in denSummentabellen des Nebenbuches kein Schlüsselfeld. Stattdessen sind Soll-und Haben-Werte sowie der resultierende Umsatz gemeinsam in derselbenTabellenzeile zu finden.

5.2 Transaktionen

Grundsätzlich kann bei der Erfassung von Buchhaltungsbelegen zwischenden klassischen Transaktionen und den neueren, sogenannten Einbildtrans-aktionen oder Enjoy-Transaktionen unterschieden werden. Alle klassischenBuchungstransaktionen basieren auf der Transaktion FB01, bei der Beleg-kopfinformationen und Belegpositionen nacheinander auf verschiedenenDynpros eingegeben werden können. Abhängig vom Anwendungsgebiet,gibt es weitere Transaktionen, die die Transaktion FB01 starten und dabeiverschiedene Felder schon mit Vorschlagswerten vorbelegen.

In den Enjoy-Transaktionen können seit SAP-Release 4.6 alle Daten einesGeschäftsvorfalls gemeinsam auf einem Dynpro erfasst werden. Diegebräuchlichsten sind die Transaktionen für Sachkontenbuchungen (FB50),für die Buchung von Debitorenrechnungen (FB60) und für die Buchung vonKreditorenrechnungen (FB70). Allen Transaktionen ist gemeinsam, dass imoberen Bereich des Hauptbildes Belegkopfinformationen und in einerTabelle im unteren Bereich des Hauptbildes Belegpositionen für Sachkonteneingegeben werden können. Darüber hinaus kann bei der Erfassung vonDebitoren- und Kreditorenrechnungen genau eine Debitoren- bzw. Kredito-renposition zusammen mit den Belegkopfinformationen eingegeben wer-den. Als Beispiel ist die Enjoy-Transaktion zur Sachkontenbuchung in Abbil-dung 5.1 zu sehen. Enjoy-Transaktionen bieten im Vergleich zu klassischenBuchungstransaktionen mehr Erweiterungsmöglichkeiten.

Transaktion F-22

So gibt es z. B. im Bereich der Debitorenbuchhaltung die Transaktion F-22 (Debi-torenrechnung erfassen), die die Transaktion FB01 mit der voreingestellten Beleg-art DR und dem Buchungsschlüssel 01 für die erste Belegposition startet.

1863.book Seite 146 Montag, 4. Juni 2012 9:47 09

Dialogerweiterungen von Buchungstransaktionen 5.3

147

Sämtliche Buchungstransaktionen, gleichgültig, ob klassische oder Enjoy-Transaktion, sind im Programm SAPMF05A implementiert. Außerdem existiertdas Programm SAPMF05L für die Beleganzeige und -änderung, die über dieTransaktionen FB02 und FB03 aufgerufen werden.

5.3 Dialogerweiterungen von Buchungstransaktionen

Die Buchungsdialoge können sowohl bei klassischen als auch bei Enjoy-Transaktionen erweitert werden, wobei für Enjoy-Transaktionen mehrErweiterungsmöglichkeiten zur Verfügung stehen.

5.3.1 Zusätzliche Funktionscodes in der Erfassung von Belegpositionen

Wenn Sie sich beispielhaft den GUI-Status ZBV im Programm SAPMF05Aanschauen, sehen Sie, dass darin verschiedene Funktionscodes (OPF*) mitdynamischen Funktionstexten definiert sind. Dieser GUI-Status wird zumBeispiel im Dynpro 0300 bei der Erfassung einer Sachkontenposition ver-wendet. Anhand der Namen der Funktionscodes können Sie darauf schlie-ßen, dass es sich dabei um Open-FI-Erweiterungen handelt, die mit BusinessTransaction Events (BTE) aktiviert werden können.

Abbildung 5.1 Enjoy-Transaktion für Sachkontenbuchung

1863.book Seite 147 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

148

Suchen Sie im BTE-Infosystem nach passenden Events, finden Sie unteranderem zwei P&S-Schnittstellen für die Aktivierung eines zusätzlichenFunktionscodes bei der Bearbeitung einer Belegposition:

� P&S-Schnittstelle 00001080Das BTE 00001080 verwenden Sie, um einem der zusätzlichen Funktions-codes einen Funktionstext zuzuweisen und damit einzublenden.

� P&S-Schnittstelle 00001070Das BTE 00001070 wird ausgeführt, sobald der durch das BTE 00001080aktivierte Funktionscode ausgeführt wird. Dabei werden die Informatio-nen zur aktuell bearbeiteten Buchungszeile übergeben.

In klassischen Transaktionen wird der Funktionscode nur in der Positionser-fassung angezeigt, bei der Rechnungs- bzw. Gutschrifterfassung in Enjoy-Transaktionen sowohl in der Übersicht als auch in den Positionen. In derÜbersicht werden bei der Ausführung des Funktionscodes die Informatio-nen zur letzten Zeile in der Positionstabelle übergeben. Ist die Positions-tabelle leer, wird die Funktion für den erfassten Debitor oder Kreditor aus-geführt.

In diesem Abschnitt sollen die genannten BTEs verwendet werden, um ausder Buchungstransaktion in die OP-Liste des aktuell erfassten Kontos abzu-springen. Wie bei BTEs üblich gibt es Musterfunktionsbausteine, die kopiertund implementiert werden müssen. Anschließend werden die implemen-tierten Funktionsbausteine den BTEs zugeordnet. Gehen Sie dazu wie folgtvor:

1. Kopieren Sie den Funktionsbaustein SAMPLE_INTERFACE_00001080, understellen Sie einen neuen Funktionsbaustein Z_SAMPLE_INTERFACE_

00001080 mit dem Quellcode aus Listing 5.1.

Im Quellcode wird unabhängig von Sprache und Bearbeitungsmodus derFunktionstext »OPs anzeigen« zurückgegeben, der als zusätzliche Druck-taste bzw. Menüeintrag erscheinen soll.

FUNCTION z_sample_interface_00001080.*"-------------------------------------------------------*"*"Lokale Schnittstelle:*" IMPORTING*" REFERENCE(I_SPRAS) LIKE SY-LANGU*" REFERENCE(I_AKTYP) TYPE AKTYP*" REFERENCE(I_DYNCL) TYPE DYNCL

1863.book Seite 148 Montag, 4. Juni 2012 9:47 09

Dialogerweiterungen von Buchungstransaktionen 5.3

149

*" EXPORTING*" VALUE(E_FTEXT) LIKE FTEXTS-FTEXT*"-------------------------------------------------------e_ftext = 'OPs anzeigen'.

ENDFUNCTION.

Listing 5.1 Implementierung des BTEs 00001080

2. Kopieren Sie den Funktionsbaustein SAMPLE_INTERFACE_00001070, understellen Sie einen neuen Funktionsbaustein Z_SAMPLE_INTERFACE_

00001070 mit dem Quellcode aus Listing 5.2.

FUNCTION Z_SAMPLE_INTERFACE_00001070.*"-------------------------------------------------------*"*"Lokale Schnittstelle:*" IMPORTING*" REFERENCE(I_BKPF) TYPE BKPF*" REFERENCE(I_BSEG) TYPE BSEG*" REFERENCE(I_AKTYP) TYPE AKTYP*" REFERENCE(I_DYNCL) TYPE DYNCL*" EXPORTING*" REFERENCE(E_XCHNG) LIKE OFIWA-XCHNG*"-------------------------------------------------------SET PARAMETER ID 'BUK' FIELD i_bkpf-bukrs.IF i_bseg-koart EQ 'S'.SET PARAMETER ID 'SAK' FIELD i_bseg-hkont.CALL TRANSACTION 'FAGLL03' AND SKIP FIRST SCREEN.

ELSEIF i_bseg-koart EQ 'K'.SET PARAMETER ID 'LIF' FIELD i_bseg-lifnr.CALL TRANSACTION 'FBL1N' AND SKIP FIRST SCREEN.

ELSEIF i_bseg-koart EQ 'D'.SET PARAMETER ID 'KUN' FIELD i_bseg-kunnr.CALL TRANSACTION 'FBL5N' AND SKIP FIRST SCREEN.

ELSE.* Gegebenenfalls Fehlermeldung:* OP-Anzeige für Kontoart & nicht möglichENDIF.

ENDFUNCTION.

Listing 5.2 Implementierung des BTEs 00001070

Dem Funktionsbaustein des BTEs 00001070 werden Belegkopf- und Beleg-zeileninformationen der aktuell bearbeiteten Zeile übergeben. Abhängigvon der bearbeiteten Kontoart in der Buchungszeile, wird die entspre-chende Transaktion zur Anzeige einer OP-Liste aufgerufen und das Konto

1863.book Seite 149 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

150

über SPA-/GPA-Parameter übergeben. Um den Code möglichst übersicht-lich zu halten, wurde hier auf jegliche Fehlerbehandlung verzichtet (diebei nicht OP-geführten Sachkonten notwendig würde).

3. Starten Sie die Transaktion FIBF, um ein Kundenprodukt anzulegen undden BTEs 00001070 und 00001080 die gerade angelegten Funktionsbau-steine zuzuordnen.

4. Wählen Sie im Menü Einstellungen � Produkte � …eines Kunden.

5. Legen Sie ein neues Kundenprodukt ZFIDOC mit der Beschreibung »Erwei-terung Belegerfassung« an, wie in Abbildung 5.2 zu sehen ist, und aktivie-ren Sie es.

6. Kehren Sie zurück in das Startbild der Transaktion FIBF, und wählen Sieim Menü Einstellungen � P/S-Bausteine � …eines Kunden.

7. Erstellen Sie neue Einträge für die BTEs 00001070 und 00001080, und ord-nen Sie die Funktionsbausteine Z_SAMPLE_INTERFACE_00001070 undZ_SAMPLE_INTERFACE_00001080 zu (siehe Abbildung 5.3).

SPA-/GPA-Parameter

Mithilfe von SPA-/GPA-Parametern können Werte transaktionsübergreifend zwi-schen Programmen ausgetauscht werden. Der Name leitet sich aus den ABAP-Anweisungen SET PARAMETER und GET PARAMETER ab, die verwendet werden, umParameterwerte zu setzen oder abzufragen. In vielen Standardtransaktionen sindParameter des Selektionsbildschirms mit SPA-/GPA-Parametern verknüpft, sodassdiese in aufrufenden Programmen verwendet werden können, um den Selektions-bildschirm vorzubelegen.

Abbildung 5.2 Kundenprodukt für BTEs 00001070 und 00001080

Abbildung 5.3 Zuordnung der BTEs zu Funktionsbausteinen

1863.book Seite 150 Montag, 4. Juni 2012 9:47 09

Dialogerweiterungen von Buchungstransaktionen 5.3

151

Damit ist der neue Funktionscode aktiviert, und der Aufruf der OP-Listewurde zugeordnet. Bei der Erfassung der Belegposition in einer klassischenBuchungstransaktion sehen Sie nun wie in Abbildung 5.4 einen zusätzlichenMenüeintrag und eine zusätzliche Drucktaste mit dem Funktionstext OPs

anzeigen. Abhängig von der bearbeiteten Belegzeile, wird eine Sachkonten-,Debitoren- oder Kreditoren-OP-Liste zum aktuellen Konto angezeigt.

Auch in Enjoy-Transaktionen werden der zusätzliche Menüeintrag und diezusätzliche Drucktaste angezeigt und beziehen sich dort auf die letzte Zeileder Positionstabelle bzw. auf den erfassten Debitor oder Kreditor, falls diePositionstabelle leer ist. In Abbildung 5.5 ist das beispielhaft für TransaktionFB60 (Kreditorenrechnung erfassen) dargestellt.

Nachdem Sie nun gesehen haben, wie Sie einen zusätzlichen Funktionscodeanlegen, geht es nun weiter mit der Pflege zusätzlicher Belegkopfdaten.

Abbildung 5.4 Zusätzlicher Menüeintrag und zusätzliche Drucktaste in klassischer Buchungstransaktion

Abbildung 5.5 Zusätzlicher Menüeintrag und zusätzliche Drucktaste in Enjoy-Transaktion

1863.book Seite 151 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

152

5.3.2 Pflege zusätzlicher Belegkopfdaten in Enjoy-Transaktion für Sachkontenbelege

Mit dem BAdI FI_HEADER_SUB_1300 existiert eine Erweiterung, mit der inden Grunddaten der Enjoy-Transaktion zur Erfassung von Sachkontenbele-gen ein kundeneigener Subscreen eingeblendet werden kann. Dieser Sub-screen kann auch zur Erfassung zusätzlicher Belegkopfinformationen ver-wendet werden. In diesem Abschnitt soll nun beispielhaft ein Subscreendefiniert werden, über den ein zusätzliches Feld aus einer Append-Strukturzu Tabelle BKPF gepflegt werden kann.

In Anlehnung an die Beispielimplementierung zum BAdI in der zugehörigenSAP-Dokumentation unterscheidet sich diese Erweiterung technisch etwasvon der Erweiterungen der Stammdatenpflegedialoge, die Sie in Teil 1,»Kundeneigene Erweiterungen von Stammdaten«, kennengelernt haben.Dort wurde der Subscreen in einem Modulpool definiert, und aus denMethoden der BAdI-Implementierung wurden verschiedene Forms imModulpool aufgerufen, um Daten zwischen Standardlogik und kundeneige-nem Subscreen auszutauschen.

Im nun folgenden Beispiel erfolgt die Definition des kundeneigenen Sub-screens in einer Funktionsgruppe, und die BAdI-Implementierung dient alsProxy-Klasse für den Datenaustausch zwischen Standardlogik und kunden-eigenem Subscreen. Das bedeutet, dass sowohl die Standardlogik als auchdie Ablauflogik des Subscreens BAdI-Methoden verwenden, um Daten mitder BAdI-Implementierung auszutauschen. Die BAdI-Implementierungselbst hält demnach den aktuellen Stand der bearbeiteten Daten und gibt ihnbei Bedarf zur Pflege an den Subscreen oder zur weiteren Verarbeitung andie Standardlogik zurück.

Abbildung 5.6 Append-Struktur ZBKPF zu Tabelle BKPF

1863.book Seite 152 Montag, 4. Juni 2012 9:47 09

Dialogerweiterungen von Buchungstransaktionen 5.3

153

Im Beispiel soll ein Textfeld für eine kundeneigene Referenz in den Beleg-kopf aufgenommen werden. Definieren Sie deshalb, wie in Abbildung 5.6 zusehen ist, eine Append-Struktur ZBKPF zu Tabelle BKPF mit dem 40-stelligenkundeneigenen Feld ZZXBLNR. Anschließend definieren Sie einen Subscreenfür die Pflege des zusätzlichen Feldes und ordnen es dem BAdI FI_HEADER_SUB_1300 zu. Gehen Sie dazu wie folgt vor:

1. Legen Sie eine Funktionsgruppe ZFI_HEADER_SUB_1300 an, und definierenSie im TOP-Include LZFI_HEADER_SUB_1300TOP einen Tabellenarbeitsbe-reich BKPF.

2. Legen Sie in der Funktionsgruppe ZFI_HEADER_SUB_1300 ein Dynpro 1300an, wählen Sie Subscreen als Dynprotyp, und platzieren Sie das FeldZZXBLNR aus dem Tabellenarbeitsbereich BKPF darauf (ausführlicher wurdedies in Abschnitt 2.4.1, »Subscreen für das Zusatzfeld anlegen«, beschrie-ben).

3. Legen Sie eine Implementierung ZFI_HEADER_SUB_1300 zum BAdIFI_HEADER_SUB_1300 an. Das BAdI ist filterabhängig und verwendet alsFilter das Land des Buchungskreises, in dem der Beleg erfasst wird. Ver-wenden Sie hier das Land DE.

4. Wechseln Sie auf den Karteireiter Subscreens, und ordnen Sie das Dynpro1300 aus dem Rahmenprogramm SAPLZFI_HEADER_SUB_1300 der Funkti-onsgruppe ZFI_HEADER_SUB_1300 zu.

5. Speichern und aktivieren Sie die BAdI-Implementierung.

Wenn Sie nun die Transaktion FB50 starten, sehen Sie Ihr gerade angelegteszusätzliches Feld auf dem Karteireiter Grunddaten (siehe Abbildung 5.7).Bisher ist das Feld allerdings noch ohne Funktion. Damit der eingegebene

Abbildung 5.7 Transaktion FB50 mit kundeneigenem Subscreen

1863.book Seite 153 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

154

Wert des Feldes auch in der Tabelle BKPF gespeichert wird, müssen Sie nochden Datenfluss zwischen Standardlogik und kundeneigenem Subscreen im-plementieren. Dazu existieren die folgenden vier Methoden:

� Methode PUT_DATA_TO_SCREEN_PBODie Methode PUT_DATA_TO_SCREEN_PBO wird in der PBO-Logik des Grund-

daten-Dynpros vor der PBO-Logik des kundeneigenen Dynpros durchlau-fen. Sie übergibt die aktuellen Belegkopfdaten und ein Flag (IM_X_NO_INPUT)an die BAdI-Implementierung, das anzeigt, ob das Buchungsdatum eingabe-bereit ist.

� Methode GET_DATA_FROM_SCREEN_PBODie Methode GET_DATA_FROM_SCREEN_PBO wird im Gegensatz zu den ande-ren Methoden nicht im Standardprogramm SAPMF05A aufgerufen, sondernaus dem kundeneigenen Subscreen. Sie wird in diesem Beispiel dazu ver-wendet, in der PBO-Logik des kundeneigenen Subscreens Daten aus derBAdI-Implementierung abzufragen.

� Methode PUT_DATA_TO_SCREEN_PAIDie Methode PUT_DATA_TO_SCREEN_PAI wird in der PAI-Logik des Grund-

daten-Dynpros aufgerufen und übergibt die bearbeiteten Belegkopfdatenan die BAdI-Implementierung, bevor die PAI-Logik des kundeneigenenSubscreens ausgeführt wird.

� Methode GET_DATA_FROM_SCREEN_PAIDie Methode GET_DATA_FROM_SCREEN_PAI wird ebenfalls in der PAI-Logikdes Grunddaten-Dynpros aufgerufen und fragt nach der Verarbeitungder PAI-Logik des kundeneigenen Subscreens die bearbeiteten Daten ausder BAdI-Implementierung ab.

Wie schon erwähnt, soll in dieser Erweiterung die BAdI-Implementierung nurals Proxy-Klasse für den Austausch von Daten zwischen Standardlogik undkundeneigenem Subscreen dienen. Das Interface IF_EX_FI_HEA8DER_SUB_1300enthält bereits Attribute zu den Daten, die über die genannten vier Methodenausgetauscht werden:

Flag »Buchungsdatum eingabebereit«

Das Flag wird an dieser Stelle übergeben, weil die Erweiterung auch zur Bestim-mung eines abweichenden Buchungsdatums verwendet werden kann. In diesemBeispiel soll das kundeneigene Referenzfeld nur eingabebereit sein, wenn auch dasBuchungsdatum eingabebereit ist.

1863.book Seite 154 Montag, 4. Juni 2012 9:47 09

Dialogerweiterungen von Buchungstransaktionen 5.3

155

� das Attribut BKPF für Belegkopfdaten

� das Attribut X_NO_INPUT für das Flag, das abfragt, ob das Feld Buchungs-

datum eingabebereit ist

Die Implementierung der Methoden des BAdIs FI_HEADER_SUB_1300 istdaher denkbar einfach und in Listing 5.3 zu sehen.

METHOD if_ex_fi_header_sub_1300~put_data_to_screen_pbo.me->if_ex_fi_header_sub_1300~bkpf = im_bkpf.me->if_ex_fi_header_sub_1300~x_no_input= im_x_no_input.

ENDMETHOD.METHOD if_ex_fi_header_sub_1300~get_data_from_screen_pbo.ex_bkpf = me->if_ex_fi_header_sub_1300~bkpf.ex_x_no_input= me->if_ex_fi_header_sub_1300~x_no_input.

ENDMETHOD.METHOD if_ex_fi_header_sub_1300~put_data_to_screen_pai.

me->if_ex_fi_header_sub_1300~bkpf = im_bkpf.ENDMETHOD.METHOD if_ex_fi_header_sub_1300~get_data_from_screen_pai.

ex_bkpf = me->if_ex_fi_header_sub_1300~bkpf.ENDMETHOD.

Listing 5.3 Methoden des BAdIs FI_HEADER_SUB_1300

In allen vier Methoden werden die Parameter in den Attributen des InterfaceIF_EX_FI_HEADER_SUB_1300 gespeichert bzw. aus den Attributen zurückgege-ben. Die BAdI-Implementierung bietet daher ausschließlich einen Zugriff aufdie Attribute BKPF für die Standardlogik und X_NO_INPUT für den kunden-eigenen Subscreen.

Der Datenaustausch zwischen Standardlogik und BAdI-Implementierungerfolgt, wie beschrieben wurde: Vor der Ausführung der PBO- und der PAI-Logik des kundeneigenen Subscreens werden die relevanten Daten an dieBAdI-Implementierung übergeben. Nach der Ausführung der PAI-Logik deskundeneigenen Subscreens werden die Daten wieder aus der BAdI-Imple-mentierung abgefragt. Für eine korrekte Funktionsweise der Erweiterungmüssen Sie nun noch in der PBO-Logik des Subscreens die Datenabfrage ausder BAdI-Implementierung und in der PAI-Logik die Rückgabe der bearbei-teten Daten implementieren.

1863.book Seite 155 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

156

Gehen Sie dazu wie folgt vor:

1. Definieren Sie im TOP-Include der Funktionsgruppe ZFI_HEADER_SUB_1300eine globale Variable GOBJ_EXIT vom Typ IF_EX_FI_HEADER_SUB_1300 fürden Zugriff auf die aktive BAdI-Implementierung.

2. Fügen Sie im Dynpro 1300 ein PBO-Modul STATUS_1300 hinzu, und fügenSie den Quellcode aus Listing 5.4 ein.

MODULE status_1300 OUTPUT.DATA: lv_x_no_input TYPE c.

* BAdI-Implementierung instanzierenIF gobj_exit IS INITIAL.CALL METHODcl_exithandler=>get_instance_for_subscreensCHANGINGinstance = gobj_exit

EXCEPTIONSOTHERS = 6.

IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.

ENDIF.

* Eingabebereitschaft abfragenCALL METHOD gobj_exit->get_data_from_screen_pbo

EXPORTINGflt_val = 'DE'

IMPORTINGex_x_no_input = lv_x_no_input.

* Eingabebereitschaft setzenLOOP AT SCREEN.IF lv_x_no_input = 'X'.screen-input = 0.MODIFY SCREEN.

ENDIF.ENDLOOP.

ENDMODULE. " STATUS_1300 OUTPUT

Listing 5.4 PBO-Modul STATUS_1300 des kundeneigenen Subscreens

Im Quellcode wird zunächst mithilfe der Klasse CL_EXITHANDLER die aktiveImplementierung des BAdIs FI_HEADER_SUB_1300 abgefragt. Die aktiveImplementierung wurde vorher bereits von der Standardlogik gesetzt,

1863.book Seite 156 Montag, 4. Juni 2012 9:47 09

Dialogerweiterungen von Buchungstransaktionen 5.3

157

sodass sowohl die Standardlogik als auch der Subscreen auf dieselbeInstanz der BAdI-Implementierung zugreifen.

Danach werden die aktuellen Daten aus der BAdI-Implementierung abge-fragt, die vor der Ausführung der PBO-Logik des Subscreens vom Standard-programm gesetzt wurden. Da anschließend nur das Flag für die Steuerungder Eingabebereitschaft benötigt wird, wird auch nur dieses abgefragt. DerWert des Feldes ZZXBLNR wird außerhalb des Subscreens nicht verändertund braucht deshalb nicht aus der BAdI-Implementierung gelesen werden.

3. Fügen Sie als Nächstes ein PAI-Modul USER_COMMAND_1300 mit dem Quell-code aus Listing 5.5 ein.

MODULE user_command_1300 INPUT.DATA: lv_bkpf_changed TYPE bkpf.

* Aktuelle Daten abfragenCALL METHOD gobj_exit->get_data_from_screen_paiEXPORTINGflt_val = 'DE'

IMPORTINGex_bkpf = lv_bkpf_changed.

lv_bkpf_changed-zzxblnr = bkpf-zzxblnr.

* Bearbeitete Daten zurückgebenCALL METHOD gobj_exit->put_data_to_screen_paiEXPORTINGim_bkpf = lv_bkpf_changedflt_val = 'DE'.

ENDMODULE. " USER_COMMAND_1300 INPUT

Listing 5.5 PAI-Modul USER_COMMAND_1300 des kundeneigenen Subscreens

Im Quellcode wird als Erstes der aktuelle Zustand der Belegkopfdaten ausder BAdI-Implementierung gelesen. So enthält die lokale Variable denaktuellen Wert aller Felder bis auf das Feld ZZXBLNR. Dieses Feld wirdanschließend aus dem Tabellenarbeitsbereich gesetzt, das heißt, es ent-spricht danach dem Wert, der im Subscreen eingegeben wurde. ZumSchluss werden die vollständig bearbeiteten Belegkopfdaten zurück in dieBAdI-Implementierung geschrieben, wo sie wieder von der Standardlogikabgefragt werden können.

4. Sichern und aktivieren Sie die Funktionsgruppe ZFI_HEADER_SUB_1300.

Die Erweiterung ist nun so weit fertiggestellt, dass das zusätzliche Feld überden kundeneigenen Subscreen gepflegt werden kann und der bearbeiteteWert an die Standardlogik zurückgegeben wird. Wenn Sie sich allerdings die

1863.book Seite 157 Montag, 4. Juni 2012 9:47 09

Buchhaltungsbelege5

158

Aufrufstelle der Methode GET_DATA_FROM_SCREEN_PAI in der PAI-Logik desGrunddaten-Dynpros (Form D0100_POST_APPL_SUB in Programm SAPMF05A)anschauen, sehen Sie, dass nur die Felder BUDAT, XREF1_HD und XREF2_HD ausder zurückgegebenen Struktur übernommen werden. Hier können Sie aller-dings eine einfache implizite Erweiterung vor die ENDFORM-Anweisung einfü-gen, die Sie in Listing 5.6 sehen.

ENHANCEMENT 4 Z_SAPMF05A_FI_HEADER_SUB_1300.IF g_appl_sub_active = char_x.bkpf-zzxblnr = ld_bkpf-zzxblnr.

ENDIF.ENDENHANCEMENT.

Listing 5.6 Implizite Erweiterung für die Übernahme des zusätzlichen Feldes

In dieser Erweiterung wird das Feld ZZXBLNR aus der zurückgegebenen Struk-tur übernommen. Da eine implizite Erweiterung nur nach der letzten Zeileeiner Form eingefügt werden kann, muss hier noch einmal die Abfrage überdie Variable G_APPL_SUB_ACTIVE wiederholt werden, ob die Erweiterungaktiv ist.

Wenn Sie anschließend in der Transaktion FB50 einen Beleg erfassen unddas Feld Kunden-Referenz füllen, können Sie danach in der Tabelle BKPFsehen, dass der eingegebene Wert mit gespeichert wird. Beachten Sie dabeiauch, dass, sobald das Buchungsdatum nicht mehr eingabebereit ist, auch indas Feld Kunden-Referenz nichts mehr eingegeben werden kann.

5.3.3 Pflege zusätzlicher Belegkopfdaten in Enjoy-Transaktion für Debitoren- und Kreditorenbelege

Ähnlich wie die Enjoy-Transaktion für die Erfassung von Sachkontenbelegenkönnen auch die Enjoy-Transaktionen für die Erfassung von Debitoren- undKreditorenbelegen um kundeneigene Subscreens erweitert werden. Nebenden Belegkopfinformationen können dabei auch die Positionsinformationenzur erfassten Debitoren- bzw. Kreditorenposition bearbeitet werden. Hierfür

Implizite Erweiterung zur Rückgabe des Feldes ZZXBLNR

Es ist gut möglich, dass in zukünftigen SAP ERP-Releases diese implizite Erweite-rung nicht mehr notwendig sein wird, weil alle Daten aus dem BAdI über die MOVE-CORRESPONDING-Anweisung übernommen werden, wie es heute schon für dieErweiterung der Enjoy-Transaktionen zur Rechnungserfassung der Fall ist (sieheAbschnitt 5.3.3).

1863.book Seite 158 Montag, 4. Juni 2012 9:47 09

375

Index

A

Accruel Engine 340, 358Akontobuchung 205Aktivität 100, 124Änderungsbeleg 57, 127

anzeigen 131Feldänderung 131Fortschreibung 130Verbucher generieren 129

Änderungsbelegobjekt 128Append-Struktur 64, 87, 152

BKPF 160BSAS 165BSEG 160BSIS 165INVFO 160KNB1 87RFPOS 32SKB1 64

Applikationskennzeichen, kundeneigenes 228

ArbeitsgebietGBLR 172GBLS 172

ArchivierungAbgrenzungsobjekt 357Bankenstammdaten 358Buchhaltungbeleg 356Debitorenstammdaten 354Kreditorenstammdaten 355

A-Segment 53Ausgleich 143Auslieferungsklasse

E 74S 73

AWV-Meldung 352

B

BAdI 38BADI_FDCB_SUBBAS01 159CUSTOMER_ADD_DATA 91CUSTOMER_ADD_DATA_BI 109

BAdI (Forts.)CUSTOMER_ADD_DATA_CS 91FAGL_ITEMS_CH_DATA 165, 285FAGL_ITEMS_MENUE01 39, 285FAGL_ITEMS_MENUE02 285FEB_BADI 193FI_F110_SCHEDULE_JOB 241FI_HEADER_SUB_1300 152FI_ITEMS_MENUE01 39, 276FI_ITEMS_MENUE02 276FIEB_CHANGE_BS_DATA 190FIEB_CHANGE_STATEMNT 191filterabhängiges 39, 153, 191finden 44kernelbasiertes 38, 45VENDOR_ADD_DATA 45, 116, 119VENDOR_ADD_DATA_BI 135VENDOR_ADD_DATA_CS 116, 119,

131BAdI, klassisches 38

aktivieren 43anzeigen 39Definition 38filterabhängiges 39Filtertyp 40Funktionscode 40, 276Implementierung 38, 40Interface 40mehrfach nutzbares 39Methode 40, 42Subscreen 40

BAdI, neues 38, 45, 47Aktivierung 49Erweiterungsimplementierung 47implementierende Klasse 48Interface 46Methode 46

BAdI-Methode � MethodeBankenfindung 243Bankenstammdaten 297, 358Bankverbindung 296Bankverrechnungskonto 181Batch-Input 168Batch-Input-Mappe 105, 168

1863.book Seite 375 Montag, 4. Juni 2012 9:47 09

376

Index

Batch-Input-Programm 105, 108, 135, 167

Batch-Input-Recorder 108Batch-Input-Struktur 105

Erweiterung 107kundeneigene 135

Batch-Input-Verfahren 105, 106Bearbeitungsmodus

Debitorenstammdaten 98Kreditorenstammdaten 121Sachkontenstammdaten 76

Begleitzettel 256Beleg 139, 311Belegaufteilung 310Belegbuchung, Erweiterung 166Belegerfassung 301

zusätzlicher Funktionscode 147zusätzliches Belegkopffeld 152, 158

Belegjournal 339Belegkopf 139Belegposition 140Belegvorerfassung 314Belegzeile, zusätzliche erzeugen 142,

166Bestandskonto 53, 80Bilanz 144, 161, 339, 348Bildgruppe 88, 90, 91, 118, 134B-Segment 53BTE � Business Transaction EventBuchhaltungsbeleg 139, 237, 357Buchhaltungssicht 86, 114Buchung

automatische 167buchungskreisübergreifende 142, 166manuelle 167

Buchungsbereich 181Buchungsdialog 147Buchungskreis 139, 145, 218Buchungskreissicht 96, 121Buchungsregel 181Buchungsschlüssel 140Buchungsschnittstelle 168, 193, 195Buchungszeile 140Business Add-In � BAdIBusiness Transaction Event 27

aktive Komponente 31Aktivierung 29, 34Alternativprozess 36anzeigen 30

Business Transaction Event (Forts.)Applikationskennzeichen 29, 34, 36,

227finden 36Gruppierung 29Implementierung 32Konfiguration 28, 34Kunde 30länderspezifisches 35, 36Musterfunktionsbaustein 31Partner 29Partneridentifikation 29Produkt 30, 34RFC-Destination 29SAP-Anwendung 29Typ 28

BZÜ-Verfahren 202

C

CALL CUSTOMER-FUNCTION 23, 26Call Transaction 105, 168Cluster-Tabelle 141CO-FI-Echtzeitintegration 318CPD-Daten 142Customizing-Include 64

CI_BKNB1 107CI_COBL 162CI_CSKS 20CI_FAGLPOSX 286

D

Datenelement 56Datenmodell, Kreditorenstammdaten 113Datenträgerverwaltung 331Dauerbeleg 318Debitoren-Informationssystem 339Debitorensaldo 338Debitorenstammdaten 85, 86, 289, 355Dict-/Programmfelderfenster 70Direct Input 168, 170Dirty-Assign 78DME-Engine 299Domäne, Wertebereich 57Domänenfestwert 20, 221

1863.book Seite 376 Montag, 4. Juni 2012 9:47 09

377

Index

DynproSAPLKMA1 0399 20SAPLKMA1 3399 20SAPLXKM1 0999 20SAPMF02D 0110 108SAPMF02K 4000 134SAPMF05A 0300 147Typ 70, 89, 118, 153ZKN_ERWEITERUNG 0100 89ZLF_ERWEITERUNG 0100 118ZSK_ERWEITERUNG 0100 70

Dynpro-Feld bestimmen 132

E

EDIAvis 364EDI-Referenz-IDoc 365Eingangsrechnung 363Kontoauszug 365Zahlung 364

Einbildtransaktion 146Eingabehilfe/-prüfung 65Einkaufssicht 114, 121Einzelpostenliste 267, 334

ALV-Grid 268ALV-List 268Anzeigevariante 269Erweiterung 164, 269, 284Kreditor 35Menüerweiterung 39, 273, 285Sachkonto 43Vorselektion 281, 286zusätzlicher Funktionscode 273zusätzliches Feld 280, 285

Elektronischer Kontoauszug 179, 319Ausgleich Personenkonto 182, 208Buchungsphase 182, 192Buchungsregel 208Interpretationsphase 180, 188Kontenfindung 180, 193Kontoauszugsdaten einlesen 179, 183kundeneigene Buchung 192Nachbearbeitung 182, 195Standardbuchung deaktivieren 189Standardbuchung erweitern 193, 194Suchmuster 210Umsatzregistrierung 188

Elektronischer Kontoauszug (Forts.)Verwendungszweck aufbereiten 211

Enjoy-Transaktion 146Erfolgskonto 53Eröffnungsbilanz 144Erweitertes Zahlprogramm 332Erweiterung, implizite 49, 158Erweiterungsmöglichkeit, technische 15Erweiterungspunkt

expliziter 45impliziter 45

Erweiterungsspot 45CUSTOMER_ADD_DATA 92CUSTOMER_ADD_DATA_BI 109CUSTOMER_ADD_DATA_CS 94VENDOR_ADD_DATA 119VENDOR_ADD_DATA_CS 120

Erweiterungstechnik 15Debitorenstammdaten 87Kreditorenstammdaten 115

F

Feldänderung 133Feldstatus 54, 140Feldstatusgruppe 162FI-Bewertungslauf 343filterabhängig 96, 121Filterwert 96Funktionsbaustein

AC_DOCUMENT_CREATE 170AC_DOCUMENT_DIRECT_INPUT 170AC_DOCUMENT_POST 170BF_FUNCTIONS_READ 37DATE_TO_PERIOD_CONVERT 145FAGL_ITEMS_DISPLAY 268FI_PAYM_ACC_SHEET_PRINT 256FI_PAYMEDIUM_SAMPLE 254FI_PAYMEDIUM_SAMPLE_DETAILS

260FI_PRINT_DUNNING_NOTICE 236FI_PRINT_DUNNING_NOTICE_SMARTF

235FIEB_028_ALGORITHM 205FIEB_EXTRACT_MINUS_NUMBERS

207FIEB_EXTRACT_NUMBERS 207GENERATE_DUNNING_DATA 219

1863.book Seite 377 Montag, 4. Juni 2012 9:47 09

378

Index

Funktionsbaustein (Forts.)GL_ACCT_MASTER_MAINTAIN 55,

66, 71GL_ACCT_MASTER_SAVE 67MODX_FUNCTION_ACTIVE_CHECK 26PC_FUNCTIONS_READ 37POSTING_INTERFACE_CLEARING 169POSTING_INTERFACE_DOCUMENT

169POSTING_INTERFACE_END 168POSTING_INTERFACE_RESET_CLEAR

169POSTING_INTERFACE_REVERSE_DOC

170POSTING_INTERFACE_START 168SAMPLE_INTERFACE_[BTE] 31SAMPLE_PROCESS_[BTE] 31TABSTRIP_INIT 72TABSTRIP_LAYOUT_READ 72Z_FEB_1* 194Z_FEB_2* 194Z_FIEB_XXX_ALGORITHM 205

Funktionscode 147Funktions-Exit

EXIT_RFEKA400_001 186EXIT_SAPLKMA1_001 23EXIT_SAPLKMA1_002 23EXIT_SAPMF02D_001 103finden 26

Funktionsgruppeanlegen 129ATAB 72FAGL_ITEMS_SELECT 268FIPI 168GL_ACCOUNT_MASTER_MAINTAIN 66KMA1 20RWCL 167RWFI 170XKM1 20

G

Geschäftsvorfallcode 180GET BADI 49GET CURSOR FIELD 132GET_EXIT_TITLES 173Gewinn- und Verlustrechnung � GuVGranularität 253, 263

Gruppenrahmen 72GuV 144, 161, 339, 347

H

HauptbuchAllokation 348statistische Kennzahlen 318

Hauptbuchhaltung, Planung 348Hauswährung

Betrag 140parallel geführte 145

I

IncludeLGL_ACCOUNT_MASTER_MAINTAINFFR

66ZXF01U06 186ZXKM1U01 24ZXKM1U02 24

Intercompany-Abstimmung 344Interface, IF_EX_FI_HEADER_SUB_1300

154Interpretationsalgorithmus 188, 200

Ausgangsscheck 201Ausgleichsinformation 207Ausgleichsvorgang 202Belegnummernsuche 202kundeneigener 205, 207Nummernbereich 201, 207Referenzbelegnummernsuche 202Standardalgorithmus 201Verwendungszweck 204, 206

K

KlasseCL_EXITHANDLER 44, 156, 161CL_FEBAN_ALV_GRID 199CL_FEBAN_SIMPLE_TREE 199

Klassisches BAdI � BAdI, klassischesKontenplan 53, 72, 75Kontierung 308

1863.book Seite 378 Montag, 4. Juni 2012 9:47 09

379

Index

Kontierungsblock 161Expertenmodus 163Light-Modus 163

Kontierungsfeld 161Kontierungskombination, Validierung

317Konto 141

Einzelpostenführung 143OP-Führung 143

Kontoart 140, 166Kontoauszug, Rohdaten 183Kontoauszugsnachbearbeitung 182, 195

Automatisierung 197Baumdarstellung 198Listendarstellung 198Teilfenster 199Umsatzregistrierung 198

Konzernwährung 145Korrespondenz 347Kreditoren-Informationssystem 339Kreditorenstammdaten 113, 292, 356

Erweiterungsmöglichkeit 114Zusatzfeld 114zusätzliche Prüfung 133

Kundeneigener SubscreenKreditorenstammdaten 118Sachkontenstammdaten 69

L

Logische DatenbankDDF 268KDF 268SDF 267

M

Mahnbereich 218Mahnbestand 218, 230Mahndaten 217Mahndruck 218, 234Mahngebühr 217Mahnlauf 217, 324

Ausführungsdatum 217Druckphase 218Einzelpostenregistrierung 228

Mahnlauf (Forts.)gesperrtes Konto 218Gruppierung 220kundeneigener Selektionsbildschirm 221Laufidentifikation 217Nachbearbeitung 220Selektionsphase 217Zahlungsvorschlag 238zusätzliches Selektionskriterium 221,

225Mahnschreiben 218, 235Mahnselektion 217

Erweiterung 226kundeneigene Gruppierung 229

Mahnverfahren 217, 234Manueller Kontoauszug 324Mapping 211Mehrwertsteuer, Pro-rata-Korrektur 352Menü-Exit 22Merkmal 269Methode 41

CHANGE_DATA 190CHANGE_ITEM 285CHANGE_POSTING_DATA 193CHECK_ADD_ON_ACTIVE 92, 120CHECK_ALL_DATA 133CHECK_DATA_CHANGED 102, 122,

126CHECK_DATA_ROW 136CHECK_PARAMETER 241FILL_FT_TABLE_USING_DATA_ROWS

109, 136GET_CHANGEDOCS_FOR_OWN_TABLES

131GET_DATA 98, 101GET_DATA_CHANGED 98GET_DATA_FROM_SCREEN 158GET_DATA_FROM_SCREEN_OBJECT

160GET_DATA_FROM_SCREEN_PBO 154GET_FIELDNAME_FOR_CHANGEDOC

131GET_TAXI_SCREEN 94, 120INITIALIZE_ADD_ON_DATA 122LIST_ITEMS01 41, 278PUT_DATA_TO_SCREEN_OBJECT 159PUT_DATA_TO_SCREEN_PAI 154PUT_DATA_TO_SCREEN_PBO 154READ_ADD_ON_DATA 122, 125

1863.book Seite 379 Montag, 4. Juni 2012 9:47 09

380

Index

Methode (Forts.)SAVE_DATA 122, 126SET_DATA 98, 99, 122SHOW_BUTTONS 277

Modifikationsgruppe 76Modulpool 124, 132, 172MT940 179, 183

Erweiterung 185Feld 184Satz 183

Muster 211Musterbeleg 318

N

NachrichtentypACCONF 362ACLPAY 362ACLREC 363ACPJMM 362FIDCC1 359, 360FIDCC2 359, 360FIDCCH 359FIDCMT 359FIPAYM 362FIROLL 359GLMAST 358INVOIC 361

Nebenbuch 146Neues Hauptbuch 144New General Ledger 144New GL 144

O

OP-Ausgleich 298Open FI 27Open-FI-Erweiterung 147OP-Führung 143

P

P&S-Schnittstelle 2800001070 14800001080 148

P&S-Schnittstelle (Forts.)00001610 27400001620 27300001630 28100001640 27100001650 30, 164, 28100001719 23500001720 23500001750 222, 22300001761 227, 22900002110 25100002310 8100002810 18800002830 19700002840 19700002850 198

PAI-ModulBelegerfassung 154, 161Kreditorenstammdatenpflege 132Sachkontenstammdatenpflege 79

Parameter, formatspezifischer 254, 255, 261, 262

Payment Medium Workbench (PMW) 239, 253Pre-Service 255Verwendungszweck 257

PBO-ModulBelegerfassung 154, 161Debitorenstammdatenpflege 100Kreditorenstammdatenpflege 124Sachkontenstammdatenpflege 76, 79

Periode 145Periodenwert 145Periodische Arbeiten 179Pflegedialog

Debitorenstammdaten 88Kreditorenstammdaten 117Sachkontenstammdaten 68

Pflege-View 62Berechtigungsgruppe 63Beziehung 62VC_TAMLAYA_00 72View-Feld 62

PMW � Payment Medium Workbench (PMW)

Positionsinformation 158Posten

offen/ausgeglichen 143offener 238

1863.book Seite 380 Montag, 4. Juni 2012 9:47 09

381

Index

Posten- und Saldenverzinsung 341Programm

DMEECONVERT1 299FAGL_ACCOUNT_ITEMS_GL 164, 267FAGL_PLAN_COPY 348RFAWVZ40N 352RFBIBL00 167RFBIDE00 105RFBIDE10 106RFBIKR00 135RFBIKR10 135RFBISA00 83RFDUZI00 341RFDZIS00 341RFDZIS00_PDF 342RFEBBU00 183, 192RFEBBU10 183, 188RFEBKA00 183RFEKA400 183RFITEMAP 268RFITEMAR 268RFITEMGL 164, 267RFKORD* 347RFKUZI00 341RFKZIS00 341RFKZIS00_PDF 342RFMAHN21 220RFPAYM_RESET 255RFPOSEXTEND 165RFPOSXEXTEND 35, 280RFSZIS00 341RFUMSV00 350RFZALI20 240, 250RGGBR000 172RGGBS000 172SAPF056* 354SAPF057 354SAPF058* 355SAPF059 355SAPF110O 240SAPF110S 240SAPF110V 240SAPF130D 347SAPF130K 347SAPF150D2 219SAPF150S2 219SAPGL_ACCOUNT_MASTER_START 54SAPLGUMD 163SAPLKMA1 20

Programm (Forts.)SAPLXKM1 20SAPMF02D 86, 98SAPMF02K 114SAPMF05A 147, 167SAPMF05L 147, 313

Proxy-Klasse 152, 154Prozessschnittstelle 28

00001053 22700001060 22700001061 227, 23000001810 24400001820 24600001830 24700002810 19200002820 18900002830 19500002850 19700002870 198

Prüfung 172Debitorenstammdaten 103Sachkontenstammdaten 80

Publish&Subscribe-Schnittstelle � P&S-Schnittstelle

R

Referenz, externe/interne 257Referenzfeld 254, 257Regulierungsdaten 238Reporting 267Rückstellung 349

S

Sachkontengruppe 53, 71, 75Sachkontenstammdaten 53, 55, 288Saldo-Null-Prüfung 166Saldovortrag 144SAP Closing Cockpit 346SAP Enhancement Framework 45, 49SAP Smart Forms 235SAP-Erweiterung

aktivieren 25anzeigen 16Attribut 16

1863.book Seite 381 Montag, 4. Juni 2012 9:47 09

382

Index

SAP-Erweiterung (Forts.)COOMKS01 16Dokumentation 16Dynpro-Erweiterung 20erweiterte Suchhilfe 26Erweiterungsprojekt 18FEB00001 190, 194FEB00004 183finden 26Funktions-Exit 23GLX_MD01 163Implementierung 18Komponente 15, 19Menüerweiterung 22Menü-Exit 22Projektverwaltung 18SAPMF02D 103Screen-Exit 21Tabellenerweiterung 20Zuordnung 19

SAPscript-Formular 218Scheck, Einreichung 324Schlussbilanz 144Schnittstelle

Buchhaltungsbeleg 167Debitorenstammdaten 104Kreditorenstammdaten 135Sachkontenstammdaten 83

Screen-Exit, SAPLXKM1 0999 21Sekundärindextabelle 142Sicht

Debitorenstammdaten 86, 96Kreditorenstammdaten 114, 121

Skonto 238Soll-/Haben-Kennzeichen 140Sonderperiode 145SPA-/GPA-Parameter 150Special Ledger 162Stammdatenprüfung 163Stammdatentabelle 113, 116Standard-Interpretationsalgorithmus 200Steuer 309Steuerposition 142Steuerzeile 142Struktur

BAPIRET2 81BBKPF 168BBSEG 168BBTAX 168

Struktur (Forts.)BBWITH 168BGR00 105, 135BKN00 106BKNA1 105BKNB1 105BKNBK 106BLF00 135BLFA1 135BLFB1 135BSELK 168BSELP 168CSKS_CI 21FAGLPOSE 164FAGLPOSX 164, 286FILITEXTS_AP 270FILITEXTS_AR 270FILITEXTS_GL 270FPAYH 239FPAYHX 239FPAYP 239FPM_PAYD 260FTCLEAR 169FTPOST 169FTTAX 169GLACCOUNT_CCODE_DATA 67INVFO 159RFPOS 32, 164RFPOSX 32, 164, 280RFPOSXEXT 35, 165, 280

Subscreen 88, 152Belegkopffeld 153Debitorenstammdaten 89Kontoauszugsnachbearbeitung 195

Substitution 172Aktivierung 176Schritt 172, 176User-Exit 171, 174Zeitpunkt 175

Suchmuster 188, 210Anfangs- und Endzeichen 212Definition 211Mapping 211Muster 211Zielfeld 213Zuordnung 213

SummentabelleHauptbuch 144Nebenbuch 146

1863.book Seite 382 Montag, 4. Juni 2012 9:47 09

383

Index

T

TabelleBKPF 139, 152BSAD 143BSAK 143BSAS 143BSEC 142BSEG 140BSEG_ADD 144BSET 142BSID 143BSIK 143BSIS 143BVOR 142CSKS 17Datenart 59FAGLBSAS 144FAGLBSIS 144FAGLFLEXT 144FEBCL 180FEBEP 180FEBKO 180FEBRE 180Fremdschlüssel 60GLT0 144Größenkategorie 59KNA1 85KNB1 85KNB5 85KNBK 85KNC1 146LFA1 114LFB1 114LFBK 114LFC1 146LFM1 114MAHNS 218MAHNV 218MHND 217MHNK 217REGUH 238REGUP 238REGUV 239SKA1 53SKAT 53SKB1 53T004 53, 72, 75T021S 164, 280

Tabelle (Forts.)T077S 53, 71, 75TAMLAY0 72TAMLAY1 72TAMLAY2 72TAMLAYA 72TAMLAYB 72TBE01 36technische Einstellung 58TPS01 36TPS31 36TPS32 36TPS34 36ZLFA1 116

TabellenarbeitsbereichKNB1 89SKB1 70ZLFA1 118, 123

Tabellen-Cluster, RFBLG 141Tabellenpflegegenerator 63Tabstrip 72Tabstrip-Layout 74Texttabelle 60Textvariable, merkmalsbezogene 270Transaktion 146

CMOD (Projektverwaltung SAP-Erweiterungen) 18, 25

F.01 (Bilanz) 339F.11 (Hauptbuch aus Belegdatei) 340F.30 (Debitoreninfosystem) 339F.46 (Kreditoreninfosystem) 339F.50 (Nachbelastung GuV) 347F.56 (Dauerbelege löschen) 318F.57 (Musterbelege löschen) 318F.5D (Nachbelastung Bilanz) 348F-03 (Sachkonto ausgleichen) 298F104 (Rückstellung Forderung) 349F107 (FI-Bewertungslauf) 343F110 (Zahllauf) 239, 330F111 (erweitertes Zahlprogramm,

Zahlungsanforderungen) 237, 332F150 (Mahnlauf) 219, 324F-22 (Debitorenrechnung erfassen) 146F-32 (Debitor ausgleichen) 298F-44 (Kreditor ausgleichen 298F8BX (Online-Zahlung) 333FAGLL03 (Sachkonten-Einzelposten) 43,

164, 267, 334FB01 (Beleg buchen) 146, 169

1863.book Seite 383 Montag, 4. Juni 2012 9:47 09

384

Index

Transaktion (Forts.)FB02 (Beleg ändern) 147, 313FB03 (Beleg anzeigen) 147, 313FB05 (Buchung mit Ausgleich) 169FB08 (Beleg stornieren) 170FB50 (Sachkontenbeleg erfassen) 146,

153FB60 (Debitorenrechnung buchen) 146FB70 (Kreditorenrechnung buchen) 146FBB1 (Fremdwährungsbewertungen

buchen) 169FBL1N (Kreditoren-Einzelposten) 35,

268, 334FBL3N (Sachkonten-Einzelposten) 164,

267, 334FBL5N (Debitoren-Einzelposten) 268,

334FBRA (Ausgleich zurücknehmen) 169,

299FBTR 354FBV* (Belegvorerfassung) 317FD01 (Buchhaltungssicht, Anlage) 86FD02 (Buchhaltungssicht, Änderung)

86FD03 (Buchhaltungssicht, Anzeige) 86FD10N (Debitoren-Saldenanzeige) 338FDTA (Datenträgerverwaltung) 331FEBAN (Kontoauszugsnachbearbei-

tung) 183, 195, 198FF_5 (Kontoauszug einlesen) 183, 201FF67 (Manueller Kontoauszug) 324FF68 (Manueller Scheckeinreicher) 324FIBF (BTE pflegen) 28, 30, 222, 229,

252FIBLAPOP (Kreditorenzahlungs-

anordnung) 333FIBLAROP (Debitorenzahlungs-

anordnung) 333FIBLFFP (Free-Form-Zahlungs-

anordnung) 333FINT (Postenverzinsung) 342FK01 (Kreditorenstammdaten anlegen)

114FK02 (Kreditorenstammdaten ändern)

114FK03 (Kreditorenstammdaten anzei-

gen) 114FRFT 333

Transaktion (Forts.)FS00 (Einstellungen Sachkonto/

Buchungskreis) 54FSP0 (Einstellungen Sachkonto/Konten-

plan) 54FSS0 (Pflege Sachkontenstamm,

Buchungskreis) 54, 75KALC (Kostenflüsse melden) 319KS02 (Einzelbearbeitung Kostenstelle)

25OB_GLACC21 (Konfiguration Sach-

kontenstamm) 72, 74OBBH (Substitutionen) 175S_RFID_PTVPRADPRC00 (Pro-rata-

Korrekturen, Kalkulation) 352S_RFID_PTVPRADPRV00 (Pro-rata-

Korrekturen, Variation) 352SCDO (Änderungsbeleg) 128SE11 (ABAP Dictionary) 32SE18 (BAdI-Definition) 39, 45SE19 (BAdI-Implementierung) 40, 47,

277SE37 (Function Builder) 32SHDB (Batch-Input-Recorder) 108SM30 (View pflegen) 172SM35 (Batch-Input-Mappe) 105SMOD (SAP-Erweiterungen) 16, 26XD02 (Debitor ändern) 108

Transaktionswährungsbetrag 141

U

Umsatzsteuervergütung 354Umsatzsteuervoranmeldung 349User-Exit 15, 172

V

ValidierungSchritt 172User-Exit 171

Variablentyp 269Verarbeitungslogik

Belegkopffeld 153, 155, 159Zusatzfeld 76Zusatzfeld für Debitorenstammdaten 97

1863.book Seite 384 Montag, 4. Juni 2012 9:47 09

385

Index

Verarbeitungslogik (Forts.)Zusatzfeld Kreditorenstammdaten 121

Verarbeitungsstruktur 65, 68Vertriebssicht 86, 96Verwaltungssatz 239Verwendungszweck 257Verwendungszweckaufbau 258

Herkunft 259kundeneigener Funktionsbaustein 260

Voraussetzung 172

W

Wertart 270Wertetabelle 58

Z

Zahllauf 237, 330Ausführungsdatum 238Buchung 238einplanen 241gesperrtes Konto 239Laufidentifikation 238Mindestbetrag 247Nachbearbeitung 238Regulierungsliste 240, 250Zahlung ausschließen 246Zahlungsträgererstellung 239, 253

Zahlungsanordnung 333Zahlungsavis 298Zahlungsbedingung 85Zahlungsfreigabe 313

Zahlungsgruppierung 247Zahlungsprogramm 240, 243Zahlungsträger 237, 301Zahlungsträgerformat 253Zahlungsträgerprogramm

generisches 253klassisches 239

Zahlungsvorschlag 238Zahlungsvorschlagslauf 238Zahlweg 85, 246Zahlwegauswahl 244Zeile, steuerrelevante 142Zeitpunkt 171

00 (Sortierfeld füllen) 25505 (Referenzfelder füllen) 25506 (Referenzfelder füllen) 25510 (Formatparameter prüfen) 25511 (Formatparameter prüfen) 25520 (Start/File Header) 25621 (Start/File Header) 25625 (File Close/Open) 25630 (Auftrag) 25631 (Auftrag) 25640 (Ende) 25641 (Ende) 256

Zeitpunktbaustein 254Dateiname 256neue Datei 256, 264Sortierkriterium 255, 263

ZusatzkontierungEnjoy-Transaktion 163kundeneigene 161Summentabelle 163

ZX*-Include 24

1863.book Seite 385 Montag, 4. Juni 2012 9:47 09