# Etiketten und Berichte ausgeben

> Was ein Lauf bei Start und bei Abschluss ausgibt, in welcher Reihenfolge, über welche Warteschlange, was in die Laufdatei eingefroren wird und wie jede Zustellung aufgezeichnet wird.

Ein Lauf gibt seine Dokumente über die **Aktionen** seines Modells aus: benannte Gruppen
von Befehlen, von denen jeder Befehl ein Etikett oder einen Bericht bei Start des Laufs
oder bei seinem Abschluss ausgibt, erklärt unter Setup > [Aktionen](process-actions) und
vom [Ablauf](process-procedures) als ganze Gruppen gewählt. Die Vorlagen, mit denen die
Befehle erzeugen, sind die zwei Bibliotheken dieser Wurzel: Das Layout eines
Berichtsbefehls kommt aus [Berichte](process-reports), die Datei eines Etikettenbefehls
aus [Etiketten](process-labels). Diese Seite ist das, was geschieht, sobald ein Lauf einen
Ausgabezeitpunkt erreicht.

## Die zwei Ausgabezeitpunkte {#the-two-boundaries}

An einem Ausgabezeitpunkt feuern die Befehle über die gewählten Gruppen hinweg in der
Reihenfolge der Liste des Modells und innerhalb jeder Gruppe in deren eigener Reihenfolge,
die Etiketten vor den Berichten. Jeder Befehl steht für sich: eine fehlende Vorlage, ein
Zusammensetzen, das einen Fehler wirft, oder eine Warteschlange, die abweist, wird ins
Journal geschrieben, ändert nichts am Lauf und stoppt nie die Befehle dahinter.

| Ausgabezeitpunkt | Wann | Was verfügbar ist | Was ausgegeben wird |
| --- | --- | --- | --- |
| Start | Während der Lauf entsteht, nachdem die fortlaufenden Zähler reserviert und die Metadaten geschrieben sind; der Lauf zeichnet bereits auf, während die Dokumente zusammengesetzt werden, über die eigene offene Datei des Laufs. | Die Identität des Laufs, die Metadaten, den Startzeitpunkt und den Zustand Läuft. | Jeden Etikettenbefehl mit dem Auslöser Start; jeden Berichtsbefehl mit dem Auslöser Start und einem Layout: einen Laufzettel, auf dem die Abschnitte ohne bereits Aufgezeichnetes ausgelassen werden und die Zeile Rezept das geplante Rezept druckt. |
| Abschluss | Nachdem der Endzustand und die Momentaufnahme des Laufs versiegelt und die Einheit freigegeben sind; zuerst die Etiketten, gleich danach im Hintergrund die Berichte. | Alles von Start, dazu den Endzeitpunkt, die Dauer, den Endzustand, das Prüfergebnis, den Grund der Beendigung und die beurteilten Kriterien. | Jeden Etiketten- und Berichtsbefehl mit dem Auslöser Abschluss, dessen Filter der Prüfergebnisse das Prüfergebnis des Laufs zulässt. |

Der Filter der Prüfergebnisse (OK, NOK, Unbestimmt, Kein Prüfergebnis) wird allein bei
Abschluss gelesen; bei Start besteht noch kein Prüfergebnis. Ein Lauf, der auf
Fehlgeschlagen endete, hat keine abschließende Momentaufnahme: Seine Etiketten bei
Abschluss zeichnen ein Artefakt mit fehlgeschlagener Erzeugung auf, und es wird kein
Bericht bei Abschluss veröffentlicht. Ein Berichtsbefehl, dessen Layout gelöscht wurde,
und ein Berichtsbefehl ohne Layout veröffentlichen nichts. Die Anwendung neu zu starten
wiederholt nie die Dokumente von Start: Ein Lauf, der nach einem Neustart fortgesetzt
wird, trägt die Artefakte, die er bereits ausgegeben hat.

## Berichte {#reports}

Ein Berichtsbefehl mit einem Layout veröffentlicht sein PDF an seinem Ausgabezeitpunkt,
was immer er sonst verlangt hat. Die Datei wird nach dem Grundnamen des Laufs und dem
Namen der Gruppe benannt (`<base> - <group>.pdf`), so stehen der Laufzettel und der
abschließende Bericht eines Laufs nebeneinander; zwei Gruppen, deren Namen auf dieselbe
Datei fielen, werden an der Kennung des Befehls unterschieden. Eine spätere Erzeugung
desselben Befehls ersetzt das Dokument dieses Befehls und sonst nichts. Die zwei Optionen
des Befehls entscheiden, was mit dem Dokument geschieht:

| Option | Wirkung |
| --- | --- |
| Automatisch drucken | Das veröffentlichte PDF wird außerdem bei der Berichtswarteschlange eingereicht, die für die Einheit an diesem Ausgabezeitpunkt gilt. Eine Einheit ohne Warteschlange auf diesem Platz zeichnet den Versuch als fehlgeschlagen auf ("Auf der Einheit ist für diese Aktion keine Druckwarteschlange konfiguriert."). |
| Kopie im Lauf behalten | Das fertige PDF wird in der Laufdatei gespeichert, ein späteres erneutes Senden reicht also genau diese Bytes ein, auch nachdem das Layout geändert oder gelöscht wurde oder die veröffentlichte Datei durch eine spätere Erzeugung ersetzt worden ist. Der Lauf trägt dann die Größe des Dokuments. |

