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

 Konfiguration

Die View, die für das virtuelle BO verwendet werden soll, muss dabei mindestens folgende Spalten enthalten (exakte Bezeichnung einhalten !):

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)".

 Dann hilft ein cast des Ergebnisses "db_funktion(intid)::numeric(9,2)" direkt in der View.

Wichtige Hinweise für die Benennung der Spalten

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

  • (Fehler) Datum
  • (Fehler) "Datum (Ist)"
  • (Fehler) Qualitätsmerkmal
  • (Haken) datum
  • (Haken) datum_ist
  • (Haken) qualitaetsmerkmal

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.



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
  • ...





 

ID-Factory Beispiel

PostgreSQL

ID Factory
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 ein neues BO anlegen.

Im Schritt 2 (Allgemeine Eigenschaften) wird der Button Erweiterte Eigenschaften einblenden betätigt und es klappt der Bereich für die Konfiguration des virutellen BOs hoch.

  • Virtuelles Businessobjekt: Auswahl der View, die im obigen Schritt vorbereitet wurde. Steht die View nicht zur Auswahl, so ist diese evtl. nicht gültig oder enthält Fehler
  • Id Factory für VE (optional): hier kann eine Datenbankfunktion gewählt werden, wenn Daten über das virutelle BO in eine Tabelle geschrieben werden sollen. Das BO wird dann automatisch in den Änderungsmodus gesetzt und der Haken unter "Ist das Businessobjekt änderbar?" automatisch aktiviert.
  • Tabellenname: dieses Feld wird bei virtuellen BOs leer gelassen, da statt einer Tabelle eine View die Grundlage darstellt


Im nächsten Schritt des 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.



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 weden, 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.

  • Keine Stichwörter