I am trying to set (flag) a property (called attached) within object class to yes (true). I do have a vbscript that works (within workflow state) but only for single properties list. I don't know how to make it work for MULTI properties list. Is there a way i can loop between all individual objects by Alias on the list (that i have added on the form) and set their attached property to true?
option explicit
'Define variables
Dim titleTypedValue
Dim oPropVal: Set oPropVal = CreateObject("MFilesAPI.PropertyValue")
Dim oProp: Set oProp = vault.PropertyDefOperations
Dim oPropValsCurrent: Set oPropValsCurrent = CreateObject("MFilesAPI.PropertyValues")
Dim IsAttached
Dim Ref
Dim Prop
'Get ID of Property
Set Ref = SearchForObject("Milestone", 1)
'Call "ATTACHTED" property and get latest version of property
set IsAttached = vault.ObjectPropertyOperations.GetProperties (Ref.ObjVer, true)
'Set "ATTACHTED" Property value to true (Yes)
oPropVal.PropertyDef = oProp.GetPropertyDefIDByAlias("Attached")
oPropVal.TypedValue.SetValue MFDatatypeBoolean, true
oPropValsCurrent.Add -1, oPropVal
'Apply the new properties value
Vault.ObjectPropertyOperations.SetProperties Ref.ObjVer, oPropValsCurrent
'********************************************************************************************************************
'Search For Object method
function SearchForObject(PropertyID, Index)
Dim oPropertyValsSearch: set oPropertyValsSearch = vault.ObjectPropertyOperations.GetProperties (Objver, true)
Dim EmpName
Dim titleProperty
titleProperty = 1055
EmpName = oPropertyValsSearch.SearchForPropertyByAlias(vault, PropertyID , true).Value.DisplayValue
' Find the title property of the current object.
Dim titleSearch
Set titleSearch = CreateObject("MFilesAPI.SearchCondition")
Dim titleExpression
Set titleExpression = CreateObject("MFilesAPI.Expression")
titleExpression.SetPropertyValueExpression titleproperty, 0, Nothing
Dim titleTypedValue
Set titleTypedValue = CreateObject("MFilesAPI.TypedValue")
titleTypedValue.SetValue MFDatatypeText ,EmpName
titleSearch.Set titleExpression, MFConditiontypeEqual, titleTypedValue
Dim SearchResults
Set SearchResults = Vault.ObjectSearchOperations.SearchForObjectsByCondition(titleSearch, false)
Dim oObjID: set oObjID = SearchResults.Item(Index)
set SearchForObject = oObjID
end function
