Ereignishandler

Mit Ereignishandlern können Sie verschiedene Vorgänge definieren, die beim Bearbeiten von Objekten ausgeführt werden. Die Vorgänge werden mittels Variablen, allgemeinen Funktionen von VBScript und der M-Files API festgelegt.

Sie können Ereignishandler in M-Files Admin erstellen und bearbeiten: Aktivieren Sie die Dokumentenverwaltung, für die Sie Ereignishandler definieren möchten. Sie finden die Ereignishandler im Menü Aktion oder durch Rechtsklick auf die Dokumentenverwaltung. Sie können demselben Ereignishandler mehrere verschiedene Vorgänge hinzufügen, indem Sie diesen unterschiedliche Namen geben.

Beispiele für die Verwendung von Ereignishandlern

Anmerkung: Das Erstellen von Ereignishandlern erfordert umfangreiche Programmierfähigkeiten und richtet sich daher nur an erfahrene Administratoren. Der Administrator muss mit der VBScript-Programmiersprache vertraut sein. Anweisungen zum Schreiben des VBScript-Codes sind in M-Files oder der M-Files API-Dokumentation nicht enthalten.

Die Dokumentation zur M-Files API befindet sich im Ordner Start > Alle Programme > M-Files > Dokumentation >M-Files API. Weitere Informationen über den VBScript-Code und die M-Files API erhalten Sie unter [email protected]. Anweisungen zum Erstellen von VBScript-Code sowie zur Verwendung der M-Files API erhalten Sie kostenpflichtig beim technischen Support von M-Files.

Beispiel

Beim Erstellen eines neuen Objekts kann mithilfe des Ereignishandlers überprüft werden, ob beispielsweise die Dokumentenverwaltung bereits ein Objekt mit demselben Titel enthält. Ist dies der Fall, erhält der Benutzer eine Fehlermeldung. In diesem Fall verwendet der VBScript-Code das folgende Format (Hinweis: Das nachfolgende Beispiel ist nur auf Englisch vorhanden):

' The ID of the title property.

Dim titleProperty

titleProperty = MFBuiltInPropertyDefNameOrTitle

' Find the title property of the current object.

Dim currentTitleProp

currentTitleProp = PropertyValues.SearchForProperty(titleProperty)

' Get the title of the object.

Dim currentTitle

currentTitle = currentTitleProp.Value

' Search for objects on the basis of title.

Dim titleSearch

Set titleSearch = CreateObject("MFilesAPI.SearchCondition")

Dim titleExpression

Set titleExpression = CreateObject("MFilesAPI.Expression")

titleExpression.SetTypedValueExpression MFDatatypeText, -1, MFParentChildBehaviorNone, Nothing

Dim titleTypedValue

Set titleTypedValue = CreateObject("MFilesAPI.TypedValue")

titleTypedValue.SetValue MFDatatypeText, currentTitle

titleSearch.Set titleExpression, MFConditionTypeEqual, titleTypedValue

Dim SearchResults

Set SearchResults = Vault.ObjectSearchOperations.SearchForObjectsByCondition(titleSearch, false)

' If an existing object with the same title was found, raise an error.

If SearchResults.Count > 1 Then

Err.Raise MFScriptCancel, _

"The document vault already contains an object with the same title."

End if