Das Vertec Software Design

So ist die Vertec Architektur aufgebaut

Wer mit Vertec arbeitet, muss sich nicht zwingend für die darunterliegende Architektur interessieren. Für ein tieferes technisches Verständnis ist es aber wichtig zu wissen, welche Designentscheidungen zugrunde liegen.

Die Vertec Businesslogik

Vertec ist als Multi-Tier-Applikation konzipiert und trennt strikt zwischen Datenspeicherung, Geschäftslogik und Darstellung. Die Datenbank ist ein reiner Datenspeicher. Alle Geschäftslogik (Businesslogik) lebt eine Schicht höher, auf dem Applikationsserver. Und die Benutzeroberfläche, das sogenannte UI, stellt die Daten dann dar.

Jede Schicht hat eine klar abgegrenzte Aufgabe – und nur die Businesslogik-Schicht darf auf die Datenbank zugreifen. Die Datenbank nimmt dabei eine bewusst passive Rolle ein: Sie speichert strukturierte Daten, berechnet aber nichts und erzwingt keine Geschäftsregeln - das ist Aufgabe der Businesslogik-Schicht. Diese Trennung ist kein Zufall, sondern das architektonische Fundament, auf dem die gesamte Konsistenz und Zuverlässigkeit der Software beruht.

Die Businesslogik in Vertec ist objektorientiert aufgebaut. Jede Klasse – eine Rechnung, ein Projekt, eine Leistung – trägt ihre eigene Logik in sich. Eine Rechnung zum Beispiel berechnet ihre Mehrwertsteuer selbst. Ein Projekt kennt seinen Budgetstatus. Diese Kapselung stellt sicher, dass Berechnungen konsistent erfolgen, egal von welchem Client oder API aus zugegriffen wird.

Ergänzt wird das durch sogenannte Derived Attributes: berechnete Felder, die nicht in der Datenbank gespeichert werden, sondern ihren Wert zur Laufzeit ermitteln und dabei alle relevanten Abhängigkeiten abonnieren. Ändert sich ein Eingabewert, werden alle betroffenen abgeleiteten Attribute automatisch neu berechnet. Sie bieten einen Mehrwert für die Verwendung in Listeneinstellungen oder in Scripts.

Eine technischere Beschreibung zum Thema finden Sie im Artikel Vertec Objekte, persistente Storage und die Anbindung an das UI.

Konsistenz als Systemversprechen

Das Designprinzip hat einen weiteren entscheidenden Vorteil: Weil alle Clients dieselbe zentrale Businesslogik auf dem Applikationsserver nutzen, verhalten sie sich identisch. Ob jemand per Cloud App, Web App oder mobil über die Phone App arbeitet – die Regeln sind dieselben, die Berechnungen die gleichen, die Validierungen identisch. Es gibt keine «anderen Ergebnisse je nach Client». Und durch die Notif Technologie werden alle Änderungen auf einem Client direkt auf alle anderen Clients in Betrieb transportiert. Siehe dazu auch den Abschnitt Speichern / Datenaktualisierung.

Zugriff auf die Daten

Der Zugriff in Vertec erfolgt nie direkt auf die Datenbank. Die Datenbank ist kein Einstiegspunkt – sie ist ein reiner Datenspeicher. Sie speichert strukturierte Daten, berechnet aber nichts und erzwingt keine Geschäftsregeln. Das ist Aufgabe der Businesslogik-Schicht. Der Zugriff erfolgt deshalb immer über die Businesslogik – auch bei OCL- und SQL-Abfragen innerhalb des Systems.

Warum direkter Datenbankzugriff fatal ist

On-Premises Kunden hosten ihre Vertec Datenbank lokal und könnten theoretisch auch direkt auf diese zugreifen. Das darf aber auf keinen Fall getan werden, denn wie oben erklärt trennt Vertec strikt zwischen Datenspeicherung und Geschäftslogik. Wer diese Trennung umgeht, riskiert inkonsistente Daten – und ein System, das sich selbst nicht mehr versteht.

Ausserdem können über Scripts auf Events kundenspezifische Regeln implementiert werden, die zum Beispiel beim Speichern oder Verlassen eines Feldes ausgelöst werden. Diese Logik ist fester Bestandteil des Datenflusses – und wird beim direkten Datenbankzugriff ebenfalls übersprungen.

