TECH.RegisteredObject Object:%Base,ReferenceObject:%Base %ListOfDataTypes '"_$classname(ReferenceObject)_"'") } else { #dim success As %Boolean = 1 #dim arrProperties As %String = "" do arrProperties^vhLib.Class($classname(Object),.arrProperties,"A","A","A",$$$true) set itProperties = ##class(TECH.ArrayOneDimIterator).%New(.arrProperties) while itProperties.HasNext() { #dim PropertyInfo As %list = itProperties.Next() #dim Property As %String = itProperties.Key() continue:$ListGet(PropertyInfo,4) #dim PropertyIsCollection As %Boolean = $length($list(PropertyInfo,3)) #dim WaardePropertyObject As %CacheString = ..GeefWaarde(Object,Property) #dim WaardePropertyVerwachtObject As %CacheString = ..GeefWaarde(ReferenceObject,Property) if PropertyIsCollection { if $method(WaardePropertyObject,"Count") '= $method(WaardePropertyVerwachtObject,"Count") { do ObjectDifferences.Insert(Property_" : "_$method(WaardePropertyObject,"Count") _" <> "_ $method(WaardePropertyVerwachtObject,"Count") ) } else { set itList1 = ##class(TECH.ListIterator).%New(WaardePropertyObject) set itList2 = ##class(TECH.ListIterator).%New(WaardePropertyVerwachtObject) while itList1.HasNext() && success { #dim Value1 As %String = $$$LCVT(itList1.Next()) #dim Value2 As %String = $$$LCVT(itList2.Next()) set success = ( Value1 = Value2) if 'success do ObjectDifferences.Insert("Item "_itList1.Key()_" verschillend : *"_Value1 _ "* <> *"_Value2_"*") } } } elseif WaardePropertyObject '= WaardePropertyVerwachtObject { do ObjectDifferences.Insert(Property_" : "_WaardePropertyObject _" <> "_ WaardePropertyVerwachtObject ) } } } quit ObjectDifferences ]]> Object:%Base,Property:%String 1 0 %CacheString