SAP-Querys – Datenanalyse einfach.

Vor einiger Zeit hatte ich die Möglichkeit vorgestellt, wie man mit dem SAP Quickviewer schnell und effektiv Auswertung erstellt – SAP SQVI – diese Tipps solltest du dir nicht entgehen lassen. Doch neben dem Quickviewer bietet SAP ein viel mächtigeres Werkzeug an, mit dem du umfangreiche Auswertung erstellen kannst: SAP bzw. ABAP Query. Im folgenden will ich einen ersten Einstieg in dieses Thema vorstellen.

 

A. Wichtige Elemente einer SAP Query

Bevor wir mit der Erstellung der Query anfangen, sollten dir folgende Elemente der SAP Querys bekannt sein:

 

A.1 Das Info-Set – die Datenquelle

Info-Sets bilden die Grundlage von Querys. Mittels der Info-Sets wird definiert, aus welchen Quellen die Daten für die Auswertung ermittelt werden: Im einfachsten Fall ist dies eine Tabelle – weitere Datenquellen können Tabellen-Joins, logische Datenbanken oder Programme sein. Info-Sets werden einem oder mehreren Benutzergruppen zugeordnet – damit kommen wir zum nächsten Punkt

 

A.2 Die Benutzergruppe – wer darf eigentlich was

Mit Benutzergruppen organisiert du die User. D.h. mit der Zuordnung von Usern zu Benutzergruppen und der anschließenden Zuordnung von Info-Set und Querys zu Benutzergruppen, legst du fest, welche User welche Info-Sets und Query benutzen oder ändern können.

 

A.3 Die Query – die konkrete Auswertung

Nachdem du deine Info-Set erstellt hast und diese einer Benutzergruppe zugeordnet wurde, kannst du basierend auf dem Info-Set die Query bauen. Hier legst du fest, mit welchen Feldern du selektieren willst, und welche Felder als Ergebnis dargestellt werden sollen.

 

A.4 Der Arbeitsbereich – Transport oder nicht Transport, das ist hier die Frage.

Zum Schluss sollte dir auch das Thema Arbeitsbereich bekannt sein. Alle drei bisher erwähnten Elemente von Query können in zwei 2 Arbeitsbereichen anlegt werden: Standardbereich / Globaler Bereich.

# Wenn mit im globalen Bereich arbeitest, dann musst du dies zunächst im Entwicklungssystem machen. Deine Info-Sets, Querys und Benutzergruppen werden hierbei per Transport in die weiteren Systeme verteilt.

# Hingegen kannst du im Standardbereich deine Einstellung direkt im jeweiligen System (auch produktiv) durchführen, ohne dass du sie per Transportauftrag ins nächste System überführen musst.

 

B. Schritt für Schritt den ersten Query anlegen

Im folgende erstellen wir Schritt für Schritt unseren ersten Query. Als Anwendungsfall wollen wir einfach Lieferköpfe mit den Lieferpositionsdaten zusammen auswerten und eine Liste mit Materialien pro Versandstellen im einem bestimmten Zeitraum darstellen.

 

B.1 Bestimmung des Arbeitsbereiches

Da wir unseren Query nicht in weitere Systeme transportieren und nur im aktuellen System nutzen wollen, legen wir für uns fest, dass wir alle folgenden Arbeitsschritte im Standardbereich durchführen.

 

B.2 Anlegen der Benutzergruppe – Transaktion: SQ03

In diesem Schritt legen wir zunächst eine Benutzergruppe an. Natürlich kannst du auch eine vorhandene Benutzergruppe nutzen, und in den meisten Fällen wird dies auch der Fall sein:

# Ruf die Transaktion SQ03 – „Benutzergruppen: Einstieg“ auf

# Wie oben erwähnt wollen wir im Standardbereich arbeiten, daher musst du zunächst den Arbeitsbereich prüfen und ggf. ändern:

## Im oberen Bereich des Einstiegsbilds der SQ03 ist der Arbeitsbereich dargestellt; wenn hier Standardbereich steht, ist alles OK. Wenn bei dir globaler Bereich steht, solltest du dies wie folgt ändern:

## Oben in der Menüleiste: Umfeld -> Arbeitsbereiche -> Standardbereich anklicken und Enter.

# So … nachdem wir den Arbeitsbereich geändert haben können unsere Benutzergruppe anlegen: Einfach in das Feld Benutzergruppe einen Bezeichnung für die Bentzergruppe eingeben und auf den Button Anlegen klicken.

# Im nächsten Pop-Up-Fenster noch einen Text zur Benutzergruppe angeben und auf Sichern klicken – fertig.

 

 

# Im letzten Schritte zu Benutzergruppen kannst du verschiedene Benutzer der Benutzergruppe zuordnen; so stellst du sicher, dass nur diese User die Querys und Info-Sets nutzen können.

## Nach du die Benutzergruppe angelegt hast, klicke auf den Button „Benutzer und InfoSets zuordnen“

## Hier kannst du die einzelnen User eingeben, die der Benutzergruppe zugeordnet sein sollen; weiterhin kannst du auch bestimmen, ob die einzelnen Benutzer Änderungsberechtigung für die Querys dieser Benutzergruppe bekommen sollen.

 

* Abschließend eine kurze Anmerkung zu Benutzergruppen und Berechtigung: Meine Erfahrung ist, dass vielfach die Zuordnung von Usern Benutzergruppen und die Vergabe der Änderungsberechtigung – wie oben im Screenshot dargestellt – gar nicht nötig. Da die User, mit denen ich arbeite, schon sehr umfangreiche Berechtigungen besitzen, und auch ohne die Zuordnung jedes Infoset und jede Query ändern können. Wenn die Benutzung der Querys für alles User freigegeben werden soll, müsste man sich im ersten Schritt ein sinnvolles Berechtigungskonzept  implementieren und dies umfangreich testen.

 

B.3 Anlegen des Info-Sets – SQ02

In diesem Schritt legen wir das Info-Sets an und ordnen es einer Benutzergruppe zu. In unserem Beispiel wollen wir als Datenquelle einen Join zwischen den Tabellen LIKP und LIPS mit allen Felder der Tabelle nutzen:

 

# Ruf die Transaktion SQ02 auf und prüfe, ob du dich Standardbereich befindest; falls nicht, ändere ihn: Menüleiste: Umfeld -> Arbeitsbereiche -> Standardbereich

# Gebe jetzt im Feld InfoSet einen sinnvollen Name ein (ich werde LIKP_LIPS verwenden) und klicke auf „Anlegen“

# Im nächsten Pop-Fenster musst du eine Bezeichnung für das InfoSet angeben, die erste Tabelle für den Join benennen und mit Enter bestätigen

 

# Da wir als Datenquelle einen Tabellen-Join nutzen wollen, wirst du im nächsten Bild aufgefordert, die Join-Beziehung aufzubauen:

## Klicke hier auf das dritte Icon von links „Tabelle einfügen“ und gib die Tabelle LIPS ein und bestätige mit Enter

## Jetzt wird die Tabelle LIPS in das Join-Bild aufgenommen und die Join-Verbindung (über VBELN) vorgeschlagen – dein Screen sollte wie folgt aussehen:

 

# Hier kannst du nun das Join-Bild verlassen, in dem du auf den Button „InfoSet“ klickst.

# Im nächsten Bild wirst du nach der Feldbelegung gefragt, d.h. welche Felder der beiden Tabellen sollen im Info-Set verfügbar sein. Klicke hier auf „alle Tabellenfelder aufnehmen“ und bestätige deine Eingabe mit Enter.

# Im folgenden Bild musst noch das InfoSet generieren und kannst anschl. einfach zurück gehen zum Ursprungsbild der SQ02.

# Im letzten Schritt musst du das InfoSet einer Benutzergruppe zuordnen: Einfach auf den Button „Zuordnung zu Rollen/Benutzergruppen“ klicken und die Benutzergruppen anklicken, denen das InfoSet zugeordnet werden soll -> Sichern und Fertig.

 

B.4 Anlegen des Querys.

Im letzten Schritt erstellen wir nun die konkrete Query, d.h. wir legen fest welcher Felder für Selektion bereitstehen und wie die Ergebnisse dargestellt werden sollen:

# Ruf die Transaktion SQ01 auf und prüfe den Arbeitsbereich – ggf. über Menüleiste -> Arbeitsbereich ändern.

# Anschließend musst du die Benutzergruppe auswählen, in der du die Query anlegen willst: Das erste Icon (links) in der Icon-Leiste anklicken und die eine Benutzergruppe auswählen. Ich hatte hier vorher die Benutzergruppe „tdf_all“ angelegt.

# Jetzt kannst du in das Feld Query deinen Querynamen eingeben und auf das „Anlegen“ Button klicken

# Im folgenden Pop-Up-Fenster werden dir alle InfoSets dargestellt, die der aktuellen Benutzergruppe zugeordnet sind – hier wählt du das InfoSet auswählen, auf dessen Basis du deine Query erstellen willst.

 

# Anschließend gibst du im Folgebild eine Bezeichnung für deinen Query ein und klickst auf den Button „Grundliste“

# Die Grundliste des Querys ist aus 3 Teilfenstern aufgebaut:

## Das linke obere Fenster enthält die Datenfelder der Datenquellen; in unserem Beispiel die Felder die beiden Tabellen LIKP und LIPS.

## Im linken unteren Fenster werden Kommentare und Hinweise dargestellt.

## Im rechten Fenster kannst du das Layout der Ergebnisliste anpassen.

# Uns interessiert zunächst nur das linke obere Fenster mit den Datenfeldern. Hier legen wir fest, mit welchen Feldern wir selektieren und welche Felder als Ergebnis dargestellt werden sollen:

## Ziehe zunächst das linke obere Fenster etwas größer

## Anschließend klappst du die einzelnen Tabellen auf, um die Felder dargestellt zu bekommen – ab hier ist es ganz einfach:

## Bei den Feldern, die in der Ergebnisliste dargestellt werden sollen, hakst du die Spalte „Listenfeld“ an – in meinem Beispiel sind dies: LIKP-VBELN, LIKP-VSTEL und LIPS-MATNR

## Bei den Feldern, mit denen du selektieren willst, hakst du die Spalte „Selektionsfelder“ an – im Beispiel: LIKP-ERDAT, LIKP-VSTEL und LIKP-LFART

 

 

# Ab hier sind wir auch fertig: Du kannst hier dein Query sichern, zurück zum Einstiegsbild der Transaktion SQ01 gehen und deine Query ausführen (einfach per F8) – mein Selektions- und Ergebnisbild sieht wie folgt aus:

 

 

C. Zum Schluss noch …

Wie ich zu Beginn erwähnt habe, sind SAP Querys ein mächtiges Tool, mit denen man umfangreiche Auswertung erstellen. Hier habe ich aber bewusst nur einen ersten Einstieg in das Thema vorgestellt. Ich habe die Erfahrung gemacht, dass man sich anfangs mit dem Thema schwer tut, wenn man die Zusammenhänge zwischen Arbeitsbereich, Benutzergruppe, InfoSet und Query nicht genau durchdrungen hat. In zukünftigen Beiträgen werde ich noch weitere Detail von SAP Querys eingehen. Für ungeduldige Leser, die nicht warten wollen, empfehle ich Andreas Beiträge zu SAP Queries, die sehr gut und sehr umfangreich sind: Grundlagen Kurzeinführung und Handbuch SAP Query

 

cu, Isa.

..Übrigens findest du alle Beiträge im Buch „SAP Helden“ kompakt zusammengefasst.

Diese SAP-Shortcuts solltest du dir nicht entgehen lassen.

Shortcuts (Tastenkürzel) sind, wie das Salz in der Suppe, bezogen auf das SAP-GUI. Viele Tastenkürzel kennt man natürlich mittlerweile, aber es gibt immer wieder coole Kürzel, die einem viel Bedienzeit sparen können und ein effektives Arbeiten ermöglichen. Aus diesem Grunde habe im folgenden ein kleine Liste mit bekannten und weniger bekannten Shortcuts zusammen gestellt.

 

STRG+S – der Klassiker

# Speichert einen Beleg / ein Stammdatum / eine Selektions- / Anzeigevariante und vieles mehr

 

F8 – die Vielgenutzte

