Gestionnaires d'événements
À l’aide des gestionnaires d’événements, vous pouvez définir différentes opérations qui sont exécutées si certains événements se produisent, par exemple, après la modification d’un objet ou avant qu’un nouvel élément de liste de valeurs ne soit créé, etc. Les opérations sont spécifiées à l'aide de variables, de propriétés communes de VBScript et M-Files API.
Exemples d’emploi de gestionnaires d'événements :
- Les autorisations d'objet peuvent être configurées pour changer automatiquement quand les propriétés de l'objet sont modifiées.
- Certains documents de base peuvent être ajoutés à chaque nouveau projet avec un modèle de projet prédéfini.
- Les documents Word indiqués peuvent toujours être enregistrés sous PDF. Ainsi quand un fichier Word est publié, il est enregistré au format PDF aussi dans le serveur.
- Les données liées aux photos, comme la date et la taille de l'image, peuvent être ajoutées automatiquement aux métadonnées du document photo.
- Si l'utilisateur ajoute une nouvelle valeur à la liste de valeurs, le gestionnaire d'événements peut être utilisé pour vérifier que la valeur ajoutée est correctement saisie.
- La connexion à M-Files peut être empêchée en dehors des heures de travail, par exemple la nuit et le week-end.
- Il est possible de surveiller le téléchargement de certains fichiers, d'empêcher le téléchargement de quantités importantes de fichiers ou d'envoyer une alarme de téléchargements suspects à l'administrateur.
Réalisez les étapes suivantes pour créer un nouveau gestionnaire d'événements :
- Ouvrez M-Files Admin.
- Dans l'arborescence de gauche, déployez une connexion au serveur M-Files.
- Cliquez, à l'aide du menu bouton droit, sur un coffre.
- Cliquez sur Gestionnaires d'événement.
- Cliquez sur le bouton Ajouter un Gestionnaire....
-
Utilisez le menu déroulant Evénement pour sélectionner l’événement pour lequel vous souhaitez créer un gestionnaire d’événements.
Exemple :Si vous souhaitez créer un gestionnaire d’événements qui est invoqué lorsqu’un nouvel objet est sur le point d’être créé, sélectionnez l’événement BeforeCreateNewObjectFinalize.Pour obtenir la liste des événements disponibles et leurs descriptions, consultez Gestionnaires d'événements disponibles
-
Dans le champ Nom, saisissez un nom descriptif pour le nouveau gestionnaire d’événements et cliquez sur OK pour fermer la boîte de dialogue Ajout d'un Gestionnaire d'Evénement.
Exemple :Vérifier les titres en double.Si vous avez plus d’un gestionnaire d’événements du même type, vous pouvez changer leur ordre d’exécution en sélectionnant le gestionnaire d’événements dans la boîte de dialogue Gestionnaires d'événements et en cliquant sur le bouton flèche vers le bas ou flèche vers le haut dans le coin droit de la boîte de dialogue.
- De retour dans la boîte de dialogue Gestionnaire d'événement, cliquez sur Editer le Code.
-
Saisissez le code devant être exécuté si le gestionnaire d’événements est invoqué, puis fermez la fenêtre Editer VBScript.
Exemple :Le code suivant de l’événement BeforeCreateNewObjectFinalize pourrait être utilisé pour afficher un message d’erreur à l’attention de l’utilisateur s’il est sur le point de créer un nouvel objet (c’est-à-dire que la fiche de métadonnées est renseignée avec les informations nécessaires et que l’utilisateur clique sur le bouton Créer) et si le coffre comporte déjà un objet possédant le même titre :
' 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.SetPropertyValueExpression titleProperty, 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. Please choose another title." End if
- De retour dans la boîte de dialogue Gestionnaires d'événement, cliquez sur OK pour enregistrer vos modifications et fermer la boîte de dialogue Gestionnaires d'événement.