Datenelement und Domäne

Getting started ... Alles für einen gelungenen Start.
15 Beiträge • Seite 1 von 1
15 Beiträge Seite 1 von 1

Datenelement und Domäne

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Guten Tag!
Ich versuche mich in Abap einzuarbeiten und bin
gerade bei Datenelementen. Verstehe allerdings nicht
ganz was ein Datenelement und eine Domäne ist.
(Ok es sind Datentypen aber wozu sollen sie gut sein? Außerdem ist ein Datenelement auch zugleich eine Domäne)
Grüße

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


Beitrag von Hermann ( / / 0 / 3 ) »
Eine Domäne hat den Vorteil, daß man sie einmal definieren muß, damit ist sie dann in mehreren Datenelmenten verfügbar. Man spart sich somit Zeit.

Ein Datenelement kann man als Definition eines Variablentyps im Data Dictionary verstehen.

Damit sind dann Variablendeklarationen möglich wie, z.B.

Code: Alles auswählen.

data: v_belegno type belnr,
      v_text type text50.
Man könnte stattdessen auch die Definition jedesmal im Programm machen (der Aufwand ist aber unter Wiederverwendbarkeitsgesichtspunkten höher, insbesondere dann, wenn es sich um komplexe Type wie Strukturen oder geschachtelte Strukturen handelt.

Hermann

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Hi!
Vielen Dank für die schnelle Antwort.
Wenn das so ist was hat es mit dieser Erklärung auf sich?
Die am häufigsten genutzten Datentypen in der Abap-Entwicklung sind die Datenelemente, die auf den Typen der Datenbank basieren.
Sie werden zur Definition der einzelnen Spalten einer
Datenbanktabelle verwendet.
Dictionary Datentypen dienen als Grundlage für die
Definition von so genannten Domänen
Verzeihung aber jetzt verstehe ich überhauptnichts mehr
Fragen:
1.Für was nun für die Spalten oder für die Datenbank?
2.Zitat "Eine Domäne hat den Vorteil, daß man sie einmal definieren muß, damit ist sie dann in mehreren Datenelmenten verfügbar. Man spart sich somit Zeit"
-> Steckt dem nach hinter der Domäne eigentlich das
Datenelement ?


Außerdem ist mir die Deklaration auch nicht ganz klar
Gibt es eine einheitliche Form(Vorgehensweise) Datenelemente und Domäne zu deklarieren und zu definieren?
Das ist klar:
data: v_belegno type belnr,
v_belegno type numc.

Das nicht:
Wo ist hier der Dictionary-Datentyp?

data: v_belegno type belnr,
v_text type text50.


Sorry wenn meine Fragen so verwirrend klingen, denn genauso gehts mir gerade in Sachen Datenelemente und Domäne.
Gibt es vielleicht hierzu ein gutes Tutorial?
Grüße

Beitrag von Hermann ( / / 0 / 3 ) »
Vergiß mal für einen Moment die Erklärungen. In anderen Programmiersprachen gibt es kein DDIC (ist mir zumindest nicht bekannt). Es gibt dort elementare Datentypen und Datentypen, die man selbst definieren kann (type def, ...).

Die Datentypen verwendest Du bei der Deklaration von Variablen. Soweit so gut. Ist im ABAP genauso, wobei Datentyp und Datenelement als gleichwertig verstanden werden können.

Die Datenelemente kannst Du im ABAP zusätzlich dazu benutzen, um Tabellen (auf der Datenbank) anzulegen, oder Strukturen, Tabellentypen, ...

Das ist klar:
data: v_belegno type belnr,
v_belegno type numc.

Das nicht:
Wo ist hier der Dictionary-Datentyp?

data: v_belegno type belnr,
v_text type text50.
Was an v_belegno type numc klar sein soll, ist mir nun nicht klar. Das funktioniert nicht, da numc - zumindest in meinem System - nicht als Datenelement angelegt ist, sondern als Domäne. Man kann keine Variable mit Bezug auf eine Domäne deklarieren. Da bekommst Du eine Fehlermeldung.

Alles andere (belnr, text50) sind Datenelemente (im DDIC definiert), da gibt es keinen Unterschied.

Um es auf einen Satz zu bringen: Datenelemente werden benutzt, um im DDIC komplexere Datentypen (Strukturen, Tabellentypen, Tabellen) anzulegen, oder um Variablen zu deklarieren.

Hermann

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Sind Dictionary-Datentypen Datenelemente oder Domäne?
Wie kann man mir das ganz einfach erklären so dass
ich's kapiere. Vielleicht ein kleines Bsp. jeweils
1x Datenelement
1X Domäne

Beitrag von Hermann ( / / 0 / 3 ) »
Wenn Du z.B. eine Tabelle anlegst, dann kannst Du zum Anlegen der einzelnen Tabellenspalten entweder Datenelemente (die im Dictionary angelegt sind) verwenden, oder aber die eingebauten, elementaren Datentypen, z.B. CHAR, DATS, DEC, etc.

Wieso störst Du Dich so sehr an Domänen? Eine Domäne ist die Definition eines eigenen Datentyps.
Dieser Datentyp kann verwendet werden um Datenelemente anzulegen. Datenelemente sind Bausteine für Tabellen, komplexeren Typen wie Strukturen und Tabellentypen und für Variablen in Programmen. Mit einer Domäne alleine kann man zunächst nichts machen (zumindest fällt mir im Moment kein Anwendungsfall ein). Womit man in der Regel arbeitet sind Datenelemente (oder aber eben elementare Datentypen).

Ich denke das beste ist, wenn Du einfach mal selbst ausprobierst und Datenelemente, Domänen, Strukturen und Tabellen anlegst. Außerdem wirf mal einen Blick in die Transaktion ABAPDOCU, da findest Du auch einige Beispiele zu Datenelementen und Datentypen.

Hermann

Folgende Benutzer bedankten sich beim Autor Hermann für den Beitrag:
ReneR


Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Die Domäne legt grundlegende technische Eigenschaften fest:
interner Typ, Länge, Ausgabelänge, ... (also z.B. bei Feldern vom Typ P auch die Anzahl Dezimalstellen, bei Typ C ob zwischen Groß- und Kleinschreibung unterschieden werden soll).
Außerdem z.B. die Einschränkung auf bestimmte hart kodierte Festwerte oder die Angabe einer Wertetabelle sowie die Angabe eines Konvertierungs-Exists für die Umwandlung des internen ins externe Format und umgekehrt (also z.B. die Unterdrückung führender Nullen bei der Ausgabe oder die Umwandlung zwischen einstelligem internen und zweistelligem externen Format bei der Sprache).

Diese Festlegungen werden an de Datenelemente "vererbt", die sich auch eine Domäne beziehen.

Das Datenelement enthält über die grundlegenden teschnischen Eigenschaften hinaus auch semantische Informationen (also verschiedene Kurztexte, die bei Verwendung in Dynpros oder Selection-Screens automatisch übernommen werden können, eine Dokumentation, die vom System angezeigt wird, wenn der Nutzer tatsächlich mal die F1-Taste nutzt, evtl. die Zuordnung einer SET/GET-Parameter ID, Suchhilfezuordnung ...

Folgende Benutzer bedankten sich beim Autor Frank Dittrich für den Beitrag:
Radinator


Tutorial help.sap.com

Beitrag von meinrad (ForumUser / 67 / 0 / 0 ) »
Hallo,
Ein sehr gutes Tutorial ist meines Erachtens immer noch die offizielle SAP-Doku, die über das Internet KOSTENLOS ist. Bevor man sich 10 Bücher kauft, sollte man erst hier nachschauen. Einziger Nachteil: Man findet nicht immer sofort alles. Die meisten Dokumente findet man auch als PDF. Link für DICTIONARY: http://help.sap.com/saphelp_46c/helpdat ... ameset.htm

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Hat es seine Richtigkeit wenn man behaupten würde
der Weg von der Definition e. Datenelements bis hin
zur Benutzung innerhalb eines Programms erfordert grundsätzlich folgende Schritte:
1.Dictionary-Datentyp auswählen
2.Eine Domäne definieren bezogen auf den Dictionary- Datentyp
3.Ein Datenelement definieren bezogen auf die zuvor definierte Domäne
4.Im Prog.quelltext die Daten deklarieren unter Bezugnahme auf das Datenelement als Datentyp

Dem nach gibt es keine Domäne ohne Datenelement und somit kein Datenelement ohne eine Domäne. Oder???

Grüße

Beitrag von Gast ( / / 0 / 3 ) »
bohne hat geschrieben:Hat es seine Richtigkeit wenn man behaupten würde
der Weg von der Definition e. Datenelements bis hin
zur Benutzung innerhalb eines Programms erfordert grundsätzlich folgende Schritte:
1.Dictionary-Datentyp auswählen
2.Eine Domäne definieren bezogen auf den Dictionary- Datentyp
3.Ein Datenelement definieren bezogen auf die zuvor definierte Domäne
4.Im Prog.quelltext die Daten deklarieren unter Bezugnahme auf das Datenelement als Datentyp

Dem nach gibt es keine Domäne ohne Datenelement und somit kein Datenelement ohne eine Domäne. Oder???

Grüße
So ist die Regel, ja. Es kann aber trotzdem Domänen geben, die in keinem Datenelement benutzt werden. Tut nicht weh, können aber auch nicht für sich alleine benutzt werden.

Aber mal ne Frage: Warum ist Dir das so wichtig? In der Regel mußt Du keine Domäne mehr anlegen, weil es fast alles Erdenkliche schon gibt. Gleiches gilt für Datenelemente. Du mußt daher nur suchen, nach dem was Du brauchst und dann eben verwenden (spart viel Zeit!).

Das heißt es reduziert sich in der Regel auf zwei Schritte:

1. Suchen nach einem passenden Datenelment.
2. Im Prog.quelltext Variablen deklarieren unter Bezugnahme auf das Datenelement als Datentyp.

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Das heißt es reduziert sich in der Regel auf zwei Schritte:

1. Suchen nach einem passenden Datenelment.
Sorry, das kann ich so nicht stehen lassen. Am Datenelement hängen auch die Beschreibungstexte und eine Dokumentation, die angezeigt wird wenn ein User z.B. in einem auf dem DE beruhenden Eingabefeld steht und F1 drückt. Daher sollte man sich überlegen, für welchen Zweck man sich lieber ein eigenes Datenelement anlegt. Wenn eine Variable nur für interne Zwecke benutzt wird ist das allerdings wurscht.

Bezüglich Domänen gebe ich Dir aber Recht - da ist für quasi jeden Einsatzzweck etwas passendes vorhanden.

C ya,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

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

Beitrag von Hermann ( / / 0 / 3 ) »
Haubi hat geschrieben:Sorry, das kann ich so nicht stehen lassen. Am Datenelement hängen auch die Beschreibungstexte und eine Dokumentation, die angezeigt wird wenn ein User z.B. in einem auf dem DE beruhenden Eingabefeld steht und F1 drückt. Daher sollte man sich überlegen, für welchen Zweck man sich lieber ein eigenes Datenelement anlegt. Wenn eine Variable nur für interne Zwecke benutzt wird ist das allerdings wurscht.
C ya,
Haubi
Schätze da muß ich Dir nun recht geben :-)

Hermann

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Danke schön. :wink:
Das ABAP Kochbuch ab sofort bei Amazon...

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

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Hallo!
Zitat:
belnr, text50
sind Datenelemente
Wo kann ich das nachlesen?
Danke
Grüße
bohne

Beitrag von Hermann ( / / 0 / 3 ) »
Das braucht man nicht nachzulesen (da gibt es auch nichts).

Man kann sich über die SE11 Datenelemente anzeigen lassen, bzw. danach suchen.

Hermann

Seite 1 von 1

Vergleichbare Themen

7
Antw.
395
Views
Länge von Datenelement
von HH_ABAP » 23.02.2024 10:46 • Verfasst in ABAP® für Anfänger
2
Antw.
4167
Views
Fremdschlüsselprüfung & Domäne
von derMartin » 09.04.2020 14:45 • Verfasst in ABAP® für Anfänger
2
Antw.
10247
Views
Dokumentationsübersetzung für Datenelement
von Cyber_Fairy » 07.07.2011 13:47 • Verfasst in ABAP® Core
0
Antw.
1283
Views
Lokales Datenelement
von Cola » 02.11.2009 16:21 • Verfasst in ABAP® Core
5
Antw.
4643
Views
Domäne / Wertebereich
von mberott » 31.10.2006 14:42 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Transporte sind verschwunden
vor 19 Stunden von edwin 3 / 643
Baumstruktur programmieren
vor 23 Stunden von ABAPlerv 3 / 438

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.

Aktuelle Forenbeiträge

Transporte sind verschwunden
vor 19 Stunden von edwin 3 / 643
Baumstruktur programmieren
vor 23 Stunden von ABAPlerv 3 / 438

Unbeantwortete Forenbeiträge

API als OData
vor 4 Tagen von ABAPLover 1 / 93
Abstimmschlüssel ändern
vor 3 Wochen von FS1895 1 / 3621