Ein Befehl, der um eines von beiden gebeten hat, vermerkt das Dokument auf dem Lauf (die
Registrierung, die die Historien unter **Bericht** listen); ein Befehl, der um keines von
beiden gebeten hat, veröffentlicht die Datei und vermerkt nichts, denn die Erzeugung ist
ein Export der Laufdatei und nie ein Schreiben in sie.

## Etiketten {#labels}

Ein Etikettenbefehl erzeugt seine Vorlage mit einer Quelle je Platzhalter. Bei Start lösen
allein die Quellen auf, die beim angenommenen Start festgeschrieben wurden: die Metadaten,
der Name und der Änderungsstand des Modells, der Name und das Kurzzeichen der Einheit, der
Name und das Kurzzeichen des Ablaufs, die Kennung des Laufs, der Startzeitpunkt und der
Laufzustand; ein Platzhalter, der auf etwas anderes zeigt, weist das Etikett bei Start ab
("Der Platzhalter '{{RESULT}}' ist nicht verfügbar, wenn ein Lauf startet."). Bei
Abschluss löst der ganze Katalog auf, ein Kriterienergebnis über seine dauerhafte Kennung
und einen ausdrücklichen Zyklus (ein fehlender Zyklus bedeutet nie den jüngsten).

Jede Erzeugung hängt zuerst ein unveränderliches **Artefakt** an die Laufdatei: die
endgültigen Befehlsbytes, den Namen der Vorlage, ihre Quelldatei und den Hash ihres
Inhalts, den Namen der Gruppe, den Auslöser, die aufgelösten Werte mit ihren Quellen, oder
den Grund, aus dem keine Befehle erzeugt werden konnten. Dann gehen die Bytes an die
Etikettenwarteschlange, die für die Einheit an diesem Ausgabezeitpunkt gilt, als
RAW-Dokument namens `Ganter Lab · <group>`. Eine Einheit ohne Warteschlange auf diesem
Platz zeichnet einen fehlgeschlagenen Versuch auf ("Auf der Einheit ist für dieses Etikett
keine Druckwarteschlange konfiguriert."); eine Vorlage, die fort ist, zeichnet "Die
konfigurierte Etikettenvorlage fehlt." auf. Jeder Zustellversuch wird an das Artefakt
angehängt: **Wird gesendet**, bevor der Spooler gerufen wird, dann **An Warteschlange
gesendet** oder **Fehlgeschlagen**; ein Versuch, den die Anwendung mittendrin unterbrochen
hat, bleibt **Senden ungewiss** und wird nie automatisch wiederholt, denn der Drucker kann
das Etikett bereits erzeugt haben. "An Warteschlange gesendet" bestätigt, dass Windows die
Nutzdaten angenommen hat, nicht dass Papier herauskam.

## Drucker {#printers}

In welcher Warteschlange ein Dokument landet, wird unter Definition >
[Drucker](process-printers) entschieden: Das Modell erklärt vier Vorgabeplätze, einen je
Kombination aus dem, was ausgegeben wird, und wann (Etikett oder Bericht, bei Start oder
bei Abschluss), und jede Einheit folgt den vier Plätzen des Modells oder hält vier eigene.
Ein Befehl löst sein Ziel über seine eigene Art und seinen Auslöser auf, bei einer
folgenden Einheit über das Modell und bei einer abgelösten über die Plätze der Einheit,
eine Gruppe, die sich zwei Abläufe teilen, druckt also über ein einziges, einmal gewähltes
Ziel. Die Warteschlangen sind die Windows-Druckwarteschlangen, die für den Benutzer
installiert sind, unter dem die Station läuft; ein Etikett geht als RAW-Bytes hinaus, ein
Bericht wird gerastert und auf das Gerät gezeichnet, ein gewöhnlicher Dokumentdrucker
bedient also die Berichte und ein Etikettendrucker die Etiketten.

## Danach {#afterwards}

Alles, was ein Lauf ausgegeben hat, wird auf seiner Aufzeichnung in den Historien gelesen
([Etiketten und
Berichte](histories-documents)): die Artefakte, die Registrierungen und jeder Versuch mit
seinem Status. Dort ist das Paar der Gesten für beide Medien dasselbe: ein **neues**
Dokument aus dem eingefrorenen Nachweis des Laufs (ein neues Etikett mit einem
konfigurierten Befehl oder einer von Hand zugeordneten Vorlage, ein neues PDF mit einem
beliebigen Layout) und das **erneute Ausgeben** eines aufgezeichneten (ein erneuter Druck
der eingefrorenen Bytes eines Artefakts, ein erneutes Senden der vermerkten PDF-Datei),
das nichts erneut auflöst.

## Was das Ausgeben nicht tut {#what-emission-does-not-do}

Es liest nie einen laufenden Wert: Ein Etikett löst allein auf, was die Laufdatei
eingefroren hat, und ein Bericht erzeugt allein aus der Datei. Es ändert nie einen Lauf:
Ein fehlgeschlagenes Dokument lässt das Prüfergebnis, den Zustand und die Datei genau so,
wie sie waren. Es bestätigt nie das Drucken. Und es gibt nie für einen Lauf aus
Momentaufnahme oder Jetzt bewerten aus: Diese tragen keinen Ablauf und keine Aktionen.
