Tapahtumakäsittelijät

Tapahtumakäsittelijöiden avulla voit määrittää erilaisia toimintoja, jotka suoritetaan kohteiden muokkauksen yhteydessä. Toiminnot määritellään muuttujia, VBScriptin yleisiä ominaisuuksia ja M-Files APIa käyttämällä.

Tapahtumakäsittelijöitä voit luoda ja muokata M-Files Adminissa: Aktivoi dokumenttivarasto, jolle haluat määrittää tapahtumakäsittelijöitä. Tämän jälkeen löydät tapahtumakäsittelijät Toiminto-valikosta tai napsauttamalla varastoa hiiren oikealla painikkeella. Voit lisätä samalle tapahtumakäsittelijälle useita eri toimintoja nimeämällä ne erikseen.

Erilaisia esimerkkejä tapahtumakäsittelijöiden hyödyntämisestä

Huomautus: Tapahtumakäsittelijöiden luominen vaatii ohjelmointiosaamista ja on tarkoitettu vain edistyneille järjestelmänvalvojille. Järjestelmänvalvojan oletetaan osaavan VBScript-ohjelmointikielen käyttö entuudestaan. VBScript-koodin kirjoittamiseen liittyvä ohjeistus ei sisälly M-Filesin tai M-Files APIn dokumentaatioon.

M-Files APIn dokumentaatio löytyy M-Filesin asennuksen jälkeen kohdasta Käynnistä > Ohjelmat > M-Files > Dokumentaatio > M-Files API. Lisätietoja VBScript-koodiin ja M-Files APIin liittyen saat osoitteesta [email protected]. VBScript-koodin kirjoittamiseen ja M-Files APIin liittyvä neuvonta ei kuulu teknisen tuen piiriin, vaan siitä veloitetaan erikseen.

Esimerkki

Tapahtumakäsittelijän avulla voidaan tarkistaa esimerkiksi uutta kohdetta luotaessa, onko varastossa jo valmiiksi tämän niminen kohde. Jos on, saa käyttäjä virheilmoituksen. Tällöin VBScript-koodi on muotoa (esimerkki vain englanniksi):

' 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."

End if