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.
- Wenn Sie gerade eine Vorlage anlegen, so klicken Sie bitte im entsprechenden Formular auf den Button Checks und Funktionen im Bereich Weitere Optionen.
- Wenn Sie dagegen den Tcl-Code in einer bestehenden Vorlage bearbeiten möchten, so lokalisieren Sie die Vorlage bitte zunächst in der Sektion Vorlagen mit Hilfe der Suchfunktion. Klicken Sie anschließend auf den Vorlagennamen im entsprechenden Listeneintrag, um auf die Ansichtsseite der Vorlage zu wechseln und dort wiederum den Button Bearbeiten, um zu dem Bearbeitungsformular für Vorlagen zu gelangen. Hier klicken Sie bitte abschließend im Formularbereich Weitere Optionen auf den Button Checks und Funktionen, um das entsprechende Formular zu öffnen.

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 auf1, andernfalls auf0gesetzt werden, um dem Content Manager den Ausführungsstatus zu signalisieren.messages: Istresult0, so interpretiert der Content Manager den Wert vonmessagesals 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 editGroupsist die Liste der Benutzergruppen, die die Version bearbeiten müssen.
editGroupssignatureDefs signatureDefsist 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.
signatureDefsallowsMultipleSignatures multiSigenthä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.
multiSig
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.