14 Evergreen ABAP-Debugger Tipps – heb‘ dich von der Masse ab.

Es gab Zeiten, wo Debugging bei SAP-Beratern als exotische Tätigkeit angesehen wurde, in der man sich nicht wirklich auskannte. Doch mittlerweile gehört das Debuggen von ABAP-Programmen fast zum Standardrepertoire eines SAP-Beraters – und die Herausforderungen bzgl. Debugging werden über die Jahre nicht weniger. Konkret gibt es mindestens 5 Gründe warum du als funktioneller SAP-Berater Debugging beherrschen solltest:

#1 Fast alle Unternehmen haben neben dem SAP-Standard eine nicht unerhebliche Menge an individuellen Entwicklungen, die man vielfach nur per Debugging verstehen und analysieren kann – leider ist eine gute Dokumentation oft Mangelware.

#2 Auch wenn man sich ausschließlich im SAP-Standard bewegt, gibt es in SAP viele Anwendungen, die nur per ABAP-Entwicklung umsetzbar sind – auch hier ist es mehr als hilfreich, wenn man sich im Debugging auskennt.

#3 Fehlermeldungen in SAP sind oft gut dokumentiert und aussagekräftig, aber trotzdem habe ich immer wieder Fehlersituationen erlebt, die ich nur per Debugger analysieren konnte.

#4 Wenn man zu Suchen weiß, findet man mittlerweile zu jeder SAP-Anwendung umfangreiche Dokus. Doch speziell bei neuen Anwendungen und Systemen (EWM, TM, …) fehlt solides Know How. Auch hier ist es gut, wenn man dem Debugging gegenüber nicht abgeneigt ist.

#5 Eine enge Zusammenarbeit zwischen Entwicklern und Beratern gehört heutzutage und gängigen Teamwork. Auch hier ist nicht von Nachteil, wenn man im Debugging bewandert ist, um sich auf Augenhöhe mit Entwicklerkollegen auszutauschen.

 

Im folgenden habe ich eine Reihe von Debugger Tipps zusammengestellt, die ich in den letzten Jahren kennen und schätzen gelernt habe:

 

14 Tipps zum ABAP-Debugger

#1 Der Klassiker /h

Natürlich ist der Klassiker um in den ABAP-Debugger einzusteigen, die Eingabe von /h ins Transaktionsfeld. Damit wird der Debugger-Modus aktiviert und mit jeder folgenden Aktion (Enter, ein Button, ein Doppelklick, …) springt das System in den Debugger-Modus.

# Im Einsteigsbild (Standardsicht) sieht der Debugger-Screen wie folgt aus:

## Im oberen Bereich ist dargestellt, in welchem Programm / Unterprogramm / Formroutine du dich befindest

## Links sieht du den ABAP-Code, der aktuell durchlaufen wird: Der kleine gelbe Pfeil, der ganz links positioniert ist, gibt an, in welcher Zeile sich die Abarbeitung aktuell befindet – übrigens: Die Spalte wird auch die Breakpointspalte genannt, da durch Doppelklick auf diese Spalte, an der jeweiligen Zeile ein Breakpoint gesetzt werden kann.

## Rechts oben ist der ABAP / Dynpro Stack dargestellt: Dies ist eine Liste von Programm, die bisher durchlaufen wurden – im Grunde eine Art Historie.

## Rechts unten können einzelne Variablen, Strukturen, … dargestellt werden. Der einfachste Weg sich den Wert einer Variable  anzuzeigen, ist es, einfach links im Code ein Doppelklick auf die Variable durchzuführen. Übrigens: Ganz rechts zur ersten Variable (SVBAK-TABIX) ist ein kleiner Stift zu sehen; sofern du die Berechtigung hast, kannst du den Wert dieser Variable verändern: Einfach auf den Stift klicken, neuen Wert eingeben und mit Enter bestätigen.

 

#2 Verstehe unbedingt F5, F6, F7 und F8

Im Debugger navigierst du recht einfach mit den 4 Funktionstasten: F5, F6, F7 und F8.

# F5 – Ein Schritt weiterhoppeln: Die aktuelle Anweisung wird ausgeführt, die Variablen angepasst und der gelbe Pfeil wandert zur nächsten Anweisung

# F6 – Eine Anweisung wird ausgeführt ohne in die Details zu springen: Bspw. ist im oberen Screen ein Unterprogrammabsprung in Zeile 19 definiert; wenn du an dieser Stelle mit F6 weitergehst, wird der Perform ausgeführt, aber Debugger springt nicht in die Detail des Unterprogramms ab.

# F7 – Rücksprung aus einer Anweisung: Falls du doch per F5 ins Unterprogramm abgesprungen sein solltest und merkst, dass sich im Unterprogramm nichts Interessantes tut, dann kannst du per F7 das Unterprogramm verlassen. Anschließend gelangst du wieder an die Stelle direkt nach dem Aufruf des Unterprogramms.

# F8 – Zu letzt kannst du mit F8 das Programm ausführen und verlässt quasi den Debugger – es sein denn, du hast in weiteren Schritten Breakpoints definiert; in diesem Fall hält der Debugger beim nächsten Breakpoint.

 

* Übrigens: Du kannst die Funktionen auch mit den 4 Icons bedienen, die oben links in der Icon-Leiste des Debugger-Fensters angeordnet sind.

 

#3 Einfaches Setzen von Breakpoints

Sinnvolles Debuggen erfolgt im SAP gezielt, d.h. innerhalb einer Transaktion /h einzugeben und den Code durchzugehen, bietet keinen richtigen Mehrwert. Mit dem Debugger will man gezielt eine Codingstelle analysieren und das Systemverhalten ermitteln. Bspw. könnte folgende Fragestellung anstehen: Auf einem Lieferschein wird ein bestimmtes Feld nicht angedruckt. Nun willst du das Druckprogramm analysieren. Hier ist es nicht möglich bei der konkreten Verarbeitung des Druckprogramm ein /h einzugeben. Und genau hier helfen Breakpoints: In unserem Beispiel rufst du per SE38 das Druckprogramm auf und setzt eine Stelle, die du dir im Debugger anschauen willst, einen Breakpoint.

 

# Den Breakpoint kann man auf 2 Arten setzen:

##1 Einfach auf die Breakpointspalte (ganz links) neben der Zeile doppelklicken, in der man den Breakpoint setzen will

##2 Den Mauszeiger auf die entsprechende Zeile setzen und oben in der Icon-Leiste auf Breakpoint-Icon klicken

Jetzt kannst du aus einem Lieferbeleg (VL02N) den Lieferschein drucken. Beim Ausführen des Druckprogramms wird das System beim Breakpoint anhalten, und du kannst Schritt für Schritt das Druckprogramm analysieren.

 

#4 Dynamisches Setzen von Breakpoints

80% meiner Debuggingaktivitäten beziehen sich auf Debuggen von Fehlern. Ich will ein Beleg oder ein Stammdatum anlegen/ändern und das System gibt mir eine mehr oder weniger verständliche Fehlermeldung aus. Wenn das passiert, kannst du mit einem dynamischen Breakpoint dem Fehler aus die Schliche kommen.

# Eine Fehlermeldung im SAP-GUI wird normalerweise unten links in der Statusleiste dargestellt.

# Wenn du hierhin ein Doppelklick machst, öffnet sich das Detailfenster zur Fehlermeldung. Hier kannst du Meldungsnummer ermitteln – bspw. VL141 – die letzten drei Stellen bilden die Nachrichtennummer (141) und die Zeichen davor sind die Nachrichtenklasse (VL).

# Jetzt startest du wieder die Transaktion, in der du den Fehler erhalten hast. Bevor du zu der Stelle kommst, an dem der Fehler auftrat, aktivierst du den Debugger – /h in die Transaktionsleiste eingeben – bei der nächsten Aktion ruft das System den Debugger auf.

# So jetzt kommt das gezielte Setzen des Breakpoints an der richtigen Stelle – was wir erreichen wollen: der Debugger soll genau an der Stelle anhalten, wo die Fehler ausgegeben wird.

# Um dies zu erreichen musst du ein Breakpoint genau bei der Fehlermeldung anlegen – die Meldungsnummer hatten wir im Vorfeld ermittelt: VL141:

## Über die Menüleiste den Punkt „Breakpoints“ -> „Breakpoint bei“ -> „Breakpoint bei Message“ anklicken

