Gar nicht. Auf logische Datenbanken greift man nicht per LOOP zu, sondern über GET. Im übrigen ist Deine Frage ähnlich allgemein, wie wenn Du fragen würdest: "Wie programmiere ich in ABAP?" Lies Dir die Grundlagen zum ABAP-Zugriff auf logische Datenbanken an, und dann kannst Du wieder herkommen, wenn Du konkrete Fragen dazu hast.wie selektiere ich aus einer logischen Datenbank mit LOOP ?
Danke. Mein Betreuer möchte das ich mit logischen Datenbanken arbeite, wegen der integrierten Berechtigungsprüfung etc.DeathAndPain hat geschrieben:Gar nicht. Auf logische Datenbanken greift man nicht per LOOP zu, sondern über GET. Im übrigen ist Deine Frage ähnlich allgemein, wie wenn Du fragen würdest: "Wie programmiere ich in ABAP?" Lies Dir die Grundlagen zum ABAP-Zugriff auf logische Datenbanken an, und dann kannst Du wieder herkommen, wenn Du konkrete Fragen dazu hast.wie selektiere ich aus einer logischen Datenbank mit LOOP ?
Davon abgesehen sei mir die Anmerkung gestattet, dass ich logische Datenbanken für einen schlechten Ansatz halte. Sie sind nur bedingt flexibel und horrend lahm. Der Aufwand, eine eigene, gezielte Datenbankselektion zu machen, lohnt in aller Regel. Wenn er nicht lohnt, dann langt für gewöhnlich eine einfache Query anstelle eines eigenen ABAP-Programms. Queries benutzen logische Datenbanken.
Ich meine, auch mal gelesen zu haben, dass auch die SAP logische Datenbanken für veraltet erklärt hat.
Code: Alles auswählen.
REPORT zyr_test_logidb.
TABLES pernr.
INFOTYPES: 0002, "Daten zur Person
0001. "Org. Zuordnung
*PARAMETERS: p_ka TYPE xfeld AS CHECKBOX DEFAULT 'X'.
START-OF-SELECTION.
GET pernr.
PERFORM get_pernr.
*&---------------------------------------------------------------------*
*& Form GET_PERNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_pernr .
LOOP AT (wie ich das hier umsetze, weiß ich nicht.
ENDLOOP.
IF sy-subrc = 0.
WRITE: / p0002-nachn,
p0002-vorna,
p0002-gbdat,
p0001-persg,
p0001-persk.
ENDIF.
ENDFORM.
Ich wollte auch nichts gegen sagen, sie hat durchaus auch eine Menge Vorzügewreichelt hat geschrieben:Ich nutze die Log.Datenbank schon sehr gern. Vor allem auch in Zusammenhang mit Querys.
HR ist aber schon ein eigenes Ding durch die Infotypen.
Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
DeathAndPain
Code: Alles auswählen.
report ztest.
infotypes: 0001, 0002. " halt die infotypes die du brauchst
start-of-selection.
get pernr. " liefert die jedes mal eine Personalnummer und füllt die Infotypen - heißt du hast praktisch schon einen loop mit allen personalnummern
" get pernr füllt außerdem die in infotypes angegebenen infotyp tabellen p0001, p0002 - die Tabellen sind mit kopftzeile!
perform irgendwas using p0001 p0002.
form irgendwas using p0001 p0002.
write p0001-persa.
write p0001-btrtl.
write p0002-vorna.
write p0002-nachn.
endform.