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 via 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.
Remarque : La documentation M-Files API est disponible en ligne : M-Files API. Pour plus d’informations sur l’emploi de VBScript dans M-Files, consultez le tutoriel Comment écrire le code VBScript code pour M-Files ?.

Réalisez les étapes suivantes pour créer un nouveau gestionnaire d'événements :

  1. Ouvrez M-Files Admin.
  2. Dans l'arborescence de gauche, déployez une connexion au serveur M-Files.
  3. Cliquez, à l'aide du menu bouton droit, sur un coffre.
  4. Cliquez sur Gestionnaires d'événement.
    Résultat :La boîte de dialogue Gestionnaires d'événement s’ouvre.
  5. Cliquez sur le bouton Ajouter un Gestionnaire....
    Résultat :La boîte de dialogue Ajout d'un Gestionnaire d'Evénement s’ouvre.
  6. 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
  7. 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.
  8. De retour dans la boîte de dialogue Gestionnaire d'événement, cliquez sur Editer le Code.
    Résultat :La fenêtre Edition du Code VBScript s’ouvre.
  9. 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
  10. 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.
Le nouveau gestionnaire d’événements est ajouté au coffre sélectionné et le code que vous avez défini est exécuté dès que le gestionnaire d’événements est invoqué.