Gestionnaires d'événements

Vous pouvez utiliser les gestionnaires d’événements pour indiquer les opérations qui doivent avoir lieu automatiquement lorsque certains événements se produisent. Par exemple, après la modification d'un objet ou avant la création d'un nouvel élément de liste de valeur.

Important : Lorsque vous développez de nouvelles extensions ou que vous modifiez des extensions existantes, nous vous recommandons de remplacer le contenu VBScript par du code compatible Vault Application Framework (VAF) afin d'assurer la compatibilité future. Pour plus d’informations sur les avantages de VAF par rapport à VBScript, reportez-vous à The Vault Application Framework dans M-Files Developer Portal.

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 créer un gestionnaire d’événements :

  1. Ouvrez M-Files Admin.
  2. Dans l'arborescence de gauche, déployez une connexion au serveur M-Files.
  3. Ouvrez le menu contextuel d'un coffre.
  4. Sélectionnez Gestionnaires d'événements.
    Résultat :La boîte de dialogue Gestionnaires d'événement s’ouvre.
  5. Sélectionnez Ajout d'un Gestionnaire d'Evénement.
    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 :Pour créer un gestionnaire d’événements qui est appelé chaque fois qu’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 Nom, saisissez un nom pour le nouveau gestionnaire d’événements et sélectionnez OK.
    Exemple :Vérifier les titres en double.
    Si vous avez plusieurs gestionnaires d’événements du même type, vous pouvez modifier 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 haut ou flèche vers le bas.
  8. Lorsque vous êtes de retour dans la boîte de dialogue Gestionnaire d'événement, sélectionnez Détails.
    Résultat :La boîte de dialogue VBScript - Détails s'ouvre.
  9. Saisissez le code devant être exécuté lorsque le gestionnaire d’événements est appelé, puis fermez la boîte de dialogue VBScript - Détails.
    Exemple :Ce code dans l’événement BeforeCreateNewObjectFinalize peut être utilisé pour afficher une erreur à l’utilisateur dans la situation suivante : Il est sur le point de créer un document (la fiche de métadonnées est remplie et l’utilisateur sélectionne Créer) et le coffre contient un objet ayant 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. Lorsque vous êtes de retour dans la boîte de dialogue Gestionnaires d'événements, sélectionnez OK pour enregistrer vos modifications et fermez la boîte de dialogue Gestionnaires d'événements.
Le nouveau gestionnaire d’événements est ajouté au coffre sélectionné et votre code est exécuté chaque fois que le gestionnaire d’événements est appelé.