# Ausführen von Programmen / Selektionen / ….

 

STRG+N – die Weniggenutzte

# Öffnet einfach ein neuen Modus –

 

F3 / SHIFT+F3 / F12 – das allgegenwärtige Trio

# F3 – Zurück

# Shift+F3 – Beenden

# F12 – Abbrechen

 

STRG+SHIFT+7 – mein Favorit für wenig Mausbewegung

# Legt des Mausfokus direkt auf das Transaktionsfeld

 

F4 – der Meistgenutzt

# Ruft den Matchcode für ein Feld auf

 

F4 und F2 – mein Favorit II

# Wenn man in einem Datumsfeld F4 und anschließend F2 drückt, wird das aktuelle Tagesdatum ausgewählt.

 

F2 – die wenig Bekannte

# Überall, wo man ein Doppelklick per Maus durchführen muss, kann man auch einfach F2 benutzen.

 

cu, Isa.

 

Es steckt einiges hinter dem LES-Transportstatus – lass dich überraschen.

Mit dem SAP ERP LE-Transport Submodul, das innerhalb des Logistics Execution (LE) angeordnet ist, kann man sowohl Eingangs- als auch Ausgangs-Transport (LKWs, Schiffe, Flugzeuge, etc.) verwalten, organisieren und abrechnen. Hier spielen Aus- bzw. Anlieferungen eine zentrale Rolle, denn einem Transport werden immer eine oder mehrere Lieferungen zugeordnet. Basierend auf diesen Lieferungen ermittelt der Transportbeleg anschließend die einzelnen Wege (Transportabschnitte) und vieles andere.

 

Doch kommen wir zum eigentlichen Thema dieses Beitrags: In der Übersicht des Transportbelegs (Transaktion: VT01N / VT02N / VT03N) gibt es verschiedene Status, die normalerweise durch User manuell gesetzt werden:

 

 

Mit dem Drücken auf die einzelnen Status wird festgehalten, wann der Status des Transports erreicht wurde, und nach Bedarf man kann hier verschiedene Plandaten erfassen – somit werden die unterschiedliche Status eines Transports dokumentiert. Doch diese Felder können vielmehr als einfach Status festzuhalten.

 

# Pro Transportart und Status kann man im Customizing einstellt, ob mit Bestätigung eines Status

## Die WA-Buchung für die zugeordneten Lieferungen durchgeführt werden soll

## die zugeordneten Lieferungen fakturiert werden sollen

## Nachrichten zum Transport, Lieferung, HUs oder Fakturen ausgelöst werden sollen

## und einiges mehr

 

… und so einfach geht: Dem Transportstatus Aktivitäten zuzuordnen

Im folgenden wollen wir erreichen, dass das System beim Bestätigen des „Transport Beginn“ Status die WA-Buchung für alle Lieferungen durchführt:

 

# Entscheidend beim Zuordnen von Aktivitäten zum Status ist das Programm RV56ABST

# Ruf dieses Programm mit SE38 auf und führe es aus (F8)

# Anschließend stellst du Aktivitäten ein, die durchgeführt werden sollen – in unserem Beispiel WA-Buchen beim Sichern

 

 

# Nachdem du die gewünschten Einstellungen durchgeführt hast, sicherst den Screen als Variante (STRG+S)

## Variantenname: WA_BUCHEN

## Bedeutung: Warenausgang buchen

# Als nächstes gehst du ins Customizing (SPRO) und stellst ein, bei welcher Transportart und welchem Status die Aktivitäten durchgeführt werden sollen:

 

# Das wars: Nachdem du die Eingaben gesichert hast, werden bei der Transportart 0001 mit dem Bestätigen des Status „Transaport Beginn“ und sichern des Beleg, die WA-Buchungen zu den zugeordneten Lieferungen automatisch durchgeführt.

 

Noch was Wichtiges zum Schluss – wie transportiert man eigentliche eine Variante

Beim Sichern des Customizings werden die Einstellungen in eine Transportanforderung aufgenommen. Doch hierbei wird der Inhalt der Variante (RV56ABST / WA_BUCHEN) nicht in mit transportiert. Zum Transportieren der Variante muss ein separater Transportsanforderung angelegt werden – und dies geht so:

 

# Ruf per SE38 das Programm RSTRANSP und führe es aus (F8)

# Gib im nächsten Bild folgende Daten ein und führe es aus:

## Programmname: RV56ABST

## Variantenname: WA_BUCHEN

# Im folgenden kannst du die Variante einfach in einen Transport aufnehmen

 

cu, Isa.

Diese QM-Transaktionen wirst du nicht mehr missen wollen.

A. SAP-QM-Transaktionen zur Qualitätsplanung

A.1. Prüfplan

# QP01 – Prüfplan Anlegen

# QP02 – Prüfplan Ändern

# QP03 – Prüfplan Anzeigen

# QP60 – zeitliche Entwicklung von Prüfplänen

# QP61 – Änderungsbeleganzeige Prüfplan

# QP06 – Liste: Defizite bei Prüfplänen

# QP07 – Liste: Defizite bei WE-Prüfplänen

# QP05 – Drucken Prüfplan

# QP08 – Pläne zum Material drucken

# QSR6 – Löschen von Arbeitsplänen

# CWBQM – QM: Engineering Workbench

 

A.2. Codegruppen

# QS41 – Katalog pflegen

# QS42 – Katalog anzeigen

# QS49 – Anzeige Codegruppen und Codes

# QS48 – Verwendungskenzeichen Codegruppen

# QS46 – Anzeige Verwendung Codegruppe

# QL41 – Codegruppen verteilen (ALE)

 

A.3. Auswahlmenge

# QS51 – Auswahlmengen bearbeiten

# QS52 – Auswahlmengenverzeichnis anzeigen

# QS59 – Anzeige Auswahlmengen

# QS58 – Verwendungskennzeichen Auswahlmengen

 

A.4. Prüfmerkmal

# QS21 – Hinzufügen Stammprüfmerkmal

# QS22 – Hinzufügen Stammprüfmerkmals-Version

# QS23 – Ändern Stammprüfmerkmals-Version

# QS24 – Anzeigen Stammprüfmerkmals-Version

