
Datenobjekte können an Elemente im ABAP Dictionary (DDIC) sowie an die globalen Datentypen (GDT) im Enterprise Services Repository (ESR) gebunden werden. Darüber hinaus können Sie ein Element-Datenobjekt auch an ein bereits vorhandenes BRFplus-Datenobjekt binden. Dies ermöglicht eine implizite Definition der Datenobjekteinstellungen im Gegensatz zur expliziten Zuordnung eines Datentyps zu einem Datenobjekt oder dem manuellen Anlegen einer Werteliste.
In einfachen Anwendungsfällen, bei denen Sie nur ein Feld benötigen, das beispielsweise eine Zeichenkette für ein Zwischenergebnis bei der Regelverarbeitung enthalten soll, ist es üblicherweise am einfachsten, das Datenobjekt manuell zu definieren. Wenn Sie jedoch komplexe Datenstrukturen benötigen, die bereits in einem anderen Repository definiert sind, stellt das Binden eines BRFplus-Datenobjekts an ein solches vorhandenes Element einen effektiven Weg dar, dies konsistent und schnell umzusetzen
Die Vorteile der Datenbindung beschränken sich nicht auf komplexe Strukturen. Es gibt auch Anwendungsfälle, bei denen das Binden eines Datenobjekts an ein einfaches Datenelement im ABAP Dictionary Ihnen viel Arbeit ersparen kann. Wenn Sie beispielsweise eine Liste von ISO-Ländercodes benötigen, können Sie hierzu einfach ein Datenelement im ABAP Dictionary aufrufen, das zum selben Zweck verwendet wird und in dem die Ländercodes bereits als Liste von Domänenwerten zugeordnet sind. Es genügt in diesem Fall, das BRFplus-Datenobjekt an dieses Datenelement zu binden: Das Datenobjekt erhält den gleichen Datentyp und die gleiche Feldlänge wie das gebundene Datenelement und kann alle Domänenwerte verwenden.
Mithilfe der Datenbindung können Sie darüber hinaus für eine größere Konsistenz innerhalb Ihres Systems sorgen, wenn ein oder mehrere Felder an vielen Stellen in Ihrer Anwendung wiederverwendet werden. Das folgende Beispiel beschreibt, wie Ihnen die Datenbindung in solchen Fällen hilft:
Der Unternehmensname des Kunden Akron Heating Inc. soll in Ihrer BRFplus-Anwendung an verschiedenen Stellen verwendet werden. Wenn sich nun der Name Akron Heating Inc. zu einem späteren Zeitpunkt in Akron Heating Ltd. ändert, muss dieser Name aus Konsistenzgründen an jeder Stelle in Ihrer Anwendung geändert werden. Durch das Binden des Datenobjekts können Sie solche fehleranfälligen Korrekturaufgaben vermeiden.
Legen Sie ein Element-Datenobjekt Unternehmensname des Typs Text mit einer Länge von 30 Zeichen an.
Wählen Sie auf der Registerkarte Domänenwerte die Drucktaste Wert anlegen.
Es wird ein Dialogfenster angezeigt, in dem Sie einen Konstantenausdruck als Namen für die Zeichenkette definieren können.
Legen Sie einen Namen für die Konstante fest und geben Sie in das Feld Wert den Unternehmensnamen Akron Heating Inc. ein.
Wählen Sie die Drucktaste Anlegen.
Das System navigiert zurück zum Datenobjekt Unternehmensname und zeigt den neu definierten Unternehmensnamen auf der Registerkarte Domänenwerte in der Werteliste an.
Legen Sie ein weiteres Objekt mit dem Namen Kundenname an.
Wählen Sie in der Liste Anbindungstyp die Option An vorhandenes BRFplus-Element binden aus.
Das Dialogfenster Objektabfrage wird angezeigt.
Suchen Sie im Dialogfenster Objektabfrage nach dem zuvor definierten Element Unternehmensname und wählen Sie es aus.
Das System navigiert zurück zum Dialogfenster Element anlegen, in dem nun das Datenobjekt Unternehmensname an Ihr neues Datenobjekt Kundenname gebunden ist.
Wählen Sie Anlegen und zu Objekt navigieren.
Das System navigiert zum neu angelegten Datenobjekt Kundenname. Auf der Registerkarte Domänenwerte des Datenobjekts können Sie den Unternehmensnamen Akron Heating Inc. sehen. Dieser wird von der Definition des gebundenen Datenobjekts geerbt.
Sie können das Datenobjekt Kundenname nun an allen benötigten Stellen in Ihrer Anwendung verwenden. Anschließend können Sie zu jeder Zeit den verknüpften Text des Domänenwerts von Akron Heating Inc. in Akron Heating Ltd. ändern. Der neue Name wird dann überall dort angezeigt, wo Sie das Datenobjekt Kundenname verwenden.
Das Objekt, das Sie an das BRFplus-Datenobjekt binden möchten, muss aktiv sein. Dies gilt nicht nur für gebunde ABAP-Dictionary-Objekte, sondern auch für BW-Stammdaten (siehe unterer Abschnitt BRFplus-Datenobjekte und SAP-BW-Informationsobjekte).
Unterstützte Bindungstypen
Je nach Typ des BRFplus-Datenobjekts, das Sie an ein anderes Element binden möchten, haben Sie verschiedene Bindungsmöglichkeiten. In der folgenden Tabelle sind diese zusammengefasst:
Datenobjekttyp |
Unterstützte Bindungstypen |
Kommentar |
|---|---|---|
Element |
DDIC-Objekt GDT BRFplus-Element |
|
Tabelle |
DDIC-Tabellentyp |
Die Tabellentypstruktur mit allen enthaltenen Feldern wird automatisch in BRFplus importiert |
Struktur |
DDIC-Struktur GDT-Struktur |
Die DDIC-Struktur mit allen enthaltenen Feldern wird automatisch in BRFplus importiert |
Alternativ zum Binden eines BRFplus-Datenobjekts des Typs Tabelle an einen DDIC-Tabellentyp können Sie auch eine BRFplus-Tabelle mit einer Datenbanktabelle im Backend-System verknüpfen. Belassen Sie hierzu die Einstellung der Bindungsart bei Keine Bindung und wählen Sie stattdessen die Drucktaste Struktur aus DB-Tabelle anlegen. Das System liest dann aus der angegebenen Datenbanktabelle den Tabellenzeilentyp, legt eine neue BRFplus-Struktur mitsamt den Strukturelementen an, bindet die neue BRFplus-Struktur an die Struktur der Datenbanktabelle und ordnet die BRFplus-Struktur dem aktuellen BRFplus-Tabellendatenobjekt zu.
Das Binden von BRFplus-Objekten an GDTs wird derzeit nur in begrenztem Umfang für SAP-interne Entwicklungsprojekte unterstützt. Diese Funktion wird nicht für externe Anwendungen unterstützt.
Typableitung
Wenn Sie ein Element-Datenobjekt an einen Dictionary-Typ binden, ermittelt das System den Dictionary-Typ und passt den Untertyp des BRFplus-Datenobjekts dahingehend an, dass es bestmöglich zum gebundenen Dictionary-Typ passt. Dies ist sowohl für einfache Dictionary-Typen wie CHAR oder INT1 als auch für komplexere Fälle möglich. Das BRFplus-Element vom Typ Boolesch hat beispielsweise keinen direkt korrespondierenden elementaren Typ im ABAP Dictionary. Stattdessen werden Datenelemente mit booleschem Datentyp erstellt, indem eine ein Zeichen lange Domäne des Typs CHAR mit zwei bis drei festen Werten referenziert wird. Um die Ableitung eines BRFplus-Datenobjekts vom Typ Boolesch zu ermöglichen, muss das gebundene ABAP-Dictionary-Element folgende Bedingungen erfüllen:
Elementarer Datentyp: CHAR1
Domäne: Genau zwei definierte Werte: 'X' (wahr) und '' (falsch).
Diese zwei Bedingungen werden von der Standard-Domäne BOOLE erfüllt.
Alternativ lässt BRFplus auch das Standard-Datenelement SYBATCH als gültige Bindungsreferenz für ein boolesches Datenobjekt zu.
Ein weiteres, auf den ersten Blick vielleicht überraschendes Beispiel einer Typableitung ist die Behandlung des häufig verwendeten vorinstallierten Typs NUMC. Obwohl dieser Typ nur Ziffern zwischen 0 und 9 zulässt, ist er technisch als Zeichenkette realisiert. Aus diesem Grund wird bei der Datenbindung ein NUMC-Feld aus dem Dictionary in ein Element-Datenobjekt des Typs Text (nicht Zahl) konvertiert. Normalerweise hätte das die Konsequenz, dass solche Felder innerhalb von BRFplus nicht für mathematische Operationen wie SUMME oder DURCHSCHNITT in Ausdrücken der Art Formel oder Tabellenoperation verwendet werden können. Sie können allerdings steuern, ob ein solches Datenobjekt als numerisch oder alphanumerisch behandelt werden soll. Dies können Sie auf Anwendungsebene erreichen, indem Sie auf der Registerkarte Standardeinstellungen das Ankreuzfeld Numerischer Vergleich für NUMC-Felder markieren.
Domänenwertelisten
Den meisten geschäftsspezifischen Datenelementen im Dictionary ist ein Domänenobjekt zugeordnet. Die Domäne wird verwendet, um den Datentyp des referenzierenden Datenelements sowie einige technische Einstellungen zu definieren. Darüber hinaus kann eine Domäne eine vordefinierte Liste von Werten für die referenzierenden Datenelemente bereitstellen. Wertelisten können auf folgende Arten definiert werden:
Einzelwerte: Eine Liste von einzelnen, festen Werten (zum Beispiel 1, 2, 3, 10, 20, 30, ...).
Intervalle: Eine Liste von Wertebereichen (zum Beispiel 'a'..'f', 'h'..'m', 'x'..'z', ...).
Wertetabelle: Ein Verweis auf eine Dictionary-Tabelle, bei der jeder Tabelleneintrag einen Wert für die referenzierte Domäne darstellt.
Zusätzlich zu den eigentlichen Domänenwerten kann der Entwickler für jeden Wert einen beschreibenden Text pflegen. Eine Anwendung kann davon Gebrauch machen, indem intern die in den Wertefeldern gespeicherten eindeutigen technischen Werte verwendet, dem Benutzer jedoch die geschäftsorientierten beschreibenden Texte anzeigt werden.
Wenn Sie ein BRFplus-Datenobjekt an ein Datenelement im Dictionary binden, werden die Domänenwerte importiert und in der BRFplus-Workbench auf der Registerkarte Domänenwerte angezeigt. Zusätzlich versucht das System, die mit den Werten verknüpften beschreibenden Texte zu importieren. An dieser Stelle unterscheidet sich das Systemverhalten je nach der Art der Textdefinition:
Einzelwerte:
Das System importiert die beschreibenden Texte, wie sie in der Domänendefinition festgelegt wurden.
Intervalle:
Für Intervalle importiert das System keine beschreibenden Texte. Dies liegt daran, dass in diesem Fall Beschreibungen nur mit einem gesamten Intervall verknüpft werden können und nicht mit den einzelnen Werten innerhalb jedes Intervalls.
Wertetabelle:
Das System analysiert die verknüpfte Tabelle, um ein Feld zu bestimmen, das ein Beschreibungsfeld für die Werte darstellen könnte. Unter anderem werden folgende Kriterien getestet, um herauszufinden, ob ein bestimmtes Feld potenziell eine Beschreibung darstellt:
Der Feldtyp ist Text.
Die Feldlänge beträgt mindestens 15 Zeichen.
Der Feldname enthält 'DESC', 'DSCR', 'NAME', 'TEXT', oder 'TXT'.
Das erste Feld, das alle diese Kriterien erfüllt, wird als Beschreibungsfeld gewählt und das System import den Inhalt des Feldes als Wertebeschreibung für das BRFplus-Datenobjekt. Wenn keines der Felder in der Tabelle den Kriterien entspricht, werden keine Werteschreibungen mit den Domänenwerten des Datenobjekts verknüpft.
In der BRFplus-Workbench werden nur die ersten 500 Domänenwerte angezeigt. Dadurch wird verhindert, dass es bei sehr großen Wertelisten zu Performance-Problemen kommt. Zur Laufzeit können Sie jedoch auf alle Domänenwerte zugreifen, die im Dictionary für das referenzierte Datenelement definiert wurden.
Vererbung
Datenobjekte erben ihre Attribute wie Datentyp, Feldlänge oder erlaubte Vergleiche von ihrem gebundenen Typ. Die Wertehilfe für Datenobjekte wird implementiert, indem ein Datenobjekt an das ABAP Dictionary oder ein BRFplus-Datenobjekt mit einer definierten Liste an Domänenwerten gebunden wird. Das Binden eines Element-Datenobjekts an das ABAP Dictionary oder an das ESR ermöglicht es Ihnen, eine Liste von Werten wiederzuverwenden, die in einem anderen Repository definiert wurden.
Ein Datenobjekt kann nur Attribute erben, die im gebundenen Datenobjekt verfügbar sind. Beispiel: Ein Datenobjekt erbt den Typ eines gebundenen ABAP-Dictionary-Objekts, jedoch nicht die Einstellungen zu erlaubten Vergleichen des Datenobjekts. Diese können weiterhin direkt für das erbende Datenobjekt definiert werden. Der Grund dafür ist, dass ein ABAP-Dictionary-Objekt das Konzept von erlaubten oder eingeschränkten Vergleichsoperationen nicht unterstützt.
Wenn Sie ein Datenobjekt an ein anderes BRFplus-Datenobjekt binden, stellen Sie sicher, dass das andere Datenobjekt explizit definierte Attribute aufweist und nicht selbst an ein weiteres, drittes Datenobjekt gebunden ist. Diese Art von kaskadierender Vererbung über mehr als eine Ebene hinweg wird nicht unterstützt und führt zu einer Fehlermeldung.
Im Gegensatz dazu ist es jedoch möglich, ein BRFplus-Datenobjekt an ein anderes Datenobjekt zu binden, das selbst an ein Objekt aus dem ABAP Dictionary gebunden ist. In diesem Fall werden die Attribute des ABAP-Dictionary-Objekts von den BRFplus-Datenobjekten auf beiden Ebenen geerbt.
BRFplus-Datenobjekte und SAP-BW-Informationsobjekte
Ein Thema im Zusammenhang mit der Datenbindung stellt die Verknüpfung von BRFplus-Element-Datenobjekten mit Datenelementen im ABAP Dictionary dar, die von im SAP Business Information Warehouse (SAP BW) modellierten Informationsobjekten (vor allem Merkmalen) referenziert werden. In fast allen Fällen enthalten diese Objekte umfangreiche Stammdatentabellen sowie Texttabellen. Gleichzeitig sind für das mit einem BW-Merkmal verknüpfte Datenelement üblicherweise keine Domänenwerte gepflegt (weil die bereits vorhandenen Tabellen diesem Zweck dienen). Wenn Sie eine Bindungsbeziehung zwischen einem BRFplus-Element-Datenobjekt und einem Datenelement herstellen, führt das System daher folgende Verarbeitungsschritte durch:
Dadurch können Sie über Ihre BRFplus-Anwendung die Datenmodellierung verwenden, die bereits in SAP BW vorgenommen wurde.
Das Binden von Datenobjekten an GDT-Strukturen wird nur für Systeme unterstützt, die über das Switch Framework als AP-Systeme (Application-Platform-Systeme) definiert wurden. Diese Systemart wird für das Ausführen von SAP Business ByDesign verwendet. Weitere Informationen finden Sie in der SAP-NetWeaver-Bibliothek des SAP Help Portals in der Dokumentation des Switch Frameworks.