
In BRFplus legen Sie verschiedene Objekte an, um die Geschäftsregeln zu modellieren, die Sie bei der Entscheidungsfindung innerhalb der Anwendungsfälle Ihrer täglichen Arbeit unterstützen sollen. Sie können Objekte auf verschiedene Arten anlegen. Je nach Situation kann dies unterschiedliche Folgen haben.
Allgemein
Alle BRFplus-Objekttypen besitzen eine Reihe von Verwaltungsdaten, die aus den gleichen Attributen zusammengesetzt sind. Die meisten dieser Attribute sind objektspezifisch. Es gibt jedoch auch einige, die vom Anwendungsobjekt abhängen, zu dem das Objekt gehört. Diese abhängigen Attribute sind:
Feste Abhängigkeit
Die folgenden Anwendungsattribute werden von allen Objekten geerbt, die Sie im Kontext einer Anwendung anlegen, und können nicht auf Objektebene geändert werden:
Ablagetyp
Mit dem Ablagetyp können Sie steuern, ob ein Objekt als Systemobjekt, Customizing-Objekt oder Stammdatenobjekt behandelt wird. Sie definieren den Ablagetyp einer Anwendung und aller ihrer Objekte beim Anlegen der Anwendung. Es gibt keine Möglichkeit, diese Einstellung für die Anwendung oder deren Objekte nachträglich zu ändern.
Lokale vs. transportierbare Objekte
Sie müssen für eine Anwendung das Paket definieren, zu dem die Anwendung gehört. Das Transportverhalten der Anwendung und ihrer Objekte wird von den Transporteinstellungen des zugeordneten Pakets bestimmt. Theoretisch können Sie das Transportverhalten eines BRFplus-Objekts ändern, indem Sie der Anwendung ein anderes Paket zuordnen. Eine derartige Änderung hat jedoch meist weitreichende Folgen und wird daher nicht empfohlen.
Lose Abhängigkeit
Die folgenden Anwendungsattribute werden von allen Objekten geerbt, die Sie im Kontext einer Anwendung anlegen, können aber für jedes Objekt einzeln geändert werden:
Einstellungen des Anwendungsprotokolls
Versionierungsverhalten
Sprach- und Versionsabhängigkeit von Objekttexten und Dokumentation
Sichern, prüfen, aktivieren
Nachdem Sie die Pflichtangaben für ein neu angelegtes Objekt gepflegt und gesichert haben, können Sie Ihre Arbeit fortsetzen. Es ist nicht notwendig, alle verfügbaren Einstellungen auf einmal zu pflegen. Bedenken Sie jedoch, dass viele Objekttypen für die produktive Verwendung detaillierte Einstellungen benötigen. Mit integrierten Prüfroutinen hilft Ihnen das System, fehlende oder unvollständige Einstellungen für jeden Objekttyp zu ermitteln.
Sie erstellen eine Entscheidungstabelle mit zehn Bedingungsspalten und hunderten Reihen für verschiedene Kombinationen von Bedingungswerten. Auf den ersten Blick scheint die Tabelle für den Business Case zu genügen, den Sie sich überlegt haben. Allerdings wird die Prüfung vielleicht feststellen, dass die Datenobjekte, die Sie in den Bedingungsspalten verwendet haben, absichtlich aus dem Repository genommen wurden und nicht aus einem Funktionskontext, wie es für eine fehlerfreie Ausführung benötigt wird. Daher kann die Entscheidungstabelle zwar in sich konsistent und vollständig sein, aber trotzdem nicht aktiviert werden, solange sie nicht mit einer Funktion verbunden ist, die alle verwendeten Datenobjekte bereitstellt.
Sie können ein Objekt entweder explizit über die Schaltfläche Prüfen oder implizit über die Schaltfläche Aktivieren prüfen. Das System durchläuft dann alle Prüfroutinen, die für den jeweiligen Objekttyp definiert wurden. Immer wenn bei der Prüfung Fehler oder Inkonsistenzen festgestellt werden, erhalten Sie eine Meldung. Viele dieser Meldungen beinhalten einen zusätzlichen Langtext mit detaillierten Erklärungen des Problems und Lösungsvorschlägen.
Viele Objekttypen in BRFplus enthalten Referenzen zu anderen Objekten. Wenn Sie versuchen, ein Objekt mit solchen Referenzen zu aktivieren, ermittelt das System, ob innerhalb der Hierarchie der verwendeten Objekte noch inaktive Objekte vorhanden sind. Ist dies der Fall, schlägt das System vor, durch rekursives Durchlaufen der Objekthierarchie alle inaktiven Objekte zu aktivieren, die es findet. Dies ist eine Voraussetzung dafür, dass das Einstiegsobjekt erfolgreich aktiviert werden kann.
Wenn eines der untergeordneten Objekte nicht aktiviert werden kann, wird der Vorgang abgebrochen und Sie erhalten eine Fehlermeldung. In diesem Fall empfehlen wir Ihnen, den Erklärungstext der Meldung aufmerksam zu lesen und herauszufinden, an welcher Stelle genau das Problem aufgetreten ist. Dies ist nicht immer offensichtlich.
Verwendungs-Konsistenzprüfung
Zusätzlich zu diesen Prüfungen von Inkonsistenzen in der Objektdefinition gibt es noch eine weitere Prüfungsart, die Verwendungs-Konsistenzprüfung. Mit dieser Option können Sie prüfen, ob das Objekt, das Sie gerade pflegen, von anderen Objekten verwendet wird und ob es Probleme mit der Verwendungsbeziehung oder mit den verwendenden Objekten gibt. Diese Prüfung ist nur für Objekte sinnvoll, die von anderen Objekten verwendet werden und daher für gewöhnlich nicht beim Anlegen relevant.
Öffnen Sie zur Durchführung dieser Prüfung das gewünschte Objekt im Arbeitsbereich der BRFplus-Workbench und wählen Sie aus.
Es wurde ein Element-Datenobjekt vom Typ Text definiert, dessen Text eine Maximallänge von 20 Zeichen hat. Dieses Datenobjekt wird als Ergebnisdatenobjekt für einen Ausdruck vom Typ Entscheidungstabelle verwendet, in dem bereits eine Reihe von Ergebnis-Strings definiert wurde. Wenn Sie die maximale Textlänge des Datenobjekts auf zehn Zeichen verringern und die Entscheidungstabelle Ergebniswerte enthält, die diese verringerte Maximallänge überschreiten, würde die Verwendungs-Konsistenzprüfung Sie auf dieses potenzielle Problem hinweisen.
Beim Durchlaufen des Datenmodells kann die Verwendungs-Konsistenzprüfung auch Objekte finden, die das aktuelle Objekt verwenden, sich jedoch in einem anderen Systemmandanten befinden. Für verwendende Objekte dieser Art kann das System keine weiteren Prüfungen durchführen. Es macht Sie jedoch darauf aufmerksam, dass betroffene Objekte in anderen Mandanten existieren und überlässt Ihnen die Entscheidung, dieselben Prüfungen in diesen Mandanten durchzuführen.
Manuelles vs. programmtechnisches Anlegen
Manuelles Anlegen von Objekten
Üblicherweise werden BRFplus-Objekte einzeln in der BRFplus-Workbench angelegt. Dies können Sie in folgenden Sichten tun:
Repository
Klicken Sie in der Repository-Sicht mit der rechten Maustaste auf den Knoten einer beliebigen Kategorie oder eines beliebigen Objekttyps. Wählen Sie Anlegen aus dem Kontextmenü. Es werden Ihnen die Objekttypen angezeigt, die Sie im Kontext des Knotens, dessen Menü Sie geöffnet haben, anlegen können.
Im Kontextmenü eines Anwendungsobjekts bietet das Anlegen-Menü Unterpunkte zum Anlegen von BRFplus-Objekten aller Typen sowie ganzen Anwendungen.
Katalog
Wenn Sie einen Katalog definiert haben, können Sie über das Kontextmenü des Katalogs neue Objekte anlegen. In diesem Fall werden neu angelegte Objekte gleichzeitig auch dem Katalogknoten zugeordnet, von dem aus Sie gestartet sind.
Favoriten oder Zuletzt verwendet
In diesen beiden Sichten können Sie neue Objekte über das Kontextmenü eines Anwendungsobjekts anlegen. Wenn in diesen Sichten kein Anwendungsobjekt aufgeführt ist, können Sie hier auch keine Objekte anlegen.
Programmtechnisches Anlegen von Objekten
Sie können Objekte natürlich auch programmtechnisch über entsprechende Programmierschnittstellen (APIs) anlegen, die von BRFplus angeboten werden. Die KlasseCL_FDT_FACTORY dient hierfür als Startpunkt. Dies ist vor allem hilfreich, wenn Sie eine große Anzahl von Objekten anlegen müssen, also wenn Sie beispielsweise die Systemleistung bei mehreren tausend Objekten testen möchten, bevor Sie ein Entwicklungsprojekt von solcher Dimension tatsächlich starten. In diesem Fall müssen Sie beachten, dass die Objekte, die über eine Verwendungsbeziehung verbunden sind, von unten nach oben aktiviert werden müssen. Weitere Informationen finden Sie in den Tutorien auf den BRFplus-Seiten im SAP Developers Network (SDN).
Einzelne vs. mehrere Objekte
Wie oben erwähnt, werden üblicherweise einzelne BRFplus-Objekte mit der BRFplus-Workbench angelegt und große Mengen an Objekten am besten über die Programmierschnittstellen. Es gibt allerdings eine dritte Alternative, die möglicherweise einen guten Kompromiss zwischen diesen beiden Vorgehensweisen darstellt.
Erfahrungsgemäß ist die Mehrheit der Objekte in regelbasierten Projekten vom Typ Element-Datenobjekt. Für diese Objekte bietet die BRFplus-Workbench ein Massenanlegungswerkzeug, in dem Sie in tabellarischer Struktur die grundsätzlichen Attributwerte für eine beliebige Anzahl von Objekten auf einmal eingeben können. Wählen Sie nach Eingabe dieser Daten OK und die Datenobjekte werden alle gleichzeitig angelegt. Diese Vorgehensweise ist wesentlich schneller als das einzelne Anlegen von Objekten. Starten Sie das Massenanlegungswerkzeug, indem Sie in der BRFplus-Workbench im Kontextmenü einer Anwendung wählen.
Die Massenanlage ist nur für Datenobjekte des Typs Element möglich.
Wiederverwendbarkeit
Für viele Szenarien ist es wünschenswert, dieselben BRFplus-Objekte an verschiedenen Stellen in einer Anwendung zu verwenden oder sogar in verschiedenen Anwendungen. Die Wiederverwendung von Objekten kann die Komplexität verringern und zur Verbesserung der Konsistenz einer Anwendung beitragen. Daher empfiehlt BRFplus, wiederverwendbare Objekte anzulegen. Setzen Sie hierzu beim Anlegen ein Häkchen in das Feld Ist wiederverwendbar. Dieses Feld ist im Anlege-Dialog der meisten Objekte standardmäßig aktiviert. Bei Aktivierung dieser Einstellung wird der Objektname zu einem Pflichtfeld für das Anlegen, was wiederum Voraussetzung für die Wiederverwendung von Objekten ist.
Ein wiederverwendbares Objekt besitzt keinerlei Nachteile. Daher ist in der BRFplus-Workbench das Ankreuzfeld Ist wiederverwendbar nicht nur standardmäßig aktiviert, sondern kann in den meisten Fällen auch nicht deaktiviert werden. In seltenen Fällen können Sie jedoch entscheiden, nicht wiedervendbare Objekte anzulegen. Beachten Sie hierzu jedoch Folgendes:
Nur Ausdrücke können als nicht wiederverwendbar definiert werden.
Dies ist nur möglich, wenn Sie einen Ausdruck über den Kontext eines anderen Objekts anlegen und nicht über den Objektbaum in der Repository-Sicht. Beispielsweise können Sie einen unbenannten (und damit nicht wiederverwendbaren) Ausdruck im Kontext einer Funktion anlegen, indem Sie im Objektmenü des Feldes Oberster Ausdruck über Anlegen... einen neuen obersten Ausdruck anlegen.
Objektschachtelung und unbenannte Objekte
Statt Objekte über den Objektbaum im Navigationsbereich der Workbench anzulegen, können Sie in einigen Situationen ein neues Objekt direkt in ein vorhandenes Objekt einbetten. Dies ist für folgende Aufgaben möglich:
Zuordnung eines neuen Ausdrucks zu einem übergeordneten Objekt (z.B. Zuordnung eines obersten Ausdrucks zu einer Funktion, eines Bereichsausdrucks zu der Zelle einer Entscheidungstabelle, usw.)
Zuordnung einer neuen Regel zu einem Regelsatz
Das Anlegen von Objekten innerhalb von Objekten ist bequem, da Sie den Kontext, in dem Sie arbeiten, nicht verlassen müssen. Außerdem ist es die einzige Möglichkeit Objekte anzulegen, ohne einen Objektnamen zu definieren. Das Arbeiten mit unbenannten Objekten hat folgende Konsequenzen:
Unbenannte Objekte können nur von dem Container-Objekt verwendet werden, in dem sie angelegt wurden.
Unbenannte Objekte werden weder im Repository-Objektbaum noch im Objektabfragedialog noch in der Ergebnisliste der erweiterten Suche angezeigt.
Folglich sind unbenannte Objekte nicht wiederverwendbar.
Wenn das Container-Objekt gelöscht wird, bleiben seine enthaltenen unbenannten Objekte im System. Da diese Objekte dann unsichtbar sind, können Sie nicht darauf zugreifen und sie wie andere Objekte löschen. Um nicht verwendete unbenannte Objekte aus dem System zu löschen, wählen Sie und führen Sie die Operation Nicht verwendete Objekte löschen aus.
Implizites Anlegen von Objekten über Datenbindung
Sie können Datenobjekte jedes Typs (Element, Struktur, Tabelle) nicht nur über die manuelle Definition ihrer Attribute anlegen, sondern auch indem Sie eine Referenz zu einem Objekt definieren, das bereits im Data Dictionary des Backend-Systems vorhanden ist. Diese Art des Anlegens von Objekten wird Datenbindung genannt. Wenn Sie diese Option verwenden, bestimmt das System die Abhängigkeiten des referenzierten Dictionary-Objekts und versucht automatisch, das Dictionary-Objekt auf BRFplus-Seite bestmöglich darzustellen. Je nach Situation im Dictionary können Sie mit dieser Option eine erhebliche Zeiteinsparung erreichen. Das System kann Folgendes tun:
Element-Datenobjekte
Wenn Sie ein Datenobjekt des Typs Element an ein Datenelement im Dictionary binden, ermittelt das System, ob das Datenelement selbst an eine Domäne gebunden ist. Wenn dies der Fall ist, füllt das System das BRFplus-Datenobjekt mit allen im Dictionary definierten Domänenwerten.
Strukturen und Tabellen
Wenn Sie ein Datenobjekt des Typs Struktur oder Tabelle an eine Dictionary-Struktur oder -Tabelle binden, legt das System automatisch ein Element-Datenobjekt für jedes Feld in der Struktur oder Tabelle an. Zusätzlich legt das System eine Bindungsbeziehung zum entsprechenden Dictionary-Datenelement an. Für jedes Element-Datenobjekt importiert das System auch hier die Domänenwerte, die im Dictionary für dieses Feld definiert sind.