Gestionnaires d'événements

Avec les Gestionnaires d'événements vous pouvez définir différentes opérations effectuées lors de la modification d'objets. Les opérations sont spécifiées à l'aide de variables, de propriétés communes de VBScript et M-Files API.

Vous pouvez créer et modifier les gestionnaires d'événements dans M-Files Admin : Ouvrez le coffre pour lequel vous souhaitez définir des gestionnaires d'événements : vous pouvez alors trouver les gestionnaires d'événements dans le menu Action ou en effectuant un clic droit sur le coffre. Vous pouvez ajouter plusieurs opérations différentes au même gestionnaire d'événements en les nommant séparément.

Exemples de gestionnaires d'événements

Remarque : la création de gestionnaires d'événements requiert un haut niveau de compétences de programmation et est uniquement conçue pour les administrateurs avancés. L'administrateur doit connaître la langue de programmation VBScript. Les instructions d'écriture du code VBScript ne sont pas incluses dans la documentation de M-Files ou de M-Files API.

La documentation M-Files API est installée dans le dossier Démarrer > Programmes > M-Files > Documentation > M-Files API. Pour de plus amples informations sur le code VBScript et M-Files API, contactez [email protected]. Les instructions sur l'écriture du code VBScript et l'utilisation de M-Files API sont disponibles auprès du support technique M-Files pour un prix séparé.

Exemple

Lors de la création d'un nouvel objet, le gestionnaire d'événements peut être utilisé pour contrôler par exemple si le coffre de documents contient déjà un objet avec ce titre. Si c'est le cas, l'utilisateur reçoit un message d'erreur. Dans ce cas, le code VBScript suit alors le format suivant (exemple uniquement en anglais) :

' L'identifiant de la propriété de titre.

Dim titleProperty

titleProperty = MFBuiltInPropertyDefNameOrTitle

' Trouver la propriété du titre de l'objet courant.

Dim currentTitleProp

currentTitleProp = PropertyValues.SearchForProperty(titleProperty)

' Obtenir le titre de l'objet.

Dim currentTitle

currentTitle = currentTitleProp.Value

' Rechercher les objets sur la base du titre.

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)

' Si un objet existant avec le même titre a été trouvé, émettre une erreur.

If SearchResults.Count > 1 Then

Err.Raise MFScriptCancel, _

"Le coffre contient déjà un objet avec le même titre".

End if