1. Home
  2. Dashboard
  3. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team
      4. Search Members
  4. Articles
    1. Liste funktionierender Drucker
  5. Linux Guides
    1. Homepage
    2. YouTube
    3. Telegram
    4. Community-Stammtisch
  6. Lexicon
    1. Last Changes
  • Login
  • Register
  • Search
Netzwerk & Server
  • Everywhere
  • Netzwerk & Server
  • Articles
  • Pages
  • Forum
  • Lexikon
  • More Options
  1. Linux Guides Community
  2. Netzwerk & Server

Paperless: Benutzerdefinierte Felder zunutze machen #1

  • MyLibertad
  • August 7, 2025 at 1:20 PM
  • 4,712 Views
  • 17 Replies
Wenn es um den täglichen Papierirrsinn geht, kann man Paperless NGX gefühlt als Gottes Geschenk bezeichnen. Vorausgesetzt, man bekommt es für sich in den Griff, in dem die internen Abläufe verstanden werden und konsequent mit der neuen Vorgehensweise gearbeitet wird. Nicht jede Möglichkeit die sich einem bietet erschließt sich sofort, und mit jeder Version kommen neue Funktionen hinzu.

Anhand eines einfachen Praxisbeispiels möchte ich eine Möglichkeit beschreiben, wie man benutzerdefinierte Felder verwenden kann. Zugegeben, es ist am Anfang etwas kompliziert, auch mit der Einrichtung, der Gewinn zeigt sich erst später und man lernt die Anwendungsmöglichkeiten mehr zu schätzen. Das Folgende kann gut auf die eigenen Bedürfnisse adaptiert werden.
Contents [hideshow]
  1. Was sind benutzerdefinierte Felder und wofür brauche ich sie?
  2. Was ist das Ziel?
  3. Schritt 1.: Anlegen eines benutzerdefinierten Feldes
  4. Schritt 2.: Definieren eines Arbeitsablaufes
  5. Schritt 3.: Speicherpfade

Was sind benutzerdefinierte Felder und wofür brauche ich sie?

Wie der Name es schon sagt, sind das Felder die ein Benutzer erstellen kann, wenn ihm die vordefinierten Felder im Bearbeitungsdialog eines Dokumentes nicht ausreichen, wie bspw. ein Feld namens "Kundennummer". Wer es ganz einfach mag, dem genügen die Vorgabefelder und er benutzt überwiegend die Suchfunktion. Ich persönlich finde aus den nachfolgenden Gründen, dass benutzerdefinierte Felder ein Dokumentenmanagementsystem (DMS) ungemein bereichern und flexibler machen.

  1. Ich habe mit ihnen viel mehr Filtermöglichkeiten.
  2. Aus Nr.1 resultierend, erlauben sie mir andere "Ansichten", die ich gerne für mein persönliches Verständnis "virtuelle Aktenordner" nenne, zu definieren.
  3. Mehr Gestaltungsmöglichkeiten bei der Wahl der gesteuerten Dateibenennung, die mir persönlich sehr wichtig ist, sollte ich mal ohne Paperless auf meine Dokumente zugreifen müssen.

Was ist das Ziel?

Ich habe ein Büro, über das sowohl private als auch geschäftliche Korrespondenz läuft. Beides landet in einem Briefkasten bzw. in einer Ablage. Heute ist Bürotag und der Stapel wird von oben nach unten digitalisiert, mit dem Papier (sofern nicht wichtig) wird mein tapferes Schneiderlein gefüttert, Fürsorge muss schließlich sein.

Nun liegen alle Dokumente im digitalen Postfach von Paperless, die Gescannten, wie auch die aus anderen Quellen, wie E-Mails, Messengernachrichten usw. Es ist soviel angenehmer sich mit den Inhalten auseinanderzusetzen, wenn sie sich an einem Ort befinden, anstatt über eine Vielzahl der einzelner Medien hinweg. Und auch erst an dieser Stelle, beginne ich damit, mich dem den damit verbundenen Aufgaben auseinander zu setzen.

Quote

[!note] Anmerkung
Um noch einmal Irrtümer auszuschließen, Paperless ist nur zur Verwaltung und Archivierung von Unterlagen geeignet. Man kann zwar auch Dokumente per Mail verschicken oder kleine Notizen hinzufügen, es eignet sich allerdings nicht oder noch nicht dazu, Schriftstücke aufzusetzen. Für so etwas gibt es andere Lösungen.

