Index: APPS/PM/ProductService.cls.xml =================================================================== diff -u -r1619 -r1681 --- APPS/PM/ProductService.cls.xml (.../ProductService.cls.xml) (revision 1619) +++ APPS/PM/ProductService.cls.xml (.../ProductService.cls.xml) (revision 1681) @@ -289,41 +289,42 @@ While(PRNrIterator.HasNext()){ Set PRNr = PRNrIterator.Next() - Set PRNrZoek = PRNr - If ($Find(PRNrZoek,".") '= 0){ - Set PRNrZoek = $Piece(PRNrZoek,".") - } - Set TempProduct = ProductAPI.GeefProduct(PRNrZoek) - If ($IsObject(TempProduct)){ - Set Criteria=##class(APPS.PM.dto.ZoekCriteria).%New() - Set Criteria.SoortProductID=##class(APPS.PM.enu.SoortProductID).Identnummer() - Set Criteria.ProductID = TempProduct.GeefIdentNr() - - Set ProductenResultaat = ..ZoekProducten(Criteria) - Set ProductIDIt = ##class(TECH.ListIterator).%New(ProductenResultaat.HerkendeProducten) - While(ProductIDIt.HasNext()){ - Set ProductIDs = ProductIDIt.Next() - If ($IsObject(ProductIDs)){ - If (PRNrZoek = ProductIDs.PRNr){ - Set ReedsToegevoegd = 0 - Set It = ##class(TECH.ListIterator).%New(ProductenLijst.HerkendeProducten) - While It.HasNext() { - Set ProductID = It.Next() - If ProductID.PRNr = ProductIDs.PRNr { - Set ReedsToegevoegd = 1 - } + Set Herkend = 0 + If ((PRNr?1.N)){ + Set TempProduct = ProductAPI.GeefProduct(PRNr) + If ($IsObject(TempProduct)){ + Set Criteria=##class(APPS.PM.dto.ZoekCriteria).%New() + Set Criteria.SoortProductID=##class(APPS.PM.enu.SoortProductID).Identnummer() + Set Criteria.ProductID = TempProduct.GeefIdentNr() + + Set ProductenResultaat = ..ZoekProducten(Criteria) + Set ProductIDIt = ##class(TECH.ListIterator).%New(ProductenResultaat.HerkendeProducten) + While(ProductIDIt.HasNext()){ + Set ProductIDs = ProductIDIt.Next() + If ($IsObject(ProductIDs)){ + If (PRNr = ProductIDs.PRNr){ + Set ReedsToegevoegd = 0 + Set It = ##class(TECH.ListIterator).%New(ProductenLijst.HerkendeProducten) + While It.HasNext() { + Set ProductID = It.Next() + If ProductID.PRNr = ProductIDs.PRNr { + Set ReedsToegevoegd = 1 + } + } + If 'ReedsToegevoegd { + Set Herkend = 1 + } } - If 'ReedsToegevoegd { - Do ProductenLijst.HerkendeProducten.Insert(ProductIDs) - } } - }Else{ - Do ProductenLijst.NietHerkendeProductIDs.Insert(PRNr) } } - }Else{ - Do ProductenLijst.NietHerkendeProductIDs.Insert(PRNr) } + + If Herkend { + Do ProductenLijst.HerkendeProducten.Insert(ProductIDs) + }Else{ + Do ProductenLijst.NietHerkendeProductIDs.Insert(PRNr) + } } Quit ProductenLijst Index: vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml =================================================================== diff -u -r1619 -r1681 --- vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1619) +++ vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1681) @@ -57,11 +57,11 @@ do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),PRNrs.Count(),"Aantal gevonden productkenmerken is het gelijk aan het aantal gevraagde producten.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),8,"Juiste aantal gedefineerde kenmerken.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),7,"Juiste aantal gedefineerde kenmerken.") do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,PRNrs.GetAt(1),"PRNr komt overeen.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),15,"Juiste aantal gedefineerde kenmerken.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),14,"Juiste aantal gedefineerde kenmerken.") do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.GetAt(1).Naam,"Diepte","Kenmerknaam is correct ingevuld.") ]]> @@ -82,15 +82,15 @@ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.Count(),2,"Er zijn twee kenmerkensets gevonden voor het product.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken voor ProductKenmerken1.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),18,"Juiste aantal gedefineerde kenmerken voor ProductKenmerken1.") do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,PRNrs.GetAt(1),"PRNr komt overeen.") do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).UnID,"1003.1","UnID 1003.1 is in orde.") do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(2).UnID,"1003.2","UnID 1003.2 is in orde.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(2).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken ProductKenmerken2.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(2).Kenmerken.Count(),18,"Juiste aantal gedefineerde kenmerken ProductKenmerken2.") do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(2).Kenmerken.GetAt(1).Naam,"BOWeten","Kenmerknaam is correct ingevuld.") ]]> @@ -119,7 +119,7 @@ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).UnID,"1024","UnID 1024 is in orde.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(2).Sets.GetAt(1).Kenmerken.Count(),16,"Juiste aantal gedefineerde kenmerken voor ProductKenmerken2.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(2).Sets.GetAt(1).Kenmerken.Count(),15,"Juiste aantal gedefineerde kenmerken voor ProductKenmerken2.") do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(2).Sets.GetAt(1).UnID,"1024","UnID 1024 is in orde.") @@ -137,7 +137,8 @@ Set KenmerkGroepMetadata = KenmerkenService.GeefMetadata(KenmerkGroepen).KenmerkGroepen Do $$$AssertEquals(KenmerkGroepMetadata.Count(),1,"Correct aantal kenmerkengroepen (#1)") - Do $$$AssertEquals(KenmerkGroepMetadata.GetAt(1).Naam,"OL","Correcte naam kenmerkengroep (OL)") + Do $$$AssertEquals(KenmerkGroepMetadata.GetAt(1).Code,"OL","Correcte code kenmerkengroep (OL)") + Do $$$AssertEquals(KenmerkGroepMetadata.GetAt(1).Naam,"ORGALUX","Correcte naam kenmerkengroep (ORGALUX)") Set KenmerkMetadata = KenmerkGroepMetadata.GetAt(1).Kenmerken @@ -185,9 +186,7 @@ Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken - Do $$$AssertEquals(Kenmerken.GetAt(4).Waarden.GetAt(1),"Keuken","Er is een ingevulde eigenschap "_Kenmerken.GetAt(4).Naam_" : "_Kenmerken.GetAt(4).Waarden.GetAt(1)_"") - ; [Review WV JBL Kenm] wat een geflipte expression :-P - ; bestaat er geen method Product.GeefKenmerkViaNaam("MeubelToepassing") i.p.v. GetAt(4) ? + Do $$$AssertEquals(Kenmerken.GetAt(4).Waarden.GetAt(1),"Set","Er is een ingevulde eigenschap "_Kenmerken.GetAt(4).Naam_" : "_Kenmerken.GetAt(4).Waarden.GetAt(1)_"") ///Kenmerk wijzigen en wegschrijven Set Waarden = ##class(%ListOfDataTypes).%New() @@ -351,7 +350,7 @@ Set PRNr = GewijzigdePRNrs.GetAt(1) Set ProductenKenmerken = KenmerkenService.GeefProductenKenmerkenOne(PRNr,KenmerkGroep) Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken - Do $$$AssertEquals(Kenmerken.Count(),18,"Er zijn 18 kenmerken gevonden.") + Do $$$AssertEquals(Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden.") ]]> @@ -388,8 +387,8 @@ Set Kenmerken = Sets.GetAt(1).Kenmerken Do $$$AssertEquals(Sets.Count(),2,"Er zijn 2 productkenmerken sets gevonden voor dit product.") - Do $$$AssertEquals(Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het eerste product.") - Do $$$AssertEquals(Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het tweede product.") + Do $$$AssertEquals(Kenmerken.Count(),16,"Er zijn 16 kenmerken gevonden voor het eerste product.") + Do $$$AssertEquals(Kenmerken.Count(),16,"Er zijn 16 kenmerken gevonden voor het tweede product.") ]]> Index: APPS/PM/OL/MasterAutoGenerator.cls.xml =================================================================== diff -u -r1551 -r1681 --- APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1551) +++ APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1681) @@ -260,10 +260,10 @@ } Do ProdKM.Kenmerken.SetAt(KenmerkWaarden,KenmerkNaam) } + Set ProdKM.GeneratieType = KenmerkenSet.GeneratieType } // Vervolledigen van de Kenmerken - Set ProdKM.GeneratieType=ProdKM.Kenmerken.GetAt("GeneratieType") Set sc=ProdKM.VervolledigKenmerken() Quit ProdKM Index: APPS/PM/KenmerkenService.cls.xml =================================================================== diff -u -r1631 -r1681 --- APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1631) +++ APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1681) @@ -54,50 +54,28 @@ Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() Set ProductService = ##class(APPS.PM.ProductService).%New() - // nadien nagaan of er iets in kenmerkGroepen zit, als het ledig is wordt in alle kenmerkgroepen gezocht. - if ('$IsObject(KenmerkGroepen) || (KenmerkGroepen.Count() = 0)) { - Set KenmerkGroepen = ##class(Prod.Kenmerk.MetaGroep).GetAllMetaGroupsAsList() - } - - /// UnIDs verzamelen - Set UnIDs = ##class(%ListOfDataTypes).%New() - Set PRNrIterator = ##class(TECH.ListIterator).%New(PRNrs) - While (PRNrIterator.HasNext()) - { - Set PRNr = PRNrIterator.Next() - Set Product = ProductAPI.GeefProduct(PRNr) - If ($IsObject(Product)){ - /// UnIDs verzamelen van dit PRNr - Set Multiples = Product.GeefMultiples() - If (Multiples.Count() > 0){ - Set UnIDs = ##class(TECH.ListUtils).CopyListOfDataTypes(Multiples,UnIDs) - }Else{ - Do UnIDs.Insert(PRNr) - } - }Else { - Set ErrorMsg = "GeefProductKenmerken() : Het product met PRNr '"_PRNr_"' bestaat niet." - Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),ErrorMsg)) - } - } - - /// UnIDs naar SQLUnIDs - Set SQLUnIDs = ..MaakSQLINParameters(UnIDs) - - - /// Kenmerkgroepen verzamelen - Set SQLKenmerken = ..MaakSQLINParameters(KenmerkGroepen) + /// PRNrs naar SQLPRNrs + Set SQLPRNrs = ..MaakSQLINParameters(PRNrs) /// voorbereidend werk Set ProductenKenmerken = ##class(APPS.PM.dto.Kenm.ProductenKenmerken).%New() Set Kenmerken = ##class(%ListOfObjects).%New() /// DataDefinities ophalen Set RS=##class(%ResultSet).%New() - Set SQLStatement = "SELECT ID, UnID, KenmerkGroep, KenmerkNaam, Waarden FROM Prod_Kenmerk.DataDefinitie where KenmerkGroep IN ( "_SQLKenmerken_" ) AND UnID In ( "_SQLUnIDs_" ) ORDER BY UnID, KenmerkGroep" - /// D WLIP^vhDBG(127,SQLStatement) + Set SQLStatement = "SELECT PRNr, UnID, KenmerkGroep, KenmerkNaam, Waarden FROM Prod_Kenmerk.DataDefinitie where" + // nadien nagaan of er iets in kenmerkGroepen zit, als het ledig is wordt in alle kenmerkgroepen gezocht. + if ($IsObject(KenmerkGroepen) && (KenmerkGroepen.Count() '= 0)) { + /// Kenmerkgroepen verzamelen + Set SQLKenmerken = ..MaakSQLINParameters(KenmerkGroepen) + Set SQLStatement = SQLStatement_" KenmerkGroep IN ( "_SQLKenmerken_" ) AND" + } + Set SQLStatement = SQLStatement_" PRNr In ( "_SQLPRNrs_" )" + + D WLIP^vhDBG(127,SQLStatement) Do RS.Prepare(SQLStatement) - Set tmpStatus = RS.Execute(SQLKenmerken,SQLUnIDs) + Set tmpStatus = RS.Execute() If $$$ISOK(tmpStatus) { Set tmpUnID = "" @@ -107,50 +85,51 @@ While (RS.Next()) { Set KenmerkNaam = RS.Data("KenmerkNaam") - Set UnID = RS.Data("UnID") - Set PRNr = ##class(BL.Kenm.ProdMulti).GetCommonID(UnID) - Set KenmerkGroep = RS.Data("KenmerkGroep") - - /// Als PRNr verandert. - If (tmpPRNr '= PRNr){ - Set ProductKenmerken = ##class(APPS.PM.dto.Kenm.ProductKenmerken).%New() - Set ProductKenmerken.PRNr = PRNr - Do ProductenKenmerken.Kenmerken.Insert(ProductKenmerken) - } - - /// Als kenmerkgroep verandert - /// Enkel groepen toevoegen als er sets aanwezig zijn - If ((tmpKenmerkGroep '= RS.Data("KenmerkGroep")) || (tmpPRNr '= PRNr)){ - Set ProductKenmerkenGroep = ##class(APPS.PM.dto.Kenm.ProductKenmerkenGroep).%New() - Set ProductKenmerkenGroep.Naam = RS.Data("KenmerkGroep") - Do ProductKenmerken.KenmerkenGroepen.Insert(ProductKenmerkenGroep) - } - - - /// Nagaan of dit record nog bij vorige hoort. - If (tmpUnID '= UnID || (tmpKenmerkGroep '= KenmerkGroep)) { - Set ProductKenmerkenSet = ##class(APPS.PM.dto.Kenm.ProductKenmerkenSet).%New() - Set ProductKenmerkenSet.UnID = UnID - /// GeneratieType - Set KenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr, KenmerkGroep) - Set KenmerkenSet = KenmerkenSets.GeefKenmerkenSet(UnID) - If (KenmerkenSet.GeefKenmerkWaarden("GeneratieType").Count() > 0){ - Set ProductKenmerkenSet.GeneratieType = KenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) - }Else{ - Set ProductKenmerkenSet.GeneratieType = ##class(APPS.PM.enu.GeneratieType).Single() - } - Do ProductKenmerkenGroep.Sets.Insert(ProductKenmerkenSet) - } - - Set ProductKenmerk = ##class(APPS.PM.dto.Kenm.ProductKenmerk).%New() - Set ProductKenmerk.Naam = KenmerkNaam - Set tmpDataDef=##class(Prod.Kenmerk.DataDefinitie).%OpenId(RS.Data("ID")) - Set ProductKenmerk.Waarden = tmpDataDef.Waarden - Do ProductKenmerkenSet.Kenmerken.Insert(ProductKenmerk) - - Set tmpPRNr = PRNr - Set tmpUnID = UnID - Set tmpKenmerkGroep = KenmerkGroep + If (KenmerkNaam '= "GeneratieType"){ + Set PRNr = RS.Data("PRNr") + Set UnID = RS.Data("UnID") + Set KenmerkGroep = RS.Data("KenmerkGroep") + + /// Als PRNr verandert. + If (tmpPRNr '= PRNr){ + Set ProductKenmerken = ##class(APPS.PM.dto.Kenm.ProductKenmerken).%New() + Set ProductKenmerken.PRNr = PRNr + Do ProductenKenmerken.Kenmerken.Insert(ProductKenmerken) + } + + /// Als kenmerkgroep verandert + /// Enkel groepen toevoegen als er sets aanwezig zijn + If ((tmpKenmerkGroep '= RS.Data("KenmerkGroep")) || (tmpPRNr '= PRNr)){ + Set ProductKenmerkenGroep = ##class(APPS.PM.dto.Kenm.ProductKenmerkenGroep).%New() + Set ProductKenmerkenGroep.Naam = RS.Data("KenmerkGroep") + Do ProductKenmerken.KenmerkenGroepen.Insert(ProductKenmerkenGroep) + } + + /// Nagaan of dit record nog bij vorige hoort. + If (tmpUnID '= UnID || (tmpKenmerkGroep '= KenmerkGroep)) { + Set ProductKenmerkenSet = ##class(APPS.PM.dto.Kenm.ProductKenmerkenSet).%New() + Set ProductKenmerkenSet.UnID = UnID + /// GeneratieType + Set KenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr, KenmerkGroep) + Set KenmerkenSet = KenmerkenSets.GeefKenmerkenSet(UnID) + If (KenmerkenSet.GeefKenmerkWaarden("GeneratieType").Count() > 0){ + Set ProductKenmerkenSet.GeneratieType = KenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) + }Else{ + Set ProductKenmerkenSet.GeneratieType = ##class(APPS.PM.enu.GeneratieType).Single() + } + Do ProductKenmerkenGroep.Sets.Insert(ProductKenmerkenSet) + } + + Set ProductKenmerk = ##class(APPS.PM.dto.Kenm.ProductKenmerk).%New() + Set ProductKenmerk.Naam = KenmerkNaam + Set ProductKenmerk.Waarden = ##class(TECH.ListUtils).ListbuildToList(RS.Data("Waarden")) // tmpDataDef.Waarden + + Do ProductKenmerkenSet.Kenmerken.Insert(ProductKenmerk) + + Set tmpPRNr = PRNr + Set tmpUnID = UnID + Set tmpKenmerkGroep = KenmerkGroep + } } } @@ -244,11 +223,11 @@ Set KenmerkGroep = KenmerkGroepIterator.Next() Set KenmerkGroepMetadata = ##class(APPS.PM.dto.Kenm.KenmerkGroepMetadata).%New() - Set KenmerkGroepMetadata.Naam = KenmerkGroep + Set KenmerkGroepMetadata.Code = KenmerkGroep Set Metadata = ##class(Prod.Kenmerk.MetaGroep).%OpenId(KenmerkGroep) If $IsObject(Metadata){ Set KenmerkGroepMetadata.MultipleKenmerkenSetsToegelaten = Metadata.MultipleKenmerkenSetsToegelaten() - Set KenmerkGroepMetadata.Omschrijving = Metadata.Omschrijving + Set KenmerkGroepMetadata.Naam = Metadata.Omschrijving Set KenmerkGroepMetadata.Icoon = Metadata.Icoon } @@ -430,15 +409,17 @@ Set UnIDIt = ##class(TECH.ListIterator).%New(UnIDs) While (UnIDIt.HasNext()){ Set UnID = UnIDIt.Next() - Set PRNr = ##class(BL.Kenm.ProdMulti).GetCommonID(UnID) - Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr,KenmerkGroep) /// Indien UnID niet bestaat, kan er geen nieuwe kenmerkenset gecreeerd worden If ('$Data(^Prod.Ken.DataDefinitieD(UnID))){ Set ErrorMsg = "Kan MaakNieuweKenmerkenSets("_KenmerkGroep_","_UnID_") niet uitvoeren omdat dit geen bestaand UnID is." Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),ErrorMsg)) } + Set PRNr = ##class(BL.Kenm.ProdMulti).GetCommonID(UnID) + Set ProductKenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr,KenmerkGroep) + + /// Indien UnID een Auto is, kan er geen nieuwe kenmerkenset gecreeerd worden Set KenmerkenSet = ProductKenmerkenSets.GeefKenmerkenSet(UnID) If ($IsObject(KenmerkenSet) && (KenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) = ##class(APPS.PM.enu.GeneratieType).Auto())){ Index: APPS/PM/dto/Kenm/KenmerkGroepMetadata.cls.xml =================================================================== diff -u -r1562 -r1681 --- APPS/PM/dto/Kenm/KenmerkGroepMetadata.cls.xml (.../KenmerkGroepMetadata.cls.xml) (revision 1562) +++ APPS/PM/dto/Kenm/KenmerkGroepMetadata.cls.xml (.../KenmerkGroepMetadata.cls.xml) (revision 1681) @@ -26,11 +26,11 @@ %Boolean - + %String - + %String Index: vhUnitTest/APPS/PM/TestProductService.cls.xml =================================================================== diff -u -r1542 -r1681 --- vhUnitTest/APPS/PM/TestProductService.cls.xml (.../TestProductService.cls.xml) (revision 1542) +++ vhUnitTest/APPS/PM/TestProductService.cls.xml (.../TestProductService.cls.xml) (revision 1681) @@ -280,8 +280,7 @@ Do PRNrs.Insert("1002") Do PRNrs.Insert("1005") Do PRNrs.Insert("889") - Do PRNrs.Insert("1003.1") - Do PRNrs.Insert("1003.2") + Do PRNrs.Insert("1003") Set ProductService = ##class(APPS.PM.ProductService).%New() @@ -409,18 +408,19 @@ Testen of de productafbeeldingen meekomen bij een productzoek Index: zJBLTestZoekKenmerken.mac.rou =================================================================== diff -u -r1619 -r1681 --- zJBLTestZoekKenmerken.mac.rou (.../zJBLTestZoekKenmerken.mac.rou) (revision 1619) +++ zJBLTestZoekKenmerken.mac.rou (.../zJBLTestZoekKenmerken.mac.rou) (revision 1681) @@ -1,5 +1,5 @@ Test - + /// do Test^zJBLTestZoekKenmerken w "Zoek OL : prnr 315014 en 557372" set aantalkeer = 10 Set totaaltijd = 0 @@ -92,7 +92,6 @@ Set Result = ##class(APPS.PM.KenmerkenService).%New().GeefProductKenmerken(PRNrs,KenmerkGroepen) Do StopTimer^vhLib Set Time = $$GetInterval^vhLib - //w Time,! Set totaaltijd = totaaltijd + $$GetInterval^vhLib } @@ -188,10 +187,10 @@ Do StartTimer^vhLib Set Result = ##class(APPS.PM.KenmerkenService).%New().GeefProductKenmerken(PRNrs,KenmerkGroepen) - //w Result.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.GetAt(5).Naam,! + Do StopTimer^vhLib Set Time = $$GetInterval^vhLib - //w Time,! + Set totaaltijd = totaaltijd + $$GetInterval^vhLib } Index: Prod/Kenmerk/DataDefinitie.cls.xml =================================================================== diff -u -r1619 -r1681 --- Prod/Kenmerk/DataDefinitie.cls.xml (.../DataDefinitie.cls.xml) (revision 1619) +++ Prod/Kenmerk/DataDefinitie.cls.xml (.../DataDefinitie.cls.xml) (revision 1681) @@ -67,6 +67,8 @@ Set ..KenmerkNaam = "" } + Set ..PRNr = ##class(BL.Kenm.ProdMulti).GetCommonID(..UnID) + Quit ##super(insert) ]]> @@ -115,6 +117,11 @@ KenmerkNaam + +Waarden +KenmerkGroep,KenmerkNaam,PRNr,UnID + + ************** !!!! **************** !!! *************************************** @@ -134,6 +141,16 @@ 1 + + +************** !!!! **************** !!! *************************************** +PRNr dient voor indexen te kunnen maken. +Deze mag NOOIT door programma code gebruikt worden of aangeroepen worden !!! +************** !!!! **************** !!! *************************************** +%String +1 + + ************** !!!! **************** !!! *************************************** @@ -940,6 +957,9 @@ KenmerkNaam + +PRNr + Index: DOM/PM/impl/ProductKenmerkenSets.cls.xml =================================================================== diff -u -r1580 -r1681 --- DOM/PM/impl/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1580) +++ DOM/PM/impl/ProductKenmerkenSets.cls.xml (.../ProductKenmerkenSets.cls.xml) (revision 1681) @@ -122,7 +122,7 @@ If (NewUnID = ""){ Set ErrorMsg = "Het gegeneerde nieuwe UnID '"_NewUnID_"' voor reeds bestaande UnID '"_BronUnID_"' is niet correct." - Set ErrorMsg = ErrorMsg_$C(13,10)_$$ParseStatus^vhLib(NewUnID) + Set ErrorMsg = ErrorMsg_$C(13,10)_$$ParseStatus^vhLib(Status) Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),ErrorMsg)) } @@ -216,30 +216,32 @@ } }Else{ /// Als er nog meer dan één multiples bestaat, controleren of het opeenvolgende UnIDs zijn /// Zonodig deze wijzigen. - Set SubIDs = "" - Set DoelSubUnID = $ListLength(lbMulti) + + Set FromToArray = "" For Current = 1 : 1 : $ListLength(lbMulti) { - Set UnID = $ListGet(lbMulti,Current) - Set StoredSubID = ##class(BL.Kenm.ProdMulti).GetSubID(UnID) - Set SubIDs(Current) = StoredSubID - If (StoredSubID '= Current){ - /// Alles Opschuiven - For DoelSubUnID = (Current) : 1 : $ListLength(lbMulti) { - Set BronUnID = $ListGet(lbMulti,DoelSubUnID) - Set BronSubUnID = ##class(BL.Kenm.ProdMulti).GetSubID(BronUnID) - Set DoelUnID = ##class(BL.Kenm.ProdMulti).GetFullID(..PRNr,DoelSubUnID) - Do ..KopieerKenmerkenSets(BronUnID,DoelUnID) - } - } + Set UnID = $ListGet(lbMulti,Current) + Set StoredCommonID = ##class(BL.Kenm.ProdMulti).GetCommonID(UnID) + Set ToUnID = ##class(BL.Kenm.ProdMulti).GetFullID(StoredCommonID, Current) + Set FromToArray(UnID) = ToUnID } - /// UnID's verwijderen die niet meer nodig zijn + Set key=$ORDER(FromToArray("")) + While (key'="") { + If (key '= FromToArray(key)){ + Do ..KopieerKenmerkenSets(key,FromToArray(key)) + } + Set key = $ORDER(FromToArray(key)) + } + + /// UnID's verwijderen die niet meer nodig zijn For Current = 1 : 1 : $ListLength(lbMulti) { - If (SubIDs(Current) > DoelSubUnID){ - Set UnIDToRemove = ##class(BL.Kenm.ProdMulti).GetFullID(..PRNr,SubIDs(Current)) - Do ##class(Prod.Kenmerk.DataDefinitie).DeleteViaUnID(UnID,$LB(..KenmerkGroep)) - } + Set UnIDToRemove = $ListGet(lbMulti,Current) + Set SubID = ##class(BL.Kenm.ProdMulti).GetSubID(UnIDToRemove) + If (SubID > $ListLength(lbMulti)){ + Do ##class(Prod.Kenmerk.DataDefinitie).DeleteViaUnID(UnIDToRemove,$LB(..KenmerkGroep)) + } } + } } Index: vhDeploy/JBL/Deploy20110714x0848.cls.xml =================================================================== diff -u --- vhDeploy/JBL/Deploy20110714x0848.cls.xml (revision 0) +++ vhDeploy/JBL/Deploy20110714x0848.cls.xml (revision 1681) @@ -0,0 +1,65 @@ + + + + +Do ##class(vhDeploy.JBL.Deploy20110714x0848).UpdateIndexen() +1 +svn.Deploy +0 + + +Indexen opbouwen van Prod.Kenm.DataDefinitie op basis van PRNr + + + +1 + + + + +1 + + + +