Zum Inhalt

Dateiordner-Regeln

Diese Regeln definieren, wie calServer Dateien revisionssicher ablegt, versioniert, freigibt und zuordnet. Sie gelten für jeden Upload-Weg gleichermaßen — ob über den Eingangsordner, die zentrale Dokumentenverwaltung oder direkt an einem Datensatz (z. B. Inventar-Detailseite).

Die sieben Regeln

  1. Ein Ordner = eine Dokumentart. Jede Dokumentart (z. B. inventory_doc, certificate) wird in der Dateiverwaltung mit eigenem Eingangsordner und eigenem Einlese-Muster konfiguriert.

  2. Muster ohne {#ANY#} = genau ein Dokument je Datensatz. Beispiel {asset_number}: Die Datei wird beim Upload automatisch nach dem Muster benannt. Ein erneuter Upload erzeugt eine neue Minor-Version (Entwurf) derselben Versionskette — nie eine Kopie.

  3. Muster mit {#ANY#} = mehrere Dokumente je Datensatz. Beispiel {asset_number}_{#ANY#}: Der Muster-Teil wird erzwungen, der freie Teil kommt aus dem Dateinamen (INV-0042_Handbuch, INV-0042_Zertifikat, …). Jeder eindeutige Name bildet seine eigene Versionskette; gleicher Name = neue Version, neuer Name = neues Dokument.

  4. {#IGNORE#} erzwingt Versionierung. Ein Muster mit {#IGNORE#} versioniert bei jedem erneuten Upload, unabhängig vom Dateinamen.

  5. Ordner einlesen bleibt der zentrale Alltagsweg. Dateien im Eingangsordner werden per Dateiname↔Muster zugeordnet: eindeutiger Treffer = automatisch verknüpft, mehrere Treffer = Import ohne Direktverknüpfung, kein Treffer = „Nicht zugeordnet" mit Begründung und Umbenennen-zum-Korrigieren. Auch ohne Direktverknüpfung erscheint das Dokument an jedem passenden Datensatz (Muster-Namensabgleich wie in V1) — z. B. ein Typ-Foto Hersteller_Typ_Front.jpg auf allen baugleichen Geräten.

  6. Freigabe-Workflow. Uploads sind Entwürfe (Minor-Version). Die Freigabe erzeugt eine neue Major-Version; nicht freigegebene Versionen sehen nur Rollen/Gruppen, die in der Dateiverwaltung an der Dokumentart hinterlegt sind.

  7. Lückenloser Verarbeitungsnachweis. Jeder Upload — auch direkt am Datensatz — hinterlässt einen Inbox-Protokolleintrag (Status, Prüfsumme, verarbeitet von/am, erzeugtes Dokument). Quelldateien werden archiviert, nie stillschweigend gelöscht; importierte Protokolleinträge sind unlöschbar.

Platzhalter-Schreibweisen

In Mustern funktionieren API-Feldnamen ({asset_number}) und V1-Feldcodes ({I4201}) gleichwertig — auch für Felder, die per V1-Migration übernommen wurden. Beide sind Aliasse desselben Feldes.

Nur Felder des eigenen Bereichs

Ein Muster löst gegen die Feldverwaltung seines Bereichs auf. Nennt es ein Feld, das es dort nicht gibt — ein Tippfehler oder ein Feldcode aus einem anderen Grid —, ordnet es nichts mehr zu: die Datei landet mit der Begründung „Das Muster nennt den Platzhalter {…} — im Bereich … gibt es dazu kein Feld" als nicht zugeordnet im Eingangsordner. Der Dialog der Dateiverwaltung meldet solche Platzhalter direkt beim Bearbeiten.

Ausnahme sind die V1-Präfixe: {I42xx} schaltet auf das Inventar, {C23xx} auf die Kalibrierung, {R32xx} auf die Reparatur — auch aus einem Fach eines anderen Bereichs heraus. Mit lesbaren Feldnamen gibt es diesen Wechsel nicht.

Das Muster benennt nicht um

Beim Einlesen aus dem Eingangsordner heißt das Dokument, wie die Datei heißt — das Muster entscheidet nur, zu welchem Datensatz sie gehört (V1-Verhalten). Nach dem Muster benannt wird nur ein Upload direkt am Datensatz: dort erzeugt calServer den Namen aus den Feldwerten und übernimmt einen freien Namensteil aus {#ANY#}.

Uploads im Programm

Wird eine Datei direkt an einem Datensatz hochgeladen (z. B. Dokumentart inventory_doc am Inventar), gilt dasselbe Regelwerk:

  • Die Datei wird automatisch nach dem Muster der Dokumentart benannt (Regel 2 bzw. 3).
  • Ohne Datensatz-Kontext (zentraler Upload mit Dokumentart) muss der Dateiname dem Muster entsprechen; bei eindeutigem Treffer wird automatisch verknüpft.
  • Der Upload erscheint im Inbox-Verarbeitungsprotokoll (Regel 7).

Werksvorgaben bei Neuinstallation

Eine frische V2-Installation legt drei Standard-Dokumentarten an (nur wenn die Dateiverwaltung leer ist; eine V1-Migration ersetzt sie durch die Kundenkonfiguration):

Dokumentart Eingangsordner Muster
inventory_img (Standardbild-Ordner) bilder {manufacturer}_{model}_{#ANY#}
inventory_doc dokumente {asset_number}_{#ANY#}
certificate zertifikate {certificate_number}

Das Bild-Muster folgt der Regel „Anzeige nach Hersteller/Typ": beliebig viele Bilder je Gerät, und ein Typ-Foto erscheint automatisch auf allen Geräten derselben Hersteller/Typ-Kombination.

Systemordner

Ein paar Ordner gehören zu einem Vorgang im Programm — sie sind nicht bloß eine Werksvorgabe, sondern die Stelle, an der dieser Vorgang konfiguriert wird. Sie tragen in der Dateiverwaltung das Etikett Systemordner.

Systemordner Grid Eingangsordner Muster
dcc (Digitaler Kalibrierschein) Kalibrierung dcc {certificate_number}

Drei Unterschiede zu einem selbst angelegten Ordner:

  • Er wird bei der Installation angelegt und auf bestehenden Anlagen beim nächsten Update nachgetragen. Eine vorhandene Zeile mit derselben Dateityp-Kennung wird dabei übernommen, nicht überschrieben — eingestellter Ordnername und eingestelltes Muster bleiben.
  • Er ist nicht löschbar. Ohne ihn hätte der Vorgang keine Konfigurationsfläche mehr, und die Ablage schlüge fehl, ohne dass irgendwo sichtbar wäre warum. Soll nichts mehr hineinlaufen, wird der Ordner geleert oder über Rollen und Gruppen eingeschränkt.
  • Alles andere ist frei: Ordnername, Muster, Rollen, Gruppen, Reihenfolge.

Warum der DCC nicht in zertifikate liegt

Beide Fächer würden über die Scheinnummer zuordnen — und die Versionskette hängt an Dokumentart und Name. Ein eingelesenes 12345.xml würde damit zur nächsten Version des PDF-Scheins 12345.pdf: zwei verschiedene Dokumente in einer Kette, das ältere verschwindet aus der Ansicht.

Aktivierung der automatischen Verarbeitung

Die zyklische Verarbeitung des Eingangsordners ist standardmäßig deaktiviert, um Konflikte mit einem parallel laufenden calServer V1 zu vermeiden. Für reine V2-Installationen:

DMS_INBOX_ENABLED=true

Details zur Verarbeitung und zum Statusmodell: Eingangsordner.