Denna version av användarhandledningen gäller för uppdateringen maj 2020 och tidigare. För det senaste innehållet, besök vår engelska användarhandledning.

Händelsehanterare

Med händelsehanterare kan du definiera olika åtgärder som utförs när vissa händelser sker. Det gäller till exempel när ett objekt har modifierats eller innan ett nytt element i en värdelista skapas och så vidare. Åtgärderna anges med hjälp av variabler, allmänna funktioner i VBScript och M-Files API.

Exempel på hur händelsehanterare kan användas:

  • Objektbehörigheter kan ställas in så att de ändras automatiskt när objektegenskaper ändras.
  • Vissa grundläggande dokument kan läggas till i varje nytt projekt via en fördefinierad projektmodell.
  • Angivna Word-dokument kan alltid sparas som PDF-filer, så att när en Word-fil checkas in sparas den även i PDF-format på servern.
  • Data som är kopplade till foton, till exempel datum och bildstorlek, kan automatiskt läggas till i fotodokumentets metadata.
  • Om användaren lägger till ett nytt värde i värdelistan kan händelsehanteraren användas för att kontrollera att det tillagda värdet anges korrekt.
  • Du kan förhindra inloggning till M-Files utanför kontorstimmar, till exempel på kvällar och helger.
  • Du kan övervaka hur vissa filer hämtas, förhindra hämtning av ett stort antal filer eller ställa in så att ett larm om misstänkta hämtningar skickas till administratören.
Notera: Dokumentationen om M-Files API finns på www.m-files.com/api/documentation/latest. Mer information om att använda VBScript i M-Files finns i Hur skriver jag VBScript-kod för M-Files-syften?-självstudierna.

Gör följande steg för att skapa en ny händelsehanterare:

  1. Öppna M-Files Admin.
  2. I trädvyn på vänster sida visar du den önskade anslutningen till M-Files Server.
  3. Klicka på det dokumentvalv du vill ha (fortfarande i trädvyn på vänster sida) och välj Händelsehanterare i kontextmenyn.
    Resultat:Dialogrutan Händelsehanterare öppnas.
  4. Klicka på knappen Lägg till händelsehanterare....
    Resultat:Dialogrutan Lägg till händelsehanterare öppnas.
  5. Använd menyn Välj händelse för att välja den händelse som du vill skapa en händelsehanterare för.
    Exempel:Om du vill skapa en händelsehanterare som anropas när ett nytt objekt är på väg att skapas väljer du händelsen BeforeCreateNewObjectFinalize.
    Listan över tillgängliga händelser och deras beskrivningar finns i Tillgängliga händelsehanterare
  6. I fältet Namn anger du ett beskrivande namn för den nya händelsehanteraren och klickar på OK för att stänga dialogrutan Lägg till händelsehanterare.
    Exempel:Sök efter dubblettitlar.
    Om du har mer än en händelsehanterare av samma typ kan du ändra i vilken ordning allt utförs. Det gör du genom att välja händelsehanteraren i dialogrutan Händelsehanterare och klicka på uppåt- eller nedåtknappen längs det högre hörnet av dialogrutan.
  7. Tillbaka i dialogrutan Händelsehanterare klickar du på Redigera kod.
    Resultat:Fönstret Redigera VBScript-kod öppnas.
  8. Ange den kod som ska utföras när händelsehanteraren anropas och stäng sedan fönstret Redigera VBScript.
    Exempel:Följande kod i händelsen BeforeCreateNewObjectFinalize skulle kunna användas för att visa ett felmeddelande när användaren är på väg att skapa ett nytt objekt (det vill säga, metadatakortet fylls i med den nödvändiga informationen och användaren klickar på Skapa) och dokumentvalvet redan innehåller ett objekt med samma titel:
    ' 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
  9. Tillbaka i dialogrutan Händelsehanterare klickar du på OK för att spara ändringarna och stänga dialogrutan Händelsehanterare.
Den nya händelsehanteraren läggs till i det valda dokumentvalvet och den kod som du har definierat utförs varje gång händelsehanteraren anropas.