## Hier im Feld ID die Nachrichtenklasse (VL), im Feld Nummer die Nachrichtennummer (141) eingeben und mit Enter bestätigen -> damit ist der Breakpoint gesetzt.

## Jetzt den Debugger mit F8 weiterlaufen lassen; wenn alles gut geht, wird der Debugger bei der Meldung anhalten und du kannst die Fehlerstelle analysieren.

 

 

#5 Was ist eigentlich ein Externer Breakpoint

Ist dir eigentlich aufgefallen, dass es in der Icon-Leiste des ABAP-Editor (SE38) zwei Icons für Breakpoints gibt?

Mit dem ersten kannst du Session Breakpoint setzen, d.h. bei diesem Breakpoint hält das System innerhalb deiner Anmeldung (Session). Mit dem zweiten Breakpoint kannst du einen externen Breakpoint setzen, d.h. hier springt der Debugger auf, wenn ein anderer User diese Stelle passiert. Natürlich ist es hier nicht der Sinn, dass du einen Kollegen debuggst, sondern dass du RFC, HTTP Requests debuggst. Beispielsweise habt Ihr eine 2 Systemlandschaft mit einem ERP und einem EWM System. Das EWM sendet qRFC-Nachrichten, die per RFC-User (bspw. RFCUSER) abgearbeitet werden. Dann kannst an die Stelle im Coding, die dich interessiert, einen externen Breakpoint setzen und noch bestimmen für welchen User externe Breakpoint gelten soll -> beim nächsten Aufruf der entsprechenden Codingstelle durch User RFCUSER springt nun bei dir der Debugger auf.

# Setzen den externen Breakpoint: Per SE38 das entsprechende Coding sich anzeigen lassen; Zeile markieren und auf das Icon externer Breakpoint klicken

# User bestimmen, für den der externe Breakpoint gültig sein soll: In der Menüleiste des ABAP-Editors auf Hilfsmittel -> Einstellungen klicken; Reiter ABAP-Editor -> Debugging: Benutzer-Option aktivieren und den entsprechenden User setzen (bspw. RFCUSER)

 

 

#6 Was ist Systembedugging bzw. Verbuchungsdebugging

Systemdebugging

Im SAP-ABAP gibt neben Anwendungsprogramm (bspw. das Programm zu einer Transaktion) auch sogenannte Systemprogramme. Beispielsweise kann man in jeder beliebigen Transaktion (bspw. MM02) in die Transaktionsleiste %_GCADDF eingeben, um diese Transaktion  automatisch in deinen Favoriten zu speichern. Und diese Funktion wird per Systemprogramm gesteuert. Wenn du den Debugger per Eingabe von /h aktivierst, dann startet der Debugger ab der Stelle eines Anwendungsprogramms – Systemprogramme werden übersprungen. Falls du aber auch in Systemprogrammen debuggen willst, dann musst du dies wie folgt aktivieren:

# In der Menüleiste des Debugger-Screens: Einstellung -> Systemdebugging ein/aus

 

Verbuchungsdebugging

Kennst du den Effekt, wenn du einen Warenausgang zu einer Auslieferung per VL02N buchst und direkt  wieder per VL02N in die Lieferung einsteigen willst, und System sagt dir, die Auslieferung wird von dir gesperrt? Was hier passiert ist recht einfach: Das System hat zunächst für den User offensichtlich seine Arbeit erledigt, doch im Hintergrund arbeitet das System noch weiter, nämlich in einem Verbuchungsmodus. Beim Debuggen gelangst du normalerweise nicht in den Verbuchungsmodus; es sei denn, du aktivierst den Verbuchungsdebugging:

# In der Menüleiste des Debugger-Screens: Einstellung -> Debugger Profil / Einstellungen ändern klicken

# Hier im Bereich „Debug Modi“ das Verbuchungsdebugging aktivieren

 

#7 Wie kann ich ein Pop-Up debuggen

Es gibt in SAP immer wieder Situationen, wo innerhalb eines Pop-Ups eine Fehlersituation entsteht mit einer wenig hilfreichen Meldung. Ein schönes Beispiel ist hier die Anlage einer neuen Batch-Input Aufzeichnung (LSMW): Wenn du hier innerhalb des Pop-Ups als Aufzeichnungsname ZZ_AUFZEICHNUNG eingibst, kommt folgende Meldung:

 

Da du hier nicht die Transaktionsleiste rankommst, kannst du den Debugger nicht per Eingabe von /h aktivieren. Hier kannst den Debugger mit folgendem kleinen Trick aktivieren:

# Leg dir auf deinem Desktop ein txt-Datei mit folgendem Inhalt an – meine Datei habe ich debug.txt genannt:

 

# Jetzt ziehe die Datei per „Drag&Drop“ in das Pop-Up-Fenster und prompt wird der Debugger-Modus aktiviert.

 

* Übrigens: Hier konnte ich per Debugger ermitteln, dass Aufzeichungsname mit einem Unterstrich dieser Stelle nicht zulässig sind.

 

#8 Und wie funktioniert das Debuggen eines Jobs

Falls du vor der Bredouille stehst einen abgebrochen Job debuggen zu müssen, kannst du einfach wie folgt vorgehen:

# Starte die Transaktion SM37 und selektiere, den Job der dich interessiert (bspw. nach Jobname, Programm, Datum) und führe die Selektion aus

# In der folgenden Jobliste (dein Selektionsergebnis) solltest du den Job, den du debuggen willst, markieren und anschl. in die Transaktionsleiste jdbg und Enter drücken – prompt springt das System in den Debuggermodus

# Hier noch ein kleiner Trick: Nachdem du im Debugger bist, solltest du ein paar mal F7 drücken, damit du die ganze Jobsteuerung überspringst und an die interessanten Stellen zu gelangen.

 

#9 Der Zauberstab des Debugging – „Springe zur Anweisung“

Eine sehr interessante Option im ABAP-Debugger ist die Funktion „Springe zur Anweisung„. Mit dieser Funktion kannst du während des Debuggens Vor- und Zurückspringen – klingt zunächst nicht spektakulär, ist aber sehr hilfreich.