Jetzt geht es an die Bearbeitung der Dokumente. Für die Person, die das über zwei verschiedene Speicherpfade lösen möchte, könnte es das schon gewesen sein, ich entscheide mich allerdings den Weg mit den benutzerdefinierten Feldern zu gehen, denn ich möchte es im Nachgang etwas flexibler haben. Ein Teil meiner Aufgabe wird es nun sein, das Private vom Geschäftlichen zu trennen. Hierzu beginne ich damit, mir ein eigenes Feld zu erstellen.

Schritt 1.: Anlegen eines benutzerdefinierten Feldes

In der linken Spalte finden wir im Verwaltungsbereich "Benutzerdefinierte Felder" und klicken darauf und gehen anschließend auf "Feld hinzufügen".

![[PNGX0101.svg]]

Im neuen Fenster geben wir unserem Feld einen griffigen und für jedermann verständlichen Namen, denn das ist auch die Feldbezeichnung im Formular. Ich wähle hier "Privat". Als Datentyp nehme ich "Auswählen" und füge als Option 1. "Privat" und als Option 2. "Geschäft" ein und speichere. Wichtig, die erste Option ist auch der Standardwert im Formular.

Quote

[!note] Anmerkung
Warum ich "Auswählen" (eng. "Option") nehme und nicht "Wahrheitswert" (eng. Boolean). Beim "Wahrheitswert" habe ich nur die Möglichkeit zwischen ja/nein, richtig/falsch oder an/aus zu unterscheiden. Wenn ich aber "Auswählen" benutze, kann ich bei veränderter Situation bspw. eine zweite Firma als 3. Option hinzufügen, habe also drei Auswahlmöglichkeiten oder mehr.

Schritt 2.: Definieren eines Arbeitsablaufes

Da ich mir das Leben nicht unnötig schwer machen möchte, es sich bei dem angelegten Feld um ein Entscheidungsfeld handelt, was ich bei jedem Dokument brauche und ich es nicht jedesmal manuell hinzufügen möchte, erstelle ich mir jetzt einen Arbeitsablauf, der dieses Feld bei jedem neuen Dokument mit einfügt.

Wir schauen wieder in die linke Spalte und wählen diesmal im Verwaltungsbereich "Arbeitsabläufe" und anschließend "Arbeitsablauf hinzufügen" aus.


Im neuen Fenster vergeben wir für Arbeitsablauf einen Titel. Als Sortierreihenfolge geben wir eine 1 ein, wenn es der erste Arbeitsablauf ist.


Quote

[!important] Wichtig
Diese Sortierreihenfolge wird auch in der Gesamtverarbeitung befolgt, das heißt, man muss bei weiteren Abläufen darauf achten, dass sie sich nicht in die Quere kommen.

Als Nächstes fügen wir im gleichen Fenster einen "Auslöser" hinzu, also "wann" soll etwas passieren. Hier wähle ich als Auslösetyp "Verarbeitung gestartet" aus, denn das Feld soll in dem Moment hinzugefügt werden, wo ich mein Dokument an Paperless übergebe. Die restlichen Felder bleiben für dieses Beispiel leer.


Jetzt füge ich unter "Aktionen" eine Aktion hinzu, also "was" soll gemacht werden. Hier fällt meine Wahl bei Aktionstyp auf "Zuordnung" und bei dem Feld "Benutzerdefinierte Felder zuweisen", nehme ich das Feld, was ich mir angelegt hatte, also "Privat".


Wir speichern jetzt das Ganze und haben uns damit einen Arbeitsablauf definiert.

Von nun an wird jedem neuen Dokument das neue Feld automatisch hinzugefügt.

Schritt 3.: Speicherpfade

Eine tolle Angelegenheit ist, dass ich in Paperless NGX mir einen Speicherpfad zusammenbauen kann, wonach alle Dateien nach einem bestimmten Schema abgelegt werden. Bedauerlicherweise gibt es noch keine Möglichkeit, sich einfach einen Pfad zusammenzuklicken, man muss selbst Hand anlegen. Bei den einfachen Variablen, die auf der Dokumentationsseite von Paperless gut beschrieben sind, ist das schnell erledigt. Anders sieht es bei den benutzerdefinierten Variablen aus.

Dazu gehen wir diesmal bei der linken Spalte im Verwaltungsbereich auf "Speicherpfade" und definieren uns einen Neuen.


In meinem Fall reicht mir ein einziger Speicherpfad aus, den ich auch als "Allgemein" benenne.


Der Übersicht wegen und das ist erlaubt, setze ich jeden Ordner in eine eigene Zeile. Die letzte Zeile beschreibt den Aufbau des Dateinamens. Eine Dateiendung ist nicht erforderlich, sie wird von Paperless automatisch gesetzt.

