Index: DOM/PM/impl/DataM/DataMProductAPI.cls.xml =================================================================== diff -u -r1516 -r1517 --- DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1516) +++ DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1517) @@ -209,35 +209,38 @@ While (ProductKenmerkenIt.HasNext()) { Set ProductKenmerken = ProductKenmerkenIt.Next() - Set ProductIDs = ProductKenmerken.IDs + Set PRNr = ProductKenmerken.PRNr - 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 ProductKenmerkIt = ##class(TECH.ListIterator).%New(ProductKenmerken.Kenmerken) - While (ProductKenmerkIt.HasNext()) - { - Set ProductKenmerk = ProductKenmerkIt.Next() + Set KenmerkGroepenIt = ##class(TECH.ListIterator).%New(ProductKenmerken.KenmerkenGroepen) + While (KenmerkGroepenIt.HasNext()){ + Set KenmerkGroep = KenmerkGroepenIt.Next() - Set ProductKenmerkenSets = ..GeefProductKenmerkenSets(ProductIDs.PRNr,ProductKenmerk.Groep) - Set ProductKenmerkenSet = ProductKenmerkenSets.GeefKenmerkenSet(UnID) - - /// Nagaan dat product als GeneratieType niet AUTO is. - If ((ProductKenmerk.Groep = "OL") && (ProductKenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) = ##class(APPS.PM.enu.GeneratieType).Auto())) { - Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).InvalidInput(),"Kon het kenmerk niet opslaan om het AUTO als GeneratieType heeft.")) + Set KenmerkenSetIt = ##class(TECH.ListIterator).%New(KenmerkGroep.Sets) + While (KenmerkenSetIt.HasNext()) { + Set KenmerkenSet = KenmerkenSetIt.Next() + Set UnID = KenmerkenSet.UnID + + Set ProductKenmerkIt = ##class(TECH.ListIterator).%New(KenmerkenSet.Kenmerken) + While (ProductKenmerkIt.HasNext()) + { + Set ProductKenmerk = ProductKenmerkIt.Next() + + Set ProductKenmerkenSets = ..GeefProductKenmerkenSets(PRNr,KenmerkGroep.Naam) + Set ProductKenmerkenSet = ProductKenmerkenSets.GeefKenmerkenSet(UnID) + + /// Nagaan dat product als GeneratieType niet AUTO is. + If ((ProductKenmerk.Naam = "OL") && (ProductKenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) = ##class(APPS.PM.enu.GeneratieType).Auto())) { + Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).InvalidInput(),"Kon het kenmerk niet opslaan om het AUTO als GeneratieType heeft.")) + } + + Do ProductKenmerkenSet.ZetRaiseEvent(0) /// Geen event raisen, want is buld operatie + + Set Wijziging = ProductKenmerkenSet.ZetKenmerkWaarden(ProductKenmerk.Waarden,ProductKenmerk.Naam) + If (Wijziging '= ""){ + Do KenmerkenModifiedEventData.Wijzigingen.Insert(Wijziging) + } + } } - - Do ProductKenmerkenSet.ZetRaiseEvent(0) /// Geen event raisen, want is buld operatie - - Set Wijziging = ProductKenmerkenSet.ZetKenmerkWaarden(ProductKenmerk.Waarden,ProductKenmerk.KenmerkNaam) - If (Wijziging '= ""){ - Do KenmerkenModifiedEventData.Wijzigingen.Insert(Wijziging) - } } } /// Event raisen