Mit Checks und Funktionen können Sie in bestimmte Aktionen, die mit Versionen durchgeführt werden, eingreifen. Dies geschieht mit Hilfe von Tcl-Code.
Es gibt drei Checks und Funktionen, die in Dateivorlagen angegeben werden können, den Vollständigkeitscheck, die Versionszuweisungsfunktion und die Workflowzuweisungsfunktion. Das Formular, in dem der Tcl-Code eingegeben werden kann, erreichen Sie auf zwei Arten.
Versionszuweisungsfunktion
Die Versionszuweisungsfunktion wird vom Content Management Server aufgerufen, bevor er die Feldwerte einer Version setzt. Dies geschieht, nachdem Sie die Felder in einer Feldergruppe oder den Haupttext einer Version bearbeitet haben. Die Funktion wird aufgerufen, nachdem die Wertzuweisungsfunktionen der einzelnen Felder ausgeführt wurden. Ihr Tcl-Code hat nur lesenden Zugriff auf die Content-Management-Server-Daten. Der Code der Funktion kann die folgenden Variablen verwenden:
modifiedAttributes
: Die Liste der Versionsfelder und ihrer
Werte, die durch die Schreiboperation geändert werden sollen, kodiert als
Name-Wert-Paare. Der Hauptinhalt der Version ist in dieser Liste nicht
enthalten.contentId
: Die ID der Version, dessen Felder geändert
werden sollen.inBlobFile
: Der Name der Datei, in der die Funktion den
Hauptinhalt findet, falls dieser geändert wurde. Wurde der Hauptinhalt nicht
geändert, so ist diese Variable nicht definiert.outBlobFile
: Der Name der Datei, in die die Funktion den
Hauptinhalt schreiben muss, wenn er ihn ändert. Beim Eintritt in den Code der
Funktion existiert diese Datei nicht. Legt die Funktion sie an, so setzt der
Content Management Server den Hauptinhalt auf ihren Inhalt.result
: Diese Variable sollte von der Funktion bei
erfolgreicher Ausführung auf 1
, andernfalls auf 0
gesetzt werden, um dem Content Manager den Ausführungsstatus zu
signalisieren.messages
: Ist result
0
, so
interpretiert der Content Manager den Wert von messages
als
auszugebende Fehlermeldung.Sie können mit Ihrem Code die Konsistenz der Feldwerte prüfen und gegebenenfalls
die Liste modifiedAttributes
ändern. Bitte beachten Sie, dass der
Hauptinhalt einer Version separat über die Variablen inBlobFile
und
outBlobFile
referenziert wird. Dies zeigt das folgende Beispiel für
einen Hauptinhalt, der Text enthält:
if {[info exists inBlobFile]} { set fh [open $inBlobFile r] fconfigure $fh -encoding utf-8 set blob [read $fh] close $fh ### Code, der den Blob und andere Felder modifiziert, kommt ### hierher. Jetzt den Blob in der vorgesehenen Datei speichern: set fh [open $outBlobFile w] fconfigure $fh -encoding utf-8 puts -nonewline $fh $blob close $fh set result 1 }
Hat Ihr Code result
auf 1
gesetzt, so interpretiert
der Content Management Server modifiedAttributes
als
Feldname-Wert-Paare und speichert die Feldwerte ab. Bei diesem Vorgang werden
Eingabewerte, die in einem internen Format gespeichert werden (beispielsweise
Datumswerte), konvertiert. Setzen Sie dagegen result
auf
0
(null), so speichert der Content Management Server die Feldwerte
nicht. In diesem Fall nimmt der Content Management Server an, dass ein Fehler
aufgetreten ist und dass Ihr Code eine oder mehrere Fehlermeldungen in der Liste
messages
gespeichert hat. Diese Fehlermeldungen werden vom Content
Management Server angezeigt.
Workflowzuweisungsfunktion
Mit diesem Code können Sie auf den Workflow einer Arbeitsversion Einfluss
nehmen, bevor die Version angelegt wird. Er wird aufgerufen, wenn eine Datei
angelegt oder eine der Workflow-Aktionen Bearbeiten, Zurückweisen
oder Zurückziehen ausgeführt wird. Bevor der Content Management Server den
Code abarbeitet, setzt er die Variable contentId
auf die ID der
betreffenden Arbeitsversion und die Variable objId
auf die ID der
Datei, zu der die Version gehört. Ferner sind in der Variablen
workflow
die Workflow-Parameter gespeichert. Diese Parameter ergeben
sich aus dem Workflow, der der Vorlage der Datei zugeordnet ist. Die Parameter sind
in der Variablen workflow
als Tcl-Liste abgelegt. Die Elemente dieser
Liste sind:
editGroups editGroups
editGroups
ist die
Liste der Benutzergruppen, die die Version bearbeiten müssen.signatureDefs signatureDefs
signatureDefs
ist die Liste der Signaturdefinitionen. Jede Definition ist eine Liste aus zwei
Elementen, deren erstes Element der Name eines Signaturfeldes und deren zweites
Element der Name der Benutzergruppe ist, deren Mitglieder die Unterschrift
leisten dürfen.allowsMultipleSignatures multiSig
multiSig
enthält 0, wenn es nicht zulässig sein soll, dass die gleiche Benutzergruppe
eine Version mehrfach unterzeichnet. Andernfalls enthält der Parameter den Wert
1.Mit Ihrem Tcl-Code können Sie die Workflow-Definition ändern, indem Sie sie in
der Variablen workflow
speichern. Das folgende Beispiel zeigt, wie je
nach Pfad unterschiedliche Workflows verwendet werden können:
set pfad [obj withId $objId get path] switch -regexp $pfad { /intranet {set workflow {allowsMultipleSignatures 1 editGroups Intranet_Editors signatureDefs {{Sig_Chiefs1 Chiefs1}}}} /internet {set workflow {allowsMultipleSignatures 1 editGroups Internet_Editors signatureDefs {{Sig_Chiefs2 Chiefs2}}}} }
Vollständigkeitscheck
Hier können Sie Tcl-Code eintragen, der vom Content Management Server immer abgearbeitet wird, nachdem eine Arbeitsversion geändert wurde. Unter anderem lassen sich hier Konsistenzprüfungen der Werte mehrerer Felder der Version realisieren.
Der Content Management Server ruft den Code nur auf, wenn alle anderen Vollständigkeitsprüfungen erfolgreich abgeschlossen wurden oder die Gründe für die Unvollständigkeit ermittelt werden. Der Content Management Server lässt keine schreibenden Operationen (wie die Änderung eines Feldwertes) zu. Variablen können jedoch gesetzt werden.
Die folgende (globale) Variable wird vom Content Management Server vorbelegt:
contentId
: Die ID der Version, die überprüft werden soll.Mit folgenden (globalen) Variablen wird das Ergebnis zurückgegeben:
result
: 0 bedeutet, dass die Version unvollständig ist.
Andere Rückgabewerte werden als vollständig interpretiert.messages
: Liste der Meldungen der Gründe für die
Unvollständigkeit (String-Array).Nachdem Sie die Checks und Funktionen der Vorlage festgelegt haben, klicken Sie bitte auf OK, um die Änderungen zu speichern.