# QS28 – Prüfmerkmalsliste anzeigen

# QS25 – Löschen Stammprüfmerkmals-Version

# QS26 – Anzeigen Verwendung Merkmal

# QS27 – Ersetzen Stamm-Merkmal

# QL21 – Stammprüfmerkmale verteilen (ALE)

 

A.5. Klassenmerkmal

# CT04 – Merkmalverwaltung

# CL02 – Klassenverwaltung

 

A.6. Prüfmethode

# QS31 – Hinzufügen Prüfmethode

# QS32 – Hinzufügen Prüfmethoden-Version

# QS33 – Ändern Prüfmethoden-Version

# QS34 – Anzeigen Prüfmethoden-Version

# QS38 – Prüfmethodenliste anzeigen

# QS35 – Löschen Prüfmethoden-Version

# QS36 – Anzeige Verwendung Prüfmethode

# QS37 – Zentrale Ersetzung Prüfmethode

# QL31 – Prüfmethoden verteilen (ALE)

 

B. SAP-QM-Transaktionen zur Qualitätsprüfung

B.1. Arbeitsvorrat – Abnahmeprüfung

# QI07 – Abnahmeprf. und offene Bestellungen

# QA51 – Einplanung Abnahmeprüfungen

# QA52 – Jobübersicht Abnahmeprüfungen

 

B.2. Arbeitsvorrat – Terminüberwachung

# QA07 – Anstoß zur wiederkehrenden Prüfung

# QA05 – Jobeinplanung wiedekehrende Prüfung

# QA06 – Jobübersicht wiederkehrende Prüfung

# QA07L – Protokoll zur Terminüberwachung

 

B.3. Prüfung

# QA32 – Daten zum Prüflos ändern

# QA33 – Daten zum Prüflos anzeigen

 

B.4. Varianten der Ergebniserfassung

# QE51 – Arbeitsvorrat Ergebniserfassung

# QE52 – Arbeitsvorrat Erg. zu phys. Proben

# QE72 – Tab. Ergebniserfassung zu Prüflosen

# QE71 – Tab.Ergebniserfassung zu Prüfpunkten

# QE73 – Tab. Ergebniserfassung zu Merkmalen

 

B.5. Prüflosabschluss

# QVM1 – Lose ohne Prüfabschluß

# QVM3 – Lose ohne Verwendungsentscheid

# QA16 – Sammel VE für i.O. Lose

# QVM2 – Offene Losbestände

# QPR7 – Pflege Aufbewahrungsdaten

 

B.6. Prüflos

# QA01 – Anlegen Prüflos

# QA02 – Ändern Prüflos

# QA03 – Anzeigen Prüflos

# QAC1 – Ändern Istmenge Prüflos

# QAC2 – Umlagern Bestand zum Prüflos

 

B.7. Verwendungsentscheid

# QA11 – Verwendungsentscheid erfassen

# QA12 – Verwendungsent. ändern mit Historie

# QA14 – Verwendungsent. ändern ohne Historie

# QA13 – Verwendungsentscheid anzeigen

 

B.8. Prüfergebnisse

# QE51N – Arbeitsvorrat Ergebniserfassung

# QE72 – Tab. Ergebniserfassung zu Prüflosen

# QE71 – Tab.Ergebniserfassung zu Prüfpunkten

# QE73 – Tab. Ergebniserfassung zu Merkmalen

 

B.9. Prüfergebnisse – zum Vorgang

# QE01 – Pflegen Merkmalsergebnisse

# QE02 – Ändern Merkmalsergebnisse

# QE03 – Anzeigen Merkmalsergebnisse

 

B.10. Prüfergebnisse – zum Prüfpunkt

# QE11 – Ergebnisse zum Prüfpunkt erfassen

# QE12 – Ergebnisse zum Prüfpunkt ändern

# QE13 – Ergebnisse zum Prüfpunkt anzeigen

# QA22 – Prüfpunktmengen ändern

# QA23 – Prüfpunktmengen anzeigen

 

B.11. Prüfergebnisse – zur physischen Probe

# QE23 – Ergebnisse zur Probe erfassen

# QE24 – Ergebnisse zur Probe ändern

# QE25 – Ergebnisse zur Probe anzeigen

 

B.12. Prüfergebnisse – zur Stichprobe

# QE04 – Pflegen Probenergebnisse

# QE05 – Ändern Probenergebnisse

# QE06 – Anzeigen Probenergebnisse

 

B.13. Prüfergebnisse – zur Lieferung im Vertrieb

# QE14 – Ergebnisse zum Lieferschein erfassen

# QE15 – Ergebnisse zum Lieferschein ändern

# QR16 – Ergebnisse zum Lieferschein anzeigen

 

B.14. Fehler

# QF11 – Fehlererfassen zum Prüflos

# QF21 – Fehler erfassen zum Vorgang

# QF31 – Fehlererfassen zum Merkmal

# QF01 – Fehlerdaten erfassen

# QF02 – Fehlerdaten ändern

# QF03 – Fehlerdaten anzeigen

 

C. SAP-QM-Transaktionen zum Qualitätszeugnis

C.1. Eingang

# QC51 – Anlegen Zeugnis in der Beschaffung

# QC52 – Ändern Zeugnis in der Beschaffung

# QC53 – Anzeige Zeugnis in der Beschaffung

# QC55 – Arbeitsvorrat Zeugnisse Beschaffung

 

C.2. Ausgang

# QC01 – Anlegen Zeugnisvorlage

# QC02 – Ändern Zeugnisvorlage

# QC03 – Anzeigen Zeugnisvorlage

# QC06 – Direktes Löschen von Zeugnisvorlagen

# QC15 – Anlegen Zeugnisvorlagenzuordnung

# QC16 – Ändern Zeugnisvorlagenzuordnung

# QC17 – Anzeigen Zeugnisvorlagenzuordnung

# QC18 – Anl. ZeugnVorlagenzuord. mit Vorlage

# QC20 – Zeugnisse zu Lieferungen

# QC21 – Qualitätszeugnis zum Prüflos

# QC22 – Qualitätszeugnis zur Charge

# QCMS – Qualitätszeugnis zum Prüflos mit MS

 

C.3. Übertragung

