Persistente Klassen für was ?

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
41 Beiträge • Seite 1 von 3 (current) Nächste
41 Beiträge Seite 1 von 3 (current) Nächste

Persistente Klassen für was ?

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Hallo Experten des OO

Ich bin mich am einarbeiten des OO, aber ich bräuchte einfach mal einen kleinen Schubs in die Persistente Richtung :roll:

Kann mir jemand kurz und einfach erklären, für was man das Teil brauchen kann.


Ich bedanke mich für jede Hilfe
Gruss

Alpha

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Azreal (Specialist / 182 / 1 / 0 ) »
Hallo Alpha,
vielleicht hast du den Begriff bereits bei anderen Programmiersprachen gehört. Es handelt sich dabei um Objekte die als ganzes (insb. mit ihrem Zustand) persistiert (konkret in ABAP auf der DB) werden. Diese Objekte können mit der Kombination ihrer Attribute ein komplexes Problem abbilden (z.B. eine Rechnung).

Dazu bietet ABAP ein Framework an, daß sich persistente klassen nennt. Vorteil davon liegt auf der Hand: man muß nicht jedes mal den Zustand eine Objekt komplett neu aufbauen, sondern kann diesen von der DB laden.

Um diese Funktionalität nutzen zu können, mußt die die klasse als persistente Klasse anlegen. Fortan wird die Klasse vom Persistenzdienst verwaltet und kann entsprechend nicht mit CREATE OBJECT erstellt werden.

Gruß Aze

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Hallo Aze

Besten Dank für deine Info, leider sehe ich immer noch keinen Sinn darin sorry. :oops:

Irgend wie so ein Strickplan damit ich verstehe:

Ich probier's mal so, also wie du sagt, ich will was mit der Faktura machen, wie sieht die Aufgaben Stellung hier für aus, damit ich dies nun in der Persistenten Klasse abbilden will ?
Gruss

Alpha

Beitrag von Azreal (Specialist / 182 / 1 / 0 ) »
verstehe - um das anschaulich zu erklären hier erstmal ein übersichtliches UML diagramm einer Rechnung:
Bild

Wie du siehst hast die Klasse InvoiceData 13 Attribute, davon 1 integer, 11 Strings und ein attribut von der klasse InvoiceDataRow. Aufgebaut wird die Klasse über den Konstruktor - sprich alle Daten die die Klasse halten soll müssen dem Konstruktor übergeben werden. Darum kümmerst sich die Klasse Form1. Bei diesem ist es relativ einfach den Zustand des Objekts aufzubauen. Aber wie sieht es denn mit dem folgenden Invoice UML aus:

Bild

bei dem die einzelnen entitätenselbst Klassen darstellen und deren Attribute ggf. nicht über einen Konstruktor befüllt werden sondern durch Methoden berechnet (z.B. die Steuer).

In so einem Beispiel empfiehlt sich sehr wohl zu überlegen, ob es nicht schneller ist die Klasse direkt zu persistieren um den gesamten Zustand nicht neu aufbauen zu müssen.

Hoffe ich habe in etwa getroffen was du gemeint hast...
Würde mich interessieren was genau dir im Vorschwebt.

Gruß Aze

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Uff als erstes Danke viel mal für deine Mühe.

Ich sehe langsam durch... mir schwebt folgendes vor da es ja keine BAPI's gibt für die Lieferschein Erstellung, wollte ich mich hier bei mit Persistenten Klassen auseinander setzten, damit ich A) das mal "schnalle" und B) auch ncoh einen zukünfigen nutzen davon trage.
Nur habe ich leider das Problem, dass A) mir niemand den ich kenne helfen kann und B) es nicht gerade einfach ist sich das zusammenzustellen. Aber du hast mir schon einen grossen Stritt weiter geholfen.

Danke Dir :D
Gruss

Alpha

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Also in Release ECC 6.0 gibt's den BAPI_OUTB_DELIVERY_CREATE_SLS...

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
8) dann freu ich mich auf den Releasewechsel in 2 Jahren ....

Aber danke Enno
Gruss

Alpha

Re: Persistente Klassen für was ?

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

nochmal zur ursprünglichen Frage.

Der ABAP-Persistenzdienst übernimmt das Lesen und Schreiben von Objekten von der und auf die Datenbank.

Wenn man ein Objekt benötig, teilt man dies dem "Persistenzdienst" mit. Er stellt das bereits gelesene Objekt zur Verfügung oder besorgt das Objekt über Schlüssel aus der/den Tabellen. Über bestimmte Prozeduren oder interne Methoden kann man in den Aufbau oder andere interne Abläufe des Objektes eingreifen, z.B. Customizing-Tabellen lesen und aufgrunddessen bestimmte Vorbelegungen treffen etc.

Von nun an ist es ein ganz normales Objekt. Man kann ihm Methoden zuordnen/programmieren, die, genau wie sonst, díe gewünschten Funktionalitäten (Methoden) zur Verfügung stellen. Man ruft die Mehtoden auf, schickt Daten hin, etc.

