| Auszug | ||
|---|---|---|
| ||
Nuclos virtuelles Businessobjekt: View, intid, intversion, ID Factory, UPDATE RULE, VBO, Stammdaten, Datenbankobjekte. |
Sprache: Deutsch · English
Businessobjekte auf Basis einer Datenbank-View – Pflichtspalten, ID-Factory, Anlage per Wizard und Schreibzugriff via UPDATE RULE.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||
|---|---|---|---|---|
| ||||
Auf dieser Seite
|
Der Unterschied zwischen einem normalen Businessobjekt und einem virtuellen Businessobjekt ist, dass die Daten eines virtuellen BOs auf eine View basieren.
Voraussetzung für die Anlage eines virtuellen BOs ist also eine View. Zur Anlage einer View siehe Datenbankobjekte
|
Ein virtuelles Businessobjekt basiert nicht auf einer Tabelle, sondern auf einer Datenbank-View. Voraussetzung ist daher eine View (siehe Datenbankobjekte).
Die View muss mindestens diese
...
Spalten enthalten (exakte Bezeichnung
...
!):
| Codeblock | ||
|---|---|---|
| ||
intid, -- Datensatzidentifizierer
strcreated, -- Ersteller als String
datcreated, -- Erstellungsdatum
strchanged, -- Änderer als String
datchanged, -- Änderungsdatum
intversion -- Datensatzversion |
Sofern auf die Daten des virtuellen BOs referenziert werden soll, muss die Spalte "intid" ein eindeutiger Wert sein.
Bei Werten, die als Referenz auf einen anderen Datensatz eingerichtet werden sollen, muss der Spaltenname mit "intid_str" beginnen.
Die Datentypen werden von Nuclos automatisch ermittelt. Sollte es da zu komischen Werten kommen, hilft ein expliziter cast. Beispiel: Ein durch eine DB-Funktion berechnetes Attribut liefert eigentlich "numeric(12,2)" zurück, aber Nuclos macht daraus "numeric(131089, 0)".
...
intid muss eindeutig sein, wenn referenziert wird.intid_str….db_funktion(intid)::numeric(9,2))...
...
| Warnung | |
|---|---|
|
...
Die Bezeichnung der Attribute in der Datenquelle und im Businessobject sind case sensitiv und müssen gleich sein.
Um Fehler zu vermeiden, sollten die Spaltennamen alle klein geschrieben sein und dürfen keine Sonderzeichen enthalten, es sollten also keine Hochkommata erforderlich sein
| |
Spaltennamen: klein, ohne Sonderzeichen, max. 30 Zeichen. Bezeichnungen in Datenquelle und BO sind case-sensitiv und müssen übereinstimmen. Gut: |
|
...
Die Spaltennamen dürfen außerdem nicht mehr als 30 Zeichen haben.
Nebenstehend ein Beispiel einer View, so wie sie für ein virtuelles Businessobjekt verwendet werden könnte.
| Tipp |
|---|
Virtuelle BOs können auch verwendet werden, wenn feste Stammdaten im System hinterlegt werden sollen, dessen Dateninhalte dann auch Bestandteil des Nuclets sein sollen. Nebenstehend ein Beispiel für nicht veränderbare Druckertypen. |
Weitere Beispiele:
PostgreSQL
. |
Zum Schreiben über ein virtuelles BO wird eine ID-Factory (Sequence-Funktion) benötigt:
| Codeblock | ||
|---|---|---|
|
...
CREATE OR REPLACE FUNCTION Y25N_IDFACTORY()
RETURNS numeric
LANGUAGE 'plpgsql' COST 100
VOLATILE
AS $BODY$DECLARE
id numeric;
BEGIN
SELECT NEXTVAL('idfactory') INTO id; RETURN id;
END;$BODY$; |
Im Businessobjekt-Wizard ein neues BO anlegen
...
und in Schritt 2
...
über Erweiterte Eigenschaften einblenden
...
:
...
...
...
...
...
...
...
...
...
...
...
Erweiterte Eigenschaften des virtuellen BO.
| Info | ||
|---|---|---|
| ||
Zum Anlegen/Löschen von Datensätzen über Nuclos ist zusätzlich eine UPDATE RULE nötig, die das Update auf die zugrunde liegende(n) Tabelle(n) ausführt. |
Zuerst die View unter Datenbankobjekte anpassen und speichern, dann den Businessobjekt-Wizard erneut durchlaufen.
| Tipp | ||
|---|---|---|
| ||
Virtuelle BOs eignen sich auch für feste Stammdaten als Teil eines Nuclets (z.B. Herr/Frau, Ja/Nein, Himmelsrichtungen). |
Bei Referenzfeldern muss noch die Information zum referenzierenden BO eingetragen werden.
Zum Speichern der Inhalte muss dem virtuellen BO eine ID-Factory (Sequence) hinterlegt werden,
und es muss eine UPDATE RULE eingerichtet werden, die das tatsächliche Update auf der/n
zugrundeliegende(n) Tabelle/n ausführt. Sollen in dem virtuellen BO auch Datensätze über Nuclos
angelegt (bzw. gelöscht) werden.