Analyse der XML-Ergebnisdateien
Beispiel 1. Zuordnung der Ausgabeseiten zu ihren jeweiligen Eingabeseiten
Die XML-Ergebnisdatei in diesem Beispiel wurde für einen Job generiert, der zwei Ausgabedokumente von vier Eingabedokumenten erstellte. Durch Betrachtung des Identifikationsfelds der Datei und der Identifikator-PageID der Seite können wir erkennen, dass die erste Ausgabedatei, file1.docx, aus Seiten der Eingabedateien file1.pdf und file2.pdf und aus der ersten Seite der Eingabedatei file3.tif, besteht. Die zweite Ausgabedatei, file3.docx, besteht aus den Seiten der Eingabedatei file4.tif und die zweite Seite aus der Eingabedatei file3.tif.
Aus Gründen der Übersichtlichkeit werden die Dateien und deren Seiten in der folgenden Abbildung in verschiedenen Farben dargestellt.
<XmlResult Id="{BFF37808-4FA1-4FC3-949A-4BF7FC64FEC4}" IsFailed="false" ...>
<ExportParams DocumentSeparationMethod="SeparateByFixedNumberOfPages" PagesPerDocument="3" XMLResultPublishingMethod="XMLResultToFolder" ...>
<XMLResultLocation>D:\FRS\Workflow\Output Folder</XMLResultLocation>
...
</ExportParams>
<Name>file_1.pdf, file_2.pdf, file_3.pdf, file_4.pdf</Name>
<InputFile FileName="file_1.pdf" Id="21827" ...>
<Page Id="{B01336B9-AE8B-479D-AE91-8478A7451E2A}" PageNumber="0" ...>
...
</Page>
...
</InputFile>
<InputFile FileName="file_2.pdf" Id="21828" ...>
<Page Id="{6F834F38-43D6-4FE5-A983-084986809143}" PageNumber="0" ...>
...
</Page>
...
</InputFile>
<InputFile FileName="file_3.pdf" Id="21829" ...>
<Page Id="{CE5113B2-0593-462D-A668-D0E6E92C21B0}" PageNumber="0" ...>
...
</Page>
<Page Id="{E97D68CE-FA78-44B7-8193-8A3A8DE3DB9C}" PageNumber="1" ...>
...
</Page>
...
</InputFile>
<InputFile FileName="file_4.pdf" Id="21830" ...>
<Page Id="{913CCBD2-AC7F-495D-B964-1CF6668B532A}" PageNumber="0" ...>
...
</Page>
<Page Id="{DC823DCD-9E71-412E-9690-1BD55B995736}" PageNumber="1" ...>
...
</Page>
...
</InputFile>
<JobDocument Name="file_1.pdf, file_2.pdf, file_3.pdf (page 1)" Id="{75DDDD35-CD3D-4CE5-A671-AE31D8277538}" ...>
<OutputDocuments OutputLocation="D:\FRS\Workflow\Output Folder" ExportFormat="Docx" ...>
<FileName>file_1.docx</FileName>
</OutputDocuments>
<Pages>
<FileId>21827</FileId>
<PageId>{B01336B9-AE8B-479D-AE91-8478A7451E2A}</PageId>
</Pages>
<Pages>
<FileId>21828</FileId>
<PageId>{6F834F38-43D6-4FE5-A983-084986809143}</PageId>
</Pages>
<Pages>
<FileId>21829</FileId>
<PageId>{CE5113B2-0593-462D-A668-D0E6E92C21B0}</PageId>
</Pages>
...
</JobDocument>
<JobDocument Name="file_3.pdf (page 2), file_4.pdf" Id="{DC25C928-8070-4BF2-98B8-7EE608410E1D}" ...>
<OutputDocuments OutputLocation="D:\FRS\Workflow\Output Folder" ExportFormat="Docx" ...>
<FileName>file_3.docx</FileName>
</OutputDocuments>
<Pages>
<FileId>21829</FileId>
<PageId>{E97D68CE-FA78-44B7-8193-8A3A8DE3DB9C}</PageId>
</Pages>
<Pages>
<FileId>21830</FileId>
<PageId>{913CCBD2-AC7F-495D-B964-1CF6668B532A}</PageId>
</Pages>
<Pages>
<FileId>21830</FileId>
<PageId>{DC823DCD-9E71-412E-9690-1BD55B995736}</PageId>
</Pages>
...
</JobDocument>
...
</XmlResult>
Beispiel 2. Eine XML-Ergebnisdatei, die durch das Kopieren einer Eingabedatei erstellt wurde
Die folgende XML-Ergebnisdatei wurde für eine Eingabedatei des Namens file.png generiert.
Durch Betrachtung der Werte der Attribute Id und IsFailed des Tags <XmlResult> können wir erkennen, dass der Job einmalig war und erfolgreich ausgeführt wurde. Als Nächstes betrachten wir die Liste von Eingabe- und Ausgabedateien und erkennen, dass für eine Eingabedatei, file.png, eine Ausgabedatei des Namens file.png erstellt wurde. Der Name der Ausgabedatei wird mit dem Tag <OutputDocuments> vorgegeben, der in den Tag <InputFile> eingebettet ist. Die Erweiterung ".doc" entspricht nicht der in der Maske angegebenen Erweiterung, was bedeutet, die Ausgabedatei file.png wurde lediglich durch Kopieren der Eingabedatei Attachment.doc erstellt, anstatt eine OCR durchzuführen.
<XmlResult Id="{070F0101-2625-46DB-AE99-B8C7FF48F3C3}" IsFailed="false" ...>
<ExportParams XMLResultPublishingMethod="XMLResultToFolder" ...>
<XMLResultLocation>D:\FRS\Workflow\Output Folder</XMLResultLocation>
...
</ExportParams>
<Name>file.png</Name>
<InputFile FileName="file.png" Id="21832" ...>
<OutputDocuments OutputLocation="D:\FRS\Workflow\Output Folder" ExportFormat="NoConversion" ...>
<FileName>file.png</FileName>
</OutputDocuments>
</InputFile>
...
</XmlResult>
Beispiel 3. Verarbeitung der Dateien und Vergleich mit den XML-Ergebnisdateien im Ausgabe- und Ausnahmeordner
Eine 4-seitige Datei namens Invoice.pdf musste folgendermaßen verarbeitet werden:
- Erkennen der Seite.
- Unterteilung von Invoice.pdf in Dokumente mit jeweils 2 Seiten.
- Indexierung der Dokumente.
- Speicherung der indexierten Dokumente in DOC.
Hinweis. Während der Verarbeitung wurde das durch die Unterteilung von Invoice.pdf erstellte Dokumente durch einen Indexierungsoperator abgewiesen, da in diesem Dokument keine Rechnungsnummer gefunden wurde.
Als Nächstes betrachten wir die erstellten XML-Ergebnisdateien.
- Im Ausnahmeordner finden wir die Datei Invoices.pdf.result.xml.
<XmlResult Id="{2481566F-AA4E-47D4-96FD-E97AB6DCE898}" IsFailed="true" ...>
<ExportParams DocumentSeparationMethod="SeparateByFixedNumberOfPages" PagesPerDocument="2" XMLResultPublishingMethod="XMLResultToFolder" ...>
<XMLResultLocation>D:\FRS\Workflow\Output Folder</XMLResultLocation>
...
</ExportParams>
<Name>Invoice.pdf</Name>
<InputFile FileName="Invoice.pdf" Id="21833" ...>
<OutputDocuments OutputLocation="D:\FRS\Workflow\Exceptions Folder" ExportFormat="NoConversion" ...>
<FileName>Invoice.pdf</FileName>
</OutputDocuments>
<Page Id="{0B8C1DF4-3FF0-46A3-8CF4-67C7A94FD68E}" PageNumber="0" ...>
...
</Page>
<Page Id="{F95CCC65-D6C1-43AA-8714-F4520E912DE9}" PageNumber="1" ...>
...
</Page>
<Page Id="{F52BE173-B2C3-4D52-B05C-45A7847E1F5C}" PageNumber="2" ...>
...
</Page>
<Page Id="{1A606376-ACC1-4D14-8DE3-273777551C09}" PageNumber="3" ...>
...
</Page>
...
</InputFile>
<JobDocument Name="Invoice.pdf (pages 3,4)" Id="{5D03D01F-7DB6-490A-BF18-441F2AF9533E}" ...>
<IsFailed>true</IsFailed>
<Message Type="Error" Code="35" ...>The document #2 was rejected by the Indexing Station operator ...</Message>
<Pages>
<FileId>21833</FileId>
<PageId>{F52BE173-B2C3-4D52-B05C-45A7847E1F5C}</PageId>
</Pages>
<Pages>
<FileId>21833</FileId>
<PageId>{1A606376-ACC1-4D14-8DE3-273777551C09}</PageId>
</Pages>
...
</JobDocument>
...
</XmlResult>
Anhand des Werts des IsFailed-Attributs des Tags <XmlResult> können wir erkennen, dass der Job fehlgeschlagen ist. Jetzt müssen wir den eindeutigen Identifikator des Jobs finden. Mithilfe dieser ID können wir die Dateien finden, die erfolgreich verarbeitet wurden.
Anhand des Tags <InputFile> können wir erkennen, dass der Eingabeordner unsere Invoice.pdf enthält, die 4 Seiten umfasst. Der Tag <InputFile> enthält den eingebetteten Tag <OutputDocuments>, was bedeutet, die Eingabedatei wurde lediglich in den Ausgabeordner kopiert (wie vom obigen Element erfordert).
Die Tags <FileName> und <OutputLocation> zeigen zur gespeicherten Kopie der Datei.
Anhand der FileId- und PageId-Attribute des Tags <JobDocument> erkennen wir, dass das Dokument, dessen Verarbeitung zu dem Fehler "Job wurde vom Operator der Indexierungsstation gelöscht" führte, aus der zweiten und dritten Seite der Eingabedatei besteht.
- Im Ausgabeordner finden wir die Datei Invoices.pdf.result.xml.
<XmlResult Id="{2481566F-AA4E-47D4-96FD-E97AB6DCE898}" IsFailed="false" ...>
<ExportParams DocumentSeparationMethod="SeparateByFixedNumberOfPages" PagesPerDocument="2" XMLResultPublishingMethod="XMLResultToFolder" ...>
<XMLResultLocation>D:\FRS\Workflow\Output Folder</XMLResultLocation>
...
</ExportParams>
<Name>Invoice.pdf</Name>
<InputFile FileName="Invoice.pdf" Id="21833" ...>
<Page Id="{0B8C1DF4-3FF0-46A3-8CF4-67C7A94FD68E}" PageNumber="0" ...>
...
</Page>
<Page Id="{F95CCC65-D6C1-43AA-8714-F4520E912DE9}" PageNumber="1" ...>
...
</Page>
<Page Id="{F52BE173-B2C3-4D52-B05C-45A7847E1F5C}" PageNumber="2" ...>
...
</Page>
<Page Id="{1A606376-ACC1-4D14-8DE3-273777551C09}" PageNumber="3" ...>
...
</Page>
...
</InputFile>
<JobDocument Name="Invoice.pdf (pages 1,2)" Id="{FF05AABB-BBA4-49A7-AC71-2E2C8916BD72}" ...>
<IsFailed>false</IsFailed>
<Message Type="Information" Code="5" ...>The document #1 was accepted by the Indexing Station operator ...</Message>
<OutputDocuments OutputLocation="D:\FRS\Workflow\Output Folder" ExportFormat="Docx" ...>
<FileName>Invoice.docx</FileName>
</OutputDocuments>
<Pages>
<FileId>21833</FileId>
<PageId>{0B8C1DF4-3FF0-46A3-8CF4-67C7A94FD68E}</PageId>
</Pages>
<Pages>
<FileId>21833</FileId>
<PageId>{F95CCC65-D6C1-43AA-8714-F4520E912DE9}</PageId>
</Pages>
...
</JobDocument>
<JobDocument Name="Invoice.pdf (pages 3,4)" Id="{5D03D01F-7DB6-490A-BF18-441F2AF9533E}" ...>
<IsFailed>true</IsFailed>
<Message Type="Error" Code="35" ...>The document #2 was rejected by the Indexing Station operator ...</Message>
<Pages>
<FileId>21833</FileId>
<PageId>{F52BE173-B2C3-4D52-B05C-45A7847E1F5C}</PageId>
</Pages>
<Pages>
<FileId>21833</FileId>
<PageId>{1A606376-ACC1-4D14-8DE3-273777551C09}</PageId>
</Pages>
...
</JobDocument>
...
</XmlResult>
Der Wert des Id-Attributs des Tags <XmlResult> entspricht dem Wert in Invoices.pdf.result.xml im Ausnahmeordner. Mit anderen Worten, der von uns begutachtete Job ist eine Fortführung des in Schritt 1 überprüften Jobs.
Anhand des Werts des IsFailed-Attributs des Tags <XmlResult> können wir erkennen, dass dieser Teil des Jobs erfolgreich ausgeführt wurde. Anhand des Id-Attributs des Tags <InputFile> können wir erkennen, dass der Job dieselbe 4-seitige Datei Invoice.pdf beinhaltete.
Anschließend folgt eine Reihe von <JobDocument>-Tags, wobei jeder einem der Ausgabedokumente entspricht, die durch Unterteilung der Eingabedokumente erstellt wurden (wie oben durch Element (b) erfordert).
In jedem <JobDocument> enthält der Tag <OutputDocuments> die durch Verarbeitung erstellten Eingabedateien - Invoice.doc und Invoice001.pdf (da der Ausgabeordner bereits eine Datei des Namens Invoice.pdf enthielt, hat das Programm eine Kopie der Eingabedatei erstellt).
In jedem <JobDocument>stellen die <Pages>-Tags einen eindeutigen Seitenidentifikator bereit, an dem wir erkennen können, anhand welcher Seiten welche Eingabedateien das vorgegebene Ausgabedokument erstellt wurde. Daher können wir die <JobDocument>-Tags für die Zuordnung der Eingabedateien zu ihren jeweiligen Ausgabedateien, verwenden.
Hinweis. Der zweite <JobDocument>-Tag enthält keine <OutputDocument>-Tags. Stattdessen enthält er einen <Error>-Tag des Werts "Job wurde vom Operator der Indexierungsstation gelöscht". Das bedeutet, bei der Verarbeitung des Dokuments ist ein Fehler aufgetreten und das Programm hat im Ausnahmeordner eine XML-Ergebnisdatei platziert.
Weitere Informationen
26.03.2024 13:49:48