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:
In beiden Modi kann die allgemeinen Eigenschaft |
OutputSystem[].DestinationMacro* | Makroausdruck zur Erstellung des Ausgabeziels des umstrukturierten Stapels Im Modus 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 Im Modus Standardwert: |
OutputSystem[].AttachFileRefMacro | Makroausdruck, den Namen jeder Dateianlage zurückliefert, die ins Dateisystem ausgegeben werden soll Diese Eigenschaft ist nur im Modus 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: |
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"
}
]