Werkzeuge #
Ein Standard ohne gute Werkzeuge setzt sich nicht durch. Weil Prexfo auf dateibasiertem Austausch statt auf einer zentralen API beruht, entscheidet die Qualität des SDK über die Akzeptanz bei Entwicklern.
Die Workflow-Engine #
Das Herzstück folgt der UNIX-Philosophie: Werkzeuge machen eine Sache gut, Workflows orchestrieren sie, die Engine führt Workflows aus.
- Jedes Werkzeug ist ein eigenständiges Programm — Sprache egal (Python, Bash, Go …).
- Ein Dokument geht rein (Argument), das Ergebnis kommt raus (stdout/Dateien).
- Definierte Exit-Codes machen Läufe skript- und pipelinefähig
(
0= OK,2= Eingabefehler,5= Prüfung nötig).
prexfo Brief.pdf # Auto-Erkennung → passender Workflow
prexfo Brief.pdf berlus-posteingang # expliziter Workflow
prexfo --dry-run Brief.pdf # Trockenlauf
Workflows werden als einfaches XML beschrieben und lassen sich verschachteln — ein zusammengesetzter Workflow ruft andere auf und vererbt seinen Kontext:
<workflow name="berlus-posteingang" description="Posteingang klassifizieren">
<context>
<var name="owner">Berlus GmbH</var>
</context>
<workflow ref="pdf-extract"/>
<workflow ref="classify"/>
</workflow>
Importer — Daten aus jeder Quelle #
Bestandsdaten müssen nicht von Hand übertragen werden. Importer überführen verschiedenste Quellen ins Prexfo-Format:
| Quelle | Beispiele |
|---|---|
| Verwaltungssysteme | Berlussimo (MySQL), Immoware24 (WebDAV/CSV/PDF) |
| Banken | Kontoauszüge MT940 / CAMT.053 |
| Rechnungen | ZUGFeRD / XRechnung |
| Messdienste | ista, Techem, Brunata, Minol |
| E-Mail & Dateien | IMAP / .eml, PDF / Scan |
| Steuerberater | DATEV-CSV |
Das SDK #
Das SDK abstrahiert die Komplexität und bietet drei High-Level-Funktionen — initial für Python, später Java und JavaScript:
# Lesen: PDF/A-3 öffnen, prexfo.xml extrahieren, validieren, Objekt zurückgeben
daten = PREXFOReader.load("pfad/zur/datei.pdf")
# Schreiben: Datenobjekt + Vorlage → valide Prexfo-PDF/A-3
PREXFOWriter.save(daten, "pfad/zur/ausgabe.pdf")
# Validieren: ganze Ordnerstruktur auf Konformität prüfen
PREXFOValidator.validate_folder("pfad/zum/ROOT")
Empfohlener Technologie-Stack: lxml (Python, XSD-Validierung & XPath), JAXP
(Java, im JDK enthalten), libxmljs / nativer DOMParser (JavaScript).
Command-Line-Interface #
Für schnelle Prüfungen und die Einbindung in automatisierte Skripte:
prexfo-cli validate --path /pfad/zum/ROOT/
Klare Erfolgs- oder Fehlermeldung mit Details — genau, was ein CI-Lauf braucht.
Offen. Schema und SDK erscheinen unter Apache 2.0. Exzellente Dokumentation, Contribution-Richtlinien und ein Verhaltenskodex sind Teil des Plans — siehe Roadmap.