Andreas Unkelbach
Werbung


Montag, 24. Juli 2017
21:28 Uhr

Grundlagen SAP Query Variablen über Selektionsfelder mit Werten füllen Eingabe auf Selektionsbild oder Abgrenzungsparameter

Manchmal kann es hilfreich sein im Selektionsbild einer Query einen Wer zu übergeben um mit diesen dann innerhalb der Query zu arbeiten.

Hierzu möchte ich zwei Möglichkeiten vorstellen ohne tiefer auf die Beispiele einzugehen sondern nur um die Herangehensweise zu schildern.

Im Ergebnis kann beim Ausführen einer Query über ein Selektionsfeld ein Wert mitgegeben werden und dieser weiter verarbeitet werden. Diese Weiterverarbeitung ist noch einmal ein Thema für sich, aber die Arbeit mit Abfrageparametern innerhalb einer SAP Query kann für viele Berichtsanforderungen nützlich sein. Dieses ist der Grund, dass ich die beiden Möglichkeiten hier gerne festhalten möchte.
 

1. Möglichkeit: SAP Query und Lokales Feld Eingabe auf dem Selektionsbild

Handelt es sich um ein Feld in das lediglich eine Eingabe erfolgen soll (Wert eingetragen) oder wenn das Selektionsfeld auch in der Liste der Query selbst genutzt werden soll, bietet sich ein LOKALES FELD an, dass statt einer Berechnungsvorschrift die Option "Eingabe auf dem Selektionsbild" erhält. Dadurch landet das Feld in der Selektionsmaske und es kann ein entsprechender Wert eingetragen werden.

Sofern das Feld eine Referenz über "gleiche Eigenschaften wie Feld" erhält kann hier auch die F4-Werthilfe zum Auswahl eines Feldes genutzt werden.

Denkbar ist hier die im Artikel "Abrechnungsvorschriften von Innenaufträgen auf identische verantwortliche Kostenstelle und empfangende Kostenstelle per Query mit Ampelfunktion prüfen" beschriebene Ursprungszuordnung  zu verwenden und statt ZUK direkt in der Berechnungsvorschrift zu verknüpfen durch das lokale Feld hier Ursprungszuordnung ZUK im Selektionsfeld einzutragen und die Übereinstimmung der verantwortlichen Kostenstelle des Innenauftrag und das Feld empfangende Kostenstelle (COBRB-KOSTL) zu überprüfen.

Wird ZUK nicht eingegeben (das Selektionsfeld bleibt leer) erfolgt dann die Prüfung mit allen Abrechnungsvorschriften. Um dieses zu umgehen kann auch die Option OBLIGATORISCH gesetzt werden, wodurch eine Eingabe auf jeden Fall erfolgen muss.

2. Möglichkeit Infoset Definition von Abgrenzungsparameter und Zusatzfeld

Statt in der Query per lokales Feld besteht auch die Möglichkeit ein Zusatzfeld innerhalb eines Infoset mit einer Selektion zu versehen. Hierzu kann die Möglichkeit der Abgrenzung

Hierzu sind jedoch zwei Schritte erforderlich.

Abgrenzungsparameter anlegen

Im Infoset (Transaktion SQ02) können über die Schaltfläche ZUSÄTZE nicht nur Zusatztabellen und Zusatzfelder  angelegt werden sondern es besteht auch die Möglichkeit über das Register Abgrenzung eine Abgrenzung für das Infoset anzulegen.

Vergleichbar zum Zusatzfeld kann nun ein Name vergeben werden und als Optionen stehen Selektionskriterium und Parameter zur Verfügung. Als Selektionskriterium kann direkt Bezug auf ein Tabellenfeld genommen werden und auch mehrere Werte selektiert werden.

Für dieses Beispiel soll jedoch ein einzelner Wert eingetragen werden (bspw. Kontengruppenname oder ein anderes Stammdatumsmerkmal, dass nicht in der Query selbst, aber innerhalb einer Prüfung einer Berechnungsvorschrift in der späteren Query eingebunden ist).

Daher kann hier die Option PARAMETER gewählt werden. Als Name soll ZP_SYF gewählt werden.

Nachdem NAME und die Option PARAMETER gewählt worden ist, können die Eigenschaften des Parameterfeldes definiert werden.

Natürlich kann hier neben Bedeutung und Selektionstext auch das Format TYP und LÄNGE definiert werden, aber auch per LIKE Bezug auf ein Tabellenfeld genommen werden.

Exkurs Hilfstabellen und Zusatzfelder per Userexit

In diesem Beispiel haben wir eine Hilfstabelle ZHFS_SYF für Systemfinanzierungscodes der Hochschulfinanzstatistik und das Feld  ZSYF in der die einzelnen Systemfinanzierungscodes gepflegt sind.

Diese Hilfstabelle wird als kundeneiegenes  Zusatzfeld ist für die Kostenart über den Userexit COOMKA01 genutzt (siehe Artikel "Stammdatenerweiterung von CO-Objekten am Beispiel ergänzende Kostenstelle beim Innenauftrag").

Im Artikel "Auswertung per CMOD eingeführter kundeneigener Felder Kostenart, Kostenstelle und Innenauftrag per Stammdatenverzeichnis und SAP Query" habe ich auch die Auswertung dieser Felder per Query beschrieben.