# QCE2 – Kommunikationsunterstützung bearb.

# QCE3 – Kommunikationsunterstützung anzeigen

 

D. SAP-QM-Transaktionen zu Qualitätsmeldungen

D.1. Allgemein

# QM01 – Anlegen Qualitätsmeldung

# QM02 – Ändern Qualitätsmeldung

# QM03 – Anzeigen Qualitätsmeldung

 

D.2. Arbeitsvorrat – Meldungen

# QM10 – Liste Qualitätsmeldungen ändern

# QM11 – Liste Qualitätsmeldungen anzeigen

 

D.3. Arbeitsvorrat – Positionen

# QM14 – Liste Positionen ändern

# QM15 – Liste Positionen anzeigen

 

D.4. Arbeitsvorrat – Maßnahmen

# QM12 – Liste Maßnahmen ändern

# QM13 – Liste Maßnahmen anzeigen

 

D.5. Arbeitsvorrat – Aktionen

# QM16 – Liste Aktionen ändern

# QM17 – Liste Aktionen anzeigen

 

cu, Isa.

SAP-QM-Tabellen: Cool und effizient.

 

A. SAP QM Tabellen zu QM-Stammdaten

# QMAT – Prüfart-Materialabhängige Parameter

# QMHU – QM Verknüpfung von Prüflos und Handlingunitposition

# QMTB – Prüfmethodenstamm

# QMTT – Prüfmethoden-Texte

# QPAC – Prüfkatalog Codes zur Auswahlmenge

# QPAM – Prüfkatalog Auswahlmengen

# QPMK – Prüfmerkmalsstamm

# QPMT – Prüfmerkmalsstamm-Texte

# QPMZ – Zuordnungstabelle Prüfmethoden/Stammerkmal

# TQ01D – Berechtigungsgruppen für QM Stammdaten

# TQ01E – Texte Berechtigungsgruppen für QM Stammdaten

# TQ21 – Zuordnung Dynpros zu Dynprogruppen

# TQ25 – RM-QSS: Bildfolge für Stamm-/Prüfmerkmale

 

B. SAP QM Tabellen zum Prüfkatalog

# QPCD – Prüfkatalog Codes

# QPCT – Code-Texte

# QPGR – Prüfkatalog Codegruppen

# QPGT – Codegruppen-Texte

# TQ07 – Folgeaktion zum Prueflos-VE

# TQ07A – QM: Funktionsbausteine für Folgeaktion

# TQ07T – Sprachenabhaengige Texte zur Tabelle TQ07

# TQ15 – Katalogartenverzeichnis Prüfkatalog QSS

# TQ15T – Sprachenabhängige Texte zur Tabelle TQ15

# TQ17 – Fehlerklassen

# TQ17T – Sprachenabhängige Texte zur Fehlerklasse

 

C. SAP QM Tabellen zur Stichprobenermittlung

# QDEB – Erl. Beziehungen Stichprobenverfahren/Dynamisierungsregeln

# QDEBT – Erl. Beziehungen Verfahren/DynRegeln: Texte

# QDPA – Stichprobenplan-Anweisungen

# QDPK – Stichprobenplan-Kopf

# QDPKT – Stichprobenplan: Texte

# QDPP – Stichprobenplan-Position

# QDQL – Qualitätslage

 

D. SAP QM Tabellen zu Prüfmerkmalen

# TQ17A – Merkmalsgewichtungen

# TQ11 – Prüferqualifikation

# TQ29 – Vorgaben Sollwert und Toleranzen für Merkmale

# T006 – Maßeinheiten

 

E. SAP QM Tabellen zur Dynamisierung

# QDBM – Bewertungsmodus

# QDBMT – Bewertungsmodus : Texte

# QDDR – Dynamisierungsregel (Kopf)

# QDDRT – Dynamisierungsregel: Texte

# QDEP – Erlaubte Prüfschärfen

# QDEPT – Erlaubte Prüfschärfen: Texte

# QDFB – Funktionsbausteine für die einzelnen Verfahrenstypen

# QDFBT – Funktionsbausteine für Verfahren: Texte

# QDFM – Funktionsbausteine für Bewertungsmodus

# QDFMT – Funktionsbausteine für Bewertungsmodus: Texte

# QDPS – Prüfstufen zu einer Dynamisierungsregel

# QDPST – Prüfstufen: Texte

# QDSA – Stichprobenart

# QDSAT – Stichprobenart : Texte

# QDSV – Stichprobenverfahren

# QDSVT – Stichprobenverfahren: Texte

# TQ39B – QM: Aktivierung der Referenz Dynamisierungsebene

 

F. SAP QM Tabellen zur Qualitätsregelkarte

# QASH – Qualitätsregelkarte

# QAST – Spur der Qualitätsregelkarte

# QPSH – Arten von Qualitätsregelkarten

# QPSHT – Texte zu den Arten von Qualitätsregelkarten

# QPSP – SPC-Kriterium

# QPSPT – Texte zu den SPC-Kriterien

# QPST – Spur einer Qualitätsregelkarte

# QPSTT – Texte zu den Spuren von Qualitätsregelkarten

 

G. SAP QM Tabellen zur Materialspezifikation

# QMSP – QM : Materialspezifikation

 

H. SAP QM Tabellen zum Prüfplan

# MAPL – Zuordnung von Plänen zu Materialien

# PLPO – Plan: Vorgang

# PLMK – Prüfplanmerkmale

# PLMW – MAPL-abhängige Spez. Prüfmkvorgaben (Prüfplan)

# TQ03 – QSS: Steuerung der Dynprotexte/TABLE NOT USED (Rel.4.6)

# TQ29A – Abhängigkeit Toleranzschlüssel – Nennmaß

# TQ72 – Art der Anteilsberechnung

# TQ72T – Texte zur Art der Anteilsberechnung

# TQ75 – Formelparameter QM

# TQ75F – Feldnamen für QM-Formeln

# TQ75K – Kurztext zu TQ75F

# TQ75T – Beschreibung Formelparameter

 

I. SAP QM Tabellen zu QM in der Beschaffung

# TQ02 – Definition von QS-Systemen

# TQ02A – Zuordnung QS-System und QS-System-Anforderungen

# TQ02B – QS-System

# TQ02T – QS-Systembeschreibung

# TQ02U – Beschreibung QS-System

# TQ04A – QM: Funktionen, die gesperrt werden können

# TQ04S – QM: Sperrfunktionen : Texte

# TQ05 – QM: Zeugnistypen bei Beschaffung

# TQ05T – QM: Texttabelle zu Zeugnistypen

# TQ08 – Steuerung QM in der Beschaffung

# TQ08T – QM: Texte zu QM-Beschaffungsschlüsseln

# TQ09 – QM: Vereinbarung QM-Dokumentarten

# TQ09T – QM: Vereinbarung QM-Dokumentarten

# TQ32A – Zuordnung Prüfart zu Status aus Statusschema

 

J. SAP QM Tabellen zu QM im Vertrieb

# TQ32B – Prüfartfindung Q-Prüfung zum Lieferschein

 

K. SAP QM Tabellen zum Prüflos

# QALS – Prüflossatz

# QALT – Teillos

# T156Q – Bewegungsart: materialartunabhängige Steuerung

# TQ30 – Prüfarten

# TQ30T – Texte zu den Prüfarten

# TQ32 – Zuordnung der Prüfart zur Herkunft

# TQ32C – Erlaubte Werte der Loserzeugung zur Herkunft

# TQ32C – Erlaubte Werte der Loserzeugung zur Herkunft

# TQ33 – Relevante Felder bezogen auf die Herkunft

# TQ34 – Vorschlagswerte zur Prüfart

 

L. SAP QM Tabellen zum Prüfpunkt

# QAPP – Prüfpunkt

# TQ79 – Tabelle mit Prüfpunkt-Benutzerfeld-Kombinationen

# TQ79T – Schlüsselwörter für Prüfpunkt-Benutzerfelder

 

M. SAP QM Tabellen zur Ergebniserfassung

# QAES – Tabelle zur Stichprobeneinheit

# QAKL – Ergebnistabelle zu Werteklassen

# QAMR – Merkmalsergebnisse in der Prüfabwicklung

# QAMV – Prüfmerkmalsvorgaben in der Prüfabwicklung

# QASE – Ergebnistabelle zur Stichprobeneinheit

# QASR – Stichprobenergebnisse zu Prüfmerkmalen

# QASV – Stichprobenvorgaben in der Prüfabwicklung

# TQ12 – Kz. externe Nummerierung für Prüflinge in Ergebniserfassung

# TQ12T – Texte zum Kz. externe Numerierung der Prüflinge

# TQ70 – Steuertabelle Ergebniserfassung

# TQ70C – Funktionscodes für Navigation vom Merkmalsübersichtsbild

# TQ70E – Dynprobezogene Verarbeitungstabellen

# TQ70F – Navigation in der Ergebniserfassung

# TQ70S – Merkmalsübersichtsbild in der Ergebniserfassung

# TQ73 – Ergebnisdatenherkunft

# TQ73T – Texte zur Ergebnisdatenherkunft

# TQ74 – Erfassungskonfiguration

# TQ74T – Erfassungskonfiguration

# TQ76 – Bearbeitungsstatus der Prüfmerkmale

# TQ76T – Texte zum Bearbeitungsstatus Prüfmerkmale

# TQ77 – Attribute zum Prüfmerkmal

# TQ77T – Texttabelle zu Attributen

# TQ78 – Statusabhängige Einlesetabelle Prüfmerkmale

# TQ78T – Texte zur statusabhängigen Einlesetabelle Prüfmerkmale

 

N. SAP QM Tabellen zur Rückmeldung

# TQ84 – Rückmeldeprofil

# TQ84T – Texttabelle zum Rückmeldeprofil

# TQ86 – Berichtsart in der Fehlererfassung

# TQ86A – Zuordnungberichtart zu Arbeitsplatz

# TQ86T – Texttabelle zur Berichtsart

# V_T352B_F – Einheit zur Fehlerbewertung

 

O. SAP QM Tabellen zum Verwendungsnachweis

# QAMB – QM: Link zw. Prüflos und Materialbelegen

# QAVE – Prüfabwicklung : Verwendungsentscheid

# TQ06 – Verfahren zur Berechnung von Q-Kennzahlen

# TQ06T – Sprachenabhängige Texte zur Tabelle TQ06

# TQ07M – QM: Bestandsbuchungen bei Verwendungsentscheid

 

P. SAP QM Tabellen zum Probenmanagement

# QPRN – Probenahme von physischen Proben

# QPRS – Stammsatz für physische Proben

# QPRVK – Probenahmeverfahren

# QPRVK – Probenahmeverfahren

# QPRVP – Probenahmeanweisungen

# QPRVP – Probenahmeanweisungen

# TQ40 – Definition von Probenarten

# TQ40T – Texttabelle zur Probenart

# TQ41 – Aufbewahrungsorte für physische Proben

# TQ41T – Texte Aufbewahrungsorte

# TQ42 – Gebindetypen

# TQ42T – Texte Gebindetypen

 

Q. SAP QM Tabellen zum QM Infosystem

# S068 – Lieferantenstatistik

# S069 – Materialstatistik

# S097 – QM-Meldungen Materialanalyse

# S098 – QM-Meldung Lieferantenanalyse

# S099 – QM-Meldungen Kundenanalyse

# S100 – Probleme Materialanalyse

# S102 – Probleme Lieferantenanalyse

# S103 – Probleme Kundenanalyse

# S104 – Kundenstatistik

# S161 – Prüfergebnisse allg.

# S162 – Prüfergebnisse quantitativ

# S163 – Prüfergebnis quant. Lieferant

# S164 – Prüfergebnis quant. Lieferant

# S165 – Prüferg. allgemein Kunden

# S166 – Prüfergebnisse quant. Kunde

# TQ55 – Zuordnung der Prüflosherkunft zur Fortschreibungsgruppe

# TQ56 – Definition von Qualitätskennzahlklassen

# TQ56T – Texttabelle zur Qualitätskennzahlklassendefinition

# TQ57 – Zuordnung Qualitätskennzahlschlüssel zur Infostruktur

 

R. SAP QM Tabellen zum Qualitätszeugnis

# QCPR – QM Qualitätszeugnisse in der Beschaffung

