Logische Datenbank: Selektieren mit Loop

Getting started ... Alles für einen gelungenen Start.
26 Beiträge Seite 1 von 2 (current) Nächste
26 Beiträge Seite 1 von 2 (current) Nächste

Logische Datenbank: Selektieren mit Loop

Beitrag von HansPeter (ForumUser / 13 / 0 / 0 ) » 18. Jan 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. Jan 2019 07:50, insgesamt 2-mal geändert.
Grund: Auf Anfrage des Benutzers.


Re: Logische Datenbank: Selektieren mit Loop

Beitrag von DeathAndPain (Top Expert / 1070 / 123 / 234 ) » 18. Jan 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.

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von HansPeter (ForumUser / 13 / 0 / 0 ) » 18. Jan 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.

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von wreichelt (Expert / 718 / 16 / 126 ) » 18. Jan 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

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von deejey (Specialist / 214 / 57 / 17 ) » 18. Jan 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.

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von wreichelt (Expert / 718 / 16 / 126 ) » 18. Jan 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.

Folgende Benutzer bedankten sich beim Autor wreichelt für den Beitrag:
deejey


Re: Logische Datenbank: Selektieren mit Loop

Beitrag von deejey (Specialist / 214 / 57 / 17 ) » 18. Jan 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

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von ralf.wenzel (Top Expert / 3420 / 150 / 221 ) » 19. Jan 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

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
DeathAndPain


Re: Logische Datenbank: Selektieren mit Loop

Beitrag von wreichelt (Expert / 718 / 16 / 126 ) » 19. Jan 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

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von ralf.wenzel (Top Expert / 3420 / 150 / 221 ) » 19. Jan 2019 17:09

Den Satz verstehe ich nicht.


Ralf

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von wreichelt (Expert / 718 / 16 / 126 ) » 19. Jan 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

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von ralf.wenzel (Top Expert / 3420 / 150 / 221 ) » 19. Jan 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

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von deejey (Specialist / 214 / 57 / 17 ) » 20. Jan 2019 02:31

Verknüpfung ist Verknüpfung, egal ob in HCM oder FI

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von ralf.wenzel (Top Expert / 3420 / 150 / 221 ) » 20. Jan 2019 07:57

Mit dem Unterschied, dass ich die im FI kenne.



Ralf

Re: Logische Datenbank: Selektieren mit Loop

Beitrag von SaskuAc (Specialist / 259 / 23 / 32 ) » 21. Jan 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 ^^

Seite 1 von 2 (current) Nächste

Aktuelle Forenbeiträge

Excel OLE2 Blatt schützen gelöst
vor 32 Minuten von Kerstin 5 / 23
Wann wird VBFA-MATNR gefüllt? gelöst
vor 41 Minuten von deejey 3 / 39
VL10B - Partner ändern -> Funktionsbaustein?
vor 14 Stunden von black_adept 2 / 44
Datenaustausch mit externen Lieferanten
vor 21 Stunden von DeathAndPain 5 / 163
Vorschlagswerte IT0700
vor 23 Stunden von DeathAndPain 8 / 122

Unbeantwortete Forenbeiträge

SP01 Verweildauer
vor 4 Tagen von SAP_ENTWICKLER 1 / 67
Transaktion OMT3B Subscreens in Dynpros einhängen
vor 5 Tagen von SAP_ENTWICKLER 1 / 49
Zeitereignisarten anlegen
vor einer Woche von Flashtie 1 / 160
Genehmiger & Status der Genehmigung bei einer BANF
vor 3 Wochen von Der Formulator 1 / 234
Migrationstool Upload QUAN und CURR Felder
vor 3 Wochen von SAP_ENTWICKLER 1 / 223