Die Trennung zwischen Datenspeicher und Businesslogik ist nicht nur eine technische Designentscheidung – sie ist eine funktionale Notwendigkeit. Die Datenbank alleine kennt keine Geschäftsregeln. Sie weiss nicht, welche Felder voneinander abhängen, welche Berechnungen bei einer Änderung ausgelöst werden müssen oder welche kundenspezifischen Validierungen gelten.

Ein konkretes Beispiel: Wird ein Rechnungsbetrag per SQL direkt in die Datenbank geschrieben, ohne die Businesslogik zu durchlaufen, fehlen möglicherweise die automatisch berechneten Folgewerte – Mehrwertsteuer, Projektbudget-Fortschritt, Abrechnungsstatus. Die Daten sehen oberflächlich konsistent aus, sind es aber nicht. Vertec weiss bei der nächsten Abfrage über den Applikationsserver nichts von dieser Änderung im richtigen Kontext.

Es ist technisch verlockend, komplexe Auswertungen oder Datenmutationen direkt per SQL-Abfrage auf der Datenbank durchzuführen. Das setzt jedoch voraus, dass man die gesamte Vertec-Objektlogik, alle Derived Attributes und alle Event-Skripte kennt und korrekt repliziert – ein untragbares Risiko, das früher oder später zu Datenverlust oder -inkonsistenz führt.

Gleichzeitig ermöglicht dieser Aufbau, dass kundenspezifische Anpassungen an der Businesslogik nur einmal implementiert werden müssen – und sofort für alle Nutzer und alle Plattformen gelten. Kein paralleles Pflegen von Logik in verschiedenen Schichten oder Clients.

Fazit

Vertec ist eine konsequent mehrschichtig aufgebaute Business Software. Die Datenbank ist bewusst als passiver Datenspeicher konzipiert – die gesamte Intelligenz des Systems lebt in der Businesslogik-Schicht. Wer diese Schicht umgeht, etwa durch direkten Datenbankzugriff oder nachgebaute SQL-Logik, verlässt den sicheren Bereich des Systems. Das Ergebnis sind keine harmlosen Abweichungen, sondern stille Inkonsistenzen, die sich oft erst spät und schwer nachvollziehbar zeigen. Der einzig valide Weg, mit Vertec Daten zu arbeiten, führt immer über den Applikationsserver – und damit durch die Businesslogik.

Speichern / Datenaktualisierung

In Vertec gibt es keinen Speichern-Button. Das ist deshalb so, weil eben keine Daten einfach in die Datenbank "gespeichert", sondern durch die Businesslogik verarbeitet werden. Diese sorgt nicht nur dafür, dass die eingegebenen Daten in der Datenbank gesichtert werden, sondern auch alle von diesen abhängigen. Ein Wert kommt in der Businesslogik an, sobald das geänderte Feld verlassen wird.

Wenn verschiedene Benutzer an denselben Datenobjekten arbeiten, ist es wichtig, dass diese jeweils über den aktuellen Zustand der Daten verfügen. Um dies zu gewährleisten, steht die Notif Technologie zur Verfügung. Diese ermöglicht eine automatische Abgleichung der Daten aller Sessions und Apps. 

Jede Vertec Session und jede App, welche gestartet wird, verbindet sich mit dem Cloud Server und sendet diesem alle vorgenommenen Änderungen. Notif teilt dann jedem Client mit, wenn ein anderer Client Daten verändert hat. Dieser hat dann die Möglichkeit, den aktuellsten Stand der Daten neu zu laden. Die Netzwerkbelastung durch Notif ist gering, da nur Angaben zur Identifikation der geänderten Daten übertragen werden und nicht die Daten selbst. Der Notif hat standardmässig eine Latenzzeit von 10 Sekunden für die Meldung der Änderungen. Das heisst, auf einem Client geänderte Daten kommen in 10 Sekunden auf den anderen Clients an.

Es gibt in Vertec auch keinen Rückgängig-Button. Das ist deshalb so, weil es in Vertec nicht wie z.B. bei einem Word einfache Änderungen sind, die man rückgängig machen könnte, sondern hinter sehr vielen Änderungen steht Businesslogik, die abläuft, auch kundenspezifische, in Event-Skripts. Jede Funktion müsste ein "umkehrbar" implementieren, und jeder Schritt in der Businesslogik rückwärts ablaufen. Das ist nicht möglich.

