Funktion | Liest Werte aus einer Datenbanktabelle in ein Objekt oder einen Ordner | ||||||||||||||||||||||||||||||
Beispiel |
myrc = s10databaseselect( exporting condition = mycondition changing folder = mycustomers ). |
||||||||||||||||||||||||||||||
Aufruf |
data: mycondition type string, myappend type boolean, mymaxrows type i, myorderby type string, myfolder type any, myrc type boolean. myrc = s10databaseselect( exporting   condition = mycondition   append = myappend   maxrows = mymaxrows   orderby = myorderby changing   folder = myfolder ). |
||||||||||||||||||||||||||||||
Parameter |
|
||||||||||||||||||||||||||||||
Beschreibung |
Der Parameter "condition" ist der einzige obligatorische Parameter. Er
bestimmt, welche Zeilen aus der Datenbank gelesen werden, d.h. aus ihm ergibt
sich die where-Bedingung der Select-Anweisung. Das Format ist identisch mit dem
Format der where-Bedingung der ABAP Select-Anweisung mit folgendem Zusatz:
Alle Ausdrücke @XXXXX innerhalb von "condition", wobei XXXXX der Name eines Klassenattributs ist, werden durch den jeweiligen aktuellen Attributwert ersetzt. Beispiel: s10databaseselect( |LAND1 = @LAND1 | ) Wenn das Attribut LAND1 den Wert "CA" hat, wird als where-Bedingung LAND1 = 'CA' eingesetzt. Bitte beachten, dass die Apostroph-Zeichen vor und nach dem Wert hierbei automatisch ergänzt werden. Der Attributname kann in Gross- oder Kleinbuchstaben angegeben werden, also z.B. auch s10databaseselect( |LAND1 = @land1 | ) oder, da in der ABAP-Select-Anweisung die Spaltennamen auch klein geschrieben werden können, s10databaseselect( |land1 = @land1 | ) Je nachdem, ob der Parameter "folder" angeben ist oder nicht, arbeitet s10databaseselect( )
unterschiedlich. Falls "folder" angegeben ist, muss eine Tabelle übergeben
werden, bei der jede Zeile aus einer Objektreferenz zu einem /s10/any Objekt
besteht. Zusätzlich muss in der Klasse der Folderobjekte ein Bezug zu einer
Datenbanktabelle durch Definition einer Konstanten
"dbtablename" hergestellt sein. Beispiel: s10databaseselect( ) liest alle Zeilen der angegebenen Datenbanktabelle, welche die Bedingung "condition" erfüllen, und daraus die Tabellenspalten, zu denen ein gleichnamiges Attribut in der Klasse der Folderobjekte existiert. Bei einem leeren String als "condition" werden sämtliche Zeilen der Datenbanktabelle zurückgeliefert. Der Parameter "orderby" wird als gewünschte Sortierung an das Datenbanksystem übermittelt. Ebenso wird die gewünschte maximale Anzahl zu lesender Zeilen über den Parameter "maxrows" gesetzt. Beispiel:
data:
s10databaseselect( Bei maxrows=1 würde hier der Kunde mit niedrigstem Wert für den Länderschlüssel und darin mit niedrigster Kundennummer zurückgeliefert. Der Rückgabewert von s10databaseselect() bei Angabe des "folder"-Parameters ist auch im Fall, dass keine Zeilen selektiert wurden, abap_true ('X'). Bei syntaktischen Fehlern wie einem ungültigen Spaltennamen erfolgt ein Abbruch. Beispiel (falscher Spaltenname "ORT1"):
Falls der "folder" Parameter nicht angegeben wurde, arbeitet s10databaseselect() ganz ähnlich wie s10databaseread(), nur können wir bei s10databaseselect() eine explizite where-Bedingung für den Zugriff mitgeben, während sich die Bedingung bei s10databaseread() automatisch aus den Schlüsselfeldern der Tabelle ergibt. Falls eine passende Tabellenzeile gefunden wurde, werden alle
gleichnamigen Attribute aus der Datenbank mit den gelesenen Werten besetzt und
der Wert abap_true ('X') zurückgeliefert. Andernfalls wird
abap_false
(' ') zurückgeliefert und es findet keine Änderung von Attributwerten
statt. |
||||||||||||||||||||||||||||||
Komponente | S10 Framework |