Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

Ausgabesystem "StackOrg"

Hinweis

Das Ausgabesystem "StackOrg" ist nur in Verbindung mit einem Stack Organizer nutzbar, der im selben Szenario aktiv ist.

Dieses Ausgabesystem strukturiert den aktuellen Ausgabestapel inhaltlich so um, dass dieser den Vorgaben entspricht, die ein Benutzer im Stack Organizers festgelegt hat.

Der umstrukturierten Stapel wird an ein anderes Szenario zur Weiterverarbeitung übergeben. Die Umstrukturierung ist nur temporär. Der Originalstapel bleibt unverändert erhalten. Wenn ein weiterer Ausgabeschritt um Ursprungsszenario folgt, bezieht sich dieser auf die Dokumente des Originalstapels.

Das Ausgabesystem "StackOrg" arbeitet stapelorientiert, da der Stack Organizer komplette Stapel verarbeitet und diese Stapel als eine zusammenhängende Einheit an das weiterverarbeitende Szenario übergeben werden. Da Ausgabesysteme aber grundsätzlich pro Dokument aufgerufen werden, wird in diesem Fall bereits beim Aufruf des ersten Dokumentes der gesamte Stapel ausgegeben. Die Aufrufe der übrigen Dokumente sind funktionslos. Dieses Vorgehen ist nur möglich, weil aufgrund der Arbeitsweise des Stack Organizers sichergestellt ist, dass der vollständige Stapel verfügbar ist. Bei einer regulären Verarbeitung hingegen kann der Fall eintreten, dass noch nicht alle Dokumente des Stapels zur Ausgabe bereitstehen.

Eigenschaft

Beschreibung

OutputSystem[].OutputMode

Modus, wie der Stapel ausgegeben wird:

  • Internal: Dieser Modus ist vergleichbar mit dem Ausgabesystem "Internal".

    In diesem Modus gelten dieselben Rahmenbedingungen wie für das Ausgabesystem "Internal". Dazu zählt z. B., dass in derselben Programm­instanz eines aktiven Zielszenarios ein Eingabesystem "Internal" zur Entgegennahme der Daten benötigt wird. (Standardwert)

  • InternalJson: Der umstrukturierte Stapel wird über ein Eingabesystem gänzlich neu eingelesen.

    Dieser Modus ist eine Kombination aus dem Ausgabeformat "InternalJson" und dem Ausgabesystem "File" und dient dazu, Daten zwischen getrennten Instanzen weiterzuleiten. Der Modus erzeugt pro Dokument eine Ausgabedatei im internen JSON-Format und gibt diese in das Dateisystem aus. Die Art der Ausgabe von Dateianlagen ist dabei fest vorgegeben. Dateianlagen werden immer als separate Dateireferenzen generiert und in dasselbe Verzeichnis wie die primäre JSON-Datei geschrieben.

    Im Zielszenario wird zum Einlesen der erzeugten Ausgabedaten ein Eingabesystem vom Typ "File" oder "Folder" benötigt, um zunächst die primären JSON-Dateien zu selektieren. Zum Hinzufügen der referenzierten Dateianlagen ist außerdem das Eingabeformat "InternalJson" erforderlich.

In beiden Modi kann die allgemeinen Eigenschaft OutputSystem[].FileFilter genutzt werden. Durch diese Eigenschaft können die Dateianlagen ausgewählt werden, die in den umstrukturierten Ausgabestapel übernommen werden. . Im Modus Internal ist zu beachten, dass der Filterausdruck auch die intern erzeugte JSON-Datei mit den Indexdaten umfassen muss.

OutputSystem[].DestinationMacro*

Makroausdruck zur Erstellung des Ausgabeziels des umstrukturierten Stapels

Im Modus Internal wird als Ergebniswert der Name des Zielszenarios benötigt, dem der Stapel zugeordnet werden soll. Im Modus InternalJson wird der Ordnerpfad benötigt, in den der Stapel ausgegeben werden soll.

