| Dokumenttivaraston hallinta / Dokumenttivaraston Toiminto-valikko | |
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.
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