Änderungen können aber mit dem Audit Trail auch im Nachhinein nachvollzogen werden. Auch ohne "Rückgängig" Möglichkeit ist der vorherige Zustand also nicht einfach verloren. Die Zusatzfunktion Audit Trail Objekthistorie bringt den Objektverlauf zur Ansicht direkt auf Ihre Vertec Oberfläche.

Vertec Apps / Benutzeroberfläche

Auch die Darstellung der Daten auf der Oberfläche, also die oberste Schicht des Modells, greift immer auf die Businesslogik zu und zeigt nicht einfach "Felder in der Datenbank". Wie oben bereits erläutert ermöglicht dieser Aufbau, dass kundenspezifische Anpassungen auch an der Benutzeroberfläche nur einmal implementiert werden müssen – und sofort für alle Nutzer und alle Plattformen gelten. Kein paralleles Pflegen von Logik in verschiedenen Schichten oder Clients.

So ist die Oberfläche von full-featured Apps immer gleich - einmal angepasst, erscheint sie in der Cloud App, der Web App und der Desktop App automatisch überall gleich. Anders bei den specialized Apps: die Phone App und die Outlook App haben fixe Oberflächen, die durch den Kunden nicht angepasst werden können. 

Einträge / Pflichtfelder

Wird ein Eintrag neu erzeugt, gibt es je nach Objekt gewisse Felder, die ausgefüllt werden müssen, damit er gültig wird. Eine Leistung braucht beispielsweise einen Aufwand (geleistete Zeit), ein Projekt einen Code, eine Adresse einen Namen, damit sie sinnvoll in Vertec verwendet und zugeordnet werden können. Detailliert beschrieben ist das im Artikel Gültigkeit / Status von Einträgen. Das sind von Vertec vorausgesetzte Pflichtfelder.

Mit Constraints können aber auch kundenspezifische Gültigkeitsbedinungen angelegt werden. Hier muss einfach gut darauf geachtet werden, dass nur persistente (also keine berechneten) Datenfelder und keine Associations (also Verknüpfungen zu anderen Objekten) geprüft werden, da dies zu einem signifikanten Performanceverlust führen kann. Für die Prüfung von solchen Bedingungen eignen sich andere Mittel, zum Beispiel Kontrollisten via SQL-Ordner oder Expression-Ordner.

Vererbung nach unten / Aggregation nach oben

Es gibt in Vertec Werte, die "erben" ihren Wert innerhalb einer Hierarchie (Cascading Attributes). Jeder Wert innerhalb der Hierarchie erbt jeweils den Wert vom Objekt oberhalb.Auf jeder Ebene ist es wiederum möglich, den geerbten Wert zu überschreiben und ihn damit für diese Ebene zu fixieren. Die untergeordneten Werte erben dann ebenfalls diesen überschriebenen Wert.

Cascading Attributes stellen ihren Wert entweder in schwarzer Schrift (Wert ist geerbt) oder in grüner Schrift (Wert ist auf dieser Ebene überschrieben) dar. Beispiele dafür sind der Ansatz von Leistungen oder die Eruierung eines Zahlungstyps. 

Möchte man einen fixierten Wert löschen und damit wieder erben, kann man den Wert in grüner Schrift einfach löschen. Der Wert erscheint dann wieder in Schwarz und ist somit wieder geerbt. 

Dann wiederum gibt es Werte, die nach "oben" aggregieren, also auf einer übergeordneten Ebene summiert werden. Ein Beispiel dafür sind Budgetwerte von TaetigkeitPhaseLinks zu Phasen zu Projekt. 

Solche Attribute sind immer derived, also Berechnete Datenfelder (Derived Attributes), die ihren Wert zu Laufzeit berechnen. Wird ein Wert auf einer Ebene fix gesetzt, wird dabei der sogenannte x-Wert beschrieben. Beispiel auf einer Leistung: ansatzext ist derived, xAnsatzext ist fixiert. 

Verknüpfungen von Objekten

