Tapahtumakäsittelijät

Tapahtumakäsittelijöiden avulla voit määrittää, että tietyt toiminnot suoritetaan automaattisesti tiettyjen tapahtumien yhteydessä. Toiminnot voidaan suorittaa esimerkiksi objektin muokkaamisen jälkeen tai ennen uuden arvolistakohteen luomista.

Tärkeää: Kun kehität uusia laajennuksia tai muokkaat olemassa olevia, suosittelemme korvaamaan VBScriptin sisällön Vault Application Framework (VAF) -yhteensopivalla koodilla. Näin varmistat yhteensopivuuden myös jatkossa. Lisätietoja VAF-toteutusten hyödyistä VBScript-toteutuksiin nähden löydät The Vault Application Framework -sivulta M-Files Developer Portalista.

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ä jokaiseen 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.

Tapahtumakäsittelijän luominen:

  1. Avaa M-Files Admin.
  2. Laajenna vasemman reunan puunäkymässä M-Files-palvelinyhteys.
  3. Avaa varaston pikavalikko.
  4. Valitse Tapahtumakäsittelijät.
    Tulos:Tapahtumakäsittelijät-ikkuna avautuu.
  5. Valitse Lisää tapahtumakäsittelijä.
    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 käynnistetään 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. Kirjoita Nimi-kenttään uuden tapahtumakäsittelijän nimi ja valitse OK.
    Esimerkki:Tarkista kaksoiskappaleotsikoiden varalta.
    Jos samantyyppisiä tapahtumakäsittelijöitä on useita, voit vaihtaa niiden suoritusjärjestyksen valitsemalla tapahtumakäsittelijän Tapahtumakäsittelijät-valintaikkunasta ja napsauttamalla ylä- tai alanuolipainiketta.
  8. Kun olet palannut Tapahtumakäsittelijä-valintaikkunaan, valitse Tiedot.
    Tulos:VBScript – Tiedot -valintaikkuna avautuu.
  9. Anna tapahtumakäsittelijää käynnistettäessä suoritettava koodi ja sulje sitten VBScript – Tiedot -valintaikkuna.
    Esimerkki:Tätä BeforeCreateNewObjectFinalize-tapahtuman sisältämää koodia voidaan käyttää virheen näyttämiseen käyttäjälle seuraavassa tilanteessa: Käyttäjä on luomassa dokumenttia (metatietokortti on täytetty ja käyttäjä valitsee Luo) ja varastossa on samanniminen kohde:
    ' 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 palannut Tapahtumakäsittelijät-valintaikkunaan, valitse OK. Tekemäsi muutokset tallennetaan ja Tapahtumakäsittelijät-valintaikkuna suljetaan.
Uusi tapahtumakäsittelijä lisätään valittuun varastoon ja määrittämäsi koodi suoritetaan aina, kun tapahtumakäsittelijä käynnistetään.