Hello,
The current scenario is that an order has been placed and there are a number of commissions that need to be tied to this order. I've tried to create an event handler with limited success. It is able to grab one of the many commissions but not all. Would anyone happen to know how to achieve this?
I've attached the event handler and the current output to this post.
option Explicit If ObjVer.Type = 111 Then Dim PDSOPOrder, OTSOPNumberOrder, OTCommission, ValueSOPNumberOrder, CLOrder, PDSOPNumberOrder, PDCommission OTSOPNumberOrder = Vault.ObjectTypeOperations.GetObjectTypeIDByAlias("OT.SopNumberOrders") OTCommission = Vault.ObjectTypeOperations.GetObjectTypeIDByAlias("OT.Commission") PDSOPOrder = Vault.PropertyDefOperations.GetPropertyDefIDByAlias("PD.OrderNumber") CLOrder = Vault.ClassOperations.GetObjectClassIDByAlias("CL.Order") PDSOPNumberOrder = Vault.PropertyDefOperations.GetPropertyDefIDByAlias("PD.SOPNumberOrder") PDCommission = Vault.PropertyDefOperations.GetPropertyDefIDByAlias("PD.Commission") Dim PropertyValues : Set PropertyValues = Vault.ObjectPropertyOperations.GetProperties(objver) If PropertyValues.SearchForProperty(100).TypedValue.GetValueAsLookup.Item = CLOrder Then If PropertyValues.IndexOf(PDSOPOrder) <> -1 Then ValueSOPNumberOrder = PropertyValues.SearchForProperty(PDSOPOrder).TypedValue.DisplayValue If ValueSOPNumberOrder <> "" Then Dim oSC, oSCs Set oSC = CreateObject("MFilesAPI.SearchCondition") Set oSCs = CreateObject("MFilesAPI.SearchConditions") oSC.ConditionType = MFConditionTypeEqual oSC.Expression.DataStatusValueType = MFStatusTypeObjectTypeID oSC.TypedValue.SetValue MFDataTypeLookup, OTCommission oSCs.Add -1, oSC oSC.ConditionType = MFConditionTypeEqual oSC.Expression.DataStatusValueType = MFStatusTypeDeleted oSC.TypedValue.SetValue MFDataTypeBoolean, False oSCs.Add -1, oSC oSC.ConditionType = MFConditionTypeEqual oSC.Expression.DataPropertyValuePropertyDef = PDSOPNumberOrder oSC.TypedValue.SetValue MFDataTypeText, ValueSOPNumberOrder oSCs.Add -1, oSC Dim oSearchResults Set oSearchResults = Vault.ObjectSearchOperations.SearchForObjectsByConditions(oSCs, MFSearchFlagNone, False) If oSearchResults.Count > 0 Then Dim PropertyValue Set PropertyValue = CreateObject("MFilesAPI.PropertyValue") PropertyValue.PropertyDef = PDCommission For Each oSearchResults In oSearchResults PropertyValue.TypedValue.SetValue MFDataTypeMultiSelectLookup, oSearchResults.ObjVer.ID Vault.ObjectPropertyOperations.SetProperty ObjVer, PropertyValue Next End If End If End If End If End If