Index: APPS/PM/KenmMWFPlugin.cls.xml
===================================================================
diff -u
--- APPS/PM/KenmMWFPlugin.cls.xml (revision 0)
+++ APPS/PM/KenmMWFPlugin.cls.xml (revision 1412)
@@ -0,0 +1,291 @@
+
+
+
+1
+%RegisteredObject
+0
+
+
+TECH.Events.KenmerkenModifiedEventData
+1
+
+
+
+KenmerkenModifiedEventData:TECH.Events.KenmerkenModifiedEventData
+1
+1
+%Status
+
+
+
+
+1
+
+
+
+
+KenmerkModifiedEventData:TECH.Events.KenmerkModifiedEventData
+1
+ 0))
+ {
+ // Er zijn al waarden aanwezig. We gaan de lijst kopiëren van objecten.
+ // Alle kopiën zijn de objecten waar we onze nieuwe waarde moeten voor invullen.
+ // Het is voldoende om de objecten te kopiëren in de index van 1 waarde van het kenmerk
+ Set Lijst = PropertiesIndex.GetAt(Kenmerk).GetNext("")
+ For i=1:1:Lijst.Count() // Lijst van 1 waarde pakken en deze construct-clonen!
+ {
+ Set Kopie = Lijst.GetAt(i).%ConstructClone(0)
+ Set $zobjproperty(Kopie,Kenmerk) = GewijzigdeWaarde
+ Do ObjectenLijst.Insert(Kopie)
+ Do TeBewarenObjecten.Insert(Kopie)
+ Do NieuweObjecten.Insert(Kopie)
+ }
+ }
+ ElseIf (('$IsObject(WaardenIndexVoorKenmerk)) || ('WaardenIndexVoorKenmerk.IsDefined(GewijzigdeWaarde)))
+ {
+ // Er waren nooit eerder waarden voor deze property gekend.
+ // We hoeven dus geen kopie te maken en kunnen rechtstreeks de nieuwe waarde invullen in de reeds bestaande objecten
+ For i=1:1:ObjectenLijst.Count()
+ {
+ Set Object = ObjectenLijst.GetAt(i)
+ Set $zobjproperty(Object,Kenmerk) = GewijzigdeWaarde
+ Do TeBewarenObjecten.Insert(Object)
+ Do NieuweObjecten.Insert(Object)
+ }
+ }
+
+ If (NieuweObjecten.Count() > 0)
+ {
+ // Onze index up-to-date houden
+ If ('PropertiesIndex.IsDefined(Kenmerk))
+ {
+ Set WaardenIndexVoorKenmerk = ##class(%ArrayOfDataTypes).%New()
+ Do PropertiesIndex.SetAt(WaardenIndexVoorKenmerk,Kenmerk)
+ }
+ Do WaardenIndexVoorKenmerk.SetAt(NieuweObjecten,GewijzigdeWaarde)
+ }
+
+ }
+ }
+
+ Set OperatieScope = ##class(TECH.OperatieScope).StartMetTx()
+
+ Set Iterator = ##class(TECH.ListIterator).%New(TeBewarenObjecten)
+ While (Iterator.HasNext())
+ {
+ Set Object = Iterator.Next()
+ Set Status = Object.%Save()
+ }
+
+ Set Iterator = ##class(TECH.ListIterator).%New(ObjectenTeVerwijderenLijst)
+
+ While (Iterator.HasNext())
+ {
+ Set Object = Iterator.Next()
+ Set Status = Object.%DeleteId(Object.%Id())
+ }
+
+ Do OperatieScope.Gelukt()
+]]>
+
+
+
+GroepID:%String
+1
+%String
+
+
+
+
+1
+KenmerkenModifiedEvent:TECH.Events.KenmerkenModifiedEvent
+
+
+
+
+1
+KenmerkModifiedEvent:TECH.Events.KenmerkModifiedEvent
+
+
+
+
+1
+
+
+
+
Index: vhUnitTest/APPS/PM/KenmMWFPluginMock.cls.xml
===================================================================
diff -u
--- vhUnitTest/APPS/PM/KenmMWFPluginMock.cls.xml (revision 0)
+++ vhUnitTest/APPS/PM/KenmMWFPluginMock.cls.xml (revision 1412)
@@ -0,0 +1,16 @@
+
+
+
+1
+APPS.PM.KenmMWFPlugin
+0
+
+
+GroepID:%String
+1
+%String
+
+
+
+
Index: vhUnitTest/APPS/PM/HalffabUT.cls.xml
===================================================================
diff -u
--- vhUnitTest/APPS/PM/HalffabUT.cls.xml (revision 0)
+++ vhUnitTest/APPS/PM/HalffabUT.cls.xml (revision 1412)
@@ -0,0 +1,50 @@
+
+
+
+persistent
+1
+%Persistent
+0
+
+
+%Integer
+
+
+
+%String
+
+
+
+%String
+
+
+
+%String
+
+
+
+%Library.CacheStorage
+^vhUnitTest.APPS.PM.HalffabUTD
+HalffabUTDefaultData
+^vhUnitTest.APPS.PM.HalffabUTD
+^vhUnitTest.APPS.PM.HalffabUTI
+^vhUnitTest.APPS.PM.HalffabUTS
+
+listnode
+"HalffabUT"
+
+Kenmerk1
+
+
+Kenmerk2
+
+
+Kenmerk3
+
+
+%%CLASSNAME
+
+
+
+
+
Index: vhUnitTest/APPS/PM/TestKenmMWFPlugin.cls.xml
===================================================================
diff -u
--- vhUnitTest/APPS/PM/TestKenmMWFPlugin.cls.xml (revision 0)
+++ vhUnitTest/APPS/PM/TestKenmMWFPlugin.cls.xml (revision 1412)
@@ -0,0 +1,257 @@
+
+
+
+
+Do ##class(vhUnitTest.Manager).RunTest("/debug/display=all","APPS.PM.TestKenmMWFPlugin")
+1
+vhUnitTest.TestCase
+0
+
+
+ 2 x 2 combinaties")
+
+ /*
+ +----------+----------+----------+
+ | Kenmerk1 | Kenmerk2 | Kenmerk3 |
+ +----------+----------+----------+
+ | | | Waarde1 |
+ +----------+----------+----------+
+ */
+
+ Set KenmerkenModifiedEventData = ##class(TECH.Events.KenmerkenModifiedEventData).%New()
+ Set Waarden = ##class(%ListOfDataTypes).%New()
+ Set KenmerkModifiedEventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(32988,"UTKenmerkGroep","Kenmerk1",Waarden)
+ Do KenmerkenModifiedEventData.Wijzigingen.Insert(KenmerkModifiedEventData)
+
+ Set Waarden = ##class(%ListOfDataTypes).%New()
+ Set KenmerkModifiedEventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(32988,"UTKenmerkGroep","Kenmerk2",Waarden)
+ Do KenmerkenModifiedEventData.Wijzigingen.Insert(KenmerkModifiedEventData)
+
+ Set Waarden = ##class(%ListOfDataTypes).%New()
+ Do Waarden.Insert("Waarde1")
+ Set KenmerkModifiedEventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(32988,"UTKenmerkGroep","Kenmerk3",Waarden)
+ Do KenmerkenModifiedEventData.Wijzigingen.Insert(KenmerkModifiedEventData)
+
+ Do ##class(vhUnitTest.APPS.PM.KenmMWFPluginMock).%New(KenmerkenModifiedEventData)
+
+ Do ..GeefAantalUniekeWaarden(.Kenmerk1,.Kenmerk2,.Kenmerk3,.AantalRijen)
+
+ Do $$$AssertEquals(Kenmerk1,0,"Er zijn geen waarden voor kenmerk1")
+ Do $$$AssertEquals(Kenmerk2,0,"Er zijn geen waarden voor kenmerk2")
+ Do $$$AssertEquals(Kenmerk3,1,"Er is 1 waarde voor kenmerk3")
+ Do $$$AssertEquals(AantalRijen,1,"Er is 1 rij")
+
+ /*
+ +----------+----------+----------+
+ | Kenmerk1 | Kenmerk2 | Kenmerk3 |
+ +----------+----------+----------+
+ | | | |
+ +----------+----------+----------+
+ */
+
+ Set KenmerkenModifiedEventData = ##class(TECH.Events.KenmerkenModifiedEventData).%New()
+ Set Waarden = ##class(%ListOfDataTypes).%New()
+ Set KenmerkModifiedEventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(32988,"UTKenmerkGroep","Kenmerk1",Waarden)
+ Do KenmerkenModifiedEventData.Wijzigingen.Insert(KenmerkModifiedEventData)
+
+ Set Waarden = ##class(%ListOfDataTypes).%New()
+ Set KenmerkModifiedEventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(32988,"UTKenmerkGroep","Kenmerk2",Waarden)
+ Do KenmerkenModifiedEventData.Wijzigingen.Insert(KenmerkModifiedEventData)
+
+ Set Waarden = ##class(%ListOfDataTypes).%New()
+ Set KenmerkModifiedEventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(32988,"UTKenmerkGroep","Kenmerk3",Waarden)
+ Do KenmerkenModifiedEventData.Wijzigingen.Insert(KenmerkModifiedEventData)
+
+ Do ##class(vhUnitTest.APPS.PM.KenmMWFPluginMock).%New(KenmerkenModifiedEventData)
+
+ Do ..GeefAantalUniekeWaarden(.Kenmerk1,.Kenmerk2,.Kenmerk3,.AantalRijen)
+
+ Do $$$AssertEquals(Kenmerk1,0,"Er zijn geen waarden")
+ Do $$$AssertEquals(Kenmerk2,0,"Er zijn geen waarden")
+ Do $$$AssertEquals(Kenmerk3,0,"Er zijn geen waarden")
+ Do $$$AssertEquals(AantalRijen,1,"Er is 1 rij (de null-null-null rij)")
+
+ Do ##class(vhUnitTest.APPS.PM.HalffabUT).%KillExtent()
+]]>
+
+
+
+
+
+
+
+