Jedes Objekt in Vertec ist mit anderen Objekten verknüpft, zum Beispiel eine Adresse als Kunde eines Projekts, ein Bearbeiter mit seinen Leistungen, etc. Diese Associations genannten Verknüpfungen sind vom Vertec Modell vorgegeben und damit automatisch vorhanden. Mittels Wrapper-Link-Typen werden solche eingebauten Verknüpfungen auf der Oberfläche sichtbar gemacht, und die verknüpften Objekte erscheinen auf den Einträgen in einem Unterordner (Link Container), zum Beispiel die Leistungen auf einem Bearbeiter.

Eine Vielzahl von Wrapper-Link-Typen wird mit Vertec bereits mitgeliefert - alle diejenigen, die man für ein sinnvolles Arbeiten mit Vertec braucht. Kunden können aber auch selbst solche Wrapper-Link-Typen anlegen, um Associations des Modells sichtbar zu machen. Das gesamte Vertec Modell lässt sich im Vertec Model Browser einsehen.

Kundenspezifische Verknüpfungen zwischen Objekten können ebenfalls definiert werden. Dafür gibt es die Custom-Link-Typen, mit denen eingestellt werden kann, welche Objekte sich wie mit anderen Objekten verknüpfen lassen. Ein Beispiel wäre die Verknüpfung von Personen (als Verwaltungsräte) mit Firmen (als VR-Mandate). Diese können dann via Drag & Drop miteinander verknüpft werden. Die Darstellung auf der Oberfläche ist gleich wie bei den Wrapper-Link-Typen - die verknüpften Objekte erscheinen in einem Unterordner (Link Container).

Navigation / Suche / AI

Für die Navigation in Vertec gibt es links eine Baumansicht, mit welcher wie in einem Explorer durch die Ordnerstruktur navigiert werden kann. Wird im Baum ein Ordner markiert, erscheint rechts die Liste der Objekte, die sich in diesem Ordner befinden. Diese Objekte können via Doppelklick in der Einzelansicht geöffnet werden. Auch in der Einzelansicht gibt es links einen Baum, damit auf die Unterordner des Objekts navigiert werden kann. Kunden können eigene Ordner erstellen und die bestehende Ordnerstruktur anpassen. 

Für die allgemeine Suche nach Vertec Daten gibt es die Vertec Volltextsuche. Sucht man nach Kriterien in bestimmten Objekten, z.B. "alle Rechnungen eines Jahres", eignen sich SQL-Ordner, wo spezifische Such- und Filterfelder angelegt werden können.

Mit der Abfragesprache OCL kann zu Laufzeit durch das gesamte Vertec Modell navigiert und Daten abgefragt werden. Dafür gibt es den OCL Expression Editor. Das Vertec Modell ist im Vertec Model Browser zu finden. 

Es kann auch ein externes LLM (Large Language Model) an Vertec angebunden und Vertec so als LLM Client verwendet werden, mit dem LLM-Funktionalitäten von verschiedenen Anbietern wie Open AI, Anthropic oder Google Gemini direkt in Vertec genutzt werden können. Dabei wird reiner Text verarbeitet, es handelt sich dabei also um eine Verarbeitung von unstrukturierten Daten (also ohne Modellinformationen), was sich gut für automatisierte Zusammenfassungen oder Formulierungen innerhalb von Vertec eignet.

Für Abfragen von Vertec Daten von aussen gibt es das Vertec REST API und den Vertec MCP Server, mit welchem Vertec an AI-Anwendungen von externen Systemen angebunden werden kann. Damit können AI-Clients wie Claude, Copilot oder ChatGPT eine Verbindung zu Vertec herstellen und sowohl strukturierte Daten abfragen als auch Aufgaben in Vertec ausführen, zum Beispiel neue Objekte erzeugen. 

Anpassbarkeit / Customizing

Durch das mehrschichtige Design der Vertec Architektur ist es möglich, Vertec individuell anzupassen, um unterschiedliche Ansprüche kundenspezifisch umzusetzen.

Die Datenstruktur und die bestehende Businesslogik bleiben dabei immer bestehen. Auf dieser Grundlage kann auf der Vertec Oberfläche mit den Daten "gespielt" werden. Das einfachste Customizing besteht dabei in individuellen Listeneinstellungen sowie dem Anlegen eigener Ordner, um Daten zu gruppieren und darzustellen. 