Um diese Tabelle später zu pflegen, oder zu erweitern kann diese über die Transaktion SM30 gepflegt werden. Hier hat RZ10.de jedoch eine wesentlich komfortablere Lösung vorgestellt, die im Artikel "Wie Sie eine Parametertransaktion für die SM30 anlegen" beschrieben ist.

ABAP Grundlagen Tabelle anlegen

In seiner Serie zum Thema ABAP Grundlagen erläutert Denis Reis im Artikel "Wie Sie eine SAP Tabelle anlegen" sehr ausführlich, wie kundeneigene Tabellen angelegt werden.

Dieses aber nur am Rande und als kleine Leseempfehlung und Exkurs.

In unseren Fall geben wir also den Parameter per LIKE die gleichen Eigenschaften wie das Tabellenfeld Z_HFS_SYF-ZSYF (Feld ZSYF der Tabelle Z_HFS_SYF).

Damit ist das Feld als Selektionsfeld beim Infoset verfügbar und per F4 können die einzelnen SYF-Codes (Werte aus der Tabelle Z_HFS_SYF für das Feld ZSYF) selektiert werden.

Als Bedeutung und Selektionstext wählen wir die "SyfCode Auswertung (Variante)"

Nun soll aber mit den selektierten Wert in der Query weiter gearbeitet werden.

Zusatzfeld mit Bezug zu Abgrenzungsparameter

Nachdem der Abgrenzungsparameter ZP_SYF angelegt worden ist, kann ein Zusatzfeld angelegt werden, dass den Wert des Paramteres erhalten soll.

In unseren Fall ist dieses ein Zusatzfeld mit den Namen ZSEL_SYF und ebenfalls LIKE Z_HFS_SYF-ZSYF . Wobei hier nur die Feldeigenschaften vererbt werden. Als Langtext und Überschrift soll dieses "Syf Code Auswahl" erhalten.

Über die Schaltfläche CODING wird nun folgendes Coding hinterlegt:
 

CLEAR ZSEL_SYF.
ZSEL_SYF ZP_SYF.

In der ersten Zeile wird der Inhalt des Zusatzfeldes geleert und danach mit den Inhalt des Abgrenzungsparameter gefüllt. Dieses Zusatzfeld kann in der Query dann als Selektionskriterium wie auch andere Zusatzfelder verwandt werden. Der Vorteil dabei ist, dass hier, obgleich der SYF Code an keiner anderen Stelle eingebunden ist, mit diesen Selektionsfeld gearbeitet werden kann und es auch als Bedingung für lokale Felder in der Query genutzt werden kann.

Natürlich kann dieses Feld auch für andere Zwecke genutzt werden. Denkbar ist es hier im Coding eines Zusatzfeldes per Parameter einen Preis je Stunde zu übergeben und über die Auswertung eines Sachkonto mit Personalkosten zum Beispiel für eine bestimmte Personengruppe hier aus den gebuchten Personalkosten die geleisteten Stunden zu berechnen.
 

Fazit

Beide vorgestellten Methoden haben ihre Vorteile und Nachteile. Während die Eingabe auf Selektionsfeld für lokale Felder schnell umgesetzt ist, ist die Option per Parameter und Zusatzfeld wesentlich flexibler und ermöglicht einige andere Möglichkeiten der Auswertung.

So ist es auch nicht weiter verwunderlich, dass bestehende Query und Infoset durch solche neu entdeckten Möglichkeiten tatsächlich weiterentwickelt werden können.

Gerade im Berichtswesen ist dies einer der Punkte, die eine Weiterentwicklung gleichzeitig auch sehr spannend macht und zeigt, dass auch im Berichtswesen vieles sich weiter zu entwickeln vermag.

Persönlich freue ich mich immer wieder darüber, wenn ein Austausch in diese Richtung möglich ist und sich das gegenseitige Lernen und der Austausch von Wissen und Erkenntnisse so im beruflichen Alltag bewährt.
 

Hinweis:

Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionen und Bestellmöglichkeit zu finden.
Espresso Tutorial - die digitale SAP Bibliothek

Diesen und weitere Texte von finden Sie auf http://www.andreas-unkelbach.de


Keine Kommentare

Kommentieren?


Beim Versenden eines Kommentars wird mir ihre IP mitgeteilt. Diese wird jedoch nicht dauerhaft gespeichert (siehe auch XII. Fremde Nutzung / Kommentarfunktion in der Datenschutzerklärung).

Eine Rückmeldung ist entweder per Schnellkommentar oder (weiter unten) als normalen Kommentar möglich. Eine persönliche Rückmeldung (gerne auch Fragen zum Thema) würde mich sehr freuen.

Schnellkommentar (Kurzes Feedback, ausführliche Kommentare bitte unten als normaler Kommentar)

Name (sofern kein Name angegeben wird erscheint Anonym):


Normaler Kommentar

Name:

E-Mail (wird nicht veröffentlicht):

Homepage:

Kommentar:


Hinauf




Werbung



Logo Andreas-Unkelbach.de
© 2004 - 2018 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de
Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter Google+

»Schnelleinstieg ins SAP Controlling (CO)« und »Berichtswesen im SAP ® ERP Controlling«
Privates

Kaffeekasse 📖 Wunschliste