Index: APPS/PM/KenmMWFPlugin.cls.xml
===================================================================
diff -u -r1434 -r1458
--- APPS/PM/KenmMWFPlugin.cls.xml (.../KenmMWFPlugin.cls.xml) (revision 1434)
+++ APPS/PM/KenmMWFPlugin.cls.xml (.../KenmMWFPlugin.cls.xml) (revision 1458)
@@ -26,6 +26,13 @@
]]>
+
+GroepID:%String
+%Boolean
+ 3) && ($Extract(GroepID,1,3) = "TBX")
+]]>
+
+
1
0))
+ If (GewijzigdeWaarde '= "")
{
- // 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 NieuweObjecten = ##class(%ListOfObjects).%New()
+ // Eerst nagaan of er voor deze property ooit waarden zijn gekend.
+ If ($IsObject(WaardenIndexVoorKenmerk) && ('WaardenIndexVoorKenmerk.IsDefined(GewijzigdeWaarde)) && (WaardenIndexVoorKenmerk.Count() > 0))
{
- Set Kopie = Lijst.GetAt(i).%ConstructClone(0)
- Set $zobjproperty(Kopie,Kenmerk) = GewijzigdeWaarde
- Do ObjectenLijst.Insert(Kopie)
- Do TeBewarenObjecten.Insert(Kopie)
- Do NieuweObjecten.Insert(Kopie)
+ // 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()
+ ElseIf (('$IsObject(WaardenIndexVoorKenmerk)) || ('WaardenIndexVoorKenmerk.IsDefined(GewijzigdeWaarde)))
{
- Set Object = ObjectenLijst.GetAt(i)
- Set $zobjproperty(Object,Kenmerk) = GewijzigdeWaarde
- Do TeBewarenObjecten.Insert(Object)
- Do NieuweObjecten.Insert(Object)
+ // 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))
+
+ If (NieuweObjecten.Count() > 0)
{
- Set WaardenIndexVoorKenmerk = ##class(%ArrayOfDataTypes).%New()
- Do PropertiesIndex.SetAt(WaardenIndexVoorKenmerk,Kenmerk)
+ // 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)
}
- Do WaardenIndexVoorKenmerk.SetAt(NieuweObjecten,GewijzigdeWaarde)
}
-
}
}
@@ -305,6 +324,10 @@
Set ProductGroep = $Extract(GroepID,1,3)
Set Rol = $Extract(GroepID,4,$Length(GroepID))
+ If (Rol = "")
+ {
+ Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).InvalidInput(),"Er kon geen rol worden afgeleid uit de productgroep """_ProductGroep_""""))
+ }
If ('##class(%Dictionary.CompiledClass).%ExistsId("DOM.PM.Maatwerk.Calc.HF.impl."_ProductGroep_".HalffabClassNameFactory"))
{
Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).InvalidInput(),"Er werd geen halffab classname factory gevonden voor de productgroep """_ProductGroep_""""))
@@ -327,7 +350,7 @@
KenmerkModifiedEvent:TECH.Events.KenmerkModifiedEvent
@@ -342,5 +365,22 @@
Do ModifiedSubscription.%Save()
]]>
+
+
+
+Do ##class(APPS.PM.KenmMWFPlugin).ResyncMFWIndex()
+1
+
+
Index: vhUnitTest/APPS/PM/KenmMWFPluginMock.cls.xml
===================================================================
diff -u -r1412 -r1458
--- vhUnitTest/APPS/PM/KenmMWFPluginMock.cls.xml (.../KenmMWFPluginMock.cls.xml) (revision 1412)
+++ vhUnitTest/APPS/PM/KenmMWFPluginMock.cls.xml (.../KenmMWFPluginMock.cls.xml) (revision 1458)
@@ -12,5 +12,12 @@
+
+
+GroepID:%String
+%Boolean
+
+