Beispiel zum Zurückspringen: Du hast wie oben (#4) beschrieben einen dynamischen Breakpoint an einer Fehlermeldung gesetzt, und das System hat promt an der Meldung den Debugger gestartet. Doch diese Stelle ist zum Debuggen nicht wirklich relevant, da die Situation, die zum Fehler führt, vorher durchlaufen wurde. Jetzt kannst du wie folgt vorgehen um die richtigen Stellen zu debuggen:

# Scroll im Debuggerfenster hoch und schau dir das Coding an.

# Platziere den Mauszeiger an eine Stelle, die dir interessant erscheint

# Gehe anschließend über die Menüleiste: Debugger -> Springe zur Anweisung (oder STRG+12)

# Nun kannst du an dieser Stelle weiter debuggen und analysieren, wie es zum Fehler kam

Beispiel zum Vorspringen: Mit der Funktion „Spring zur Anweisung“ kannst du auch ABAP-Zeilen überspringen, ohne dass sie prozessiert werden. Dies kannst du beispielsweise nutzen um eine Berechtigungs- oder Einstellungsprüfung zu überspringen.

 

* Übrigens: „Springe zur Anweisung“ kannst du auch mit der Maus bedienen: STRG+SHIFT+Klicke in der Breakpointspalte auf die jeweilige Zeile -> promt springt der Debugger an die Stelle.

 

#10 Es gibt mehr als /h – /hs, /ha, /hx

Neben der /h gibt es folgende Funktions-Codes, mit denen der Debugger gesteuert werden kann:

# /hs – Mit dieser Option wird der Debugger direkt im Systemdebuggingmodus gestartet

# /ha – Der Start des Debuggers mit /ha überspringt die Dynprosteuerung

# /hx – Wenn man den Debugger startet und anschließend per F8 den Debugger wieder verlässt und zurück zur Anwendung gelagt, dann beleibt das Debuggerfenster in einem anderer Session besteht – mit /hx kann man den Debuggermodus komplett verlassen

 

#11 Endlos-Schleife debuggen

Auch in ABAP ist eine Endlos-Schleife schnell mal passiert – falls dir mal so unterkommt und du dies debuggen willst, geht das so:

# Starte die Transaktion SM50 und ermittle  den Prozess, der in einer Endlos-Schleife läuft, und markiere diesen

# Jetzt starte den Debugger über die Menüleiste: Administration -> Programm -> Debugging

 

#12 Den Code in einem separaten Fenster öffnen

Während einer Debug-Session kann es sinnvoll sein, das aktuelle Programm im ABAP-Editor zu öffnen, um sich bspw. einen Überblick zum Programm zu verschaffen oder im sich im Rahmenprogramm umzuschauen:

# Während der Debug-Session: Menüleiste -> Springen -> Navigieren zum Quellcode

 

#13 Code nicht verstanden … hier gibt es massive Hilfe

Debuggen setzt voraus, dass man ABAP – wenigstens – in Grundzügen versteht. SELECT, IF … ELSE, WHILE, DO, CASE, CHECK, … sollten auch für einen funktionellen SAP-Berater keine böhmischen Dörfer sein. Aber natürlich wird man nicht an den Erfahrungsschatz eines ABAP-Entwicklers herankommen. Wenn du beim Debuggen einen bestimmten Befehl nicht verstehen solltest, kannst du wie folgt auf die sehr umfangreiche ABAP-Dokumentation zurückgreifen:

# Starte die Transaktion SE38 und rufe ein Programm im Anzeige-Modus auf

# Platziere deinen Mauszeiger auf einen Befehl, zu dem du die Dokumentation aufrufen willst

# Nun klickst du auf das i-Icon (Hilfe zu …), das oben in der Mitte der Icon-Leiste platziert ist

# Jetzt erscheint ein Suchfenster, wo der markierte Befehl direkt als Suchbegriff vorgeschlagen wird – hier einfach per Enter bestätigen

# Im folgenden Fenster bekommst du eine wirklich umfangreiche Beschreibung zum Befehl

 

 

#14 Ein paar Systemvariablen, die man kennen sollte …

Im ABAP gibt es eine Reihe von Systemvariablen, mit denen man den Programmverhalten beeinflussen bzw. aus denen man Informationen ermitteln kann. Die berühmteste Variable ist der „sy-subrc“; diese Variable ist ein Rückgabewert, der von vielen ABAP-Anweisungen gesetzt wird. Im Allgemeinen bedeutet sy-subrc=0, dass die Anweisung ohne Probleme ausgeführt wurde. Im folgenden ein kleine Liste von Systemvariablen, die häufig Verwendung finden:

# sy-batch – sy-batch=x, wenn das ABAP-Programm im Hintergrund ausgeführt wird

# sy-index – Anzahl der bisherigen Schleifendurchläufe in DO- oder WHILE-Schleifen (inkl. aktueller Durchgang)

# sy-langu – Sparchschlüssel (einstellig) für die aktuelle Textumgebung

# sy-mandt – Mandantenkennung

# sy-repid – Name des aktuellen ABAP-Programms

# sy-subrc – Rückgabewert der letzten ABAP-Anweisung (sy-subrc=0 -> alles OK)

# sy-tabix – Zeilennummer des Tabellenindex einer internen Tabelle

# sy-tcode – Aktueller Transaktionscode

# sy-title – Titelbalken-Text des Dynpros erscheint.

# sy-uname – aktueller Benutzer

# sy-uzeit – Systemzeit

 

cu, Isa.

IDoc-Transaktionen: Lass dir diese Liste nicht entgehen.

 

A. IDoc-Transaktionen – Anzeigen / Monitoring / Admin

# WLF_IDOC – IDoc Verarbeitung – hier sehr ausführlich erklärt

# WE02 – Anzeigen IDoc

# WE05 – IDoc Listen

# BD87 – Statusmonitor für ALE Nachrichten

 

B. IDoc-Transaktionen – Administration

# WE20 – Partnervereinbarungen

# WE21 – Portbeschreibung

# SM59 – RFC Destinations (Anzeige u. Pflege)

# SM58 – Fehlerprotokoll Asynchr. RFC

 

C. IDoc-Transaktionen – Suche

# WE06 – Aktive IDoc Überwachung (Monitoring)

# WE07 – IDoc Statistik

# WE09 – IDocs suchen über Inhalt

# WE10 – IDocs suchen über Inhalt

# WE11 – Löschen von IDocs

 

D. IDoc-Transaktionen – Test

# WE19 – Testwerkzeug

# WE15 – Test Ausgangsverarbeitung ab NAST

# WE14 – Test Ausgangsverarbeitung

# WE18 – Statusdatei erzeugen

# WE17 – Test Statusdatei

# WE12 – Test modifizierte Eingangsdatei

# WE16 – Test Eingangsdatei

 

E. IDoc-Transaktionen – Dokumentation

# WE60 – Dokumentation für IDoc Typen

# WE64 – Dokumentation Nachrichtentypen

 

F. IDoc-Transaktionen – Entwicklung

# WE31 – Entwicklung IDoc Segment

# WE30 – Entwicklung IDoc Typ

# WE81 – Logische Nachrichtentypen

# WE82 – Zuordnung Nachrichten zu IDoc Typ

# WE41 – Vorgangscodes Ausgang

# BD51 – Eingangsfunktionsbausteine pflegen

# WE57 – Zuordnung Nachrichten zu Anw. Objekt

# WE42 – Vorgangscodes Eingang

 

G. IDoc-Transaktionen – Steuerung

# WE47 – Statuspflege

# WELI – Statusgruppen pflegen

# WE43 – Funktionsbaustein Statussatz Anzeige

# WE24 – Vorschlagswerte Ausgangsparameter

# WE27 – Vorschlagswerte Eingangsparameter

# WE44 – Partnerarten und Prüfungen

# WE45 – Weiterleiten Eingang (V3, EDILOGADR)

# WE55 – Funktionsbaustein für Pfadnamen

# WE34 – Objekte zur Anzeige von XML IDocs

# WE32 – Entwicklung IDoc Sicht

 

H. IDoc-Transaktionen – Umsetzregeln

# BD62 – Segment Umsetzungsregel definieren

# BD79 – Pflege IDoc Umsetzungsregeln

# BD55 – Zwischenbeleg Umsetzung pflegen

* Das Thema Umsetzregeln innerhalh SAP-IDoc könnt ihr hier ausführlich nachlesen:

Mit Umsetzregeln viel Zeit und Entwicklungskapazität zu sparen.

 

I. IDoc-Transaktionen – Umschlüsselung

# WE70 – Umschlüsselung: Basistypen

# WE71 – Umschlüsselung: Erweiterungen

# WE72 – Umschlüsselung: IDoc Typen

# WE73 – Umschlüsselung: log. Nachrichten

 

J. IDoc-Transaktionen – Sonstige

# BDM2 – Monitoring: IDOCs beim Empfänger

# BDM7 – ALE Audit: Statistische Auswertungen

# SARA – Archivadministration

# IDOC – IDoc: Reparatur und Prüfprogramme

 

Zum Schluss noch: Ich habe hier eine Reihe von hilfreichen Tipps zum Thema IDocs zusammengestellt, die ihr euch auch anschauen solltet:

# 12 IDoc-Tricks, mit denen du einen bleibenden Eindruck beim Kunden hinterlässt.

 

cu, Isa.

…Übrigens findet ihr alle Beiträge im Buch „SAP Helden“ kompakt zusammengefasst.

Vergiss auswendiglernen – so einfach findest du die gesuchte Bewegungsart.

Ich weiß nicht wie vergesslich du bist – ich bin auf jeden Fall teilweise sehr vergesslich. Ich kann mir jede Telefonnummer sofort merken, werde wohl die 3 binomischen Formeln nie vergessen oder könnte den Customizingpfad der SD-Preisfindung im Schlafe aufsagen. Hingegen ist es mir schon mal passiert, dass ich früh morgens verzweifelt meinen Autoschlüssel gesucht habe. Nach geschlagenen 30 Minuten musste ich dann überrascht feststellen, dass ich ihn am vorigen Abend auf dem Zündschloss meines Wagen vergessen hatte 😉 Genauso zwielichtig verhält es sich bei mir mit dem Auswendigkönnen der MM-Bewegungsarten – einige Bewegungsarten hat man natürlich über die Jahre intus – 101, 601 641, … – ich könnte aber nicht behaupten, dass ich wirklich viele Bewegungsarten auswendig kann.

 

Vor einigen Wochen saßen wir mit ein paar Kollegen noch spät abends mit Meetingraum und versuchten eine Liste von Testfällen abzuschließen. Bei einem Testfall kamen wir nicht weiter, da der Bestand des Materials, mit dem wir testeten, auf dem gesperrten Bestand lag. Um hier weiterzukommen, wollten wir den Bestand kurzer Hand von gesperrt auf freiverwendbar umbuchen. Der Kollege, der am Rechner saß, startete prompt die Transaktion MB11 und als nächstes sahen wir uns alle nur fragend an – „… und was ist die Bewegungsart, mit der wir die Buchung durchführen können?“

 

Nachdem mein Kollege einige Zeit versuchte die richtige Bewegungsart aus der ellenlangen Liste der Bewegungsarten herauszusuchen, fiel mir folgende sehr elegante Möglichkeit ein, mit der man effektiv die gewünschte Bewegungsart ermitteln kann:

# In der Menüleiste der Transaktion MB11 ist eine geführtes Menü integriert, mit der man basierend auf den Vorgang bzw. Anwendungsfall sehr einfach die gewünschte Bewegungsart ermitteln:

# In unserem konkreten Fall ist es eine Umbuchung –> Bestand an Bestand –> Gesperrt an Frei – et voilà – unsere Bewegungsart ist die 343.

 

 

Übrigens: Diese Funktionen ist neben der MB11 auch in anderen Transaktionen (bspw. MB1A / MB1B / MB1C / …) integriert.

 

cu, Isa.

SAP-LSMW: Nichts neues für exzellente Berater – die coolste Klickanleitung.

Hallo Zusammen,

ich hatte vor einiger Zeit die Möglichkeit der Massenänderung in SAP vorgestellt: SAP MASS. Der Gebrauch der Transaktion MASS zum massenhaften Ändern von Daten hat dabei 3 entscheidende Nachteile:

 

#1 Zum ersten können massenhaft zu vielen Objekten immer nur ein Wert gesetzt werden – bspw. kannst du mit der MASS für 1 Mio. Materialien den Text ändern, aber überall den gleichen Text eintragen.

#2 Und zum zweiten können mit der MASS nur bestimmte Objekte prozessiert werden – bspw. kannst du mit der MASS keine Nachrichtenkonditionen ändern.

#3 Und letztlich bietet die MASS nicht die Möglichkeit massenhaft Daten anzulegen – man kann mit der MASS nur vorhandene Daten ändern.

 

Auf diese Nachteile wirst du nicht stoßen, wenn du statt der MASS die LSMW verwendest.

 

A. Was ist eigentlich LSMW

 

# LSMW ist zunächst eine SAP-Transaktion und steht für Legacy System Migration Workbench – zu deutsch, eine Werkzeug um Daten aus einem Altsystem in SAP zu migrieren.

# Obwohl sich der Titel auf Altdaten bezieht, kann man sowohl Stamm-, Bewegungs- oder Customizing-Daten mit LSMW sowohl anlegen als auch verändern.

# Im Detail bietet LSMW folgende technischen Möglichkeiten Daten anzulegen oder zu ändern:

## Standard-Batch bzw. Direct-Input

## Batch-Input-Aufzeichnung

## Mit Business-Obejct-Methode (BAPI)

## Per IDocs

# Die gängigste Methode, die vielfach genutzt wird, ist die Batch-Input-Aufzeichnung, die ich im folgenden vorstellen will …

 

B. LSMW – ein einfache Einführung

 

B.1 Unser Anwendungsfall für LSMW

Montag Morgen 08:37 Uhr … Jacques saß mit einer frisch gebrühten Tasse Kaffee an seinem Arbeitstisch und analysierte die Kundenaufträge, die übers Wochenende ins SAP-System eingespielt wurden. Gerade als er mit seinen Prüfungen durch war und sich anderen Aufgaben zuwenden wollte, traf ihn eine Liste wie der Blitz „Mist, Mist Mist, …“, dachte er sich nur. Bei 57.324 Kundenaufträgen fehlten die Bestellnummern. Und er wusste genau was dies bedeutete; spätestens bei der Fakturierung würde das Fehlen der Bestellnummern den Prozess stoppen. 

Nach einer kurzen Analyse der Daten hatte Jacques den Fehler noch nicht ermitteln können, aber er hatte eine Liste mit der Kundenauftragsnummern und den zugehörigen Bestellnummern zusammengestellt. Jetzt konnte man wenigstens die fehlenden Daten vervollständigen, doch eine manuelle Pflege der Daten per VA02 kam nicht in Frage – und sein erster Gedanke war intuitiv – LSMW.

 

B.2 Vorüberlegungen und Vorbereitungen zum LSMW

Wie oben beschrieben, wissen wir, was wir erreichen wollen:

# Bestellnummern zu Kundenaufträgen erfassen.

Doch bevor du mit der LSMW beginnst, solltest du folgende Punkte erledigen:

# Bereite eine Liste der nötigen Daten in Excel vor – am besten mit Überschrift – diese Excel Tabelle solltest auf deinem Rechner Tab-getrennte Textdatei abspeichern; diese Tabelle enthält die für uns relevanten Daten: Auftragsnummer und die zugehörige Bestellnummer.

# Ermittle die Formatierung der Felder (SE11 …), die du benötigst, und schreib sie auf

 

B.3 Die konkrete Umsetzung der LSMW

B.3.1 Zunächst ein paar Einstellungen der LSMW, die du durchführen solltest

#1 Starte zunächst im SAP-GUI einfach die Transaktion LSWM

#2 Jetzt musst du ein Projekt / Teilprojekt / und ein Objekt anlegen

## Die 3 Elemente gliedern deine LSMW-Aktivitäten und ihre Namen und Bezeichnungen sind freiwählbar

## Gib hier einfach einen sinnvollen Namen ein und klicke auf „Eintrag anlegen“ (das weiße Blatt links oben)

## Anschließend wirst du aufgefordert eine Bezeichnung für die einzelnen Elemente anzugeben

## Wenn du alles eingegeben und gespeichert hast, sollte deine Screen wie folgt aussehen:

 

 

#3 Jetzt per Enter oder F8 einfach dein LSMW-Projekt starten – nun gelangst du in den Einstiegsbild:

 

## Hier werden die Schritte aufgelistet, die man durchlaufen muss um die LSMW aufzubauen.

## Da wir aber mit einer Batch-Input-Aufzeichnung arbeiten wollen, brauchen wir nur bestimmte Schritte aus dieser Liste – darum solltest du zunächst die Liste bearbeiten

## Klicke hier auf den Punkt „Persönliches Menü“ (in der oberen Menü-Leiste) und wähle folgende Schritte aus:

 

## So jetzt sollten deine Arbeitsschritte wie folgt aussehen:

 

## Bevor du mit der Abarbeitung der einzelnen Schritte beginnst, solltest du darauf achten, dass die Option „Doppel=Ändern“ aktiviert ist (oben in der Mitte der Menüleiste). Wenn hier bei dir „Doppelklick=Anzeigen“ steht, solltest du einmal darauf klicken, um die Option zu ändern. „Doppel=Ändern“ erleichtert dir die Arbeit, da du mit Doppelklick auf die einzelnen Schritte direkt in den Änderungsmodus gelangst.

 

B.3.2 Jetzt die konkrete Abarbeitung der LSMW-Arbeitsschritte

#1 Starte mit dem ersten Arbeitsschritt, in dem du auf die Zeile „Objektattribute pflegen“ doppelklickst

## Hier die Importtechnik „Batch-Input-Aufzeichung“ auswählen und rechts neben dem Feld „Aufzeichnung“ auf das zweite Icon (Übersicht) klicken.

## Da wir noch keine Aufzeichnung erstellt haben, sollte das folgende Übersichtsbild leer sein; hier einfach auf das Leeres-Blatt-Icon (links oben), um eine Aufzeichnung anzulegen.

## Im folgenden Pop-Up-Fenster Name, Bezeichnung und Besitzer der Aufzeichnung eingeben und mit Enter bestätigen.

## Anschließend erscheint ein zweites Pop-Up-Fenster, wo die Transaktion eingegeben wird, mit der du die Aufzeichnung durchführen willst – in unserem Beispiel die VA02 -> mit Enter weiter

## Nun gelangst du in den Standard VA02 Einstiegsscreen; hier eine relevante Auftragsnummer eingeben und Enter, dann im Feld Bestellnummer die zugehörige Bestellnummer eingeben und anschließend auf Sichern klicken -> Fertig. Damit ist die Aufzeichnung beendet.

## Direkt nach dem Sichern wird die Aufzeichnung als Struktur mit den jeweiligen Feldern des Screens dargestellt:

 

## An dieser Stelle musst folgende 2 Punkte durchführen:

###1 Alle nicht relevanten Wertfelder entfernen: Für unser Beispiel sind nur die Wertfelder Auftragsnummer (VBAK-VBELN) und Bestellnummer (VBKD-BSTKD) von Interesse – alle anderen Wertfelder (zu erkennen an dem weißen Hintergrund) kannst du löschen: Einfach einmal auf das Feld klicken und mit dem Button „Dynpro-Feld Minus“ (oben in der Mitte der Menüleiste) entfernen.

###2 Anschließend musst du noch für die 2 relevanten Felder (Auftragsnummer / Bestellnummer) jeweils einen Feldnamen zuordnen; dies machst du am besten mit dem „Default alle“ Button – damit werden den 2 Feldern die Default SAP-Felder zugeordnet. Jetzt sollte dein Aufzeichnungsscreen so aussehen:

 

## Jetzt noch die Aufzeichnung sichern und zurück zum „Objektattribute pflegen“ Screen.

## Hier kannst du jetzt die eben angelegte Aufzeichnung auswählen, dieses Bild sichern und zurück zur Arbeitsschritte-Übersicht.

 

#2 Jetzt den zweiten Arbeitsschritt durchführen: Einfach auf „Quellstruktur pflegen“ doppelklicken. Im nächsten Bild eine neue Quellstruktur anlegen (Icon: Weißes Blatt), Namen und Bezeichnung eingeben (irgendwas sinnvolles), Enter, Sichern und zurück zur Arbeitsschritt-Übersicht.

 

#3 Im nächsten Schritt werden die Quellfelder gepflegt: Auf den dritten Arbeitsschritt doppelklicken …

## Den Mauszeiger auf die angelegte Quellstruktur positionieren und auf das „Tabellepflegen“ Icon klicken.

 

 

## Hier kannst du die Quellfelder der Struktur spezifizieren – in unserem Beispiel ist das die Auftragsnummer (VBELN) und die Bestellnummer (BSTKD)

## An dieser Stelle ist unsere Vorbereitung aus B.2 hilfreich; dort hatten wir die Formatierung der 2 Felder ermittelt, die wir hier einfach eintragen:

 

 

## Abschließend sichern und zurück zur Arbeitsschritt-Übersicht der LSMW

 

#4 Im nächsten Arbeitsschritt (4) musst du noch die Strukturbeziehungen pflegen. Da wir nur mit einer Struktur arbeiten, wird die Zuordnung automatisch vorgeschlagen, wenn du auf diesen Arbeitsschritt doppelklickst. Hier einfach sichern und zurück.

 

#5 Im fünften Arbeitsschritt musst du nun die Zuordnung der Ziel- und Quellstruktur auf Feldebene durchführen – nach Doppelklick auf diesen Arbeitsschritt werden die Zielfelder dargestellt (VBELN und BSTKD)

## Markiere zunächst das erste Feld (VBELN) und klicken auf das Icon „Quellfeld zuordnen“ (weißes Blatt)

## Im folgenden wird ein Pop-Up-Fenster angezeigt, woraus du mit Doppelklick das entsprechende Quellfeld auswählen musst – hier: VBELN.

## Diese 2 Schritte musst du nun für das zweite Feld (BSTKD) wiederholen

## Nachdem du alles durchgeführt hast, sollte das Mapping wie folgt aussehen; dieses kannst du sichern und zurück zur Arbeitschritt-Übersicht gehen.

 

#6 Im nächsten Schritt (6. Dateien spezifizieren) definierst du Datei aus der die Quellstruktur „gefüttert“ wird.

## Doppelklick auf diesen Arbeitsschritt

## Mauszeigen auf die Zeile „Altdaten – Auf dem PC (Frontend)“ legen und auf „Eintrag einfügen“ (weißes Blatt) klicken.

## An dieser Stelle öffnet sich ein Pop-Up-Fenster, das du wie folgt ausfüllen musst:

## Als Datei wählst du die Datei (per F4), die wir in B.2 vorbereitet hatten und als tab-getrennte Textdatei auf dem Desktop deines Rechners abgespeichert hatten.

## Nachdem du die Eingaben per Enter bestätigt hast, musst du noch alles sichern und zurück zur Arbeitsschritt-Übersicht.

 

#7 Im nächsten Punkt (Arbeitsschritt 7) ordnest du die Datei der Quellstruktur zu. Da wir nur mit einer Quellstruktur und einer Datei arbeiten, ordnet das System die beiden Objekte automatisch zu, wenn du mit Doppelklick in diesen Schritt einsteigst – also hier nur sichern und zurück zur Arbeitsschritt-Übersicht.

 

# Ab hier musst du die einzelnen Arbeitsschritte schematisch durchklicken, um die Batch-Input-Mappe zu erzeugen und abzuspielen:

## Arbeitsschritt #8Dateien einlesen: Doppelklick, ausführen und zurück – hier musst du evtl. dem System erlauben auf dein Rechner zuzugreifen (Pop-Up mit Zulassen bestätigen)

## Arbeitsschritt #9Eingelesene Daten anzeigen: Doppelklick, Enter, nach Bedarf kontrollieren und zurück.

## Arbeitsschritt #10 – Daten umsetzen: Doppelklick, ausführen und zurück

## Arbeitsschritt #11 – Umgesetzte Daten anzeigen: Doppelklick, Enter und nach Bedarf kontrollieren.

## Arbeitsschritt #12 – Batch-Input-Mappe erzeugen: Doppelklick und ausführen

## Arbeitsschritt #13 – Batch-Input-Mappe abspielen: Doppelklick, Mappe auswählen, auf Abspielen klicken und folgende Optionen auswählen – abspielen:

 

Wenn keine Fehler aufgetreten sind, sollten nach der Abarbeitung der Batch-Input-Mappe alle Bestellnummern zu den Aufträgen erfasst worden sein – du kannst diese per VA02 oder per SE16N kontrollieren.

 

cu, Isa.

 

SAP-Finance: Die wichtigsten Transaktionen.

A. Hauptbuchhaltung: Grundeinstellungen

A.1. Unternehmensstruktur

# OX15 – Konzernunternehmen Customizing

# OX02 – Buchungskreis einrichten Customizing

# OX16 – Zuordnung Bukrs->Konzernunternehmen

# OX03 – Geschäftsbereich einricht. Customizing

 

A.2 Geschäftsjahr

# OB29 – Geschäftsjahresvarianten anlegen

# OB37 – BuKrs zu Geschäftsjahresvarianten zuordnen

 

A.3. Kontenplan

# OB13 – Kontenpläne – ändern / anzeigen

# OB62 – BuKrs Kontenplan Zuordnung

# OBD4 – Kontengruppen pflegen

# OB53 – Autom. Buchungen – Konten

 

A.4. Buchungsperioden

# OBBO – Varianten für Buchungsperioden definieren

# OBBP – BuKrs den Buchungsperiodenvar. Zuordnen

# OB52 – Zeiträume für Buchungsperioden festlegen

 

A.5.Dokumentenarten und Nummernkreise

# OBA7 – Belegarten für Buchhaltungsbelege definieren

# FBN1 – Nummernkreise Buchhaltungsbeleg

 

A.6. Toleranzen

# OBA0 – Toleranzgruppen Sachkonten

# OBA4 – FI-Toleranzgruppen für Benutzer

# OB57 – Zuordnung Benutzer zu Toleranzgruppen

 

A.7. Feldstatus

# OBC4 – Pflege Feldstatusvarianten

# OBC5 – Zuordnung Bukrs-> Feldstatusvarianten

 

A.8. Kalkulationsschemazuordnung

# OBBG – Zuordnung Land zum Kalkulationsschema

 

A.9. Globale Parameter

# OBY6 – Globaledaten der BuKrs

 

A.10. Einstellungen für Auslandswährungen

# OB07 – Kurstypen für Währungsumrechnung

# OBBS – Umrechnungsfaktoren – Währungen

# OB08 – Umrechnungskurse

 

A.11. Kontenplan

# FSP0 – Sachkontenstamm im Kontenplan

# FSS0 – Sachkontenstamm im Buchungskreis

# FS00 – Sachkontenstammdatenpflege

 

B. Belegbuchung und weitere Transaktionen

B.1. Belegbuchung

# F-02 – Sachkontenbuchung erfassen

# F-07 – Zahlungsausgang buchen

# FB50 – Sachkontenbuchung Einbildtransaktion

# FBR2 – Beleg buchen

# FB03 – Beleg anzeigen

# FB02 – Beleg ändern

# FS10N – Saldenanzeige

# FBL3N – Einzelposten Sachkonten

B.2. Aufbau der Einzelposten

# FS00 – Sachkontenstammdatenpflege

# SE38-RFSEPA01 – Aufbau Einzelposten nach Stammsatzänderungen

# FS00 – Sachkontenstammdatenpflege

 

B.3. Weitere Transaktionen

# EC01 – Org.-Kopierer: Buchungskreis

# OBH1 – Nummernkreise von einem BuKrs zum anderen kopieren

# OBH2 – Nummernkreise von einem Geschäftsjahr zum anderen kopieren

# FS04 – Änderungen Sachkonto-Zentral

# OB41 – Pflege Buchhaltungsschlüssel

# OB56 – Textschablone für Positionstexte

# OY01 – Laender einrichten Customize

# OB22 – Zusätzliche Hauswährung zum Buchungskreis pflegen

# FKMT – FI Kontierungsmuster-Verwaltung

# O7E6 – Erf.masken Schnellerf. Sachkontopos.

# FB00 – Bearbeitungsoptionen Buchhaltung

# OBR1 – Belege löschen

# OBR2 – Personenkonten löschen

# OBY9 – Kontenplan transportieren

# OBY2 – Buchungskreis kopieren (Sachk.)

# OBY7 – Kontenplan kopieren

# OBY8 – Kontenplan löschen

# GGB0 – Validierungsbearbeitung

# OB28 – Validierung von Buchhaltungsbelegen aktivieren

# GGB1 – Substitutionsbearbeitung

# OBBH – Subctitution von Buchhaltungsbelegen

# FBU3 – Übergreifenden Beleg anzeigen

# OBYA – Autom. Buchungen – Verrechungskonto

 

B.4. Belegvorerfassung

# F-65 – Vorerfassung

# SO00 – SAPoffice: Kurznachricht

# FBV0 – Vorerfaßten Beleg buchen

 

B.5. Gemerkte Belege

# SE38-RFTMPBLU – Umsetzen gemerkter FI-Belege

# F-02 – Sachkontenbuchung erfassen

# FB11 – Gemerkten Beleg buchen

 

B.6. Beispieldokumente

# FBR2 – Beleg buchen

# FBN1 – Nummernkreise Buchhaltungsbeleg

# F-01 – Musterbeleg erfassen

# FBM3 – Musterbeleg anzeigen

 

B.7. Abgrenzungsbelege

# FBS1 – Abgrenzungsbeleg erfassen

# F.81 – Umkehrbuchung für Abgrenzungsbelege

 

B.8. Dauerbuchungen

# FBN1 – Nummernkreise Buchhaltungsbeleg

# FBD1 – Dauerbuchung erfassen

# F.15 – ABAP/4 Report: Dauerbuchungen listen

# F.14 – ABAP/4 Report: Dauerbuchungen ausf.

# FBD2 – Dauerbuchung ändern

# OB32 – Belegänderungsregeln festlegen

 

B.10. Stornos

# FB08 – Beleg stornieren

# F.80 – Massenstornierung von Belegen

# FBR2 – Beleg buchen

# FBRA – Rücknahme Ausgleich

# F.81 – Umkehrbuchung für Abgrenzungsbelege

 

B.11. Zinsberechnung

# OB46 – Verzinsungsarten definieren

# OBAA – Zinskennzeichen

# OBAC – Referenzzinssatzdefinition

# OB81 – Zeitabhängige Zinskonditionen

# OB83 – Referenzzinssatzdefinition

# FS00 – Sachkontenstammdatenpflege

# OBV2 – Kontenfindung SachkSaldenverz.

# F-02 – Sachkontenbuchung erfassen

# F.52 – Hauptbuch: Saldenverzinsung

 

B.12. Fremswährungsbewertung

# FS00 – Sachkontenstammdatenpflege

# OB59 – Pflege Bewertungsmethoden

# OBA1 – Autom. Buchungen – Vorgänge

# F-02 – Sachkontenbuchung erfassen

# OB08 – Währungsumrechnungskurse

# F.05 – Fremdwährungsbewertung

 

B.13. Steuern auf Verkauf / Einkauf

# OBQ3 – KondElemente: Kalkulationsschema

# OBBG – Zuordnung Land zum Kalkulationsschema

# FTXP – Steuerkennzeichen pflegen

# OBCL – Fi Pflege Tabelle T001 (MWSKV+MWSKA)

# FS00 – Sachkontenstammdatenpflege

# OB40 – C FI Pflege Tabelle T030 ste+vst

# FS00 – Sachkontenstammdatenpflege

# F-22 – Debitoren Rechnung erfassen

# F-43 – Kreditoren Rechnung erfassen

 

C. Kreditorenbuchhaltung

C.1. Basiseinstellungen

# FS00 – Sachkontenstammdatenpflege

# OBD3 – Pflege Kontongruppe Kreditoren

# XKN1 – Nummernkreise Kreditor

# OBAS – Zuordnung Kontongruppe Kreditoren zum Nummernkreis

# OBA3 – Pflege Toleranzen für Geschäftspartner

# XK01 – Anlegen Kreditor (Zentral)

# OBA7 – Belegarten für Buchhaltungsbelege definieren

# FBN1 – Nummernkreise Buchhaltungsbeleg

 

C.2. Weitere Transaktionen

# F-43 – Kreditoren Rechnung erfassen

# F-53 – Zahlungsausgang buchen

# FB60 – Erfassung eingehender Rechnungen

# FBL1N – Einzelposten Kreditoren

# F-41 – Kreditoren Gutschriften erfassen

# FB65 – Erfassung eingehender Gutschriften

 

C.3. Hausbank

# FS00 – Sachkontenstammdatenpflege

# FI12 – Ändern Hausbanken/Bankkonten

# FCHI – Schecknummernintervalle

# FCH5 – Scheckinformation hinzufügen

# FCHN – Schecknachweis

# FCH6 – Scheckinformation ändern / einlösen

# FCHV – Gründe für ungültige Schecks

# FCH3 – Schecks entwerten

# FCHG – Einlöse-/Extraktdaten löschen

# FCH8 – Rücknahme Scheckzahlung

 

C.4. Zahlungen im Voraus

# FS00 – Sachkontenstammdatenpflege

# OBYR – Sonderhauptbuch

# F-47 – Anzahlungsanforderung

# F-48 – Kreditorenanzahlung buchen

# F-43 – Kreditoren Rechnung erfassen

# F-54 – Kreditorenanzahlung auflösen

# F-44 – Ausgleichen Kreditor

 

C.5. Zahlungsbedingungen

# OBB8 – Pflege der Zahlungsbedingungen

# OBXU – Autom. Buchungen Skonto

# OBXI – Autom. Buchungen Skontoaufwand

 

C.6. Korrespondenzanforderungen

# OB78 – Reportzuordnung für masch. Korrekturen

# FB12 – Anforderung von Korrespondenz

# F.64 – Korrespondenz: Anforderungen pflegen

 

C.7. Automatischer Zahllauf

# XK02 – Ändern Kreditor (Zentral)

# FCHI – Schecknummernintervalle

# F110 – Parameter für maschinelle Zahlung

 

C.8. Kassenbuch

# FS00 – Sachkontenstammdatenpflege

# OBA7 – Belegarten für Buchhaltungsbelege definieren

# FBCJC1 – Nummernkreis Kassenbuchbeleg

# FBCJC0 – Pflege Kassenbücher

# FBCJC2 – Pflege Kassenbuchtransaktionsnamen

# FBCJC3 – Pflege Druckparameter für Kassenbücher

 

D. Anlagenbuchhaltung

D.1. Basiseinstellungen

# FS00 – Sachkontenstammdatenpflege

# EC08 – Org.-Kopierer: Versandstelle

# OBCL – Fi Pflege Tabelle T001 (MWSKV+MWSKA)

# OAOB – FI-AA: Buchungskreise zuordnen

# AS08 – Nummernkreise Anlagennnr

# OAOA – FI-AA: Anlagenklassen definieren

# OAYZ – Anlagenklasse: Bewertungsbereiche

# AO90 – Kontierung Zugänge

# OAYR – Buchungsregeln Abschreibungen

# OAYO – Rundungsangaben Bewertungsbereich

# AFAMD – View-Pflege Degressivmethode

# AS01 – Anlagen-Stammsatz anlegen

# AS11 – Anlagen-Unternummer anlegen

# F-90 – Anlagenzugang d. Kauf m. Kreditor

# F-90 – Anlagenzugang d. Kauf m. Kreditor

# AW01N – Asset Explorer

# S_ALR_87011965 – Anlagenbestand

# AFAB – Abschreibung buchen

 

D.2. Abrechnung Anlage im Bau

# OKO7 – Abrechnungsprofile pflegen

# SNUM – Nummernkreistreiber

# AS01 – Anlagen-Stammsatz anlegen

# AIAB – AiB Aufteilungsregelzuordnung

 

D.3. Andere Transaktionen

# ASKB – Periodische Anlagenbuchungen

# ABST2 – Abstimmungsanalyse FI-AA

# F-92 – Anlagenabgang d. Verkauf m. Debitor

# ABAON – Abgang d. Verkauf o. Debitor

# ABUMN – Umbuchung buchungskreis-intern

# ABT1N – Anlagen Transfer

# ABAVN – Abgang durch Verschrottung

# ABNAN – Nachaktivierung

# ABMA – Manuelle Abschreibung

# ABAA – Ausserplanmässige Abschreibung

# S_ALR_87012936 – Abschreibungssimulation

# AR02 – Aufruf Anlagen-Gitter

 

E. Abschlussarbeiten

E.1 Bilanz/GuV-Struktur

# OB58 – Bilanz / GuV Strukturen

F.01 – Start des Reports: Bilanz / GuV

 

E.2. Abschlussarbeiten

# F.07 – Hauptbuch: Saldovortrag

# OAAQ – FI-AA Jahresabschluss zurücknehmen

# AJAB – Jahresabschluss

# AJRW – Jahreswechsel

# F.16 – ABAP/4 Report: Saldovortrag Hauptb.

# OBH2 – Nummernkreise von einem Geschäftsjahr zum anderen kopieren

# OB52 – Zeiträume für Buchungsperioden festlegen

 

E.3. Reports zum Hauptbuch

# S_ALR_87012326 – Kontenplan

# S_ALR_87012310 – vorläufige Bilanz – Anforderungen: K

# S_ALR_87100205 – Hauptbuch aus der Belegdatei

 

E.4. Kreditoren Reports

# F-53 – Zahlungsausgang buchen

# S_ALR_87012086 – Kreditorenverzeichnis

# S_ALR_87012093 – Kreditoren-Umsätze

# S_ALR_87012083 – Kreditoren Offene Posten Liste

# S_ALR_87012085 – Zahlungsverhalten gegenüber Kreditor

# S_ALR_87012105 – Auflistung zu einem Stichtag offene

# S_ALR_87012103 – Kreditoren Einzelposten Liste

 

E.5. Debitoren Reports

# F-28 – Zahlungseingang buchen

# S_ALR_87012179 – Debitorenverzeichnis

# S_ALR_87012186 – Debitoren-Umsätze

# S_ALR_87012173 – Debitoren Offene Posten Liste

# S_ALR_87012176 – Kundenbeurteilung mit OP-Rasterung

# S_ALR_87012199 – Auflistung zu einem Stichtag offene

# S_ALR_87012197 – Debitoren Einzelposten Liste

 

…Übrigens findet ihr alle Beiträge im Buch „SAP Helden“ kompakt zusammengefasst.

Dateien hoch- und runterladen vom SAP-Server.

Vielleicht kennst du die Transaktion AL11 – mit dieser Transaktion kann man sich die Verzeichnisse des SAP-Anwendungsservers durchforsten und sich die Dateiinhalte anschauen, sofern die Dateitypen und Berechtigungen es zulassen. Vielfach werden die Verzeichnisse dazu verwendet, um externe Daten, die in SAP verarbeitet werden, abzulegen – hier das Stichwort FTP-Server.

 

Doch mit der AL11 ist es nicht möglich auf die Verzeichnisse neue Datei abzulegen oder von dort runterzuladen. Hierzu gibt es aber folgende 2 Transaktionen:

# CG3Y – Datei vom SAP-Anwendungsserver herunterladen
# CG3Z – Datei auf SAP-Anwendungsserver hochladen

 

cu, Isa.

 

 

 

 

 

Diese FI-Tabellen bilden den Kern des Königsmoduls.

 

SAP-FI-Tabellen zur Hauptbuchhaltung

SKA1 – Sachkontenstamm (Kontenplan)

SKAT – Sachkontenstamm (Kontenplan: Bezeichnung)

SKB1 – Sachkontenstamm (Buchungskreis)

SKM1 – Muster Sachkonten

SKMT – Bezeichnung der Musterkonten

SKAS – Sachkontenstamm (Kontenplan: Schlagwortverzeichnis)

TSAKR – Anlegen Sachkonto mit Vorlage

 

SAP-FI-Tabellen zu Debitoren

KNA1 – Kundenstamm (allgemeiner Teil)

KNB1 – Kundenstamm (Buchungskreis)

KNVV – Kundenstamm Vertriebsdaten

KNBK – Kundenstamm (Bankverbindungen)

KNVH – Kundenhierarchien

KNVP – Kundenstamm Partnerrollen

KNVS – Kundenstamm Versanddaten

KNVK – Kundenstamm Ansprechpartner

KNVI – Kundenstamm Steuerindikatoren

KNC1 – Kundenstamm Verkehrszahlen

KNC3 – Kundenstamm Verkehrszahlen Sonderhauptbuchvorgänge

 

SAP-FI-Tabellen zu Kreditoren

LFA1 – Lieferantenstamm (allgemeiner Teil)

LFB1 – Lieferantenstamm (Buchungskreis)

LFB5 – Lieferantenstamm (Mahndaten)

LFM1 – Lieferantenstamm Einkaufsorganisationsdaten

LFM2 – Lieferantenstamm: Einkaufsdaten

LFBK – Lieferantenstamm (Bankverbindungen)

 

SAP-FI-Tabellen zu Banken

BNKA – Bankenstamm

T012T – Bezeichnung der Konten bei Hausbanken

T012C – Konditionen für Bankvorgänge

T012D – Parameter Datenträgeraustausch und Auslandszahlungsverkehr

T012E – EDI-fähige Hausbanken und Zahlwege

T012K – Konten bei Hausbanken

T012O – ORBIAN-Verbindung: Bankkonten und andere Daten

TIBAN – IBAN

 

SAP-FI-Tabellen zur Buchhaltung

BKPF – Belegkopf für Buchhaltung

BSEG – Belegsegment Buchhaltung

BSID – Buchhaltung: Sekundärindex für Debitoren

BSIK – Buchhaltung: Sekundärindex für Kreditoren

BSIM – Sekundärindex Belege zum Material

BSIP – Index für Kreditoren-Prüfung auf doppelte Belege

BSIS – Buchhaltung: Sekundärindex für Sachkonten

BSAD – Buchhaltung: Sekundärindex für Debitoren (ausgebl. Posten)

BSAK – Buchhaltung: Sekundärindex für Kreditoren (ausgegl. Posten

BSAS – Buchhaltung: Sekundärindex für Sachkonten (ausgegl. Posten

 

SAP-FI-Tabellen zum Zahlungsverkehr

REGUH – Regulierungsdaten aus Zahlprogramm

REGUP – Bearbeitete Positionen aus Zahlprogramm

REGUT – TemSe – Verwaltungsdaten

T042 – Parameter zum Zahlungsverkehr

T042A – Bankenauswahl für Zahlungsprogramm

T042B – Angaben zu den zahlenden Buchungskreisen

T042C – Technische Einstellungen zum Zahlungsprogramm

T042D – Disponierte Beträge für das Zahlungsprogramm

T042E – Buchungskreisspezifische Angaben zum Zahlweg

T042F – Zusätze zum Zahlweg

T042H – Texttabelle für Zusätze zum Zahlweg

T042G – Gruppen von Buchungskreisen ( Zahlprogramm )

T042I – Kontenfindung für Zahlprogramm

T042J – Ermittlung von Bankgebühren

T042K – Konten für Bankgebühren

T042N – Bank-Transaktionscodes

T042S – Gebühren / Spesen beim automatischen Zahlungsverkehr

T042V – Wertstellungsdatum bei automatischen Zahlungen

T042W – Zulässige Währungsschlüssel zum Zahlweg

T042Z – Zahlwege fuer die maschinelle Regulierung

T008 – Sperrgründe für maschinellen Zahlungsverkehr

 

SAP-FI-Tabellen zum Buchungskreis

T004 – Verzeichnis der Kontenpläne

T077S – Kontogruppen Sachkonten

T009 – Geschäftsjahresvarianten

T880 – Gesellschaftsdaten (für KONS-Ledger)

T014 – Kreditkontrollbereiche

 

SAP-FI-Tabellen zu Buchungsperioden

T010O – Buchungsperioden-Varianten

T010P – Bezeichnungen zu Buchungsperioden-Varianten

T001B – Erlaubte Buchungsperioden

T003 – Belegarten

T012 – Hausbanken

 

SAP-FI-Tabellen zu Steuern

T059A – Quellensteuerklassen für Kreditoren

T059B – Quellensteuerklassen für Kreditoren: Bezeichnungen

T059C – Quellensteuerklassen Kreditoren pro Quellensteuertyp

T059D – Quellensteuerklassen Kreditoren pro Quellensteuertyp

T059E – Einkunftsarten

T059G – Einkunftsarten: Bezeichnungen

T059K – Quellensteuerkennzeichen und Vorgangsschlüssel

T059P – Quellensteuer Typen

T059Z – Quellensteuerkennzeichen (erweiterte Funktionalität)

T007A – Steuerschlüssel

T007S – Bezeichnung der Steuerkennzeichen

T007B – Steuerabwicklung in der Buchhaltung

 

cu, Isa.

Schnelländerung einer MM-Bestellung

Prinzipiell erscheinen mir die zwei SAP-Module MM und SD immer als die zwei Medaillen ein und der selben Medaille zu sein, doch im Detail ticken sie leider sehr unterschiedlich. Vielfach entdecke ich in einem der beiden Module Funktionen oder Features und frage mich, warum gibt es dieses Feature nicht in dem anderen Modul.

 

So eine Funktion ist die Schnelländerung von MM-Bestellungen. Natürlich gibt es auch für SD-Kundenaufträge eine Schnelländerung, aber sie ist bei weitem nicht so mächtig, wie die MM-Schnelländerung; hier nun ein kurze Vorstellung der Schnelländerung von MM-Bestellpositionen.

 

Stell dir vor, du hast eine MM-Bestellung mit über 100 Positionen erfasst, und plötzlich steht du vor dem Problem, dass du in allen Positionen das Werk und den Lagerort ändern musst. Natürlich ist das Position für Position machbar, aber eine zeitraubende Aufgabe. Hier hilft dir folgende Funktion weiter:

 

# Klicke auf das Icon „Schnelländerung“

# Wähle nun die Felder (rechts) aus, die du ändern willst, und bringe sie auf die linke Seite

# Anschließend klickst du auf den „Übernehmen“ Button

# In nächsten Bild muss du nun den neuen Wert vorgeben auf den das ausgewählte Feld geändert werden soll

# Jetzt ausführen und die Änderungen werden ausgeführt

# Vor dem Ausführen der Änderungen kannst du noch festlegen,

## ob nur die markierten Position oder alle Positionen geändert werden,

## und ob das ausgewählte Feld gelöscht (zurückgesetzt) werden soll.

 

 

 

 

cu, Isa.

 

 

 

SAP-Idoc-Tabellen – erfahrene Berater kennen diese Tabellen.

A. SAP-Tabellen zu IDoc-Daten

# EDIDC – Kontrollsatz (IDoc) – In dieser Tabelle sind die Kopfdaten eines Idocs enthalt; die sind bspw. Nummer des IDocs, Datum und Uhrzeit der Erstellung und Änderung, IDoc-Typ, Status, Partner, Richtung, …

# EDID4 – IDoc-Datensätze ab 4.0 – Hier sind die konkreten Anwendungsdaten eines im Feld SDATA; hier ist zu beachten, dass die Daten pro Segment unstrukturiert abgelegt sind. Die konkrete Struktur ergibt sich gemäß Offset. Die Definition des Offset ergibt sich aus der Tabelle EDSAPPL.

# EDIDS – Statussatz (IDoc) – In der EDIDS sind die Status des IDocs abgelegt.

 

B. SAP-Tabellen zu Partnervereinbarung

# EDPP1 – EDI-Partner (allgem. Partnervereinb. Ein- und Ausgang)

# EDP12 – Partnervereinbarung: Ausgang mit Nachrichtensteuerung

# EDP13 – Partnervereinbarung: Ausgang (technische Parameter)

# EDP21 – Partnervereinbarung: Eingang

# TEDST – SAP-EDI Formroutinen zum Stammdaten lesen – In die Tabelle sind pro Partnerart Routinen zugeordnet, die prüfen, ob der eingegebene Partner zur Partnerart passt.

 

C. SAP-Tabellen zu Definition von IDoc-Strukturen

# EDISDEF – IDoc Entwicklung : IDoc Segmentdefinitionen

# EDISEGT – EDI: Kurzbeschreibung der IDoc-Segmente

# IDOCSYN – Syntaxbeschreibung für Basistypen – Hier ist hierarchische Struktur der einzelnen Segemente eines IDoc-Typs abgelegt.

# EDSAPPL – EDI: IDoc-Segment Anwendungsstruktur – Die Tabelle enthält die konkrete Definition der einzelnen Felder eines IDoc-Segments.

 

D. SAP-Tabellen zum IDoc-Status

# TEDS1 – IDoc-Statuswerte

# TEDS2 – Kurzbeschreibung der IDoc-Statuswerte

# TEDS3 – EDI Status: Zuordnung zu Statusgruppen, Archivierbarkeit

# STACUST – Customizing für IDoc-Status (Stat.gruppen,Archiv,Processing)

# STALIGHT – Ampelzuordnung zu Statusgruppen für IDoc-Anzeige

 

E. SAP-Tabelle zur Verlinkung von IDosc mit Anwendungsbelegen

# SRRELROLES – Object Relationship Service : Rollen

# IDOCREL – Verknüpfungen zwischen IDoc und Anwendungsobjekt

*Mit diesen zwei Tabellen kann man die Verlinkung eines IDocs an ein Anwendungsbeleg (Kundenauftrag, Rechnung, …) ermitteln. Die konkreten Zusammenhänge hatte ich in diesem Beitrag vorgestellt: Einfacher geht es nicht: IDoc-Beleg-Verlinkung per SE16 ermitteln

 

F. SAP-Tabellen zu Nachrichten- / Basistypen und Vorgangscodes

# EDMSG – Logische Nachrichtentypen

# EDIMSGT – Kurzbeschreibung der SAP Nachrichtentypen

# EDE1T – EDI: Texttabelle zu Vorgangscodes Ausgang (TEDE1)

# TEDE1 – EDI-Vorfallstypen für Ausgang

# TMSG1 – Logische Nachrichten und Vorgangscodes im Ausgang

# EDE2T – EDI: Texttabelle zu Vorgangscodes Eingang (TEDE2)

# TBD52 – Funktionsbausteine für ALE-EDI Eingang

# TEDE2 – EDI-Vorfallstypen für Eingang

# TMSG2 – Logische Nachrichten und Vorgangscodes im Eingang

 

 

cu, Isa.

 

Diese SAP-Tabellenbrowser solltest du kennen.

SAP-Tabellenbrowser, die man kennen sollte:

 

# SE16 – klassischer SAP-Tabellenbrowser

## in allen SAP-Sytemen verfügbar

 

# SE16N – erweiterter Tabellenbrowser mit optimierter Selektionsmöglichkeit

## nicht verfügbar auf einem SCM-System

 

# SE16H – neuer erweiterter Tabellenbrowser mit der Möglichkeit zu gruppieren und eine

## nicht verfügbar in einem SCM-System

 

# S416N – identisch zu SE16N

## verfügbar in einem SCM-Sytem mit HANA-DB

 

S416H – identisch zu SE16H

## verfügbar in einem SCM-Sytem mit HANA-DB

 

cu, Isa