XML-Pipeline
Einleitung
XML-Dateien in SQUEEZE mit einer anderen techischen Pipeline verarbeitet als PDFs oder einzelne Bilder. Das liegt daran, dass nicht alle Schritte der Standard-Pipeline wie z. B. Texterkennung sinnvoll anwendbar sind.
Stattdessen werden XML-Dateien in den hier erklärten Schritten verarbeitet.
XML-Pipeline
Importierte bzw. hochgeladene Dokumente durchlaufen diese Schritte:
ImerstenSchritt,demSchritt Bisherige Pipeline Neue Pipeline (ab Version X.X.X) InitStep werden hochgeladeneHochgeladene XML-Dateien,Dateiendie einer entsprechen,werden in ein internes Standard-XML-Format (intermediate.xml) überführt.DieEineentstandene Datei ist dieintermediate.xmlfür dieintermediate.xmlPDF wirdeineausPDFderintermediate.xmlerzeugt.
- - Prüfung, ob das ImDokumentSchrittXRechnung (CII, UBL) oder ZUGFeRD entspricht. Transformation und Erstellung eines Zwischenformats. Das Zwischenformat dient als Basis für spezifische Schema-Extraktion und PDF-Erstellung. Benutzerdefinierte XMLs: Prüfung auf Mapping.BarcodeExtraction werden für PDF-Dateien mit einer eingebetteten XML weiterhin- Viewer-Bilder auf Basis der PDF werden erstellt. DavonDieserabgesehen,Schritt wirddieserfür XML-Dateien übersprungen.Unverändert: Dieser Schritt wird für XML-Dateien weiterhin übersprungen.
Im SchrittOcr werden- PDF-Dateien mit einereingebetteten XML werden normal verarbeitet, um ein OCR-Ergebnis zu erstellen.DavonDieserabgesehen,Schritt wirddieserfür reine XML-Dateien übersprungen.Unverändert: Dieser Schritt wird für reine XML-Dateien weiterhin übersprungen.
Im SchrittClassification TODO:DieDokumentieren,KlassifizierungdassvondasXML-Dokumentennochistgarderzeit nichtgehtmöglich. Eine Exception ImwirdSchrittgeworfen, wenn der betroffene Code aufgerufen wird.
- - Klassifikation durch Identifizieren des Mappings. Bei gefundenem Mapping: Informationen zur Dokumentenklasse werden genutzt, um die Klassifikation des Dokuments zu gestalten. Extraction werden üblicheÜbliche Extraktionsmechanismenweiterhinwerden ausgeführt oder übersprungen durch die Stapelklasseneigenschaft:SkipXmlExtraction.intermediate.xmlwirdnachdem Übernehmen von vordefinierten Feldwerten undvordem Ausführen von Lokatoren dieintermediate.xmlgenutztgenutzt, um Kreditor und Mandant der XML zu ermitteln.Dieses Verhalten ist Invoice-Spezifisch.wird nach dem Ausführen von Lokatoren und vor dem Ausführen der Autovalidierung dieDie eigentliche XML-Extraktion basiert aufBasisderintermediate.xml.Hierbasiert auf dem Mapping, nicht auf einem statischen Konstrukt. Änderungen an einem Mapping in der Administration wirken sich direkt aus. Bei ZUGFeRD oder XRechnung: Nutzung derintermediate.xmlund festes System-Mapping, das nicht bearbeitet oder gelöscht werdenFelderkann.
- durchgeführt.- - Extraktion
undTabellengemapptUnderneutdieXMLalsPDFgerendert?!
Extraktion von XMLs
> TODO
Rendering von XMLs
> TODO
TODO: Dokumentieren, wie die XML-Verarbeitung allgemein geschieht
TODO: Abgrenzung zu ZUGFeRD? Gibt da schon unterschiede im Core.
TODO: Wie spielt dieses Feature mit Mail-Importen zusammen? Was gibt es zu beachten?
TODO: Die Klassifizierung von XML ist aktuell nicht möglich. Da wird sogar eine Exception geworfen, falls der betroffene Code aufgerufen wird. Zum einen fraglich ob wir das mal verbessern, zum anderen sollte das vermutlich besser dokumentiert sein.
Testcases:
- XML ohne Dokumentenklasse hochladen
- ZUGFeRD ohne Dokumentenklasse hochladen
TODO: In der Extraktion werden mit executeXRechnungInvoiceSolution Invoice-Spezifische Dinge erledigt, Lieferant und Kreditor zu ermitteln.
Das ist keine saubere Trennung von Core und Solution.