1 TECH.RegisteredObject Kenmerk_MaatwerkFramework_Plugin TECH.Events.KenmerkenModifiedEventData 1 DOM.PM.Maatwerk.Calc.Common.impl.OmleidingNaarDotNetBepaler 1 KenmerkenModifiedEventData:TECH.Events.KenmerkenModifiedEventData 1 1 %Status GroepID:%String 1 %String 1 GroepID:%String 1 %Boolean GroepID:%String 1 %String 1 UnID:%String,KenmerkGroep:%String 1 'ProdMulti'") Do ResultSet.Execute(KenmerkGroep, UnID) While (ResultSet.Next()) { #dim DataDefinitie As Prod.Kenmerk.DataDefinitie = ##class(Prod.Kenmerk.DataDefinitie).%OpenId(ResultSet.Data("ID")) Set WaardeIterator = ##class(TECH.ListIterator).%New(DataDefinitie.Waarden) If (WaardeIterator.HasNext()) { #dim Waarde As %String = WaardeIterator.Next() Set HalffabIterator = ##class(TECH.ListIterator).%New(HalffabObjecten) While (HalffabIterator.HasNext()) { #dim Halffab As DOM.PM.Maatwerk.Calc.HF.Halffab = HalffabIterator.Next() Do ..ZetPropertyWaarde(Halffab,DataDefinitie.KenmerkNaam,Waarde) } Set HeeftEenHalffabGemaakt = 1 } If (WaardeIterator.HasNext()) { #dim HalffabObjectenKopie As %ListOfObjects = ##class(TECH.ListUtils).CopyListOfObjects(HalffabObjecten) While (WaardeIterator.HasNext()) { Set Waarde = WaardeIterator.Next() Set HalffabIterator = ##class(TECH.ListIterator).%New(HalffabObjectenKopie) While (HalffabIterator.HasNext()) { Set Halffab = HalffabIterator.Next() Set Halffab = Halffab.%ConstructClone(1) Do ..ZetPropertyWaarde(Halffab,DataDefinitie.KenmerkNaam,Waarde) Do HalffabObjecten.Insert(Halffab) } } } } Do ResultSet.Close() Try { Lock +^HalffabSelectie(SQLTableName) Set ResultSet = ##class(%ResultSet).%New() Do ResultSet.Prepare("DELETE FROM "_SQLTableName_" WHERE GemaaktVoorKenmerkenSetID = ?") Do ResultSet.Execute(UnID) Do ResultSet.Close() // Als we hier niet op zouden testen zou er bij geen kenmerk waarden een leeg object worden opgeslagen If (HeeftEenHalffabGemaakt) { Set EventData = ##class(TECH.Events.HalffabsGemaaktEventData).%New() Set HalffabIterator = ##class(TECH.ListIterator).%New(HalffabObjecten) While (HalffabIterator.HasNext()) { Set Halffab = HalffabIterator.Next() Set Halffab.GemaaktVoorKenmerkenSetID = UnID Do Halffab.Save() Do EventData.Halffabs.Insert(Halffab) } If (..MoetKenmerkGesyncedWordenNaarDotNet(KenmerkGroep)) { Set Event = ##class(TECH.Events.HalffabsGemaaktEvent).%New(EventData) Do ##class(TECH.Context).Instance().GeefPubSubAPI().GeefEventRaiser().RaiseEventAsync(Event) } } Lock -^HalffabSelectie(SQLTableName) } Catch e { #dim Exceptie As TECH.IException = ##class(TECH.ExceptionHandler).Catch() Lock -^HalffabSelectie(SQLTableName) Do ##class(TECH.ExceptionHandler).Rethrow(Exceptie) } ]]> KenmerkGroep:%String %Boolean HalffabClassName:%String Object:%Persistent,PropertyNaam:%String,Waarde:%String 1 GroepID:%String 1 %String 1 KenmerkenModifiedEvent:TECH.Events.KenmerkenModifiedEvent 1 KenmerkModifiedEvent:TECH.Events.KenmerkModifiedEvent 1 KenmerkenSetVerwijderdEvent:DOM.PM.event.KenmerkenSetVerwijderdEvent,HalffabGateway:DOM.PM.Maatwerk.Calc.HF.Halffab.impl.Gateway 0){ Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.GeneralErrorException).%New("Volgende gedelete kenmerken zijn gefaald: "_##class(TECH.ListUtils).ListToPieces(GefaaldeDeletes,";"))) } } ]]> 1 Do ##class(APPS.PM.KenmMWFPlugin).ResyncMFWIndex() 1