Tapahtumakäsittelijät

Huomaa: Tätä sisältöä ei päivitetä. Uusimmat tiedot löydät M-Files Online -käyttöoppaasta. Tietoa tuetuista tuoteversioista löydät elinkaarikäytännöstämme.

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.