Die bestehenden Daten können beliebig abgefragt werden, via OCL, in Expression- oder in SQL-Ordnern, oder in individuellen Office-Berichten (Word, Excel, PDF) ausgegeben werden. Auch das Erstellen von eigenen Klassen (Zusatzklassen) und Feldern (Zusatzfelder) ist möglich. 

In die Businesslogik "eingreifen" kann man via Python Scripts. Damit können Aktionen gesteuert werden, sowohl ausgelöst durch den User (Scripts als Menüpunkte oder via Button) als auch automatisch durch Vorgänge in Vertec (Scripts auf Events). Dadurch lässt sich die Funktionalität von Vertec nach Belieben erweitern.

Sehr wichtig ist bei jedem Customizing, dass auf einen performanten Zugriff auf die Vertec Objekte sowie auf Nachvollziehbarkeit geachtet wird. Beachten Sie dazu auch unseren 10-Punkte-Plan für eine zukunftsfähige Vertec-Installation.

Mit Zusatzfunktionen, die Vertec kostenlos bereitstellt und wartet, können zusätzliche, oft branchen- oder länderspezifische Funktionen in Vertec importiert werden, z. B. die Reisekostenabrechnung in Deutschland oder das Mandatsmanagement in der Schweiz. Auch bei den Zusatzfunktionen handelt es sich um reines Vertec Customizing. Statt das aber mühsam selber erstellen zu müssen, kann es einfach per Knopfdruck eingepflegt werden. Der Vorteil an von Vertec bereitgestellten Zusatzfunktionen ist zudem, dass sie langjähriges Know-How und Branchenkenntnisse bündeln und standardisiert sind (Best Practise). Da mit den Zusatzfunktionen einfach Customizing importiert wird, kann dieses danach bei Bedarf auch noch angepasst oder erweitert werden. 

Hier finden Sie eine Einführung in das Vertec Customizing.

Updatefähigkeit

Durch das Vertec Software Design ist Vertec auch konsequent updatefähig. Ihre Anpassungen bleiben bei einem Update bestehen, da sie "nur" die Oberfläche betreffen, auf der bestehenden Businesslogik und der bestehenden Datenstruktur aufbauen, diese aber nicht verändern.

Beim Anpassen der Businesslogik achten wir stets auf Rückwärtskompatibilität, und bei Änderungen an der Datenstruktur wird Ihre Vertec Datenbank beim Update automatisch in die neue Struktur konvertiert. Sollte die Rückwärtskompatibilität einmal nicht konsequent eingehalten werden können oder gewisse Elemente in Vertec abgekündigt werden, wird dies in den Release-Notes mit genügend Vorlauf transparent angekündigt. Die Release-Notes finden Sie immer im Artikel der aktuellen Vertec Version.

Es gibt zwei Arten von Releases: Major und Minor Releases. Der Unterschied besteht darin, dass Minor Releases nur die Businesslogik und die Oberfläche betreffen. Die Minor Releases können jederzeit eingespielt werden und erscheinen in regelmässigen Abständen ca. alle paar Wochen. Bei Major Releases gibt es zusätzlich Anpassungen an der Datenstruktur (zum Beispiel bei der Einführung von grundlegend neuen Objekten), und die Vertec Datenbank wird (automatisch) konvertiert. Major Releases erscheinen in grösseren Abständen, ca. alle 1-2 Jahre, und werden als "neue Vertec Version" angekündigt. Ein Major Release enthält immer auch alle dazwischen erschienenen Minor Releases. 

Anbindung an Drittsysteme

Mittels Schnittstellen kann Vertec an Drittsysteme angebunden werden. Sowohl ausgehend, zum Beispiel an Ihre Buchhaltung, als auch eingehend, also für die Abfrage und Steuerung von Vertec von aussen, zum Beispiel via Vertec MCP Server.

Durch die Vertec Achitektur ist auch bei der Arbeit mit den Schnittstellen sichergestellt, dass die Businesslogik greift. Auch hier werden via Schnittstelle keine Daten direkt aus der Datenbank ausgelesen oder in diese geschrieben.

Eine Vielzahl von Schnittstellen, in Vertec Extensions genannt, werden mit Vertec mitgeliefert. Hier finden Sie Alle Vertec Schnittstellen auf einen Blick

Es können auch eigene Schnittstellen und individuelle Webservices erstellt werden. 

Netherlands

United Kingdom