Ansicht
Dokumentation

DDIF_TABL_GET - DD: Schnittstelle zum Lesen einer Tabelle aus dem ABAP Dictionary

DDIF_TABL_GET - DD: Schnittstelle zum Lesen einer Tabelle aus dem ABAP Dictionary

Fill RESBD Structure from EBP Component Structure   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Mit diesem Funktionsbaustein können die Dictionary-Sourcen einer Tabelle gelesen werden. Der Name der zu lesenden Tabelle ist im Parameter NAME zu übergeben.

Die Sourcen der Tabelle werden gemäß STATE gelesen. Dabei sind STATE = 'A' (Lesen der aktiven Version) und STATE = 'M' (Lesen der neuesten Version) möglich. Ist der Parameter LANGU gefüllt, so werden die zugehörigen Texte in der durch LANGU spezifizierten Sprache mitgelesen.

Im Parameter GOTSTATE erfährt man, in welchem Zustand das Objekt gelesen wurde. Falls STATE = 'A' war, so kann GOTSTATE die Werte 'A' (Objekt besitzt aktive Version) und ' ' (keine aktive Version des Objekts vorhanden) annehmen. Falls dagegen STATE = 'M' war, so kann GOTSTATE die Werte ' ' (Objekt nicht im ABAP Dictionary vorhanden), 'N' (Objekt befindet sich im Zustand "neu" im ABAP Dictionary), 'A' (Objekt befindet sich im Zustand "aktiv" im ABAP Dictionary) und 'M' (Objekt befindet sich im Zustand "überarbeitet" im ABAP Dictionary) annehmen.

Beispiel

Hinweise

Zum Lesen der Laufzeitinformation zu einer Tabelle gibt es die wesentlich effizienteren Funktionsbausteine DDIF_NAMETAB_GET (Laufzeitinformation ohne Texte) und DDIF_FIELDINFO_GET (Laufzeitinformation mit Texten). Dieser Baustein sollte daher nur genutzt werden, wenn tatsächlich die in der Pflegetransaktion des ABAP Dictionary sichtbare Definition der Tabelle benötigt wird, oder wenn Information über die Tabelle benötigt wird, die nicht in den Laufzeitobjekten enthalten ist.

Alle TABLE-Parameter sind (genau wie natürlich die EXPORT-Parameter) optional. Der Funktionsbaustein besorgt auch nur die Teile der Sourcen, die vom Aufrufer erfragt werden. Um unnötige Leseoperationen zu vermeiden, sollten beim Aufruf daher nur die Parameter versorgt werden, die für die weitere Bearbeitung auch gebraucht werden. Falls also zum Beispiel die Indizes einer Tabelle nicht gebraucht werden, so sollten die Parameter DD12V_TAB und DD17V_TAB nicht versorgt werden.

Das Feld DBINDEX in der Tabelle DD12V_TAB wird nur gefüllt, wenn die Tabelle im Zustand 'aktiv' gelesen wurde.

Die folgenden Abschnitte sind nur relevant, wenn die gelesene Tabelle andere Strukturen inkludiert oder strukturierte Komponenten besitzt.

Hat GOTSTATE den Wert 'A', so wird die Tabelle in expandierter Version zurückgegeben. Das bedeutet, daß alle inkludierten Strukturen einschließlich ihrer Fremdschlüssel und Suchhilfeanbindungen aufgelöst wurden. Dies betrifft auch die bereits an die Tabelle angehängten Append-Strukturen (das sind im Normalfall alle aktiven Append-Strukturen zu dieser Tabelle).
Felder, die in einer inkludierten Struktur liegen erkennt man hierbei daran, daß das Feld ADMINFIELD der DD03P_TAB einen Wert von '1' bis '9' hat.
Außerdem enthält DD03P_TAB in diesem Fall auch Einträge für alle Felder von strukturierten Komponenten der gelesenen Tabelle. Felder, die in strukturierten Komponenten liegen, erkennt man daran, daß das feld DEPTH der DD03P_TAB nicht den Wert '00' hat.

Hat GOTSTATE dagegen den Wert 'M' oder 'N', so wird die Tabelle in komprimierter Form zurückgegeben. Das heißt, daß Felder, die in inkludierten Strukturen (oder in Append-Strukturen) liegen oder die Felder einer strukturierten Kompinente sind, nicht in der Feldliste (DD03P_TAB) auftauchen.
Für Fremdschlüssel bedeutet dies, daß Fremdschlüssel, deren Prüffeld in einer inkludierten Struktur liegt, nur dann angegeben werden, wenn ihre Definition von der Definition bei der Struktur abweicht. Solche Fremdschlüsseldefinitionen erkennt man daran, daß in ihrem Header (DD08V_TAB) das Feld NOINHERIT den Wert 'Y' oder den Wert 'N' hat.
Dabei besagt NOINHERIT = 'Y', daß alle Eigenschaften des Fremdschlüssels übersteuert wurden. In diesem Fall bedeutet CHECKTABLE = '*', daß an dem betrachteten Feld kein Fremdschlüssel hänget, selbst, wenn das Feld in der inkludierten Struktur Prüffeld eines Fremdschlüssles ist. Ansonsten ist in CHECKTABLE die für dieses Feld gültige Prüftabelle angegeben und in DD05M_TAB sind die Feldzuordnungen zu finden.
Dagegen besagt NOINHERIT = 'N', daß die Feldzuordnungen von der inkludierten Tabelle übernommen werden und nur die sonstigen Attribute (Text, Verhalten auf dem Dynpro, semantische Eigenschaften) durch die angegebene Definition übersteuert werden. Daher finden sich in diesem Fall auch keine zugehörigen Einträge in DD05M_TAB.

Suchhilfeanbindungen zu inkludierten Feldern sind in der komprimierten Version nur dann angegben, wenn ihre Definition von der Definition bei der Struktur, über die sie inkludiert sind, abweicht. In der expandierten Version sind dagegen auch solche Suchhilfeanbindungen enthalten, die von einer inkludierten Struktur übernommen werden. Diese erkennt man daran, daß in ihrem Header (DD35V_TAB) das Feld SHLPINHER den Wert 'X' hat.

Ein Eintrag in der DD03P_TAB bezeichnet genau dann eine inkludierte Struktur, wenn PRECFIELD <> ' ' ist.

Weiterführende Informationen





Parameter

DD02V_WA
DD03P_TAB
DD05M_TAB
DD08V_TAB
DD09L_WA
DD12V_TAB
DD17V_TAB
DD35V_TAB
DD36M_TAB
GOTSTATE
LANGU
NAME
STATE

Ausnahmen

ILLEGAL_INPUT

Funktionsgruppe

SDIF

PERFORM Short Reference   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6948 Date: 20240523 Time: 142522     sap01-206 ( 167 ms )