Tapahtumakäsittelijät

Tapahtumakäsittelijöiden avulla voit määrittää erilaisia toimintoja, jotka suoritetaan tiettyjen tapahtumien tapahtuessa, kuten kohteen muokkauksen jälkeen tai ennen uuden arvolistan arvon luomista. Toiminnot määritellään muuttujia, VBScriptin yleisiä ominaisuuksia ja M-Files APIa käyttämällä.

Esimerkkejä tapahtumakäsittelijöiden hyödyntämisestä:

  • Voidaan määrittää, että kun kohteen ominaisuuksia muutetaan, myös kohteen suojausasetukset muuttuvat automaattisesti.
  • Tiettyjä perusdokumentteja voidaan lisätä kuhunkin uuteen projektiin ennalta määritetyn projektimallin kautta.
  • Määritetyt Word-tiedostot voidaan tallentaa aina PDF-muodossa niin, että kun Word-tiedosto palautetaan muokkauksesta, se tallennetaan palvelimelle myös PDF-muodossa.
  • Valokuvaan liittyvät tiedot, kuten päivämäärä ja kuvan koko, voidaan automaattisesti lisätä valokuvadokumentin metatietoihin.
  • Mikäli käyttäjä lisää uuden arvon arvolistaan, voidaan tapahtumakäsittelijän avulla tarkistaa, että lisättävä arvo on syötetty oikein.
  • Sisäänkirjautumiset M-Filesiin voidaan estää työajan ulkopuolella, esimerkiksi yöllä ja viikonloppuisin.
  • Tiettyjen tiedostojen lataamista voidaan seurata, suurien tiedostomäärien lataaminen voidaan estää tai epäilyttävistä lataamisista voidaan lähettää hälytys järjestelmänvalvojalle.
Huomaa: M-FilesAPI -dokumentaatio on saatavilla verkossa: M-Files API. Jos haluat lisätietoja VBScriptin käyttämisestä M-Filesissa, katso Miten kirjoitan VBScript-koodin M-Filesia varten?.

Luo uusi tapahtumakäsittelijä seuraavasti:

  1. Avaa M-Files Admin.
  2. Laajenna vasemman reunan puunäkymässä M-Files-palvelinyhteys.
  3. Napsauta varastoa hiiren oikealla painikkeella.
  4. Valitse Tapahtumakäsittelijät.
    Tulos:Tapahtumakäsittelijät-ikkuna avautuu.
  5. Napsauta Lisää tapahtumakäsittelijä... -painiketta.
    Tulos:Lisää tapahtumakäsittelijä -ikkuna avautuu.
  6. Valitse Valitse tapahtuma -pudotusvalikosta tapahtuma, jolle haluat luoda tapahtumakäsittelijän.
    Esimerkki:Jos haluat luoda tapahtumakäsittelijän, joka suoritetaan aina uutta kohdetta luotaessa, valitse BeforeCreateNewObjectFinalize-tapahtuma.
    Katso luettelo käytettävissä olevista tapahtumista ja niiden kuvaukset kohdasta Käytettävissä olevat tapahtumakäsittelijät.
  7. Anna uudelle tapahtumakäsittelijälle kuvaava nimi Nimi-kenttään ja napsauta OK. Lisää tapahtumakäsittelijä -ikkuna sulkeutuu.
    Esimerkki:Tarkista kaksoiskappaleotsikoiden varalta.
    Jos samantyyppisiä tapahtumakäsittelijöitä on useampi kuin yksi, voit vaihtaa niiden suoritusjärjestyksen valitsemalla tapahtumakäsittelijän Tapahtumakäsittelijät-ikkunassa ja napsauttamalla ikkunan oikean reunan ylös- tai alas-nuolipainiketta.
  8. Kun olet taas Tapahtumakäsittelijä-ikkunassa, napsauta Muokkaa koodia.
    Tulos:Muokkaa VBScript-koodia -ikkuna avautuu.
  9. Anna tapahtumakäsittelijän suoritettaessa suoritettava koodi ja sulje sitten Muokkaa VBScript-koodia -ikkuna.
    Esimerkki:Seuraavaa BeforeCreateNewObjectFinalize-tapahtuman koodia voidaan käyttää virheilmoituksen näyttämiseen käyttäjälle, kun hän on luomassa uutta kohdetta (eli metatietokorttiin on täytetty tarvittavat tiedot ja käyttäjä napsauttaa Luo-painiketta) ja dokumenttivarastossa on jo kohde, jolla on sama otsikko:
    ' 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. Kun olet taas Tapahtumakäsittelijät-ikkunassa, napsauta OK. Tekemäsi muutokset tallennetaan ja Tapahtumakäsittelijät-ikkuna sulkeutuu.
Uusi tapahtumakäsittelijä lisätään valittuun dokumenttivarastoon ja määrittämäsi koodi suoritetaan aina, kun tapahtumakäsittelijä suoritetaan.