# I000 – Konditionen fuer Zeugnisvorlage

# KONDI – Konditionen: Zeugnisse Datenteil

# QCVK – Zeugnisvorlage Kopf

# QCVM – Zeugnisvorlage Merkmalsebene

# QCVMT – Zeugnisvorlage Merkmalsebene: Texte

# QCVV – Zeugnisvorlage: Liste von Vorprodukten

# TQ61 – Herkunft Ergebniswerte für Zeugnisse

# TQ61T – Herkunft Ergebniswerte für Zeugnisse: Texte

# TQ62 – Ausgabestrategie bei Skipmerkmalen

# TQ62T – Ausgabestrategie bei Skipmerkmalen: Texte

# TQ63 – Herkunft Prüfvorgaben für Zeugnisse (Funktionsbausteine)

# TQ63T – Herkunft Prüfvorgaben für Zeugnisse: Texte

# TQ64 – Herkunft Merkmalskurztext für Zeugnisse

# TQ64T – Herkunft Merkmalskurztext für Zeugnisse: Texte

# TQ65 – Zeugnisse: Erlaubte Kombinationen Herkünfte Vorgaben / Werte

# TQ67 – Zeugnisrelevante Nachrichtenarten

 

S. SAP QM Tabellen zur Qualitätsmeldung

# QMEL – Qualitätsmeldunq

# QMFE – Qualitaetsmeldung – Positionen

# QMSM – Qualitaetsmeldung – Maßnahmen

# QMMA – Qualitaetsmeldung – Aktionen

# T352C – Katalogarten pro Berichtsschema

# TQ81 – Meldungsszenario

# TQ81V – Teileverwendung

# TQ81V_T – Texte zur Teileverwendung

# TQ81_T – Texte für Meldungsszenarien

# TQ82 – Meldungsartenwechsel

# TQ83 – Partnerrollen für Codes

# TQ85 – Funktionstabelle zu Folgeaktivitäten

# TQ85R – Regeln zu Folgeaktivitäten

# TQ85_T – Texttabelle Actionbox

# TQ8CO – Zuordnung Referenzaufträge zur Meldungsart

 

cu, Isa.

 

 

SAP-CO: Diese Transaktionen begeistern nicht nur Controller.

A. SAP-CO-Transaktionen zu Kostenartenrechnung

KA01 – Kostenart anlegen

KA02 – Kostenart ändern

KA03 – Kostenart anzeigen

KA04 – Kostenart löschen

KA05 – Kostenart: Änderungen anzeigen

KA06 – Kostenart sekundär: anlegen

KA23 – Kostenarten: Stammdatenbericht

KA24 – Kostenarten löschen

KAH1 – Kostenartengruppe anlegen

KAH2 – Kostenartengruppe ändern

KAH3 – Kostenartengruppe anzeigen

KB11N – Manuelle Umbuchung Kosten erfassen

KB13N – Manuelle Umbuchung Kosten anzeigen

KB14N – Manuelle Umbuchung Kosten stornieren

KB41N – Manuelle Umbuchung Erlöse erfassen

KB43N – Manuelle Umbuchung Erlöse anzeigen

KB44N – Manuelle Umbuchung Erlöse stornieren

KB61 – Umbuchung CO-Einzelposten erfassen

KB63 – Umbuchung CO-Einzelposten anzeigen

KB64 – Umbuchung CO-Einzelposten stornieren

KB65 – Umbuchung ILV erfassen

KB66 – Umbuchung ILV anzeigen

KB67 – Umbuchung ILV stornieren

 

B. SAP-CO-Transaktionen zu Kostenstellenrechnung

KP04 – Planerprofil setzen

KP06 – Planung Kostenart./Leistaufn. ändern

KP07 – Planung Kostenart./Lst.aufn.anzeigen

KP26 – Leistungsarten Plandaten ändern

KP27 – Leistungsarten Plandaten anzeigen

KP46 – Statist. Kennzahlen Plandaten ändern

KP47 – Statist. Kennz. Plandaten anzeigen

KS01 – Kostenstelle anlegen

KS02 – Kostenstelle ändern

KS03 – Kostenstelle anzeigen

KS04 – Kostenstelle löschen

KS05 – Kostenstelle: Änderungen anzeigen

KS07 – Roherfassung Kostenstelle ausführen

KS08 – Listbearbeitung K.stelle ausführen

KS12N – Massenpflege Kostenstellen

KS13 – Kostenstellen: Stammdatenbericht

KS14 – Kostenstellen löschen

KS30 – Kostenstellen: Change Management

KSA3 – Kostenstellen-Abgrenzung Ist

KSA4 – Ist-Abgrenzung ausführen

KSB1N – Kostenstellen Einzelposten Ist neu

KSB9 – Planungsbericht Kostenstellen

KSBL – Kostenstellen: Planungsübersicht

KSBPN – Kostenstellen Einzelposten Plan neu

KSBT – Kostenstellen: Leistungsartentarife

KSH1 – Kostenstellengruppe anlegen

KSH2 – Kostenstellengruppe ändern

KSH3 – Kostenstellengruppe anzeigen

KSI4 – Ist-Zuschläge: Kostenstellen

KSP4 – Zuschläge PLAN: Kostenstellen

KSUB – Plan-Umlage ausführen

KSVB – Plan-Verteilung ausführen

 

C. SAP-CO-Transaktionen zu CO-Innenaufträgen

KO01 – Innenauftrag anlegen

KO02 – Innenauftrag ändern

KO03 – Innenauftrag anzeigen

KO04 – Order Manager

KO08 – Datenübernahme Auftragstammdaten

KO12N – Gesamtplanung Aufträge ändern

KO13N – Gesamtplanung Aufträge anzeigen

KO14 – Plan in Plan kopieren Innenaufträge

KO15 – Ist in Plan kopieren Innenaufträge

KOH1 – Auftragsgruppe anlegen

KOH2 – Auftragsgruppe ändern

KOH3 – Auftragsgruppe anzeigen

KOK2 – Sammelbearbeitung Innenaufträge

KOK3 – Sammelanzeige Innenaufträge

KOK4 – Sammelbearbeitung Innenauftr. masch.

