Auswertung von Schriftgut

Bei der Arbeit mit CTV-Dokumenten ist es wichtig, zu überblicken, wann das Schriftgut ausgewertet wird und welche Daten dabei verwendet werden.

Auch die Abfrage des Zustands von CTV-Modulen liefert nur dann ein sinnvolles Ergebnis, wenn das Modul zuvor ausgewertet wurde. Bei Operationen wie Anlegen, mit Daten versorgen oder Drucken (bei vorher bereits erfolgter Auswertung) wird der Modulzustand nicht verändert. Wenn Sie eine Schriftgutinstanz anlegen, wird zunächst nur im Speicher festgehalten, dass es ein Schriftgut gibt, welches auf einem bestimmten CTV-Modul basiert, und dass diesem Schriftgut bestimmte Daten zugeordnet sind, entweder als verknüpfte Parameterobjekte, oder als lokale Kopie des Inhalts eines Objekts.

Da noch nicht bekannt ist, ob das Dokument jemals auf Basis der jetzt bekannten Daten ausgegeben werden soll, erfolgt auch die Auswertung der Daten und der Aufbau des Dokuments zu diesem Zeitpunkt noch nicht. Dadurch werden unnötige Wartezeiten vermieden.

Erst, wenn das Dokument ausgegeben (gedruckt, archiviert, …) wird, überprüft das CTV-Laufzeitsystem, ob es bereits ausgewertet wurde, und wenn nicht, erfolgt dann die Auswertung. Dass ein Schriftgut vor dem Drucken bereits ausgewertet ist, kann z.B. dann der Fall sein, wenn es erst im CTV-Dialog angezeigt und anschließend gedruckt wird.

Zwischen Anlegen einer Schriftgutinstanz und ihrer Ausgabe können beliebig viele Änderungen an den Parameterobjekten stattgefunden haben. Es kann auch sein, dass einer Schriftgutinstanz durch die Versorgung mit neuen Daten andere Parameterobjekte zugeordnet wurden als ursprünglich beim Anlegen angegeben waren.

Da dies so ist, ist es wichtig, sicherzustellen, dass das Dokument mit den richtigen Dateninhalten ausgewertet wird.

Welche Daten für eine Schriftgutinstanz bei der Auswertung verwendet werden, können Sie an drei Stellen beeinflussen:

  • Bei der Neuanlage von Schriftgutinstanzen
  • Bei der Datenversorgung bestehender Schriftgutinstanzen
  • Bei der Ausgabe von Schriftgutinstanzen (Druck, Anzeige, Archiv).

Bei der Neuanlage und bei der Datenversorgung

In der TAA werden Datenobjekte als Parameter zwischen verschiedenen Modulen hin- und hergereicht. Dabei wird pro Parameter angegeben, ob das Datenobjekt direkt (Default) oder als Kopie übergeben werden soll. Standard-Verhalten von TAA-Modulen ist die Verknüpfung, oder Übergabe „by Reference“.

„By Reference“ (Verknüpfung):

Die Steuerung, die Schriftgutinstanz, sowie ggf. andere von der Steuerung aufgerufene Module operieren auf denselben physischen Daten. Jede Änderung, die das eine oder andere Modul an den Daten vornimmt, wirken sich auf auf die Erstellung des Dokuments aus. Die Daten, mit denen das Schriftgut aufgebaut werden soll, verändern sich dadurch möglicherweise ständig.

Änderungen an Objektdaten, die bei der Auswertung der Schriftgutinstanz vorgenommen werden, kommen auch in dem mit dem Parameterobjekt verknüpften Objekt aus der Steuerung an. Da Schriftgutinstanzen nicht beim Anlegen bereits ausgewertet werden, sondern erst bei ihrer Ausgabe (sei es durch Druck, Anzeige, oder XML-Archivierung), ist also davon auszugehen, dass sich - wenn das Schriftgut nicht direkt nach dem Anlegen gedruckt wird - der Inhalt von „by Reference“ übergebenen Objekten zwischen Anlage und Ausgabe eines Schriftguts verändert hat.

„By Value“ (Kopie):

Bei Übernahme der Daten wird für die Schriftgutinstanz eine Kopie des Objekts erstellt und mit den aktuellen Objektdaten bestückt. Weder werden dadurch spätere Änderungen am Original-Objekt in der Kopie wirksam, noch kommen Änderungen in der Objektkopie in dem Originalobjekt an.

Wenn Sie sicherstellen möchten, dass die Auswertung auf Basis der Objektinhalte zum Zeitpunkt der Zuordnung erfolgt, sollten Sie hier angeben, dass die Parameterobjekte - abweichend von dem TAA-Standard - „By Value“ übergeben sollen, dass also die Dateninhalte der Objekte als Kopie übernommen werden sollen.

Die Möglichkeit zur Übergabe „By Value“ kann z.B. dann wichtig sein, wenn dasselbe Parameterobjekt für die Erstellung von verschiedenen Schriftstücken benutzt wird, dieses aber für jedes Schriftstück einen anderen Inhalt haben muss (z.B. Vertragsdaten für verschiedenen Bestandteile eines kombinierten Vertrags).

Bei der Ausgabe

Unter „Ausgabe“ ist hier sowohl das Drucken des Schriftguts als auch die Bearbeitung im CTV-Dialog oder die Archivierung als XML-Dokument zu verstehen.

Falls das Schriftgut zuvor noch nicht ausgewertet wurde, geschieht dies spätestens jetzt.

