Sprache: Deutsch · English
Eigene Views, Funktionen und Prozeduren als Teil eines Nuclets – inkl. Reihenfolge/Löschanweisung und CA_-Konvention.
HOW-TO ANWENDUNGSENTWICKLER STAND: JUL 2026 GILT FUER NUCLOS 4.2026.X
Auf dieser Seite
Datenbankobjekte konfigurieren benutzerdefinierte Views, Funktionen, Prozeduren usw. als Teil eines Nuclets – bei einem Nuclet-Transfer werden sie mitübernommen. Typische Anwendungen: DB-Funktionen für berechnete Attribute, Views für virtuelle Businessobjekte oder Packages für Jobs.
Menüaufruf: Konfiguration → Datenbank → Datenbankobjekte
Abhängigkeiten unter PostgreSQL
Über das Feld Reihenfolge (seit Nuclos 3.10) legst du Abhängigkeiten fest: Beim Ändern/Transfer werden alle Objekte in absteigender Reihenfolge gelöscht und in aufsteigender wieder angelegt. Voraussetzung ist ein Löschstatement je Objekt.
Zuerst ein Datenbankobjekt mit passendem Typ anlegen: function, index, package, package body, procedure, view. Für jedes unterstützte Datenbanksystem kann ein eigenes Objekt hinterlegt werden; herangezogen wird das des aktiven Systems.
Namenskonvention
Soll eine Function für ein berechnetes Attribut dienen, muss ihr Name mit CA_ beginnen – nur solche Objekte erscheinen im BO-Assistenten zur Auswahl.
Datenbankobjekt anlegen und Typ zuweisen.
Im Datenbankobjekt-Quelltext (Konfiguration → Datenbank → Datenbankobjekt-Quelltexte) trägst du den DB-spezifischen Code ein. Ist Aktiv gesetzt, wird das Objekt beim Speichern erzeugt/aktualisiert. Den Schema-/DB-Namen setzt Nuclos automatisch davor – nicht selbst angeben. Die Löschanweisung wird beim Löschen des Datensatzes ausgeführt.
Maske „Datenbankobjekt-Quelltext“.
CREATE OR REPLACE FUNCTION <name>(imoduleid numeric) RETURNS numeric AS $BODY$ $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100;v
CREATE OR REPLACE FUNCTION GET_NEXT_NUMBER(imoduleid numeric) RETURNS numeric AS $BODY$ DECLARE iresult NUMERIC (20, 0); BEGIN SELECT intnaechstenummer INTO iresult FROM t_eo_nummern WHERE strbezeichnung = 'Kundennummer'; RETURN iresult; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100;
DROP FUNCTION IF EXISTS GET_NEXT_NUMBER(imoduleid numeric) CASCADE
Achtung
Bei PostgreSQL muss immer eine Löschanweisung angegeben werden.