Datenmodell

Bereinigung

Die Bereinigung sind kleine, benannte Umwandlungen, die ein Wert durchläuft, bevor er gespeichert wird: Leerraum am Rand entfernen, Dezimalkomma zu Punkt, ein Zeichen durch ein anderes ersetzen. Sie ändert nur den Wert des Feldes, das gerade geschrieben wird. Anmerkungen wie Kommentar oder Farbe bleiben unberührt.

Eingestellt wird sie an drei Stellen, jeweils mit Status 9:

StelleGilt für
Datenmodell › Felder, Felddetails, Abschnitt BereinigungEin Feld, auf dem Reiter Alle Projekte oder je Projekt
Datenmodell › Feldarten, je FeldartJedes Feld dieser Feldart
System › Einstellungen › BereinigungJedes Feld der Instanz, soweit ein Schritt zu seinen Werten passt
Felddetails des Textfelds „Objekttitel“ im Abschnitt Bereinigung, Reiter Alle Projekte: Die wirksame Kette nennt „Leerraum am Rand entfernen“ mit der Herkunft Feldart und den eigenen Schritt „„´“ durch „'“ ersetzen“ mit der Herkunft Feld. Darunter die Probe: aus „ Dürer´s Kupferstich “ mit Leerzeichen am Rand wird „Dürer's Kupferstich“.

Schritte

SchrittWirkungWirkt auf
Leerraum am Rand entfernenLeerzeichen, Tabulatoren und Zeilenumbrüche am Anfang und Ende fallen weg, auch geschützte LeerzeichenText, Zahlen, Normdatensätze
Mehrfache Leerzeichen zusammenfassenMehrere Leerzeichen oder Tabulatoren hintereinander werden eines. Zeilenumbrüche bleibenText
Zeilenumbrüche entfernenJeder Zeilenumbruch wird ein LeerzeichenText
Unicode vereinheitlichen (NFC)Zeichen, die gleich aussehen, aber verschieden kodiert sind (ein ü aus zwei Teilen), werden gleich gespeichertText
Dezimalkomma zu Punkt1.234,5 wird 1234.5, -3,5 wird -3.5. Ohne Komma bleibt der Wert, wie er ist; was keine Zahl ist (ca. 1900), ebensoGanzzahl, Dezimalzahl
Text ersetzenErsetzt jedes Vorkommen eines Textes wörtlich, ohne reguläre Ausdrücke. Der Ersatz darf den Suchtext nicht enthaltenText
Text in JSON umformenMacht aus Klartext einen Eintrag im JSON-Feld, siehe unten nur JSON-Felder

Felder mit Code oder Markup (Formatierter Text, JSON, Vorlagenfelder) nehmen nur Leerraum am Rand entfernen und Unicode vereinheitlichen an, JSON-Felder dazu Text in JSON umformen. Ein Schritt, der zu einem Feld nicht passt, steht in dessen Kette mit dem Hinweis wirkt hier nicht und wird übersprungen. So lässt sich Mehrfache Leerzeichen zusammenfassen für die ganze Instanz setzen, ohne dass es Zahlen berührt.

Die Kette

Die Schritte bilden eine Kette mit vier Ebenen, von weit nach eng: System, Feldart, Feld, Projekt. Jede Ebene übernimmt die Schritte der weiteren, kann einzelne davon ausschalten und eigene anhängen. Der Abschnitt Wirksame Kette zeigt das Ergebnis in der Reihenfolge, in der die Schritte laufen, jeden Schritt mit seiner Herkunft (System, Feldart, Feld, Projekt …).

An einem SchrittBedeutung
AusschaltenEin geerbter Schritt gilt ab dieser Ebene nicht mehr. Er steht dann unter Ausgeschaltet, mit der Ebene, die ihn ausgeschaltet hat, und lässt sich dort wieder einschalten
Pfeile, PapierkorbNur an eigenen Schritten: verschieben und entfernen
Schritt hinzufügenEinen Schritt aus der Liste wählen; Text ersetzen und Text in JSON umformen fragen nach ihren Angaben

Die Ebene Projekt gibt es nur in den Felddetails: Neben Alle Projekte steht ein Reiter je Projekt, in dem das Feld vorkommt. Ein Projekt-Schritt gilt nur für Werte, die in diesem Projekt gespeichert werden, nicht für gemeinsame Werte des Feldes. Ein Punkt am Reiter zeigt, dass für das Projekt etwas eingestellt ist.

Jede Änderung wird sofort gespeichert. Sie gilt für Werte, die ab dann gespeichert werden. Gespeicherte Werte bleiben, wie sie sind, bis jemand einen Lauf über den Bestand bestätigt.

Vorgaben ab Werk

Ab Werk sind nur zwei Schritte gesetzt, beide auf der Ebene Feldart:

FeldartenSchritt
Alle, deren Werte als Text gespeichert werden, etwa Text und JSONLeerraum am Rand entfernen
Ganzzahl, DezimalzahlDezimalkomma zu Punkt

Die Ebene System ist ab Werk leer. Auf der Seite Feldarten steht einmal der Hinweis Bereinigung ab Werk mit den Feldarten, die Vorgaben haben. Von dort lässt sich je Feldart ein Probelauf über den Bestand starten. Hinweis ausblenden nimmt ihn weg.

Probe

Unter der Kette steht die Probe. Ein Wert, eingetragen unter vorher, erscheint unter nachher so, wie die Kette ihn speichern würde. Darunter steht, welche Schritte gewirkt haben. Damit man Leerraum sieht, zeigt eine zweite Zeile den Wert mit Zeichen für unsichtbare Zeichen: · Leerzeichen, ° geschütztes Leerzeichen, → Tabulator, ↵ Zeilenumbruch. Auf der Ebene System gehört die Probe zu keinem Feld; Probe als wählt deshalb die Werttabelle: d_varchar (Text), d_int und d_decimal (Zahlen) oder d_normdata (Normdatensätze).

