Index: DOM/PM/impl/DataM/DataMProductAPI.cls.xml =================================================================== diff -u -r1727 -r1771 --- DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1727) +++ DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1771) @@ -242,26 +242,33 @@ Set KenmerkenSet = KenmerkenSetIt.Next() Set UnID = KenmerkenSet.UnID + Set ProductKenmerkenSets = ..GeefProductKenmerkenSets(PRNr,KenmerkGroep.Naam) + Set ProductKenmerkenSet = ProductKenmerkenSets.GeefKenmerkenSet(UnID) + + /// Nagaan dat product als GeneratieType niet AUTO is. + If ((KenmerkGroep.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 omdat het AUTO als GeneratieType heeft.")) + } + 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 bulk operatie Set Wijziging = ProductKenmerkenSet.ZetKenmerkWaarden(ProductKenmerk.Waarden,ProductKenmerk.Naam,ProductKenmerk.InstanceVersion) If (Wijziging '= ""){ Do KenmerkenModifiedEventData.Wijzigingen.Insert(Wijziging) } + } + + /// Als het een master is dan gaan we de wijzigingen ook doorvoeren op de varianten + /// Wijzigingen die binnen deze method lopen zullen echter niet in de bulk event komen, maar zullen allemaal single events zijn. + If ((KenmerkGroep.Naam = "OL") && (ProductKenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) = ##class(APPS.PM.enu.GeneratieType).Master())) { + Set Status = ##class(APPS.PM.OL.MasterAutoGenerator).GenereerVariantenVoorMaster(UnID) + } } } }