Zum Schluß kann man alle geänderten persistenten Objekte in einem Rutsch auf die Datenbank schreiben lassen. Man braucht also nicht mehr die geänderten Objekte sammeln und mit Perform on Commit oder ähnlichem zum Schluß auf die Datenbank schreiben.

Als Krönung gibt es noch globale Persistenz für das ganze System. Das bedeutet, es gibt Objekte, die sind für alle User, alle Modi vorhanden und werden nur ein einziges Mal im Speicher gehalten. Änderungen der lokalen Daten im Objektgelten sofort für alle Programme "systemweit".

Einnert mich irgendwie an das, was ich über JAVA-BEANS mal gelesen habe.

Für den Programmierer bedeutet der Persistenzdienst den Abschied von jeglichem Select oder Update-Statement für seine Stamm- oder Bewegungsdaten!

Gruß
babap
P.S. habe den Persistenzdienst bereits mehrfach erfolgreich angewendet.

Re: Persistente Klassen für was ?

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Hi babap

Besten Dank für deine Erklärung ich sehe das mich diese Thema noch ein wenig beschäftigen wird aber ich muss mal mit einem Kollegen ( den ich noch nicht kenne :cry: ) sprechen der das schon mal programmiert hat.
Mein Knopf entwickelt sich zum gotischen Knoten

Gruss
Gruss

Alpha

Re: Persistente Klassen für was ?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Alpha hat geschrieben:Mein Knopf entwickelt sich zum gotischen KnotenGruss
...gordischer Knoten... :-)

Will nicht mal jemand ein kleines Tutorial für persistente Klassen schreiben??

Es gibt zwar die Programme
DEMO_CREATE_PERSISTENT
DEMO_QUERY_PERSISTENT
DEMO_TRANSACTION_SERVICE

und die Klassen
CL_SPFLI_PERSISTENT
CB_SPFLI_PERSISTENT

und auch einen - naja, sagen wir mal - Hinweis auf die Klassen:
http://help.sap.com/abapdocu/de/ABENABA ... ERSIST.htm
Für meine Begriffe wird das mit Begriffen beschrieben, die man erst begreifen kann, wenn man weiss, worum es geht.

Insgesamt finde ich das schon ziemlich "gordisch"...

Freiwillge vor... :lol:

PS: Was sind denn das überhaupt für Smilies?? _Müssen_ die nicht gelb sein??!?! 8)

Re: Persistente Klassen für was ?

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Hi Enno

Danke für den Hinweis http://de.wikipedia.org/wiki/Gordischer_Knoten :up:
und ja gerne das Tutorial wäre schon toll.
Gruss

Alpha

Re: Persistente Klassen für was ?

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Tach.

Ich hatte bereits vor einigen Jahren das Vergnügen mit den persistenten Objekten und habe auf der diesjährigen TechEd festgestellt, dass die Technik immer noch nicht eingestampft ist.
Bei meinen Tests hatte ich Probleme mit der Performance, der Flexibilität und dem Handling. Demnach habe ich das Thema zu den Akten gelegt und schreibe meine Persistenzschichten schön selbst. Da weiss ich, was ich habe. Guten Abend... :P

Gruß,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: Persistente Klassen für was ?

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Danke Haubi -> "nach mir die Sintflut" 8) http://de.wikipedia.org/wiki/Sintflut
Gruss

Alpha

Re: Persistente Klassen für was ?

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Alpha hat geschrieben:Danke Haubi -> "nach mir die Sintflut"
In diesem Fall: ja! :evil:

Ich bin ja gerne bereit, mich mit den Neuerungen der SAP zu beschäftigen. Dann aber eher mit sinnvollen Themen wie Shared Objects etc. Die Persistent Objects hingegen braucht IMHO kein Mensch. Wenn ich da falsch liege lasse ich mich natürlich gerne eines besseren belehren. :)

Gruß,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: Persistente Klassen für was ?

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Hi Haubi

also ich sag auch zum Tutorial für Shared Objects nicht nein :wink:
Alpha hat geschrieben:Ich bin ja gerne bereit, mich mit den Neuerungen der SAP zu beschäftigen. Dann aber eher mit sinnvollen Themen wie Shared Objects etc.
Gruss

Alpha

Vergleichbare Themen

0
Antw.
2456
Views
Persistente Klasse
von Sertl » 28.08.2007 23:14 • Verfasst in ABAP Objects®
2
Antw.
2652
Views
Persistente Klasse für Massendatenverarbeitung
von eschi78 » 18.02.2015 16:56 • Verfasst in ABAP Objects®
8
Antw.
8179
Views
Architektur von Abap-Klassen (Klassen Attribute)
von snooze » 12.04.2005 12:56 • Verfasst in ABAP Objects®
20
Antw.
973
Views
Globale Klassen oder Lokale Klassen
von ZF_SAPler » 29.11.2022 13:47 • Verfasst in ABAP® für Anfänger
5
Antw.
652
Views
TRX ME22n: Persistente Error-Message anzeigen lassen
von Elekam » 17.03.2021 09:37 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141