Index: Prod/Kenmerk/DataDefinitie.cls.xml =================================================================== diff -u -r1289 -r1377 --- Prod/Kenmerk/DataDefinitie.cls.xml (.../DataDefinitie.cls.xml) (revision 1289) +++ Prod/Kenmerk/DataDefinitie.cls.xml (.../DataDefinitie.cls.xml) (revision 1377) @@ -100,26 +100,16 @@ if SaveOK set SaveOK = ##super(IsNew) - If $$$ISOK(SaveOK) + If $$$ISOK(SaveOK) && (..IsEventRaiser) { - If (..IsEventRaiser) - { - Set Event = "" - If (IsNew) - { - Set EventData = ##class(TECH.Events.KenmerkCreatedEventData).%New(..UnID,..Kenmerk.Groep.Code,..Kenmerk.Kenmerk,..Waarden) - Set Event = ##class(TECH.Events.KenmerkCreatedEvent).%New(EventData) - } - Else - { - // Het heeft geen zin om op de modified flag van "..Waarden" te gaan controleren, deze zal altijd false zijn. - // De Modified flag blijft bewaard in de onaftersave, maar de save van ..Waarden werd reeds volledig afgewerkt. - Set EventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(..UnID,..Kenmerk.Groep.Code,..Kenmerk.Kenmerk,..Waarden.%ConstructClone(1)) - Set Event = ##class(TECH.Events.KenmerkModifiedEvent).%New(EventData) - } - - Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(Event) - } + // Het heeft geen zin om op de modified flag van "..Waarden" te gaan controleren, deze zal altijd false zijn. + // De Modified flag blijft bewaard in de onaftersave, maar de save van ..Waarden werd reeds volledig afgewerkt. + // + // Het maakt ook niet uit of het een insert of update is. Dit is altijd een wijziging van de waarden van een kenmerk. + // Bij een insert is de wijziging van "Waarden leeg" naar "Waarden gevuld" + Set EventData = ##class(TECH.Events.KenmerkModifiedEventData).%New(..UnID,..Kenmerk.Groep.Code,..Kenmerk.Kenmerk,..Waarden.%ConstructClone(1)) + Set Event = ##class(TECH.Events.KenmerkModifiedEvent).%New(EventData) + Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(Event) } //w "After : "_$zobjval(,5,0,3,5),! @@ -149,9 +139,10 @@ Set Object = ..%Open(Oid) If ($IsObject(Object) && Object.IsEventRaiser) { - Set EventData = ##class(TECH.Events.KenmerkDeletedEventData).%New($$$UnID,$$$Groep,$$$Kenm) - Set Event = ##class(TECH.Events.KenmerkDeletedEvent).%New(EventData) - Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(Event) + // Een "delete" is ook een modify. De waardenlijst wordt van "gevuld" naar "leeg" gewijzigd. + Set EventData = ##class(TECH.Events.KenmerkModifiedEventData).%New($$$UnID,$$$Groep,$$$Kenm,##class(%ListOfDataTypes).%New()) + Set Event = ##class(TECH.Events.KenmerkModifiedEvent).%New(EventData) + Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(Event) } Do ##class(Prod.Kenmerk.DataIndex).DeleteWaarden($$$Groep,$$$Kenm,$$$UnID) @@ -176,8 +167,9 @@ #define Groep $P(ID,"||",2) #define Kenm $P(ID,"||",3) - Set EventData = ##class(TECH.Events.KenmerkDeletedEventData).%New($$$UnID,$$$Groep,$$$Kenm) - Set Event = ##class(TECH.Events.KenmerkDeletedEvent).%New(EventData) + // Een "delete" is ook een modify. De waardenlijst wordt van "gevuld" naar "leeg" gewijzigd. + Set EventData = ##class(TECH.Events.KenmerkModifiedEventData).%New($$$UnID,$$$Groep,$$$Kenm,##class(%ListOfDataTypes).%New()) + Set Event = ##class(TECH.Events.KenmerkModifiedEvent).%New(EventData) Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(Event) set ID = {ID}