Die Probe rechnet mit demselben Programmteil, der beim Speichern bereinigt. Kommt eine Kette bei einem Wert nicht zur Ruhe (ein Schritt macht rückgängig, was ein anderer tat), sagt die Probe das. Beim Speichern bliebe ein solcher Wert unverändert.

Fest eingebaut

Unter der Probe stehen die Umwandlungen, die der Server bei manchen Werten immer vornimmt. Sie lassen sich nicht ausschalten:

WerteUmwandlung
ZahlenEin Wert, der keine Zahl ist, wird mit dem Hinweis „ist keine Zahl“ gespeichert
DatumTrenner wie . , / _ : werden erkannt, fehlende Monate und Tage mit 00 ergänzt
UhrzeitAuf hh:mm:ss vereinheitlicht, fehlende Teile mit 00 ergänzt

Beim Speichern

Bereinigt wird beim Speichern in der Eingabemaske, in der Stapelverarbeitung , beim Excel-Import und beim Import aus Metadaten-Standards. Hat die Kette einen Wert geändert, zeigt das Feld kurz bereinigt, und die Meldung Gespeichert nennt die Schritte (Bereinigt: Leerraum am Rand entfernt). Das Feld zeigt danach den gespeicherten Wert. Rückgängig machen im Verlauf stellt den alten Wert ohne Bereinigung wieder her.

Bestand bereinigen

Unter jeder Kette steht der Bereich Bestand bereinigen. Er wendet die Kette auf Werte an, die schon gespeichert sind: in den Felddetails auf alle Werte des Feldes in allen Projekten, auf der Seite Feldarten auf alle Felder der Feldart, in den Einstellungen auf alle Felder.

  1. Probelauf. Er prüft alle Werte und schreibt nichts. Das Ergebnis nennt, wie viele Werte sich ändern würden (12 von 840 Werten würden geändert), wie oft jeder Schritt gewirkt hat, und bis zu 20 Beispiele vorher und nachher mit Objekt und Feld. Er zeigt nicht jede einzelne Änderung. Nach jeder gespeicherten Änderung der Kette startet der Probelauf von selbst; von Hand mit Probelauf starten.

  2. Jetzt bereinigen. Erst dieser Knopf schreibt die Werte, die der Probelauf gefunden hat. Hat sich die Kette seit dem Probelauf geändert, verlangt Moliri einen neuen. Verwerfen lässt alles, wie es ist.

  3. Zurücknehmen, falls nötig. Der Lauf steht im Bearbeitungsverlauf als ein Stapel. Rückgängig machen im selben Bereich setzt alle bereinigten Werte auf den Stand vor dem Lauf zurück. Wurden einige davon seither erneut geändert, fragt Moliri nach, bevor es auch diese späteren Änderungen überschreibt.

Beide Läufe arbeiten im Hintergrund und erscheinen in der Worker-Ansicht als Bestand bereinigen. Der Bereich zeigt beim nächsten Öffnen den letzten Lauf. Werte, mit denen die Kette zu keinem festen Ergebnis kommt, zählt der Probelauf eigens; sie bleiben unverändert.

Hintergrunddienst

Probelauf und Bereinigung rechnen im Mediendienst des Servers mit denselben Regeln wie der Browser. Kennt eine ältere Fassung des Dienstes einen Schritt noch nicht, scheitert der Probelauf mit einem Hinweis darauf oder lässt die Werte unverändert.

Text in JSON umformen

Wird ein Textfeld auf die Feldart JSON umgestellt, bleiben die Werte Klartext. Das JSON-Feld zeigt sie dann als Rohinhalt. Der Schritt Text in JSON umformen macht daraus Einträge, die das Feld lesen kann:

AngabeBedeutung
Aufteilen anEin Trennzeichen wie , oder ;. Leer: der ganze Text kommt in den ersten Schlüssel
SchlüsselDie Unterfelder, durch Komma getrennt. Vorbelegt mit den Spalten des Feldes

Die Teile füllen die Schlüssel der Reihe nach, übrige Schlüssel kommen leer dazu. Gibt es mehr Teile als Schlüssel, landet der Rest samt Trennzeichen im letzten; es geht kein Text verloren. Anführungszeichen im Text werden maskiert. Ein Wert, der schon JSON ist, bleibt unverändert.

Mit dem Trennzeichen , und den Schlüsseln ort, datierung, kommentar wird aus

Berlin "Ost", 1950

dieser Eintrag. Der dritte Teil fehlt, kommentar bleibt leer:

JSON
[{ "ort": "Berlin \"Ost\"", "datierung": "1950", "kommentar": "" }]

Für den Bestand: den Schritt am Feld hinzufügen, dann unter Bestand bereinigen erst den Probelauf ansehen und mit Jetzt bereinigen umformen. Auch der Excel-Import formt eine Zelle mit Klartext so um, wenn die Kette des Zielfeldes den Schritt hat. Siehe JSON .

Bereinigung, Bedingung, Import-Funktion

BereinigungBedingung Import-Funktion
WannVor jedem Speichern, und als Lauf über den BestandBeim AnzeigenBeim Excel-Import
WirkungÄndert den Wert des eigenen FeldesWarnt, ändert nichtsFormt eine Zelle um, auch in mehrere Felder
FormBenannte SchritteSchalter und eigene RegelEigener Code

Weiterlesen