Falls bereits früher eine Auswertung erfolgt war, können Sie selbst bestimmen, wie hier mit ggf. veränderten Dateninhalten umgegangen werden soll:

  • Die aktuellen Daten der verknüpften Parameterobjekte benutzen: In dem Fall bekommen alle Platzhalter in den Textbausteinen, die mit Inhalten von Parameterobjekten versorgt werden, den aktuellen Inhalt aus dem Objekt als neuen Wert. Ein veränderter Inhalt in einem Parameterobjekt kann aber auch Auswirkungen haben auf den Aufbau des Texts, und nicht nur auf die Platzhalter. Dies wird mit dieser Option nicht berücksichtigt, was zu unerwarteten Ergebnissen führen kann.
  • Vollständig neu aufgebaut: Bei dieser Angabe werden alle Auswirkungen von veränderten Daten berücksichtigt. Es werden alle Bedingungen und Aktionen in den betreffenden CTV-Modulen neu ausgewertet und der Inhalt des Schriftguts neu erstellt.
  • Nicht berücksichtigen: Wenn veränderte Objektinhalte überhaupt nicht berücksichtigt werden sollen, kreuzen Sie keine der beiden Auswahlmöglichkeiten an. Das Schriftgut wird dann so ausgegeben, wie es im Moment gespeichert ist, d.h. mit ggf. alten alten Objektinhalten.

Aber Achtung: Wenn Sie nichts ankreuzen, und das Schriftgut wurde aber zuvor noch nie ausgewertet, so muss es dennoch zu diesem Zeitpunkt ausgewertet und aufgebaut werden! Und dass dabei die aktuellen Daten der verknüpften Objekte benutzt werden, ist gar nicht zu vermeiden. Mit anderen Worten: Sie können durch Ankreuzen von „vollständig neu aufgebaut werden“ erzwingen, dass das Schriftgut auch dann neu aufgebaut wird, wenn es eigentlich nicht notwendig wäre. Aber sie können durch Nichtankreuzen nicht verhindern, dass es aufbaut wird, wenn es zuvor noch nicht aufgebaut worden war.

Wenn Sie noch weiter gehen wollen als die hier gebotenen Möglichkeiten und auch die Zuordnung der Parameterobjekte verändern möchten, geht dies über die Versorgung mit neuen Daten.

Beispiel

Ein Dokument verwendet abhängig von dem Feld PARM1-000-BETRAG den Textbaustein GUTHABEN oder den Textbaustein SCHULD.

Der Textbaustein GUTHABEN enthält folgenden Text:

  "Ihr Guthaben in Höhe von &Betrag#F2& werden wir Ihnen auf das bekannte Konto überweisen."

Der Textbaustein SCHULD enthält folgenden Text:

  "Wir bitten Sie, den ausstehenden Betrag von &Betrag#F2& umgehend auf unser untenstehendes
  Konto zu überweisen".

Das Schriftstück enthält eine Bedingung, in der Textbaustein GUTHABEN benutzt wird, wenn der Betrag positiv ist, Textbaustein SCHULD, wenn er negativ ist.

Angenommen, beim Anlegen des Schriftstücks hatte PARM1-000-BETRAG den Wert +67,93.

Nehmen wir jetzt weiter an, durch Neuberechnung im weiteren Verlauf der Anwendung ergibt sich ein neuer Wert, nämlich -214,50. Was passiert dann?

Angabe beim Anlegen des Schriftguts: „By Value“,
Angabe beim Druck: egal!

Ergebnis:

„Ihr Guthaben in Höhe von DM 67,93 werden wir Ihnen auf das bekannte Konto überweisen.“

Warum? Die Auswertung erfolgt mit den zu Beginn kopierten Daten. Dieser für den Empfänger erfreuliche Satz bliebe auch so, wenn beim Druck „aktuelle Daten der verknüpften Objekte benutzen“ angekreuzt wäre, denn das Schriftgut arbeitet mit einer Kopie der Daten, die bei der Neuberechnung nicht verändert wurde. Auch ein ausdrücklich verlangter vollständiger Neuaufbau würde kein anderes Ergebnis bringen.

Der einzige Weg, um bei Verwendung von „By Value“ eine Reaktion auf veränderte Daten zu erreichen, wäre die ausdrückliche Neuversorgung des Schriftguts mit Daten.

Angabe beim Anlegen des Schriftguts: „By Reference“ (default)
Angabe beim Druck: „aktuelle Daten der verknüpften Objekte benutzen“

Das Ergebnis ist jetzt davon abhängig, ob das Schriftgut bereits aus irgendeinem Grund vorher ausgewertet wurden oder nicht. Wenn nicht, ist alles gut, und im Brief steht

„Wir bitten Sie, den ausstehenden Betrag von DM 214,50 umgehend auf unser untenstehendes Konto zu überweisen.“

Falls aber doch, dann freut sich der Empfänger erst recht:

„Ihr Guthaben in Höhe von DM 214,50 werden wir Ihnen auf das bekannte Konto überweisen.“

Dieser Satz entsteht dadurch, dass nur die Werte ersetzt werden, aber die Bedingungen nicht neu ausgewertet werden. Die Neuauswertung mit aktuellen Daten ohne Neuaufbau ist daher mit größter Vorsicht anzuwenden!

Angabe beim Anlegen des Schriftguts: „By Reference“ (default)
Angabe beim Druck: „vollständig neu aufgebauen“

Ergebnis:

„Wir bitten Sie, den ausstehenden Betrag von DM 214,50 umgehend auf unser untenstehendes Konto zu überweisen.“

Hier wird die veränderte Situation immer richtig erkannt.

ctv:cedge:eval · Zuletzt geändert: 09.08.2024 13:25

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum