Datenmodell

Ereignisregeln

Eine Ereignisregel füllt Felder, wenn mit einem Objekt etwas geschieht: eine laufende Nummer beim Anlegen, das Datum der Erfassung, den Namen dessen, der das Objekt angelegt hat, oder einen Wert, der sich aus anderen Feldern ergibt. Die Regeln stehen unter Datenmodell › Ereignisregeln (Status 9), die Nummernkreise, aus denen sie zählen, unter Datenmodell › Nummernkreise. Die Seite hat drei Reiter: Ereignisse, Felder und Nummernkreise.

Seite Ereignisregeln mit den Reitern Ereignisse, Felder und Nummernkreise, darunter die Auslöser Objekt angelegt, Import, Objekt verknüpft und Feld gespeichert. Links die Regeln des Auslösers „Objekt angelegt“ als nummerierte Kette, je mit Zielfeld, Vorlage und Beispielwert; rechts die erste Regel mit Auslöser, Verhalten, Feldern, Nummernkreisen und Wert.

Auslöser

AuslöserWann die Regel läuft
Objekt angelegtBeim Anlegen und Kopieren eines Objekts, auch im Excel-Import; einmal je Projekt, in das das Objekt kommt
ImportAm Ende eines Excel-Imports, für alle Objekte des Laufs
Objekt verknüpftWenn ein Objekt in ein weiteres Projekt aufgenommen wird, je Mitgliedschaft
Feld gespeichertWenn das überwachte Feld gespeichert wird, von Hand, durch eine andere Regel oder durch das Erben

Unter Feld gespeichert stehen die überwachten Felder als eigene Auswahl. Für den Excel-Import lässt sich je Regel wählen: auslösen sammelt die Auslösungen je Objekt und Feld und führt sie einmal am Ende des Laufs auf dem Endwert aus; stumm lässt die Regel im Import aus.

Reihenfolge, Kette und Tabelle

Links stehen die Regeln des gewählten Auslösers in der Reihenfolge, in der sie laufen. Die Reihenfolge ändern Sie durch Ziehen. Jede Karte zeigt das Zielfeld, die Vorlage und einen Beispielwert; der Schalter an der Karte schaltet die Regel ab, ohne sie zu löschen. Der Schalter Tabelle zeigt dieselben Regeln als Tabelle. Die Trennlinie zwischen Liste und Detail lässt sich verschieben.

Bei Feld gespeichert kann eine Regel die nächste auslösen. Wählen Sie ein überwachtes Feld, zeigt die Folgekette, welche Regeln nacheinander laufen. Eine Tiefengrenze gibt es nicht: Die Kette endet, wenn ein Feld ein zweites Mal geschrieben werden soll. Diese Stelle ist rot markiert. Die Prüfung trifft auch zwei Regeln, die dasselbe Feld rechtmäßig schreiben; die Meldung beim Speichern eines Objekts nennt dann das Feld und beide Regeln.

Eine Regel anlegen

Regel fragt zuerst nach dem Zweck und füllt das Formular passend vor:

ZweckVorbelegung
Laufende NummerAuslöser Objekt angelegt, Vorlage {nr:nummer}, ein Nummernkreis mit dem Schlüssel nummer
ZeitstempelVorlage {jahr}-{monat}-{tag}
ErfasserVorlage {benutzer}
Feld aus anderen FeldernAuslöser Feld gespeichert, eine JavaScript-Funktion mit Ziel- und Quellfeld
Leere Regelnichts

Eigenschaften

EigenschaftBedeutung
Name, BeschreibungWie die Regel in der Liste und im Verlauf heißt
Ereignis, Überwachtes FeldDer Auslöser; bei Feld gespeichert das Feld, auf das die Regel wartet
GeltungGlobal, Alle Sammlungen, Alle Bibliotheken oder ein Projekt. Eine Projektregel läuft nur dort, eine Regel für alle Sammlungen nur in Sammlungsprojekten
KontextAutomatisch schreibt dorthin, wo das Feld im Projekt seinen Wert hat; Basis schreibt den gemeinsamen Wert aller Projekte; Projekt (fork) einen eigenen Wert für das Projekt
Wannnur wenn leer schreibt nur in ein leeres Feld (ein geerbter Wert zählt als gefüllt); immer überschreibt
FelderSchlüssel und Feld. Das erste Feld ist das Ziel der Vorlage, die übrigen lassen sich in der Vorlage lesen. Normdatenfelder sind ausgeschlossen
NummernkreiseDie Kreise, aus denen die Regel zieht, mit ihrem Schlüssel. Aufgeklappt zeigt jeder Kreis seine Einstellungen und Stände; Neuer Nummernkreis … legt einen an
WertVorlage oder JavaScript

Schreibt eine Regel in ein geerbtes Feld, gilt das wie eine Änderung von Hand: Der Wert bleibt danach stehen, auch wenn sich die Quelle ändert. Im Verlauf steht neben der Person der Name der Regel.

Vorlage

Die Vorlagenzeile setzt den Wert aus festem Text und Platzhaltern zusammen. Die Platzhalter unter der Zeile lassen sich anklicken, die Vorschau rechnet mit der nächsten Nummer und dem heutigen Datum.

PlatzhalterLiefert
{nr:schluessel}Die Nummer aus dem Kreis mit diesem Schlüssel, formatiert wie am Kreis eingestellt
{jahr}, {monat}, {tag}Teile des Datums, an dem das Ereignis geschieht
{projekt}, {benutzer}Name des Projekts und der Person, die das Ereignis auslöst
{feld:schluessel}Der Inhalt eines zugeordneten Feldes

Aus ADK-{jahr}-{nr:inventar} wird so ADK-2026-0042. Bedingungen gibt es in der Vorlage nicht; wer eine braucht, schaltet auf JavaScript. Vorlagen laufen ohne den Medien-Dienst; eine Objektanlage hängt nie an ihm.

JavaScript

Die Funktion bekommt die Werte des Ereignisses und gibt zurück, was geschrieben werden soll. Erlaubt ist dieselbe Teilmenge von JavaScript wie bei virtuellen Feldern ; was nicht erlaubt ist, meldet der Editor sofort. Prompt für eine KI kopieren stellt eine fertige Anfrage für ein Sprachmodell zusammen.

NameInhalt
objektDie Felder der Regel, nach Schlüssel: objekt['titel']
nr, nrRohDie gezogenen Nummern nach Kreis-Schlüssel, formatiert ('0042') bzw. als Zahl (42)
jetztZeitpunkt des Ereignisses als Text
benutzer, projektWer das Ereignis auslöst, in welchem Projekt die Regel läuft
ausloeserobject_created, import, object_linked oder field_saved
herkunftBei Feld gespeichert: wer das Feld geschrieben hat, user, rule oder inherit
istNeuWahr, wenn das Objekt in diesem Ereignis entstanden ist
leerleer(v) ist wahr bei fehlendem oder leerem Wert
JS
// Kurzform: der Wert geht in das erste Feld
return `Z-${jetzt.slice(0, 4)}-${nr['depot']}`;
JS
// mehrere Felder; null heißt: nichts tun
const s = objekt['standort'];
if (leer(s)) return null;
return { fields: { kuerzel: String(s).slice(0, 3).toUpperCase() } };

0 wird geschrieben, null, '' und false nicht. JavaScript-Regeln wertet der Medien-Dienst aus; antwortet er nicht, bleibt das Feld leer und das Objekt entsteht trotzdem.

Probelauf

Probelauf im Kopf der Seite oder Ausprobieren unten in der Regel wertet die Regel so aus, wie sie gerade im Formular steht, auch ungespeichert. Ohne Angabe nimmt er das neueste Objekt des Projekts. Die Tabelle zeigt je Feld den heutigen Wert, den Wert der Regel und ob sie schreiben würde (würde schreiben, schon gefüllt, kein Wert). Der Probelauf schreibt nichts und verbraucht keine Nummer.

Felder

Der Reiter Felder zeigt je Feld, wer hineinschreibt: die Regeln mit Auslöser und Vorlage und das Erben aus Normdaten , etwa „erbt von Urheber (Normdatensatz)~label“ oder „erbt Verknüpfungen aus Identität“. Das Erben ist hier nur zu lesen; der Pfeil führt in die Feldverwaltung , wo es eingestellt wird. Ein Klick auf eine Regel öffnet sie.

Nummernkreise

Ein Nummernkreis zählt aus seinem eigenen Stand, nicht aus den Objektdaten. Er kann mehrere Felder speisen, eine Regel kann mehrere Kreise ziehen.

EigenschaftBedeutung
Name, SchlüsselDer Schlüssel adressiert den Kreis: {nr:schluessel} in der Vorlage, nr['schluessel'] in JavaScript
Geltungje Projekt (ein Stand je Projekt) oder global (ein Stand für alle)
Startwert, SchrittweiteWomit der Kreis beginnt und um wie viel er weiterzählt
Stellen, NullenFeste Breite mit führenden Nullen: bei vier Stellen 0042, ohne Nullen 42

Darunter steht je Projekt der Stand, die zuletzt vergebene Nummer, daneben der höchste Wert, der im Bestand der gespeisten Felder steht, und die nächste Nummer. Ein Stand ist rot, wenn er unter dem Bestand liegt: Die nächste Nummer gäbe es dann schon. Den Stand ändern Sie direkt in der Zelle, etwa um nach dem Löschen wieder herunterzuzählen; der Pfeil daneben setzt ihn auf den Bestand. Jedes neue Projekt bekommt seinen Stand von selbst. Stände gelöschter Projekte bleiben erhalten und erscheinen mit gelöschte Projekte.

Beim Excel-Import reserviert Moliri die Nummern vorab als Block. Die Nummern folgen damit der Reihenfolge der Zeilen, auch wenn jemand anderes gleichzeitig Objekte anlegt; was vom Block übrig bleibt, geht zurück, solange niemand dazwischen gezählt hat.

RegNr

Die RegNr vergeben drei mitgelieferte Regeln, die Sie hier sehen und ändern können wie jede andere:

RegelAuslöserKontextVorlage
RegNr (Basis)Objekt angelegtBasis{nr:regnr-basis}, eine Nummer, die über alle Projekte eindeutig ist
RegNr (Projekt)Objekt angelegtProjekt (fork){nr:regnr}, die laufende Nummer jedes Projekts, in das das neue Objekt kommt
RegNr bei VerknüpfungObjekt verknüpftProjekt (fork){nr:regnr}, die laufende Nummer des Projekts, in das ein Objekt aufgenommen wird, einzeln, im Stapel oder aus dem Import

Alle drei gelten für Alle Sammlungen; Bibliotheken führen keine RegNr. Die Nummernkreise RegNr (Basis) (global) und RegNr je Projekt (je Projekt) setzen die Nummern des Bestands lückenlos fort. Kommt ein Objekt aus dem Excel-Import und hat die Tabelle eine RegNr-Spalte, ersetzt der importierte Wert die beim Anlegen vergebene Nummer. Fehlt das Feld RegNr in einer Instanz, gibt es diese Regeln und Kreise nicht, und Objekte entstehen ohne RegNr.

Weiterlesen