The M-Files Community will be updated on Tuesday, April 2, 2024 at 10:00 AM EST / 2:00 PM GMT and the update is expected to last for several hours. The site will be unavailable during this time.

This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Updating related property with vbscript

Hi everybody,

We have products with quantities and a mouvment related to a product. We are trying with VBScript to update the product quantity when the mouvment is created.

We are new in VBScript in M-Files so be indulgent.

We wrote this which leads to an error (ObjVer non managed ; yellow line). Maybe we get some real understanding points so thanks in advance for all your help.

Option Explicit


Dim ID_Objet : ID_Objet = GetPropertyID("PD_PROD") 'récupère le numéro de propriété de l'objet

'on récupère l'objet liéPoint down
Dim valeurObjet
Set valeurObjet = PropertyValues.SearchForProperty(ID_Objet).TypedValue.GetValueAsLookup

'on récupère la version qui corrspondPoint down
Dim Objetlier : Set Objetlier = GetOvapsByLookup(valeurObjet)
Dim VERObjerlier : Set VERObjerlier = Objetlier.ObjVer 'récupère l'ObjVer de l'objet lié

Dim ProprietesObjetlier : Set ProprietesObjetlier = Objetlier.Properties 'récupère l'ensemble des propriétés de l'objet lié


Dim ID_METADONNEEObjetlier : ID_METADONNEEObjetlier = GetPropertyID("PD.Quantite") 'récupère l'ID de la métadonnée dans l'objet lié

'récupère la valeur de la métadonnée de l'objet liéePoint down
DIm val_METADONNEEObjetlier : val_METADONNEEObjetlier = ProprietesObjetlier.SearchForProperty(ID_METADONNEEObjetlier).TypedValue.DisplayValue
val_METADONNEEObjetlier = val_METADONNEEObjetlier + 1 'ajoute + 1

Vault.ObjectPropertyOperations.SetProperty VERObjerlier.ObjVer, val_METADONNEEObjetlier 'met à jour l'objet lié avec la nouvelle valeur

Function GetPropertyID(alias)
Dim iID
iID = vault.PropertyDefOperations.GetPropertyDefIDByAlias(alias)
If iID=-1 then
Err.raise MFScriptCancel, "La propriété/métadonnée n'a pas été trouvée (alias :" & alias
End If
GetPropertyID=iID
End Function

Function GetOvapsByLookup( lookup )
Dim oObjID : Set oObjID = CreateObject( "MFilesAPI.ObjID" )
Call oObjID.SetIDs( lookup.ObjectType, lookup.Item )
Dim oObjVer : Set oObjVer = Vault.ObjectOperations.GetLatestObjVer( oObjID,False)
Set GetOvapsByLookup = Vault.ObjectOperations.GetObjectVersionAndProperties(oObjVer)
End Function