Zum Inhalt springen

Ablageregeln

Jedes Dokument, das Sie zu Papermerge hinzufügen, braucht einen festen Platz — einen Ordner, in dem es gespeichert wird. Diesen Ordner jedes Mal neu festzulegen ist überraschend mühsam: Je größer Ihr Dokumentenbestand wird und je komplexer Ihre Ordnerstruktur ist, desto schwieriger wird es, sich zu merken, wohin welche Art von Dokument gehört.

Ablageregeln lösen dieses Problem, indem Sie das Ziel einmal pro Dokumenttyp festlegen. Von da an verschiebt Papermerge Dokumente dieses Typs automatisch in den richtigen Ordner.

Betrachten wir ein konkretes Beispiel: Sie erhalten eine Rechnung vom Lieferanten Acme GmbH und möchten sie in Papermerge ablegen. Wohin gehört sie?

  • /home/Lieferanten/2024/acme-gmbh/rechnung-2024-01.pdf?
  • /home/Rechnungen/2024/Lieferanten/acme-gmbh-2024-01.pdf?
  • /home/Buchhaltung/Rechnungen/?

Ohne eine einheitliche Regel verbringen Sie Zeit mit Entscheiden — oder legen Dokumente inkonsistent ab. Ablageregeln beseitigen diesen Aufwand.

Für jeden Dokumenttyp definieren Sie eine Ablagregel: ein Muster, das beschreibt, wo Dokumente dieses Typs gespeichert werden sollen. Sobald einem Dokument dieser Typ zugewiesen wird, wertet Papermerge die Regel aus und verschiebt das Dokument automatisch an den entsprechenden Ort.

Schauen wir uns ein einfaches Beispiel an. Hier erstellen wir den Dokumenttyp „Quittung” und setzen seine Ablagregel auf /home/Meine Dokumente/Quittungen/.

Zwei wichtige Punkte:

  • Der Pfad endet mit / — das teilt Papermerge mit, dass der letzte Teil ein Ordner ist, kein Dateiname.
  • Weder Meine Dokumente noch Quittungen müssen bereits existieren — Papermerge legt fehlende Ordner automatisch an.

Abschließender Schrägstrich: Ordner oder Dateiname

Abschnitt betitelt „Abschließender Schrägstrich: Ordner oder Dateiname“

Der abschließende / hat eine wichtige Bedeutung:

  • Ein Pfad mit abschließendem / — das letzte Segment ist ein Ordner. Das Dokument wird in diesen Ordner verschoben und behält seinen ursprünglichen Dateinamen.
  • Ein Pfad ohne abschließendes / — das letzte Segment wird als Dateiname behandelt. Das Dokument wird in den übergeordneten Ordner verschoben und umbenannt.

Beispiele:

AblagregelBedeutung
/home/Lieferanten/AcmeGmbH/Zielordner ist AcmeGmbH. Dokument behält seinen ursprünglichen Namen.
/home/Lieferanten/AcmeGmbH/rechnung.pdfZielordner ist AcmeGmbH. Dokument wird in rechnung.pdf umbenannt.
/home/Buchhaltung/2024Zielordner ist Buchhaltung. Dokument wird in 2024 umbenannt.

Der Stammordner jeder Ablagregel ist immer der persönliche Ordner des Benutzers. Das Präfix /home/ ist implizit und kann weggelassen werden. Die folgenden Pfade sind gleichwertig:

  • /home/Rechnungen/Kunden/
  • /Rechnungen/Kunden/
  • Rechnungen/Kunden/

Die folgende Tabelle fasst zusammen, wie Ablageregeln ausgewertet werden:

AblagregelDokumenttitelErgebnis
/home/Lieferanten/Rechnungen/acme-inv-042.pdf/home/Lieferanten/Rechnungen/acme-inv-042.pdf
/home/Lieferanten/Rechnungenacme-inv-042.pdf/home/Lieferanten/Rechnungen ⚠ Dokument umbenannt
/Buchhaltung/Korrespondenz/angebot.pdf/home/Buchhaltung/Korrespondenz/angebot.pdf
Buchhaltung/Korrespondenz/angebot.pdf/home/Buchhaltung/Korrespondenz/angebot.pdf
/inbox/Steuerdokumente/ust-2024.pdf/home/inbox/Steuerdokumente/ust-2024.pdf

Statische Pfade funktionieren gut für einfache Fälle, aber manchmal soll das Ziel von den Daten des Dokuments selbst abhängen — zum Beispiel, wenn der Lieferantenname oder das Rechnungsdatum aus einem benutzerdefinierten Feld Teil des Ordnernamens sein soll. Ablageregeln unterstützen dafür Platzhalter und Bedingungen.

Eine Ablagregel wird jedes Mal ausgewertet, wenn einem Dokument ein Dokumenttyp zugewiesen wird. In diesem Moment ersetzt Papermerge alle Platzhalter durch die tatsächlichen Werte des Dokuments.

Platzhalter werden zwischen doppelten geschweiften Klammern geschrieben: {{ ... }}. Wenn Papermerge die Regel auswertet, ersetzt es jeden Platzhalter durch den entsprechenden Wert aus dem Dokument.

Folgende Platzhalter stehen zur Verfügung:

PlatzhalterWird ersetzt durch
{{ document.id }}Die eindeutige ID des Dokuments. Immer vorhanden — sicher als Fallback verwendbar.
{{ document.title }}Der Titel des Dokuments.
{{ document.cf['Feldname'] }}Der Wert eines benutzerdefinierten Feldes, referenziert über seinen genauen Namen.

Beispiel:

/home/Rechnungen/Sonstiges/{{ document.id }}-{{ document.title }}.pdf

Dies ergibt einen Pfad wie /home/Rechnungen/Sonstiges/42-acme-inv-042.pdf.

Manchmal soll das Ziel davon abhängen, ob bestimmte Daten vorhanden sind. Zum Beispiel: Legen Sie das Dokument in einem lieferantenspezifischen Ordner ab, wenn das Feld „Lieferant” ausgefüllt ist, andernfalls in einem allgemeinen Ordner.

Dies wird mit {% if %}...{% else %}...{% endif %}-Blöcken ausgedrückt:

{% if document.has_all_cf %}
/home/Rechnungen/{{ document.cf['Lieferant'] }}/{{ document.cf['Rechnungsdatum'] }}.pdf
{% else %}
/home/Rechnungen/Unsortiert/{{ document.id }}.pdf
{% endif %}

Diese Regel von oben nach unten gelesen:

  • {% if document.has_all_cf %} — die Bedingung: Sind alle benutzerdefinierten Felder ausgefüllt?
  • Wenn ja: Pfad aus den Feldern „Lieferant” und „Rechnungsdatum” aufbauen.
  • {% else %} — was zu tun ist, wenn die Bedingung nicht erfüllt ist.
  • Wenn nein: Dokument in Unsortiert/ ablegen und die Dokument-ID verwenden.
  • {% endif %} — markiert das Ende des Bedingungsblocks.

document.has_all_cf ist eine eingebaute Prüfung, die nur dann true ist, wenn alle benutzerdefinierten Felder einen nicht leeren Wert haben. Die Verwendung von document.id als Fallback ist eine sichere Wahl, da die ID immer vorhanden ist — unabhängig davon, ob Metadaten ausgefüllt wurden.