Als Zusatzfunktion kann diese Konfigurationseigenschaft genutzt werden, um den Ausgabestapel in mehrere Teilstapel mit unterschiedlichen Zielen aufzutrennen. Der Makroausdruck wird je Dokument des Stapels ausgewertet, sodass daraus unterschiedliche Zielwerte resultieren können. Das Programm fasst die Dokumente zu einem gemeinsamen Teilstapel zusammen, die den gleichen Zielwert haben.

OutputSystem[].FileNameMacro

Makroausdruck, der den Namen der JSON-Datei zurückliefert

Die JSON-Datei wird im Modus InternalJson als primäre Ausgabedatei und im Modus Internal als künstlich ergänzte Dateianlage generiert.

Im Modus InternalJson kann dem Dateinamen zusätzlich ein relativer Ordnerpfad vorangestellt werden, der sich auf den stapelbezogenen und per .DestinationMacro definierten Ordner bezieht. Auf diese Weise können im Stapelordner zusätzliche Unterordner je Dokument erstellt werden.

Standardwert: document.json

OutputSystem[].AttachFileRefMacro

Makroausdruck, den Namen jeder Dateianlage zurückliefert, die ins Dateisystem ausgegeben werden soll

Diese Eigenschaft ist nur im Modus InternalJson relevant.

Dieses Makro wird für jede Dateianlage separat ausgewertet und sollte individuelle Eigenschaften der Anlage in Form von Dateivariablen nutzen, um eindeutige Dateinamen zu erzeugen.

Standardwert: "%FileName%"

Beispiel für den Modus "InternalJson"

Das nachfolgende Beispiel soll die relevanten Konfigurationseigenschaften im Modus InternalJson auszugsweise darstellen:

Das Ursprungsszenario mit dem aktiven Stack Organizer schreibt die Ausgabedaten in separate Ordner pro Stapel. Im .DestinationMacro wird die UUID eines Stapel genutzt, um eindeutige Ordnernamen zu garantieren. Der Name der JSON-Ausgabedatei im .FileNameMacro enthält zusätzlich einen relativen Ordnerpfad, um separate Unterordner pro Dokument zu erzeugen. Die laufende Nummer des Dokumentes im Stapel wird genutzt, um eindeutige Ordnernamen sicherzustellen. Die Namen der Dateianlagen im .AttachFileRefMacro werden mit einer Nummer (der Anlage innerhalb des Dokumentes) versehen, um mehrdeutige Dateinamen auszuschließen.

"Process": {
   "StackOrg": {
      "Activate": true
   }
},
"OutputSystem": {
   "Type":
   "StackOrg",
   "OutputMode": "InternalJson",
   "DestinationMacro": "'c:/test/{%BatchUuid%} %BatchName%'",
   "FileNameMacro": "'[%DocNo%] @DocName/internal.json'",
   "AttachFileRefMacro": "'[%FileNo%] %FileName%'"
}

Das Einlesen der Daten im Zielszenario erfolgt über das Eingabesystem "Folder". Dadurch kann die Ordnerstruktur aus Stapeln und Dokumenten, die bei der Ausgabe erzeugt wurde, wieder so eingelesen werden, dass die ursprüngliche Zuordnung von Dokumenten zu Stapeln erhalten bleibt. Das alternative Eingabesystem "File" kann die Daten hingegen nur als unabhängige Einzeldokumente lesen, ohne die übergeordnete Stapelstruktur zu bewahren.

Der .FileFilter sorgt dafür, dass zunächst nur die JSON-Datei als primäre Dateianlage eines Dokumentes gelesen wird. Die übrigen Anlagen werden erst durch das Eingabeformat "InternalJson" anhand der Referenzen in der JSON-Datei hinzugefügt. Dadurch können die ursprünglichen Namen der Dateianlagen wiederhergestellt werden, die als Metadaten in der JSON-Datei stehen.

"InputSystem": {
   "Type": "Folder",
   "Mode": "SubDocs",
   "RootFolder": "c:/test",
   "FileFilter": "internal.json"
},
"InputFormat": [
   {
      "Type": "InternalJson"
   }
],
"ProcessReadIndex": [
   {
      "Type": "InternalJson"
   }
]