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é
Dim valeurObjet
Set valeurObjet = PropertyValues.SearchForProperty(ID_Objet).TypedValue.GetValueAsLookup
'on récupère la version qui corrspond
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ée
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