Result

Die Klasse TeamWiSE.Runtime.CTVSupport.Result bildet Ergebnisse der CTV Engine oder einzelner Dokumente ab. Alle spezifischen Ergebnissen sind von dieser Klasse abgeleitet. Eine Instanz der Klasse Result kann es nicht geben, sondern immer nur hiervon abgeleitete spezifischen Typen. Instanzen der Result-Klasse implementieren das Interface IDisposable. Wenn solche Instanzen freigegeben werden (implizit durch den Garbage-Collector oder explizit über die Dispose()-Methode oder durch das Ende einer using-Anweisung) können seine Eigenschaften nicht wieder hergestellt werden. Die für dieses Ergebnis erzeugte Daten sind dann weg. Damit ist auch der verwendete Speicher geringer und ggf. erzeugte temporäre Dateien werden gelöscht.

Man beachte, dass das Ergebnis erst dann aus den ursprünglichen Schriftgut-Instanzen erzeugt wird, wenn das Ergebnis in irgendeiner Form gebraucht wird, bspw. wenn die Datei oder eine URL für die Ergebnisdaten verlangt wird. Bis dahin ist lediglich vermerkt, aus welchen Schriftgut-Instanzen das Ergebnis aufgebaut werden soll.

Mit dem Release 9.07 wird eine erste, minimale CTV-Funktionalität angeboten. In künftigen Releases wird diese Funktionalität nach und nach erweitert werden. Die Kompatibilität der Funktionalitäten in künftigen Versionen soll dabei gewährleistet werden.

Beispielverwendung

Ergebnis für Dokumente in der CTV Engine.

using (var result = this.Ctv.GetDocumentsResult<PdfResult>()) {
  File.Copy(result.Filename, specificTarget);
}

Ergebnis für eine Schriftgut Instanz vom Typ Document.

using (var result = Document.GetResult<PdfResult>()) {
  File.Copy(result.Filename, specificTarget);
}

Eigenschaften

Filename

public string Filename { get; }

Liefert die Pfadangabe, wo das Ergebnis gefunden werden kann. Das Ergebnis wird in einer temporären Datei abgelegt. Mit einem expliziten oder impliziten Dispose() auf die Result-Instanz wird die temporäre Datei gelöscht.

Url

public string Url { get; }

Liefert eine URL, unter der das Ergebnis abgerufen werden kann. Die Datei für das Ergebnis wird erstellt wenn noch nicht geschehen und zum Abruf unter einem automatisch erzeugten, eindeutigen Namen in ein Webverzeichnnis kopiert. Die in diesem Webverzeichnis kopierten Ergebnis-Dateien werden weder automatisch aufgeräumt, noch archiviert. Die Dateien werden in das Verzeichnis gestellt, das im Config-Abschnitt der TAA-Registry mit TempURLDir angegeben wurde. Die konstruierte URL wird aus dem erzeugten Dateinamen mit einem vorangestellten Base erstellt. Der Base wird aus dem Eintrag TempURLBase aus dem Config-Abschnitt der TAA-Registry ermittelt. Es versteht sich, dass die Einträge so gestaltet sein sollten, dass die beiden Angaben zu der physikalisch gleichen Datei führen.

Abgeleitete Klassen

PdfResult

Die Klasse TeamWiSE.Runtime.CTVSupport.PdfResult beschreibt ein Ergebnis, das in Form einer PDF-Datei aus den zugrunde liegenden Schriftgut-Instanzen erzeugt wurde.

OpenXmlResult

Die Klasse TeamWiSE.Runtime.CTVSupport.OpenXmlResult beschreibt ein Ergebnis, das in Form einer Open-XML-Datei aus der zugrunde liegenden Schriftgut-Instanz erzeugt wurde. Das OpenXmlResult kann ein Ergebnis nur für ein Open XML Dokument zurück liefern. Enthält die zugrundeliegende Schriftgut-Instanz kein oder mehrere Open XML Dokumente, so werden spezifische Conditions aufgeworfen, die gegebenenfalls abgefangen und behandelt werden sollten.

try {
  using (var result = this.Ctv.GetDocumentsResult<OpenXmlResult>()) {
    File.Copy(result.Filename, specificTarget);
  }
}
catch (Zztaaim2.MissingDocuments missingDocuments) {
  // Fehlerbehandlung
}
catch (Zztaaim2.TooManyDocuments tooManyDocuments) {
  // Fehlerbehandlung
}

Alternativ ist es auch möglich, ein Ergebnis direkt von einem einzelnen Document zu bekommen.

foreach (var document in this.Ctv.DocumentLeaves.Where(doc => doc.CanDeliverOpenXml)) {
  using (var result = document.GetResult<OpenXmlResult>()) {
    File.Copy(result.Filename, specificTarget);
  }
}

RtfResult

Die Klasse TeamWiSE.Runtime.CTVSupport.RtfResult beschreibt ein Ergebnis, das in Form einer RTF-Datei aus den zugrunde liegenden Schriftgut-Instanzen erzeugt wurde.

dotnet:native:ctv:result · Zuletzt geändert: 09.03.2021 09:09

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