Logische Datenbank: Selektieren mit Loop


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Logische Datenbank: Selektieren mit Loop

Beitragvon HansPeter » 18.01.2019, 13:25

Änderung durch Moderator:
Auf Wunsch des Benutzers wurde der Inhalt seines Beitrags gelöscht. In dem Zusammenhang möchten wir daran erinnern, dass keiner hier in diesem Forum Inhalte postet, die gegen die Richtlinien seines Unternehmens verstoßen.
Zuletzt geändert von Jan am 25.01.2019, 07:50, insgesamt 2-mal geändert.
Grund: Auf Anfrage des Benutzers.
HansPeter
ForumUser
 
Beiträge: 12
Registriert: 18.01.2019, 12:52
Dank erhalten: 0 mal

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon DeathAndPain » 18.01.2019, 13:58

wie selektiere ich aus einer logischen Datenbank mit LOOP ?

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.

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.
DeathAndPain
Expert
 
Beiträge: 934
Registriert: 05.05.2006, 10:14
Dank erhalten: 218 mal
Ich bin: Entwickler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon HansPeter » 18.01.2019, 14:02

DeathAndPain hat geschrieben:
wie selektiere ich aus einer logischen Datenbank mit LOOP ?

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.

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.


Danke. Mein Betreuer möchte das ich mit logischen Datenbanken arbeite, wegen der integrierten Berechtigungsprüfung etc.

Hab zurzeit das

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.
HansPeter
ForumUser
 
Beiträge: 12
Registriert: 18.01.2019, 12:52
Dank erhalten: 0 mal

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon wreichelt » 18.01.2019, 14:21

Hallo,

schon lange nicht mehr in HR einen Report erstellt.
Aber so in etwa:

INITIALIZATION.
RP-SEL-EIN-AUS-INIT.

START-OF-SELECTION.

GET PERNR.
PROVIDE * FROM P0001
BETWEEN PN-BEGDA AND PN-ENDDA.

…. deine Verarbeitung

ENDPROVIDE.

Gruß Wolfgang
wreichelt
Expert
 
Beiträge: 666
Registriert: 17.07.2005, 09:46
Wohnort: Hessen
Dank erhalten: 113 mal
Ich bin: sonstiges

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon deejey » 18.01.2019, 15:13

Log. Datenbank ist eine ganz eigene Kiste, der Betreuer sollte dir erstmal zeigen was es damit auf sich hat, das erschließt sich einem nicht mal eben und ist auch nicht intuitiv erfassbar.
deejey
Specialist
 
Beiträge: 176
Registriert: 31.07.2016, 11:20
Dank erhalten: 14 mal
Ich bin: Entwickler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon wreichelt » 18.01.2019, 15:25

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.

Für diese Nachricht hat wreichelt einen Dank bekommen :
deejey
wreichelt
Expert
 
Beiträge: 666
Registriert: 17.07.2005, 09:46
Wohnort: Hessen
Dank erhalten: 113 mal
Ich bin: sonstiges

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon deejey » 18.01.2019, 22:13

wreichelt 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.

Ich wollte auch nichts gegen sagen, sie hat durchaus auch eine Menge Vorzüge
deejey
Specialist
 
Beiträge: 176
Registriert: 31.07.2016, 11:20
Dank erhalten: 14 mal
Ich bin: Entwickler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon ralf.wenzel » 19.01.2019, 12:34

Welche Vorteile sollten das sein, die Langsamkeit und fehlende Flexibilität rechtfertigen? Das war weit vor meiner Zeit, aber LDB stammen AFAIR aus einer Zeit, wo die DB unter SAP noch keine relationale DB war.

Die gibt es überhaupt nur noch zur Abwärtskompatibilität.


Ralf

Für diese Nachricht hat ralf.wenzel einen Dank bekommen :
DeathAndPain
ralf.wenzel
Top Expert
 
Beiträge: 3338
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 206 mal
Ich bin: Freiberufler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon wreichelt » 19.01.2019, 12:49

Es werden schon viele Tabellen mit zusätzlichen Spalten ergänzt so entfällt jeder weitere Select und auch
das suchen der ergänzenden Tabellen
wreichelt
Expert
 
Beiträge: 666
Registriert: 17.07.2005, 09:46
Wohnort: Hessen
Dank erhalten: 113 mal
Ich bin: sonstiges

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon ralf.wenzel » 19.01.2019, 17:09

Den Satz verstehe ich nicht.


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3338
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 206 mal
Ich bin: Freiberufler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon wreichelt » 19.01.2019, 18:09

Hallo Ralf,

Kopie aus einer Seite von Andreas Unkelbach

Logische Datenbanken
enthalten schon Verknüpfungen und können direkt als Grundlage für ein Infoset verwendet werden. Dieses hat den Vorteil, dass man nicht selbst erst einzelne Tabellenverknüpfungen erstellen muss. Die Struktur einer logischen Datenbank kann in der Transaktion SE36 eingesehen werden. Im Bereich HCM wären dieses bspw. PNP oder PCH während innerhalb des Rechnungswesen ggf. die Datenbanken ADA für die Anlegenbuchhaltung und BRF für FI Belege interessant sind.

Gruß Wolfgang
wreichelt
Expert
 
Beiträge: 666
Registriert: 17.07.2005, 09:46
Wohnort: Hessen
Dank erhalten: 113 mal
Ich bin: sonstiges

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon ralf.wenzel » 19.01.2019, 18:16

Hm, wie das im HR ist, weiß ich nicht, damit hatte ich noch nie zu tun. Die Begründung klingt fürs HR schlüssig. Aber sonst....


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3338
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 206 mal
Ich bin: Freiberufler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon deejey » 20.01.2019, 02:31

Verknüpfung ist Verknüpfung, egal ob in HCM oder FI
deejey
Specialist
 
Beiträge: 176
Registriert: 31.07.2016, 11:20
Dank erhalten: 14 mal
Ich bin: Entwickler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon ralf.wenzel » 20.01.2019, 07:57

Mit dem Unterschied, dass ich die im FI kenne.



Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3338
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 206 mal
Ich bin: Freiberufler/in

Re: Logische Datenbank: Selektieren mit Loop

Beitragvon SaskuAc » 21.01.2019, 08:00

Im HCM Bereich werden logische Datenbanken gebraucht, diese werden von der SAP sogar noch recht regelmäßig "weiterentwickelt". Und Sie sind, zu meinem erstaunen, auch sehr performant. Ob ich nun einen Select XXXXXX, YYYYYYY, from pa0001 mache oder die pnpce ( die neue version der pnp ) verwende, macht keinen unterschied. insbesondere wegen der berechtigungsprüfung auf die direkte Person ist dort performanter als wenn ich ein "authority-check" mache.

Zur Frage an sich:

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.  
 


Verzeiht mir bitte den Code, den habe ich jetzt einfach mal aus dem Kopf hingeklatscht ... außerdem weiß ich nicht mehr so genau wie ich ne Form definiere :? - schreibe seit ewigkeiten ja nur noch OO-Programme ^^
SaskuAc
Specialist
 
Beiträge: 225
Registriert: 01.06.2015, 10:16
Dank erhalten: 23 mal
Ich bin: Entwickler/in

Nächste

Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
gelöst SALV - Layout wird nicht gezogen
vor 7 Stunden von ralf.wenzel 0 Antw.
ADRMAS-Segmente vorbefüllen
vor 10 Stunden von lausek 0 Antw.
MS Word nicht als SAPscript-Editor verwenden
vor 11 Stunden von DeathAndPain 2 Antw.
EWM: HU mit RBG anhand von Produkt-LB bewegen
Gestern von TimTo 0 Antw.
BADI Impl. cin_plug_in_to_migo deaktivieren
Gestern von zzcpak 1 Antw.

  Ähnliche Beiträge beta
Report für Logische Datenbank (Über mehrere Tabellen)
21.07.2015, 09:26 von wreichelt 6 Antw.
Logische Datenbanken - ADA
30.11.2009, 09:19 von Luny 9 Antw.
Hash berechnen für Logische Datei
23.09.2007, 00:23 von Tron 3 Antw.
gelöst Logische Operatoren und binäre Zahlen
22.01.2014, 16:15 von Barney 3 Antw.
READ TABLE ... WITH KEY [logische Verknüpfung mögl?]
20.11.2015, 10:02 von ralf.wenzel 33 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder