Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Auszug
hiddentrue

Nuclos virtuelles Businessobjekt: View, intid, intversion, ID Factory, UPDATE RULE, VBO, Stammdaten, Datenbankobjekte.

globe with meridians Sprache: Deutsch · English

hammer and wrench Virtuelle Businessobjekte

Businessobjekte auf Basis einer Datenbank-View – Pflichtspalten, ID-Factory, Anlage per Wizard und Schreibzugriff via UPDATE RULE.

Status
colourPurple
titleHow-to
Status
colourBlue
titleAnwendungsentwickler
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2

Definition

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

Image Removed

 Konfiguration

minLevel2

Was ist ein virtuelles BO?

Ein virtuelles Businessobjekt basiert nicht auf einer Tabelle, sondern auf einer Datenbank-View. Voraussetzung ist daher eine View (siehe Datenbankobjekte).

Anforderungen an die View

Die View muss mindestens diese

...

Spalten enthalten (exakte Bezeichnung

...

!):

Codeblock
languagesql
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.

(Warnung) 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.
  • Referenzspalten beginnen mit intid_str….
  • Datentypen ermittelt Nuclos automatisch; bei falschen Typen hilft ein expliziter Cast in der View (z.​B.
  • db_funktion(intid)::numeric(9,2))

...

  • .

...

Warnung
title

...

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

Benennungsregeln

Spaltennamen: klein, ohne Sonderzeichen, max. 30 Zeichen. Bezeichnungen in Datenquelle und BO sind case-sensitiv und müssen übereinstimmen. Gut: datum, datum_ist – schlecht: Datum,

"Datum (Ist)"

...

Die Spaltennamen dürfen außerdem nicht mehr als 30 Zeichen haben.

Beispiel

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:

  • männich, weiblich
  • Herr, Frau
  • Ja, Nein
  • Norden, Süden, Osten, Westen
  • ...

Image RemovedImage Removed

 

ID-Factory Beispiel

PostgreSQL

.

ID-Factory (Beispiel PostgreSQL)

Zum Schreiben über ein virtuelles BO wird eine ID-Factory (Sequence-Funktion) benötigt:

Codeblock
languagesql

...

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$;

Virtuelles BO anlegen

Im Businessobjekt-Wizard ein neues BO anlegen

...

und in Schritt 2

...

über Erweiterte Eigenschaften einblenden

...

:

  • Virtuelles Businessobjekt:

...

  • die vorbereitete View wählen (fehlt sie, ist sie evtl. ungültig).
  • Id Factory für VE (optional):

...

  • DB-Funktion, wenn

...

  • über das

...

  • BO

...

  • geschrieben werden

...

  • soll – das BO wird dann automatisch

...

  • änderbar

...

  • .
  • Tabellenname:

...

  • bei virtuellen BOs leer

...

  • lassen.
Image Modified

...

Erweiterte Eigenschaften des virtuellen BO.

Info
titleSchreibzugriff

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.

Virtuelles BO ändern

Zuerst die View unter Datenbankobjekte anpassen und speichern, dann den Businessobjekt-Wizard erneut durchlaufen.

Tipp
titleAnwendungsfall

Virtuelle BOs eignen sich auch für feste Stammdaten als Teil eines Nuclets (z.​B. Herr/Frau, Ja/Nein, Himmelsrichtungen).

Verwandte Seiten

file cabinet Businessobjekt


Datenmodell.

Öffnen →

file cabinet Datenbankobjekte


Views.

Öffnen →

BO-Wizard sind nun automatisch alle Attribute aufgelistet, die in der View als Datenspalten angegeben wurden. Nun können nachräglich der Anzeigename bzw. die Beschreibung verändert werden.

Bei Referenzfeldern muss noch die Information zum referenzierenden BO eingetragen werden.

Image Removed

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.

Virtuelles BO ändern

Soll ein virtuelles BO geändert werden, so muss zunächst die View in Datenbankobjekte angepasst und gespeichert werden. Anschließend muss der Businessobjekt für dieses Objekt neu durchlaufen und ebenfalls angepasst werden.