Beispiele / Bäckerei

Die Bäckerei aufbauen und betreuen

Dieselbe Bäckerei aus Sicht der Administratorin und des Administrators: Wie sind Daten, Abläufe und Rechte aufgebaut, und wo ändert man etwas? Alles lässt sich im Browser einrichten. Die Beispiele stammen aus der Demo-Instanz, hier mit dem Admin-Benutzer Kurt.

Spaces: die Datenmodelle

Ein Space beschreibt eine Art von Datensatz. Die Bäckerei hat elf davon, etwa Produkt, Zutaten, Kunde, Bestellung und Wareneingang. Jeder Space hat Felder und eigene Rechte und kann einen Workflow haben, und alles ist unter „Administration“ erreichbar.

Die Liste aller Spaces der Bäckerei
Die Liste aller Spaces der Bäckerei

Im Space „Produkt“ stehen Name, Verkaufspreis und die Beziehungen zu Kategorie und Zutaten. Für jedes Feld legt man Typ, Pflichtangabe, Standardwert und Beschreibung fest. Ein Feld kann eindeutig sein, eine Einheit tragen oder auf einen anderen Space verweisen. Änderungen speichert man pro Feld, die Reihenfolge der Felder ändert man per Ziehen.

Die Felder des Space „Produkt“
Die Felder des Space „Produkt“

Workflows: Status und erlaubte Übergänge

Eine Bestellung durchläuft Stationen: Neu, Bezahlt, Abgeschlossen oder Storniert. Der Workflow „Bestellstatus“ legt diese Stationen und die erlaubten Übergänge fest. Man zeichnet ihn direkt im Diagramm: Status anlegen, Flows verbinden, speichern.

Der Workflow „Bestellstatus“ im Diagramm-Editor
Der Workflow „Bestellstatus“ im Diagramm-Editor

Skripte: Regeln mit eigenem Verhalten

Wo die Standardfunktionen nicht reichen, schreibt man kleine Skripte. Das Skript „BestellstatusRollenfilter“ entscheidet, welche Übergänge ein Benutzer gehen darf: Wer die Rolle Kassierer hat, darf alle, alle anderen nur „Stornieren“. Es ist an den Space „Bestellung“ als Flow-Bedingung gehängt, deshalb sieht Lena im Diagramm weniger Möglichkeiten als Jan.

Das Skript „BestellstatusRollenfilter“ mit seinem Quelltext
Das Skript „BestellstatusRollenfilter“ mit seinem Quelltext

Weitere Skripte der Bäckerei laufen automatisch beim Anlegen von Datensätzen. Beim Anlegen einer Bestellposition prüft ein Skript den Lagerbestand und übernimmt den Preis aus dem Produkt. Danach verbucht ein zweites den Abgang. Beim Wareneingang erhöht ein Skript den Bestand der Zutat.

Views: was Benutzer zu sehen bekommen

Eine View legt fest, wie Daten angezeigt werden: als Liste oder als einzelner Datensatz, nur lesend oder zum Bearbeiten, und welche Felder dabei sind. Die View „ProduktList“ ist eine Liste mit vier Spalten. Jede Spalte hat eine Beschriftung, kann schreibgeschützt sein und auf eine andere View verweisen. Das Anzeige-Label bestimmt die Überschrift, die Benutzer sehen.

Die View „ProduktList“ mit ihren Feldern
Die View „ProduktList“ mit ihren Feldern

Den Inhalt einer View stellt man im Query-Builder zusammen. Man wählt den Space, hakt Felder an und folgt Beziehungen zu verknüpften Daten. Aus der Auswahl entsteht die Abfrage samt Speicher-Schritten. Optional ergänzt man eine WHERE-Bedingung und ein Limit.

Der Query-Builder für die View „ProduktList“
Der Query-Builder für die View „ProduktList“

Rollen und Rechte

Wer was darf, hängt an Rollen. Die Bäckerei kennt drei: Mitarbeiter, Bäcker und Kassierer. Bäcker und Kassierer enthalten die Rolle Mitarbeiter, erben also dessen Rechte und ergänzen eigene. Den Rollen weist man Benutzer zu.

Die Rollen der Bäckerei und ihre Verschachtelung
Die Rollen der Bäckerei und ihre Verschachtelung

Die Rechte sind pro Space und Rolle einstellbar: lesen, anlegen, ändern, löschen, Skripte ausführen, Workflow-Übergänge auslösen und mehr. Der Kassierer darf zum Beispiel Bestellungen und Kunden bearbeiten und Workflow-Schritte auslösen, mehr nicht. Auch die Menüeinträge sind an Rollen gebunden. Das erklärt die unterschiedlichen Menüs von Paul, Jan und Lena.

Die Rechte der Rolle „Kassierer“ pro Space
Die Rechte der Rolle „Kassierer“ pro Space