Index: APPS/PM/KenmerkenService.cls.xml =================================================================== diff -u -r1377 -r1507 --- APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1377) +++ APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1507) @@ -2,7 +2,10 @@ -JBL + 2011-02-28 +JBL + 2011-02-28 +TO DO : 2011-06-09 : JBL +De controle bij BewaarKenmerk moet niet in de service controleren of een kenmerk gewijzigd is. +Dit moet verplaatst worden naar het persistente Prod.DataDefinitie object. TECH.Error 1 %RegisteredObject @@ -275,84 +278,98 @@ /// Scope ophalen Set OperatieScope = ##class(TECH.OperatieScope).StartMetTx() - Set KenmerkenModifiedEventData = ##class(TECH.Events.KenmerkenModifiedEventData).%New() + Set $ZTRAP = "Catch" + + Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + Set Status = ProductAPI.ZetKenmerkWaardenInBulk(ProductenKenmerken) - Set ProductKenmerkenIt = ##class(TECH.ListIterator).%New(ProductenKenmerken.Kenmerken) - While (ProductKenmerkenIt.HasNext()) - { - Set ProductKenmerken = ProductKenmerkenIt.Next() - Set ProductIDs = ProductKenmerken.IDs - - Set UnID = ProductIDs.PRNr - /// Als er een MultipleNr is opgegeven, de UnID correct invullen - If (ProductIDs.MultipleNr '= "") - { - Set UnID = ##class(BL.Kenm.ProdMulti).GetFullID(ProductIDs.PRNr,ProductIDs.MultipleNr) - } - - Set ErrorMsg = "" - Set ProductKenmerkIt = ##class(TECH.ListIterator).%New(ProductKenmerken.Kenmerken) - While (ProductKenmerkIt.HasNext() && (ErrorMsg = "")) - { - Set ProductKenmerk = ProductKenmerkIt.Next() - - Set Identifier = ##class(Prod.Kenmerk.DataDefinitie).BuildDataDefinitionID(ProductKenmerk.Groep,UnID,ProductKenmerk.KenmerkNaam) - If '##class(Prod.Kenmerk.DataDefinitie).%ExistsId(Identifier) - { - Set ErrorMsg = "Kenmerk "_Identifier_" voor UnID "_UnID_" is niet gevonden." - }Else{ - Set Kenmerk = ##class(Prod.Kenmerk.DataDefinitie).OpenId(Identifier) - - If ($IsObject(Kenmerk)) - { - // Controleer of de nieuwe waarden verschillen - Set IsGewijzigd = (ProductKenmerk.Waarden.Count() '= Kenmerk.Waarden.Count()) - Set i = 0 - - While ('IsGewijzigd) && (i < Kenmerk.Waarden.Count()) - { - Set i = i + 1 - Set IsGewijzigd = (ProductKenmerk.Waarden.GetAt(i) '= Kenmerk.Waarden.GetAt(i)) - } - - If (IsGewijzigd) - { - Do Kenmerk.Waarden.Clear() - Do ##class(TECH.ListUtils).CopyList(ProductKenmerk.Waarden,Kenmerk.Waarden) - Set Kenmerk.IsEventRaiser = 0 - Set Status = Kenmerk.Save() - If $$$ISERR(Status) - { - Set ErrorMsg = "Kenmerk "_ProductKenmerk.Groep_"||"_ProductKenmerk.KenmerkNaam_" voor UnID "_UnID_" kon niet worden gesaved.("_$$ParseStatus^vhLib(Status)_")" - } - Else - { - Set WaardenLijst = ##class(%ListOfDataTypes).%New() - Do ##class(TECH.ListUtils).CopyList(Kenmerk.Waarden,WaardenLijst) - Do KenmerkenModifiedEventData.Wijzigingen.Insert(##class(TECH.Events.KenmerkModifiedEventData).%New(UnID,ProductKenmerk.Groep,ProductKenmerk.KenmerkNaam,WaardenLijst)) - } - } - }Else - { - Set ErrorMsg = "Kenmerk "_ProductKenmerk.Groep_"||"_ProductKenmerk.KenmerkNaam_" voor UnID "_UnID_" is niet gevonden." - } - } - } - } - If (ErrorMsg = ""){ - Do OperatieScope.Gelukt() - - If (KenmerkenModifiedEventData.Wijzigingen.Count() > 0) - { - Set KenmerkenModifiedEvent = ##class(TECH.Events.KenmerkenModifiedEvent).%New(KenmerkenModifiedEventData) - Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(KenmerkenModifiedEvent) - } - - }Else{ - Do OperatieScope.Gefaald(ErrorMsg) + Do OperatieScope.Gelukt() + Quit $$$OK + +Catch Set $ZTRAP = "" + Set Exception = ##class(TECH.ExceptionHandler).Catch() + Set ErrorMsg = "BewaarProductenKenmerken heeft de wijzigingen niet kunnen opslaan "_Exception.GeefOmschrijving() + Do OperatieScope.Gefaald(##class(TECH.Exceptions.BaseException).%New(Exception.GeefExceptionCode(),ErrorMsg)) + Quit $ECODE +]]> + + + + +Verwijder voor één KenmerkGroep de opgegeven UnIDs +KenmerkGroep:%String,UnIDs:%ListOfDataTypes +%ListOfDataTypes + + + + +Maak nieuwe kenmerkenset voor de opgegeven UnIDs +KenmerkGroep:%String,UnIDs:%ListOfDataTypes +%ListOfDataTypes + +