Variante 1: Reicht, wenn das Feld immer vorhanden ist und der Wert des Feldes als Ordnername funktionieren soll.

Code
{{ custom_fields|get_cf_value('Privat') }}
/
{{ correspondent }}
/
{{ created }} - {{ title }}

Variante 2: Wie in Variante 1 wird zuerst definiert zu was das Dokument zugeordnet werden soll, da wir ja ein Feld haben, was überall verwendet werden soll. Der zweite Ordner ist etwas komplizierter. Hier wird geprüft, ob 1. das Feld KdNr enthalten ist und 2. auch ein Wert gesetzt wurde. Wenn ja, soll Ordnername den Korrespondenten mit einer Kundennummer enthalten, wenn nicht, dann nur der Korrespondent.

Code
{{ custom_fields|get_cf_value('Privat') }}
/
{% if "KdNr" in custom_fields and custom_fields|get_cf_value('KdNr') %}
{{ correspondent }} - {{ custom_fields|get_cf_value('KdNr') }}
{% else %}
{{ correspondent }}
{% endif %}
/
{{ created }} - {{ title }}

Variante 3: Hier wird gezeigt, wie zusätzlich noch mit Zeichen umgegangen werden kann, die nicht in der Dateibenennung erlaubt oder persönlich nicht erwünscht sind. In Paperless werden sie wie gehabt dargestellt. (Ein Backslash "\" ist hier von Paperless nicht erlaubt)

Code
{{ custom_fields|get_cf_value('Privat') }}
/
{% if "KdNr" in custom_fields and custom_fields|get_cf_value('KdNr') %}
{{ correspondent }} - {{ custom_fields|get_cf_value('KdNr')
| replace("/", "-")
| replace("*", "-")
| replace(" ", "-")
| replace("_", "-")
| replace("&", "-")
| replace(".", "-")
}}
{% else %}
{{ correspondent }}
{% endif %}
/
{{ created }} - {{ title
|replace(" ","_")
|replace(".","-")
|replace("ß","ss")
|replace("ä","ae")
|replace("ö","oe")
|replace("ü","ue")
|replace("Ä","Ae")
|replace("Ö","Oe")
|replace("Ü","Ue")
}}
Display More

In den Varianten 2 und 3 sieht man, dass das Ganze sehr schnell komplex werden kann, wenn man seinen Wünschen freien Lauf lassen möchte.

Quote

[!note] Anmerkung
Zwei Dinge sind bei der Erstellung von Speicherpfaden zu beachten. Die erste Sache ist die maximal erlaubte Länge, die ein Datei- mitsamt Ordnernamen haben darf.
Die zweite Sache, sind die erlaubten Zeichen. Insbesondere bei Dokumenten die per OCR lesbar gemacht wurden, aber auch die Kreativität von Korrespondenten bspw. bei der Gestaltung von Kundennummern, kann zu unangenehmen Folgen führen. Bspw. verwendet ein Korrespondent einen Schrägstrich in seiner Kundennummer hier "1235/5226" und man verwendet diese für die Dateibenennung, landet das Dokument in einem anderen Ordner.

Weiter zu Teil 2: Link

Previous Article Windows mit Docker Compose

Next Article Paperless: Benutzerdefinierte Felder zunutze machen #2

Replies 17

Tealk
August 7, 2025 at 3:36 PM

Magst du Mal ausfürrn warum die Speicherpfade für dich nicht Praktikabel waren?

MyLibertad
August 7, 2025 at 4:09 PM

Sehr gern. Ich habe sehr viel herum experimentiert, bis ich mich für diese Variante entschied. Irgendwann kam ich an einem Punkt, wo ich mich entscheiden musste. Ich versuche das aufzudröseln:

  • Nicht jeder Anwendungsfall kann mit den vorgegebenen Feldern abgedeckt werden, zumindest nicht bei mir.
  • Ich komm mit Tags nicht klar. Was daran liegt, dass ich soviele Tags vergeben kann, wie die Sprache Wörter hat. Das heißt, irgendwann entsteht ein Wirrwarr, was meine Dokumente nicht wirklich zusammenfassen kann.
  • Ich brauche Felder, um verschiedene Bereiche abzudecken und um eine Linie zu fahren in der Benennung der Dokumente. Zu schnell hab ich vergessen, wie ich irgendwas benenne.
  • OCR ist zwar toll, aber nicht perfekt. Indem ich ein paar Kernpunkte herauspicke, bin ich auf der sicheren Seite, wenn ich anderweitig mal nach etwas suchen muss.
  • Ich will im Dateisystem selbst, so schnell wie möglich an das eine bestimmte Dokument kommen. Da ist eine einheitliche Benennung wichtig. Auch ohne Paperless (falls mal die DB abschmiert, soll ja in den ungünstigsten Momente vorkommen)
  • Ich will in der Ordnertiefe garnicht so tief verschachteln, jeder Klick mehr nervt mich.

Ich hoffe ich konnte aus plausibel genug ausdrücken. Wenn nicht, frag einfach.

Tealk
August 7, 2025 at 4:42 PM

Es geht mir eher darum:

Quote

Für die Person, die das über zwei verschiedene Speicherpfade lösen möchte, könnte es das schon gewesen sein, ich entscheide mich allerdings den Weg mit den benutzerdefinierten Feldern zu gehen

Du nutzt doch auch Speicherpfade am ende, wenn ich die Pfade richtig verstehe hättest du doch auch einfach 2 stück anlegen können "Privat" und "Geschäftlich"?

MyLibertad
August 7, 2025 at 4:50 PM

Richtig. Das war nur eine Beispielmöglichkeit. Vielleicht war das Beispiel auch zu zweideutig. Ich sagte ja, dass es einem ja selbst obliegt. Hier kann man sehr gut 2 Pfade verwenden. Ich Schusselkopf, vergesse hin und wieder einmal den Speicherpfad (warum auch immer, weil alle anderen Felder fülle ich brav aus) zu wechseln. Daher ist das eine für mich angenehmere Variante.

Tealk
August 7, 2025 at 4:53 PM

Ok das klang für mich nämlich so als ob Speicherpfade oder benutzerdefinierten Feldern. Im Endeffekt haste dann den Pfaden nur regeln hinzugefügt wann sie zur Anwendung kommen.


Ich hab selbst erst Paperless vor paar Monden aufgesetzt und versuch mich zurecht zu finden. Es fehlt ein wenig die Einführung, entweder Beispiele die nach der Installation vorhanden wären oder aber im Wiki die erklären welche zusammenhänge alles hat.

MyLibertad
August 7, 2025 at 5:04 PM
Quote from Tealk

Ok das klang für mich nämlich so als ob Speicherpfade oder benutzerdefinierten Feldern.

Oh, Entschuldigung für das Missverständnis. Man kann das auch selbstverständlich noch kombinieren.

Quote from Tealk

Im Endeffekt haste dann den Pfaden nur regeln hinzugefügt wann sie zur Anwendung kommen.

Genau, das macht es für mich letzten Endes einfacher.

Quote from Tealk

Ich hab selbst erst Paperless vor paar Monden aufgesetzt und versuch mich zurecht zu finden.

Für mich war das Schwierigste, nicht mehr ganz so linear zu denken, wie man es von einem Büroalltag gewohnt ist.

Quote from Tealk

Es fehlt ein wenig die Einführung, entweder Beispiele die nach der Installation vorhanden wären oder aber im Wiki die erklären welche zusammenhänge alles hat.

Ja das kann ich nachempfinden. Mir geht es genauso. Für mich stellt sich das immer so da: "Hier haste die Software, ist super "Einfach" mach was draus." Aber mit der Software allein, ist es noch nicht getan. Deshalb habe ich nicht nur benutzerdefinierte Felder beschrieben, sondern wie ich sie auch ganzheitlich zum Einsatz bringe. Und dazu gehören eben auch "Arbeitsabläufe", "Ansichten", "Speicherpfade". Ich hoffe mit dem Artikel konnte ich das ein wenig näherbringen.

MyLibertad
August 7, 2025 at 5:13 PM

PS: Ich bin auch gerne für einen regen Austausch bereit. Denn manchmal werden Fragen gestellt, die auch ich adhoc nicht sofort beantworten kann oder über die ich selbst noch nicht nachgedacht hatte, um dann festzustellen, dass es auch noch einen anderen Weg gibt.

joka63
August 7, 2025 at 6:51 PM

Nach dem Lesen deines Artikels konnte ich meinen ersten Arbeitsablauf definieren, in dem aus einem automatisch generierten langen Dateiname ein kurzer Titel "Kontoauszug" extrahiert wird, der wiederum Teil eines Speicherpfades ist..

Was ich noch nicht verstanden habe, wenn es überhaupt möglich ist: wie kann ich ein benutzerdefiniertes Feld automatisch füllen?

In deinem Beispiel setzt du einen festen Wert "Privat" für das Feld "Privat" in einem Arbeitsablauf. Dann bräuchte man für jede Option einen eigenen Arbeitsablauf? Wie würde das bei Kundennummern funktionieren?

Ich selber möchte im Arbeitsablauf einen Titel "Kontoauszug-{{auszugsnr}}" setzen lassen.
Die Auszugsnummer könnte vom Inhalt aus einer Zeile nach dem (Regex-)Muster Auszug-Nr. (\d+) Seite-Nr. \d+
extrahiert werden. Ist das möglich?

Tealk
August 7, 2025 at 9:04 PM

Ich mach eig. relativ wenig mit den Feldern und verlasse mich viel auf OCR; was mir geholfen hätte wäre wirklich so nen grund stack an documenttypes, konnte mir am Anfang echt nichts drunter vorstellen.

MyLibertad
August 8, 2025 at 10:54 AM
Quote from Tealk

Ich mach eig. relativ wenig mit den Feldern und verlasse mich viel auf OCR [...]

Wie ich schon sagte, OCR ist gut, aber nicht perfekt. Wenn ich mir teils das Kauderwelsch anschaue was sie produziert, was man im Reiter "Inhalt" bei einem Dokument sieht, ist die Trefferquote bei der Suche nicht ganz so gut. Hier bspw. gehört der Punkt nicht rein, da müsste ein Leerzeichen stehen "Nr: 38.999/55555". In einem anderen Dokument ist statt einer 5 bspw. eine 6. Aufgrund dieser Ungenauigkeiten, befülle ich lieber ein Feld mit der Nummer und der Treffer in der Suche ist garantiert.

Quote from Tealk

[...]; was mir geholfen hätte wäre wirklich so nen grund stack an documenttypes, konnte mir am Anfang echt nichts drunter vorstellen.

Das kann ich gut nachvollziehen, ich stand vor dem gleichen Problem, wie vermutlich andere auch. Aber noch verwirrender wird es, wenn man auch schon mit anderen DMS wie "EcoDMS" oder "Agorum Core" experimentiert oder beruflich zutun gehabt hat und bei denen noch die Dokumentenart einbezogen wird, bzw. noch ganz andere Dinge. Aber diese haben auch eine ganz andere Zielgruppe.

Als ich damals einfach loslegte, ohne mir weiter Gedanken zu machen, stieß ich selbst sehr schnell an meine Grenzen, was die Typen betraf. Diese ständigen Entscheidungen, um was für einen Typ es sich handeln würde, brachten mich an den Rand des Wahnsinns, zumal man Dopplungen vermeiden möchte/sollte, insbesondere wenn es ums Dateisystem geht. Hier half es mir, dass ich mich hinsetzte und mir über Prozessabläufe Gedanken machte. Hier mal anhand eines Vertrages mit einem Anbieter ein Beispiel:

  • Anfrage
  • Angebot
  • Bestellung
  • Angebotsbestätigung
  • Lieferschein
  • Vertrag
  • Rechnung
  • Proformarechnung
  • Abrechnung
  • Gutschrift
  • Mahnung
  • Kündigung
  • Inkasso (wenn es richtig hart wird)
  • Mitteilung o. Information (sofern gebraucht)
  • ...

Während das noch überschaubar ist, sieht es bei behördlichen Dingen ganz anders aus. Denn hier könnte man meinen, dass sie ein Wort mit dem Finger im Duden suchen und dann am Ende des Wortes einfach nur noch "Bescheinigung" oder "Bescheid" dranklatschen. Ohne zu wissen, dass es für den Typen schon eine Bezeichnung gibt. Dennoch schrumpfe ich das bei Typen nicht ein auf diese Kurzform wie "Bescheinigung". Grund ist wieder die Vermeidung von Dopplungen im Dateinamen. Denn meist nehme ich den Betreff als Titel und kürze ihn auf die wesentlichen Merkmale ein und habe mit dem Typen schon eine Definition.

Join the discussion! 7 more replies

Categories

  1. Reviews 7
  2. Software-Vorstellung 4
  3. Netzwerk & Server 5
  4. Gaming 9
  5. Allgemein 15
  6. Tutorials zu: Ubuntu 1
  7. Einstieg in Linux 6
  8. Linux-News 1
  9. Reset Filter
Discussion Thread 17 replies, last: August 8, 2025 at 8:05 PM
  1. Privacy Policy
  2. Legal Notice
  1. Nutzungsbedingungen
Powered by WoltLab Suite™