KOK5 – Stammdatenverzeichnis Innenaufträge

KOK6 – Sammeldruck von Innenaufträgen

 

D. SAP-CO-Transaktionen zu Ergebnis- und Marktsegmentrechnung

KE13N – Excel-Upload

KE13P – Protokoll flexibler Excel Upload

KE21N – CO-PA-Einzelpostenerfassung

KE21S – CO-PA Bewertungssimulation

KE23N – CO-PA-Einzelpostenanzeige

KE24N – CO-PA Daten Anzeigen

KE30 – Ergebnisbericht ausführen

KE31 – Ergebnisbericht anlegen

KE32 – Bericht ändern

KE33 – Bericht anzeigen

KE41 – Anlegen Kondition

KE42 – Ändern Kondition

KE43 – Anzeigen Kondition

KE4L – Konditionsliste

KE4N – Ändern Konditionsliste

KE4O – Anzeigen Konditionsliste

KE4Q – Ausführen Konditionsliste

KE91 – Einzelpostenbas. Bericht anlegen

KEDD – COPA Merkmalsableitung Übersicht ALV

KEDE – Ableitungsregeln Einträge pflegen

KEND – Zuordnungsänderungen

KES1 – CO-PA Pflege Merkmalswerte

KES4 – Kundenabsprachen übernehmen

E. SAP-CO-Transaktionen zu Produktkosten-Controlling

CKW1 – Produktionsloskalkulation anlegen

CKW3 – Produktionsloskalkulation anzeigen

CKW4 – Produktionsloskalkulation aktivieren

CK11N – Anlegen Materialkalkulation

CK13N – Anzeigen Materialkalkulation

CK33 – Vergleich Einzelnachweise

CK40N – Kalkulationslauf bearbeiten

CKAPP01 – Zu kalkulierende Materialien

 

cu, Isa.

 

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

qRFC Queue Modifikation – nur ein bisschen wie WE19.

In den letzten Jahren hatte ich das Glück an 2 Projekten zu arbeiten, bei denen es thematisch um die gleiche Aufgabenstellung ging: Anbindung eines SAP ERP Systems an ein Lagerverwaltungssystem. Beim ersten Projekt hatten wir ein Non-SAP-System ans ERP angebunden und beim letzteren ging es um die Anbindung ans SAP EWM. Natürlich fühlte ich mich bei der Anbindung des SAP EWM „wohler“, da ich hier nicht so unbewandert war, wie beim Thema Non-SAP. Die beiden Projekte hatten technisch einen entscheidenden Unterschied:

# Non-SAP-WM – Anbindung per IDocs

# SAP EWM – Anbindung per qRFC

Wo IDocs mit seinen vielen Analyse-, Modifikations- und Monitoringtransaktionen anwendungsnaher sind, ist qRFC viel technischer konzipiert. Bspw. kommt man nur sehr umständlich an die Anwendungsdaten der Schnittstelle ran. Nichts desto trotz bietet auch qRFC eine limitierte Möglichkeit, um bestimmte Daten in der Schnittstelle anzupassen:

# Hier ein kleines Beispiel: Aus EWM heraus getriggert soll eine Warenbewegung im SAP ERP System gebucht werden. Doch die Queue ist hier hängen geblieben, da von EWM heraus der Bewegungsgrund nicht mitgegeben wurde. Hier gibt es nun die Möglichkeit die Anwendungsdaten der Queue anzupassen (Bewegungsgrund einzutragen) und sie zu verbuchen: Und das geht so …

#1 Starte die Transaktion SMQ2 und führe die aus (F8)

#2 Klicke in der folgenden Liste auf den betroffenen Queue-Namen

#3 Im folgenden Screen wieder auf dem Queue-Name klicken

#4 … und nun ein letztes Mal auf den Queue-Name klicken

## So … nach mehrmaligem Durchklicken solltest du in der Datencontainer der Queue angekommen sein:

#5 Hier kannst du nun durch klicken auf den Stift in den Änderungsmodus springen

#6 Jetzt kannst du in die Zeile IT_GOODSMVT_ITEM klicken und den entsprechenden Bewegungsgrund anpassen und auf „Ersetzen und ausführen“ klicken.

Customizing der Änderbarkeit der qRFC-Queue-Daten

Damit die oben beschriebene Anpassung der Queue-Daten durchführbar ist, musst du folgende 2 Punkte durchführen:

#1 Customizing der Änderungsmöglichkeiten

#2 Vergabe des Berechtigungsobjekt /SPE/QEDIT

Customizing per Transaktion /n/SPE/MQWL_CUS

Die Änderbarkeit der einzelnen Felder im Datencontainer muss zunächst per Transaktion /n/SPE/MQWL_CUS freigeschaltet werden:

# Starte die Transaktion /n/SPE/MQWL_CUS und aktiviere den Änderungsmodus „Brille / Stift“ Icon (links oben)

# Anschließend wählst du den qRFC-Funktionsbaustein, dessen Daten du modifizieren willst (in unserem Bsp. /SPE/GOODSMVT_CREATE), und kennzeichnest ihn als änderbar

# Nun muss die Zeile des qRFC-Funktionsbausteins markiert und auf qRFC-Nachricht: Parameter geklickt werden

# Im nächsten Screen wählst du den qRFC-Parameter IT_GOODSMVT_ITEM aus, kennzeichnest ihn als änderbar, markierst wieder die Zeile und klickst auf qRFC-Nachricht: Felder

# In dieser letzten Ebene gibst du die Felder ein, die du als änderbar einstellen willst.

So … wenn du jetzt noch das oben angesprochene Berechtigungsobjekt hast, dann solltest du die Möglichkeit haben, die qRFC-Daten zu modifizieren.

Zum Schluss noch … was bei der qRFC-Datenmodifikation zu beachten ist

# Nicht alle Felder der einzelnen qRFC-Funktionsbausteine sind änderbar; im Customizing der Änderbarkeit wirst du merken, dass nur bestimmte Felder auswählbar sind

# Letztlich bietet SAP mit Transaktion  /n/SPE/MQWL_APPL eine Notfall-Transaktion, mit der das oben beschriebene Customizing direkt im Produktivsystem durchgeführt werden.

cu, Isa.

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.