Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

Ausgabeformat "InternalJson"

Dieses Ausgabeformat generiert eine JSON-Datei in der programminternen Darstellungsform des betreffenden Dokuments, wie sie z. B. auch zur Ablage in der MongoDB als Verwaltungsdatenbank verwendet wird. Zudem können die Dateianlagen des Dokuments eingebettet oder Referenzen auf extern mitzuführende Dateianlagen generiert werden.

Das Ausgabeformat "InternalJson" ist primär für Test- und Analysezwecke, um die Inhalte eines Dokuments nach der Verarbeitung einzusehen. Das Format kann aber auch genutzt werden, um ein Dokument von einem xSuite-Interface-Verarbeitungsszenario an ein anderes weiterzugeben, indem dieses Dokument z. B. über das "File"-Ausgabesystem des einen Szenarios an das "File"-Eingabesystem des anderen Szenarios übergeben wird (siehe Beispiel).

Hinweis

Nutzen Sie die Eingabe- und Ausgabesysteme "File" nicht für die Übergabe eines Dokuments innerhalb derselben Programminstanz. Nutzen Sie stattdessen das Eingabesystem "Internal" und das Ausgabesystem "Internal".

Eigenschaft

Beschreibung

OutputFormat[].AttachFileMode

Modus, wie begleitende Dateianlagen zu der JSON-Datei hinzugefügt werden:

  • None: keine Anlagen (Standardwert)

  • Reference: als Dateiverweis in der JSON-Datei

  • Embedded: als Base64-kodierte Binärdaten eingebettet in die JSON-Datei

OutputFormat[].AttachFileRefMacro

optionaler Makroausdruck zur Aufbereitung des Dateireferenz-Wertes im Modus Reference

Der Standardwert ist mit dem Ausdruck "%FileName%" vorbelegt, d.h. nur der reine Dateiname wird ausgegeben.

In dem folgenden Beispiel wird abweichend von der Vorbelegung die Variable "FileUuid" zur Generierung der Dateireferenz genutzt. Dies kann insbesondere bei der Nutzung dieses Ausgabeformats zur Datenübergabe an ein anderes Szenario eine sinnvolle Variante sein. Dadurch ist sichergestellt, dass die generierten Dateireferenzen namentlich weder untereinander noch mit bestehenden Ausgabedateien kollidieren.

Im Kontext des Ausgabeformats werden allerdings nur die Referenzen auf die Dateianlagen generiert. Die physische Ausgabe der Dateianlagen muss separat über ein nachfolgendes Ausgabesystem erfolgen, beispielsweise über das Ausgabesystem "File" ins Dateisystem. In der Konfiguration ist sicherzustellen, dass die Dateien tatsächlich unter denselben Namen wie in den Referenzen ausgegeben werden.

Beispiel

Eine konsistente Konfiguration kann auszugsweise z. B. wie folgt aussehen:

"OutputFormat":
[
      {
         "Type": "InternalJson",
         "FileName": "internal.json",
         "AttachFileMode": "Reference",
         "AttachFileRefMacro": "'%FileUuid%.%FileExt%'"
      }
],
"OutputSystem": [
   {
      "Type": "File",
      "OutputFileMacro": "IfElse(@FileName == 'internal.json',
                         @FileName, '%FileUuid%.%FileExt%\')"
   }
]

In den Eigenschaften .AttachFileRefMacro und .OutputFileMacro wird hier für Ausgabeformat und Ausgabesystem derselbe Ausdruck zur Bestimmung des Dateinamens genutzt. Für das Ausgabesystem ist der Name in eine zusätzliche Abfrage eingebunden, damit diese Namensgebung nur für die referenzierten Dateianlagen in der Datei internal.json gilt, während diese selbst ihren ursprünglichen Namen behält. Bei einem möglichen Wiedereinlesen der Dateianlagen durch ein Eingabeformat "InternalJson" werden implizit auch die ursprünglichen Dateinamen und nicht nur die abweichend benannten Referenzen weitergegeben, sodass diese erhalten bleiben.

Abweichend vom Standard müssen beim Ausgabeformat "InternalJson" keine auszugebenden Felder über die Eigenschaft OutputFormat[].Field[] definiert werden, da die generierte JSON-Datei grundsätzlich alle Felder des Dokumentes umfasst. Nur die einzubindenden Dateianlagen können eingeschränkt werden. Hierfür ist die Eigenschaft .AttachFileMode sowie die allgemeine Eigenschaft .AttachFileFilter nutzbar.

Um die in obigem Beispiel generierten Ausgabedaten mit einem anderen Szenario wieder einlesen zu können, muss das Szenario ein Eingabesystem vom Typ "File" nutzen, in dem die Primärdatei internal.json selektiert wird. Zum Hinzufügen der Dateianlagen, die in dieser Datei eingebettet sind oder referenziert werden, wird ein Eingabeformat "InternalJson" benötigt. Zum Auslesen der Indexfelder wird ein Indexdatenleser vom Typ "InternalJson" benötigt. Die ursprünglich generierte JSON-Ausgabedatei des Dokumentinhalts enthält eine Reihe interner Eigenschaften und Schlüsselwerte, die für den Anwendungsfall des Wiedereinlesens des Dokuments keine Relevanz haben. Dabei wird grundsätzlich eine neues Dokumentobjekt mit neu generierten Schlüsselwerten erzeugt. Aus dem Ursprungsdokument werden nur die reinen Nutzdaten übernommen, d.h. die Inhalte der Dateianlagen und Indexfelder.