Standardmäßig kannst Du mit SAP Query einfach und schnell Daten aus verschiedenen Tabellen selektieren und ausgeben, ohne ABAP-Programmierkenntnisse zu benötigen. In manchen Fällen ist es jedoch notwendig, eigene Selektionskriterien und Parameter zu definieren. Dabei hast Du die Möglichkeit, zahlreiche Zusätze zu verwenden. Welche Möglichkeiten es dabei gibt, wird in diesem Artikel im Detail erläutert.
Selektionskriterium in SAP Query
Wenn Du ein InfoSet in der Transaktion SQ02 für eine SAP Query anlegst, kannst Du angeben, welche Felder für das Selektionsbild zur Verfügung stehen sollen. Diese Felder nimmst Du per Drag&Drop in die Feldgruppe mit auf.
In der SAP Query in der Transaktion SQ01 definierst Du in der Grundliste, welche Felder aus der Feldgruppe im Selektionsbild und in der Ausgabe erscheinen sollen. Am einfachsten ist es, Felder hinzuzufügen, die bereits im Tabellen-Join, in der logischen Datenbank oder in der für das InfoSet angegebenen Struktur enthalten sind. Dazu wählst Du die Checkbox „Selektionsfelder“ für das gewünschte Feld aus.
Abgrenzungen im InfoSet anlegen
Zusätzlich kannst Du auch Felder hinzufügen, die nicht im Join enthalten sind. In beiden Fällen kannst Du einige zusätzliche Parameter angeben, z. B. einen Standardwert oder ob das Feld benötigt wird.
Sobald der Tabellen-Join im InfoSet in der Transaktion SQ02 erstellt ist, klicke auf die Schaltfläche „Abgrenzungen“.
Daraufhin wechselst Du in die Registerkarte „Abgrenzungen“. Ein Selektionskriterium oder Parameter kannst Du nun anlegen, indem Du auf den Button „Anlegen“ klickst.
Es erscheint ein Pop-up-Fenster „Abgrenzungen anlegen“, das ein Feld mit der Bezeichnung „Name“ und zwei Optionsfelder enthält: „Selektionskriterium“ und „Parameter“. Für die Felder der Selektionskriterien musst Du ein Feld aus einer der verbundenen Tabellen, der logischen Datenbank oder der Struktur identifizieren. Für Parameter ist eine solche Zuordnung nicht erforderlich. Beide Werte können in jedem zusätzlichen ABAP-Coding, das dem InfoSet hinzugefügt wird, verwendet werden.
Nachdem Du den Namen eingegeben und eine Option ausgewählt hast, erscheint ein weiteres PopUp-Fenster. Wenn Du „Selektionskriterium“ gewählt hast, heißt das Popup-Fenster „Selektionskriterium XX“ und wenn Du „Parameter“ gewählt hast, heißt das PopUp-Fenster „Parameter XX“. XX ist der Wert aus dem Feld „Name“ im vorherigen PopUp-Fenster. In beiden Fällen siehst Du mehrere Felder:
- Eine laufende Nummer, die der Reihenfolge entspricht, in der das Feld auf dem Selektionsbild der Abfrage erscheint.
- Zwei Beschreibungen – eine wird nur innerhalb des InfoSets verwendet, die andere wird auf dem Selektionsbild der Query angezeigt.
- Ein zusätzliches Feld (Zusätze), das weiter unten erläutert wird.
Je nach Deiner Auswahl können auch andere Felder angezeigt werden. Beide Auswahloptionen werden in den nächsten beiden Abschnitten im Detail erläutert.
Nach der Erstellung werden die einzelnen Felder in der Liste angezeigt. Über den Button „Prüfcoding zum Element“ kann man zusätzliches ABAP-Coding für diese Elemente hinzufügen.
Das Selektionsbild sieht dementsprechend folgendermaßen aus:
Selektionskriterium
Es erscheint eine Standard-Sequenznummer (in der Regel 1), die jedoch auf einen beliebigen Wert zwischen 0 und 99 geändert werden kann.
Als nächstes gibst Du sowohl eine technische Beschreibung (Bedeutung) als auch eine Selektionsbildbeschreibung (Selektionstext) ein. Die technische Beschreibung wird nur im InfoSet verwendet und ist obligatorisch. Die Selektionsbildbeschreibung ist in der SAP Query sichtbar, insbesondere wenn das Selektionsbild der SAP Query beim Ausführen angezeigt wird. Wenn keine Selektionsbildbeschreibung eingegeben wird, wird die technische Beschreibung verwendet.
Neben der Bezeichnung „Format“ befinden sich zwei Felder. In das Feld mit der Bezeichnung „FOR“ musst Du den Tabellen- und Feldnamen (z. B. EKKO-ERNAM) eingeben, mit dem dieses Feld verknüpft ist. Dieser Eintrag muss genau einem Feld in einer angeschlossenen Tabelle oder Struktur dieses InfoSets entsprechen. Der Datentyp und die Länge des Feldes werden aus der Definition im SAP Data Dictionary übernommen. Im Feld mit der Bezeichnung „Zusätze“ kannst Du optional eine oder mehrere Anzeigeeigenschaften für das Feld eingeben (z. B. OBLIGATORY, um das Feld als Pflichtfeld zu definieren).
Parameter
Die Sequenznummer und die beiden Beschreibungsfelder funktionieren auf die gleiche Weise wie bei den Selektionskriterien. Einer der Hauptunterschiede zwischen den beiden Typen besteht darin, dass Parameter keine Verbindung zu einem Feld in einer verbundenen Tabelle oder Struktur haben. Daher musst Du bei Parametern den Datentyp und die Länge explizit oder durch Verweis auf ein vorhandenes Feld angeben. Neben dem Wort „Format“ kannst Du in den Feldern mit der Bezeichnung „Typ“ und „Länge“ den Datentyp (z. B. Zeichen, Ganzzahl oder Datum) und die Länge des Feldes eingeben.
Wenn Du jedoch möchtest, dass ein ausgewähltes Feld mit den Eigenschaften eines vorhandenen Feldes übereinstimmt, ist es oft praktischer, das LIKE-Feld zu verwenden, um die Referenz zu identifizieren. Du musst sowohl den Tabellennamen als auch den Feldnamen eingeben (z. B. EKKO-BSART). Dieses Feld muss sich nicht unbedingt in einer der verbundenen Tabellen oder Strukturen befinden. In dem Feld mit der Bezeichnung „Zusätze“ kannst Du optional eine oder mehrere Anzeigeeigenschaften für das Feld eingeben. Ein weiterer wichtiger Unterschied besteht darin, dass ein Parameterwert keine Bereiche oder Mehrfachangaben haben kann. Beachte daher, dass einige der Anzeigeeigenschaften für Parameter nicht gültig sind (z. B. NO INTERVALS). Umgekehrt gilt dies auch (z. B. AS CHECKBOX). Dieser Unterschied ermöglicht es Dir, mit Hilfe von Parametern ein individuelleres Selektionsbild für die Abfrage zu erstellen.
Anzeigeeigenschaften für das Feld „Zusätze“
Im Feld „Zusätze“ kannst Du die Eigenschaften des Selektionskriteriums bzw. des Parameters erweitern. Verwende dazu ein oder mehrere Schlagwörter, die durch Leerzeichen getrennt werden. Hier sind die am häufigsten verwendeten Schlagwörter mit einer kurzen Erklärung:
Zusatz | Für Selektionskriterium zulässig | Für Parameter zulässig |
---|---|---|
OBLIGATORY | X | X |
NO-DISPLAY | X | X |
VISIBLE LENGTH XXX | X | X |
NO-EXTENSION | X | |
NO INTERVALS | X | |
AS CHECKBOX | X | |
RADIOBUTTON GROUP XXXX | X | |
AS LISTBOX VISIBLE LENGTH XXX | X | |
USER COMMAND XX | X | |
MODIF ID XX | X | X |
DEFAULT | Standardwert TO, OPTION und SIGN | Standardwert |
LOWER CASE | X | X |
VALUE CHECK | X | |
NO DATABASE SELECTION | X |
- OBLIGATORY: Macht das Feld auf dem Selektionsbildschirm obligatorisch. Kann nicht zusammen mit NO-DISPLAY verwendet werden.
- NO-DISPLAY: Blendet das Feld vollständig aus dem Selektionsbild aus und kann zur Laufzeit nicht angezeigt werden. Diese Option hat nicht dieselbe Wirkung wie die Option „Feld ausblenden“ in einer Selektionsvariante, bei der das Feld einfach aus der Einstiegssicht ausgeblendet wird und später wieder angezeigt werden kann. Die Einträge im Feld müssen mit DEFAULT oder anderen Methoden definiert werden.
- VISIBLE LENGTH XXX: Ermöglicht die Definition einer Feldgröße.
- NO-EXTENSION: Blendet das Mehrfachauswahlfeld rechts neben dem Feld aus. Dies bedeutet, dass nur einzelne Werte oder einzelne Bereiche eingegeben werden können. Kann mit NO INTERVALS verwendet werden.
- NO INTERVALS: Blendet das Feld „bis“ auf dem Selektionsbildschirm und die Bereichsreiter in der Mehrfachselektionsbox aus. Dies bedeutet, dass nur Einzelwerte eingegeben werden können. Kann zusammen mit NO-EXTENSION verwendet werden.
- AS CHECKBOX: Ändert die Anzeige des Feldes von einem Textfeld in ein Kontrollkästchen. Der Typ sollte ein Zeichen und die Länge gleich eins sein. Ergibt einen Wert von Leerzeichen oder „X“. Verwende DEFAULT, um das Kontrollkästchen zum Standard zu machen. Kann nicht mit RADIOBUTTON oder AS LISTBOX verwendet werden.
- RADIOBUTTON GROUP XXXX: Ändert die Anzeige des Feldes von einem Textfeld in ein Optionsfeld. Der Wert XXXX ist der Gruppenname (vier Ziffern), der dieses Feld mit anderen Radiobutton-Feldern verbindet, so dass die anderen Felder leer werden, wenn dieses Feld angeklickt wird. Der Typ sollte ein Zeichen und die Länge gleich eins sein. Ergibt einen Wert von Leerzeichen oder „X“. Verwende DEFAULT, um eines der Optionsfelder als Standard auszuwählen. Wenn kein DEFAULT angegeben wird, wird das erste Feld in der Liste ausgewählt.
- AS LISTBOX VISIBLE LENGTH XXX: Ermöglicht es Dir, eine Liste von Werten zu erstellen, aus der der Benutzer wählen kann. Verwende zusätzlichen Code, um die Liste zu definieren. OBLIGATORY kann mit diesem Feld verwendet werden.
- USER COMMAND XX: Kann nur mit AS CHECKBOX, RADIOBUTTON oder AS LISTBOX verwendet werden. Liefert einen Funktionscode XX (bis zu 20 Zeichen), der zusätzliches Coding im Abschnitt AT SELECTION-SCREEN auslösen kann.
- MODIF ID XX: Weist diesem und eventuell anderen Feldern einen dreistelligen Änderungsgruppencode zu. Ermöglicht die Änderung der Feldeigenschaften mit dem Befehl MODIFY SCREEN.
- DEFAULT: Ermöglicht es Dir, einen Standardwert oder einen Wertebereich festzulegen.
- TO: Wenn Du diesen Zusatz verwendest, musst Du einen weiteren Wert einfügen – stelle Dir das so vor, dass Du den oberen Wert eines Wertebereichs „von & bis“ definierst.
- OPTION: Die Werte, die Du mit diesem Zusatz aufnehmen kannst, hängen davon ab, ob Du TO verwendet hast oder nicht. Wenn TO nicht verwendet wird, sind EQ (gleich), NE (nicht gleich), GE (größer oder gleich), GT (größer), LE (kleiner oder gleich), LT (kleiner), CP (enthält Muster) und NP (enthält kein Muster) zulässig. EQ ist implizit. Wenn CP oder NP verwendet wird, muss der Standardwert mindestens ein Platzhalterzeichen (entweder Stern oder Plus) enthalten. Wenn TO verwendet wird, ist nur BT (zwischen) oder NB (nicht zwischen) zulässig. BT ist implizit.
- SIGN: Verwende diesen Zusatz, um den Wert oder Bereich als Einschluss (I) oder Ausschluss (E) zu kennzeichnen. Einschluss ist implizit.
- LOWER CASE: Verhindert, dass der eingegebene Wert in Großbuchstaben umgewandelt wird. Kann nicht mit AS CHECKBOX oder RADIOBUTTON verwendet werden.
- VALUE CHECK: Prüft den im Feld enthaltenen Wert anhand der für den LIKE-Feldbezug definierten Prüftabelle. Kann nicht mit AS CHECKBOX, RADIOBUTTON, AS LISTBOX oder NO-DISPLAY verwendet werden.
- NO DATABASE SELECTION: Verhindert, dass die im Feld gespeicherten Werte als Teil des SELECT aus den verbundenen Tabellen verwendet werden.
Über den Autor
Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.
ERP UP unterstützen
Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.