Index: APPS/PM/OL/ProductKenmerken.cls.xml =================================================================== diff -u -r1771 -r1775 --- APPS/PM/OL/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1771) +++ APPS/PM/OL/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1775) @@ -256,7 +256,7 @@ Set KTPatroon=KTPatroonFactory.GetKortTekstPatroon(PatroonCode) Set ..KortTekstPatroon=KTPatroon ;w PatroonCode_" voor KT "_..KortTekst,! - ;d WL^vhDBG("KortTekstPatroon : Code= "_KTPatroon.PatroonCode_" "_..KortTekst) ; _KTPatroon.KenmerkInKortTekstDefsToString()) + ;d WLIP^vhDBG(191,"KortTekstPatroon : Code= "_KTPatroon.PatroonCode_" "_..KortTekst) ; _KTPatroon.KenmerkInKortTekstDefsToString()) Quit ]]> @@ -337,7 +337,6 @@ Set Varianten = ##class(%ListOfDataTypes).%New() #define CvtMasterToVarKM(%m) $Case(%m, "MasterVoorDieptes":$$$varkmDiepte, "MasterVoorBreedtes":$$$varkmBreedte, "MasterVoorKleuren":$$$varkmKleur, "MasterVoorWandDiktes":$$$varkmWandDikte) - If ..GeneratieType=$$$gtMaster { // Patroon voor KortTekst om varianten te kunnen opzoeken Set KTPatroonFactory=##class(KortTekstPatroonFactory).%New() @@ -353,7 +352,7 @@ Set lbExcludePRNrs=$LB(..PRNr) Set PotentieleVarianten=..KortTekstPatroon.ZoekMatches(..KortTekst,..VariabeleKenmerken,lbExcludePRNrs) d WLIP^vhDBG(127,"PotentieleVarianten aantal : "_PotentieleVarianten.Count()) - Quit:(PotentieleVarianten.Count()=0) $$$ERROR($$$GeneralError,"Geen varianten gevonden voor deze master ("_..UnID_" "_..KortTekst_" #KT="_(0)_")") ; Master voor 0 producten + Quit:(PotentieleVarianten.Count()=0) Varianten // $$$ERROR($$$GeneralError,"Geen varianten gevonden voor deze master ("_..UnID_" "_..KortTekst_" #KT="_(0)_")") ; Master voor 0 producten Set sc=$$$OK Set CntVarianten=0 Index: vhConsistency/Checks/MastersVarianten.cls.xml =================================================================== diff -u --- vhConsistency/Checks/MastersVarianten.cls.xml (revision 0) +++ vhConsistency/Checks/MastersVarianten.cls.xml (revision 1775) @@ -0,0 +1,60 @@ + + + +1 +vhConsistency.Check +0 + + +%Status + + + + Index: vhConsistency/Checks/Kenmerken.cls.xml =================================================================== diff -u --- vhConsistency/Checks/Kenmerken.cls.xml (revision 0) +++ vhConsistency/Checks/Kenmerken.cls.xml (revision 1775) @@ -0,0 +1,9 @@ + + + + + +1 +vhConsistency.Check + + Index: vhUnitTest/APPS/PM/TestProductService.cls.xml =================================================================== diff -u -r1763 -r1775 --- vhUnitTest/APPS/PM/TestProductService.cls.xml (.../TestProductService.cls.xml) (revision 1763) +++ vhUnitTest/APPS/PM/TestProductService.cls.xml (.../TestProductService.cls.xml) (revision 1775) @@ -20,7 +20,7 @@ do ..objTestData.CreeerTestData() do $$$AssertEquals($data(^KPR(1001,0)),1,"Producten aangemaakt") - + quit $$$OK ]]> Index: vhUnitTest/DOM/PM/TestProductKenmerkenSets.cls.xml =================================================================== diff -u -r1551 -r1775 --- vhUnitTest/DOM/PM/TestProductKenmerkenSets.cls.xml (.../TestProductKenmerkenSets.cls.xml) (revision 1551) +++ vhUnitTest/DOM/PM/TestProductKenmerkenSets.cls.xml (.../TestProductKenmerkenSets.cls.xml) (revision 1775) @@ -18,8 +18,8 @@ %Status DOM.PM.Product + +1 +TECH.Iterator + + 1 Nr:%Integer @@ -58,15 +63,18 @@ -Geef de enige kenmerkenset van het opgegeven PRNr +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 -Geef meerdere kenmerkenset van het opgegeven PRNr, bij multiples +Geeft alle kenmerkensets van het gevraagde product. Maakt zelf onderscheid tussen multiple en non-multiple. 1 PRNr:%Integer,KenmerkenGroep:%String DOM.PM.ProductKenmerkenSets Index: DOM/PM/ProductKenmerkenSets.cls.xml =================================================================== diff -u -r1507 -r1775 --- DOM/PM/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1507) +++ DOM/PM/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1775) @@ -7,6 +7,11 @@ 1 0 + +1 +%Integer + + 1 %String @@ -22,7 +27,7 @@ Geeft een iterator terug van ProductKenmerkenSet 1 -TECH.ListIterator +TECH.Iterator Index: DOM/PM/impl/DataM/DataMProductAPI.cls.xml =================================================================== diff -u -r1771 -r1775 --- DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1771) +++ DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1775) @@ -79,6 +79,12 @@ ]]> + +TECH.Iterator + + + ProductNummer:%Integer DOM.PM.SamengesteldProduct Index: vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml =================================================================== diff -u -r1771 -r1775 --- vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1771) +++ vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1775) @@ -21,8 +21,8 @@ %Status + + +1 +TECH.Iterator,%RegisteredObject +0 + + +%Integer +1 + + + +DOM.PM.ProductAPI +1 + + + +1 +1 +%Status + + + + + +Returns the next element in the iteration. +Only returns a valid element if HasNext() returns true +Causes an error if HasNext() returns false +%CacheString + + + + +1 + + + + + +Returns true if the iteration has more elements. +%Boolean + + + + Index: APPS/PM/OL/MasterAutoGenerator.cls.xml =================================================================== diff -u -r1771 -r1775 --- APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1771) +++ APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1775) @@ -126,14 +126,11 @@ UnID:%String %ListOfDataTypes 0) { - Set KenmerkenIt=##class(TECH.ListIterator).%New(KenmerkenSet.Kenmerken) - While (KenmerkenIt.HasNext()) { - Set ProductKenmerk=KenmerkenIt.Next() - Set KenmerkNaam=ProductKenmerk.Naam - Set KenmerkWaarden=OLKenmerken.GetKenmerkenPublic(KenmerkNaam) ; Waarden is een $LB() - If ($LL(KenmerkWaarden)=1)&&(KenmerkNaam'?1(1"Diepte",1"WandDikte",1"WebSites",1"LadeFamilie",1"KleurFilter")) { - // Voor alle kenmerken, behalve bovenvernoemde in pattern-match, worden de single-value waarden omgezet van $LB() naar string. - Set KenmerkWaarden=$LG(KenmerkWaarden,1) - } - Do ProdKM.Kenmerken.SetAt(KenmerkWaarden,KenmerkNaam) + Set KenmerkenIt = KenmerkenSet.GeefKenmerkenIterator() + While (KenmerkenIt.HasNext()) { + Set KenmerkWaarden=KenmerkenIt.Next() + Set KenmerkNaam=KenmerkenIt.Key() ; Waarden is een $LB() + If ($LL(KenmerkWaarden)=1)&&(KenmerkNaam'?1(1"Diepte",1"WandDikte",1"WebSites",1"LadeFamilie",1"KleurFilter")) { + // Voor alle kenmerken, behalve bovenvernoemde in pattern-match, worden de single-value waarden omgezet van $LB() naar string. + Set KenmerkWaarden=$LG(KenmerkWaarden,1) } - Set ProdKM.GeneratieType = KenmerkenSet.GeneratieType + Do ProdKM.Kenmerken.SetAt(KenmerkWaarden,KenmerkNaam) } + Set ProdKM.GeneratieType = KenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) // Vervolledigen van de Kenmerken Set sc=ProdKM.VervolledigKenmerken() Index: vhConsistency/ConsistencyCheck.cls.xml =================================================================== diff -u -r1734 -r1775 --- vhConsistency/ConsistencyCheck.cls.xml (.../ConsistencyCheck.cls.xml) (revision 1734) +++ vhConsistency/ConsistencyCheck.cls.xml (.../ConsistencyCheck.cls.xml) (revision 1775) @@ -51,7 +51,7 @@ Set $ZTRAP = "" } Continue -ErrHandling Set CheckGefaald = 1 Do ..Meldingen.Write(ClassName_" : GEFAALD "_$C(13,10,9)_$ZE_$C(13,10)) +ErrHandling Set CheckGefaald = 1 Do ..Meldingen.Write(ClassName_" : GEFAALD "_$C(13,10,9)_##class(TECH.ExceptionHandler).Catch().ToString()_$C(13,10)) } If (CheckGefaald || ToonAlles) Index: DOM/PM/impl/ProductKenmerkenSet.cls.xml =================================================================== diff -u -r1743 -r1775 --- DOM/PM/impl/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1743) +++ DOM/PM/impl/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1775) @@ -28,6 +28,11 @@ 1 + +%ArrayOfDataTypes +1 + + KenmerkGroep:%String,PRNr:%Integer,UnID:%String 1 @@ -41,6 +46,24 @@ ]]> + +TECH.Iterator + + + KenmerkNaam:%String %ListOfDataTypes Index: DOM/PM/impl/ProductKenmerkenSets.cls.xml =================================================================== diff -u -r1727 -r1775 --- DOM/PM/impl/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1727) +++ DOM/PM/impl/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1775) @@ -17,6 +17,11 @@ 1 + +%ListOfObjects +1 + + KenmerkGroep:%String,PRNr:%Integer 1 @@ -32,6 +37,14 @@ ]]> + +%Integer + + + %String + +1 +0) + { + Set MultiplesIt = ##class(TECH.ListIterator).%New(Multiples) + While MultiplesIt.HasNext(){ + Set UnID = MultiplesIt.Next() + Do ..KenmerkenSets.Insert(##class(DOM.PM.impl.ProductKenmerkenSet).%New(..KenmerkGroep,..PRNr,UnID)) + } + } + Else + { + Do ..KenmerkenSets.Insert(##class(DOM.PM.impl.ProductKenmerkenSet).%New(..KenmerkGroep,..PRNr,..PRNr)) + } + } +]]> + + Geeft een iterator terug van ProductKenmerkenSet. Met voor iedere multiple een -TECH.ListIterator +TECH.Iterator @@ -104,7 +132,7 @@ BronUnID:%String %ListOfDataTypes 0) { for i=1:1:$ll(MultipleNrs) { Index: DOM/PM/ProductKenmerkenSet.cls.xml =================================================================== diff -u -r1727 -r1775 --- DOM/PM/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1727) +++ DOM/PM/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1775) @@ -7,6 +7,13 @@ 1 0 + + +Geeft een iterator terug met alle kenmerken. Key/value pair. +1 +TECH.Iterator + + 1 KenmerkNaam:%String Index: vhConsistency/Checks/Multiples.cls.xml =================================================================== diff -u --- vhConsistency/Checks/Multiples.cls.xml (revision 0) +++ vhConsistency/Checks/Multiples.cls.xml (revision 1775) @@ -0,0 +1,48 @@ + + + +1 +vhConsistency.Check +0 + + +%Status + 0) + { + Set i = 1 + + If ($Piece(Multiples.GetAt(1),".",2)'="1") + { + Set Status = $$$ERROR($$$GeneralError,"Fout") + Do ..VoegMeldingToe("Product "_Product.GeefKorttekst()_" ("_Product.GeefPRNr()_") heeft multiples die niet starten met nummer 1.") + } + ElseIf (Multiples.Count() > 1) + { + While (i < Multiples.Count()) && ($Piece(Multiples.GetAt(i),".",2) = ($Piece(Multiples.GetAt(i+1),".",2) - 1)) + { + Set i = i + 1 + } + + If (i < Multiples.Count()) + { + Set Status = $$$ERROR($$$GeneralError,"Fout") + Do ..VoegMeldingToe("Product "_Product.GeefKorttekst()_" ("_Product.GeefPRNr()_") heeft multiples met gaten ("_##class(TECH.ListUtils).ListToPieces(Multiples,",")_").") + } + } + } + } + Quit Status +]]> + + +