Index: DOM/PM/ProductKenmerkenSets.cls.xml =================================================================== diff -u -r1775 -r1826 --- DOM/PM/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1775) +++ DOM/PM/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1826) @@ -23,7 +23,7 @@ DOM.PM.ProductKenmerkenSet - + Geeft een iterator terug van ProductKenmerkenSet 1 Index: vhConsistency/Checks/MastersVarianten.cls.xml =================================================================== diff -u -r1775 -r1826 --- vhConsistency/Checks/MastersVarianten.cls.xml (.../MastersVarianten.cls.xml) (revision 1775) +++ vhConsistency/Checks/MastersVarianten.cls.xml (.../MastersVarianten.cls.xml) (revision 1826) @@ -24,8 +24,8 @@ Set Product = ProductIterator.Next() Set PRNr = Product.GeefPRNr() - Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr,"OL") - Set KenmerkenSetsIterator = ProductKenmerkenSets.GeefKenmerkenSets() + Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerken(PRNr).GeefProductKenmerkenSets("OL") + Set KenmerkenSetsIterator = ProductKenmerkenSets.GeefProductKenmerkenSetIterator() If (KenmerkenSetsIterator.HasNext()) { Set ProductKenmerkenSet = KenmerkenSetsIterator.Next() @@ -38,7 +38,7 @@ While (AutoVariantenIterator.HasNext()) { Set AutoVariantPRNr = AutoVariantenIterator.Next().PRNr - Set ProductKenmerkenSetsAuto = ProductAPI.GeefProductKenmerkenSets(AutoVariantPRNr,"OL") + Set ProductKenmerkenSetsAuto = ProductAPI.GeefProductKenmerken(PRNr).GeefProductKenmerkenSets("OL") If (ProductKenmerkenSets.GeefAantalSets() '= ProductKenmerkenSetsAuto.GeefAantalSets()) { Index: CSC ProductKenmerken.prj.xml =================================================================== diff -u --- CSC ProductKenmerken.prj.xml (revision 0) +++ CSC ProductKenmerken.prj.xml (revision 1826) @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + Index: vhUnitTest/DOM/PM/TestProductKenmerkenSets.cls.xml =================================================================== diff -u -r1775 -r1826 --- vhUnitTest/DOM/PM/TestProductKenmerkenSets.cls.xml (.../TestProductKenmerkenSets.cls.xml) (revision 1775) +++ vhUnitTest/DOM/PM/TestProductKenmerkenSets.cls.xml (.../TestProductKenmerkenSets.cls.xml) (revision 1826) @@ -39,19 +39,36 @@ ]]> + + + + DOM.PM.Classificatie - - -Geef de kenmerkenset van het opgegeven PRNr. -Deze mag ENKEL gebruikt worden indien zeker geweten is dat dit product geen multiples heeft. -Indien dit niet zeker is (of de code gaat expliciet zelf controleren op multiple of non-multiple) dan moet -de method GeefProductKenmerkenSets gebruikt worden. + 1 -PRNr:%Integer,KenmerkenGroep:%String -DOM.PM.ProductKenmerkenSet +PRNr:%Integer +DOM.PM.ProductKenmerken - - -Geeft alle kenmerkensets van het gevraagde product. Maakt zelf onderscheid tussen multiple en non-multiple. -1 -PRNr:%Integer,KenmerkenGroep:%String -DOM.PM.ProductKenmerkenSets - - 1 ProductKenmerkenSet:DOM.PM.ProductKenmerkenSet Index: DOM/PM/ProductKenmerkenSet.cls.xml =================================================================== diff -u -r1777 -r1826 --- DOM/PM/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1777) +++ DOM/PM/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1826) @@ -7,6 +7,11 @@ 1 0 + +1 +%String + + Geeft een iterator terug met alle kenmerken. Key/value pair. Index: DOM/PM/impl/ProductKenmerkenSets.cls.xml =================================================================== diff -u -r1775 -r1826 --- DOM/PM/impl/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1775) +++ DOM/PM/impl/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1826) @@ -91,7 +91,7 @@ ]]> - + Geeft een iterator terug van ProductKenmerkenSet. Met voor iedere multiple een @@ -132,7 +132,6 @@ BronUnID:%String %ListOfDataTypes + +%String + + + TECH.Iterator 0){ Set ProductKenmerkenSet.GeneratieType = KenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) @@ -398,7 +398,7 @@ While (UnIDIt.HasNext()){ Set UnID = UnIDIt.Next() Set PRNr = ##class(BL.Kenm.ProdMulti).GetCommonID(UnID) - Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr,KenmerkGroep) + Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerken(PRNr).GeefProductKenmerkenSets(KenmerkGroep) Set NieuweGewijzigdePRNrs = ProductKenmerkenSets.VerwijderKenmerkenSet(UnID) Set GewijzigdePRNrs = ##class(TECH.ListUtils).CopyList(NieuweGewijzigdePRNrs,GewijzigdePRNrs) } @@ -445,7 +445,7 @@ } Set PRNr = ##class(BL.Kenm.ProdMulti).GetCommonID(UnID) - Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr,KenmerkGroep) + Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerken(PRNr).GeefProductKenmerkenSets(KenmerkGroep) /// Indien UnID een Auto is, kan er geen nieuwe kenmerkenset gecreeerd worden Index: PRDUPLI.mac.rou =================================================================== diff -u -r1777 -r1826 --- PRDUPLI.mac.rou (.../PRDUPLI.mac.rou) (revision 1777) +++ PRDUPLI.mac.rou (.../PRDUPLI.mac.rou) (revision 1826) @@ -160,22 +160,36 @@ . . Do ##class(BL.Prod.OptiBox.BoxData).%New().Copy("PR",PRNr,"PR",NewPRNr) ;Copieren van kenmerken Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() - Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr,"OL") - If (ProductKenmerkenSets.GeefAantalSets()>0){ ; Heeft kenmerken + Set ProductKenmerken = ProductAPI.GeefProductKenmerken(PRNr) + If (ProductKenmerken.GeefKenmerkenSetsIterator().HasNext()){ ; Heeft kenmerken Set X=$$^vhTXTPOP("PRDUPLI","COPYKENMERK","",$P(^KPR(PRNr,0),D,1)) If (X) { ;Copieren + + Set KenmerkenSetsIterator = ProductKenmerken.GeefKenmerkenSetsIterator() + While (KenmerkenSetsIterator.HasNext()) + { + Set ProductKenmerkenSets = KenmerkenSetsIterator.Next() + Set ProductKenmerkenSetsIterator = ProductKenmerkenSets.GeefProductKenmerkenSetIterator() + While (ProductKenmerkenSetsIterator.HasNext()) { + Set KenmerkenSet = ProductKenmerkenSetsIterator.Next() + Set NewUnID = KenmerkenSet.GeefUnID() + Set $Piece(NewUnID,".") = NewPRNr + Do ##class(Prod.Kenmerk.DataDefinitie).CopyViaPRNr(KenmerkenSet.GeefUnID(),NewUnID,$LB(KenmerkenSet.GeefGroep()),0,,$LB("OEI")) ; exclude OEI kenmerken + } + } + Set lbClearKenmerken= $LB("GeneratieType","MasterVoorBreedtes","MasterVoorDieptes","MasterVoorKleuren","MasterVoorWandDiktes") Set lbClearKenmerken = lbClearKenmerken_$LB("SleutelVarFotoB","SleutelVarFotoD","SleutelVarFotoKlr","SleutelVarFotoWD","SleutelVarTekstB","SleutelVarTekstD","SleutelVarTekstKlr","SleutelVarTekstWD") - Set KenmerkenSetsIterator = ProductKenmerkenSets.GeefKenmerkenSets() - While (KenmerkenSetsIterator.HasNext()) { - Set KenmerkenSet = KenmerkenSetsIterator.Next() + Set ProductKenmerkenSetsIterator = ProductKenmerken.GeefProductKenmerkenSets("OL").GeefProductKenmerkenSetIterator() + While (ProductKenmerkenSetsIterator.HasNext()) { + Set KenmerkenSet = ProductKenmerkenSetsIterator.Next() Set NewUnID = KenmerkenSet.GeefUnID() - Set $Piece(NewUnID,".") = NewPRNr - Do ##class(Prod.Kenmerk.DataDefinitie).CopyViaPRNr(KenmerkenSet.GeefUnID(),NewUnID,,0,,$LB("OEI")) ; exclude OEI kenmerken + Set $Piece(NewUnID,".") = NewPRNr For i = 1 : 1 : $LL(lbClearKenmerken) { - Do ##class(Prod.Kenmerk.DataDefinitie).DeleteKM("OL",NewUnID,$LI(lbClearKenmerken,i)) - } + Do ##class(Prod.Kenmerk.DataDefinitie).DeleteKM("OL",NewUnID,$LI(lbClearKenmerken,i)) + } } + } } Index: DOM/PM/impl/ProductKenmerken.cls.xml =================================================================== diff -u --- DOM/PM/impl/ProductKenmerken.cls.xml (revision 0) +++ DOM/PM/impl/ProductKenmerken.cls.xml (revision 1826) @@ -0,0 +1,90 @@ + + + +1 +%RegisteredObject,DOM.PM.ProductKenmerken +0 + + +DOM.PM.impl.ProductKenmerkenSets +array +1 + + + +%Integer +1 + + + +PRNr:%Integer +1 +1 +%Status + + + + +TECH.Iterator + + + + +KenmerkGroep:%String +DOM.PM.ProductKenmerkenSets + + + + +KenmerkGroep:%String +DOM.PM.ProductKenmerkenSet + + + + +KenmerkGroep +%Boolean + + + + +1 +%ArrayOfObjects +Groep) AS Groep FROM Prod_Kenmerk.DataDefinitie WHERE $Piece(UnID,'.',1) = ?") + Do ResultSet.Execute(..PRNr) + While (ResultSet.Next()) + { + Set Groep = ResultSet.Data("Groep") + Do r%KenmerkenSets.SetAt(##class(DOM.PM.impl.ProductKenmerkenSets).%New(Groep,..PRNr),Groep) + } + } + Quit r%KenmerkenSets +]]> + + + Index: DOM/PM/ProductKenmerken.cls.xml =================================================================== diff -u --- DOM/PM/ProductKenmerken.cls.xml (revision 0) +++ DOM/PM/ProductKenmerken.cls.xml (revision 1826) @@ -0,0 +1,38 @@ + + + +1 +1 +0 + + +1 +TECH.Iterator + + + + +Geef de kenmerkenset van het opgegeven PRNr. +Deze mag ENKEL gebruikt worden indien zeker geweten is dat dit product geen multiples heeft. +Indien dit niet zeker is (of de code gaat expliciet zelf controleren op multiple of non-multiple) dan moet +de method GeefProductKenmerkenSets gebruikt worden. +1 +KenmerkGroep:%String +DOM.PM.ProductKenmerkenSet + + + + +Geeft alle kenmerkensets van het gevraagde product. Maakt zelf onderscheid tussen multiple en non-multiple. +1 +KenmerkGroep:%String +DOM.PM.ProductKenmerkenSets + + + +1 +KenmerkGroep +%Boolean + + + Index: DOM/PM/impl/DataM/DataMProductAPI.cls.xml =================================================================== diff -u -r1792 -r1826 --- DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1792) +++ DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1826) @@ -201,26 +201,13 @@ ]]> - - -Geef de enige kenmerkenset van het opgegeven PRNr -PRNr:%Integer,KenmerkGroep:%String -DOM.PM.ProductKenmerkenSet - +PRNr:%Integer +DOM.PM.ProductKenmerken + - - -Geef meerdere kenmerkenset van het opgegeven PRNr, bij multiples -PRNr:%Integer,KenmerkGroep:%String -DOM.PM.ProductKenmerkenSets - - - ProductKenmerkenSet:DOM.PM.ProductKenmerkenSet Prod.Kenmerk.Orgalux @@ -252,7 +239,7 @@ Set KenmerkenSet = KenmerkenSetIt.Next() Set UnID = KenmerkenSet.UnID - Set ProductKenmerkenSets = ..GeefProductKenmerkenSets(PRNr,KenmerkGroep.Naam) + Set ProductKenmerkenSets = ..GeefProductKenmerken(PRNr).GeefProductKenmerkenSets(KenmerkGroep.Naam) Set ProductKenmerkenSet = ProductKenmerkenSets.GeefKenmerkenSet(UnID) /// Nagaan dat product als GeneratieType niet AUTO is. Index: APPS/PM/OL/MasterAutoGenerator.cls.xml =================================================================== diff -u -r1775 -r1826 --- APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1775) +++ APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1826) @@ -242,7 +242,7 @@ Set ProdKM.KortTekst=KTFromAdmin Set ProdKM.TeVerwijderen=0 // Alle kenmerken invullen - Set KenmerkenSet = ##class(DOM.DomeinContext).Instance().GeefProductAPI().GeefProductKenmerkenSets(ProdKM.PRNr, ..KenmerkGroepID).GeefKenmerkenSets().Next() + Set KenmerkenSet = ##class(DOM.DomeinContext).Instance().GeefProductAPI().GeefProductKenmerken(ProdKM.PRNr).GeefProductKenmerkenSet(..KenmerkGroepID) Set KenmerkenIt = KenmerkenSet.GeefKenmerkenIterator() While (KenmerkenIt.HasNext()) {