Index: APPS/PM/OL/MasterAutoGenerator.cls.xml =================================================================== diff -u -r1507 -r1517 --- APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1507) +++ APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1517) @@ -244,12 +244,13 @@ Set ProdKM.TeVerwijderen=0 // Alle kenmerken invullen - Set ProductKenmerken=##class(APPS.PM.KenmerkenService).%New().GeefProductKenmerkenForUnID(ProdKM.PRNr, ProdKM.SubID, ..KenmerkGroepID) - If ($IsObject(ProductKenmerken))&&(ProductKenmerken.Kenmerken.Count()>0) { - Set KenmerkenIt=##class(TECH.ListIterator).%New(ProductKenmerken.Kenmerken) + Set KenmerkenSet = ##class(APPS.PM.KenmerkenService).%New().GeefProductKenmerkenForUnID(UnID, ..KenmerkGroepID) + + If ($IsObject(KenmerkenSet))&&(KenmerkenSet.Kenmerken.Count()>0) { + Set KenmerkenIt=##class(TECH.ListIterator).%New(KenmerkenSet.Kenmerken) While (KenmerkenIt.HasNext()) { Set ProductKenmerk=KenmerkenIt.Next() - Set KenmerkNaam=ProductKenmerk.KenmerkNaam + 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. Index: APPS/PM/dto/Kenm/ProductKenmerken.cls.xml =================================================================== diff -u -r1112 -r1517 --- APPS/PM/dto/Kenm/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1112) +++ APPS/PM/dto/Kenm/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1517) @@ -8,13 +8,13 @@ %RegisteredObject,%XML.Adaptor 0 - -ProductKenmerk + +APPS.PM.dto.Kenm.ProductKenmerkenGroep list - -APPS.PM.dto.ProductIDs + +%Integer 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 Index: APPS/PM/dto/Kenm/ProductKenmerk.cls.xml =================================================================== diff -u -r1112 -r1517 --- APPS/PM/dto/Kenm/ProductKenmerk.cls.xml (.../ProductKenmerk.cls.xml) (revision 1112) +++ APPS/PM/dto/Kenm/ProductKenmerk.cls.xml (.../ProductKenmerk.cls.xml) (revision 1517) @@ -7,7 +7,7 @@ %RegisteredObject,%XML.Adaptor 0 - + %String @@ -17,9 +17,5 @@ %String list - - -%String - Index: APPS/PM/dto/Kenm/ProductKenmerkenSet.cls.xml =================================================================== diff -u --- APPS/PM/dto/Kenm/ProductKenmerkenSet.cls.xml (revision 0) +++ APPS/PM/dto/Kenm/ProductKenmerkenSet.cls.xml (revision 1517) @@ -0,0 +1,23 @@ + + + + +JBL + 2011-06-24 +1 +%RegisteredObject,%XML.Adaptor +0 + + +APPS.PM.dto.Kenm.ProductKenmerk +list + + + +%String + + + +APPS.PM.enu.GeneratieType + + + Index: APPS/PM/OL/ProductKenmerken.cls.xml =================================================================== diff -u -r1507 -r1517 --- APPS/PM/OL/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1507) +++ APPS/PM/OL/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1517) @@ -390,7 +390,7 @@ Set VariantObject = ##class(APPS.PM.OL.KortTekstPatroon).%New().CreatePatroonMatch(VariantPRNr,..VariabeleKenmerken) Set sc=..BewaarKenmerkenVanVariant(ImportLog,VariantObject) - d WLIP^vhDBG(127,"Status Bewaard voor Variant (PRNr:"_Variant_") "_PotVariant.KortTekst_" = "_$S($$$ISOK(sc):"OK", 1:$$ParseStatus^vhLib(sc))_"") + d WLIP^vhDBG(127,"Status Bewaard voor Variant (PRNr:"_VariantPRNr_") "_VariantObject.KortTekst_" = "_$S($$$ISOK(sc):"OK", 1:$$ParseStatus^vhLib(sc))_"") } Set:(Varianten.Count()=0) sc=$$$ERROR($$$GeneralError,"Geen varianten gevonden voor deze master ("_..UnID_" "_..KortTekst_" #KT="_Varianten.Count()_")") Quit sc Index: vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml =================================================================== diff -u -r1507 -r1517 --- vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1507) +++ vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1517) @@ -57,13 +57,13 @@ do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),PRNrs.Count(),"Aantal gevonden productkenmerken is het gelijk aan het aantal gevraagde producten.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),8,"Juiste aantal gedefineerde kenmerken.") + 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).IDs.PRNr,PRNrs.GetAt(1),"PRNr komt overeen.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,PRNrs.GetAt(1),"PRNr komt overeen.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).Kenmerken.Count(),15,"Juiste aantal gedefineerde kenmerken.") + 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).Kenmerken.GetAt(1).KenmerkNaam,"ProductType","Kenmerknaam is correct ingevuld.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.GetAt(1).Naam,"ProductType","Kenmerknaam is correct ingevuld.") ]]> @@ -78,19 +78,21 @@ Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs) - do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Aantal gevonden productkenmerken is het gelijk aan het aantal gevraagde producten, twee omdat het een multiple product is.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),1,"Aantal gevonden productkenmerken met uniek PRNr is het gelijk aan het aantal gevraagde producten.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken voor ProductKenmerken1.") + 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).IDs.PRNr,PRNrs.GetAt(1),"PRNr komt overeen.") + 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).IDs.MultipleNr,1,"MultipleNr 1 is in orde.") + do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,PRNrs.GetAt(1),"PRNr komt overeen.") - do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).IDs.MultipleNr,2,"MultipleNr 1 is in orde.") + 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(2).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken ProductKenmerken2.") + 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(2).Kenmerken.GetAt(1).KenmerkNaam,"ProductType","Kenmerknaam is correct ingevuld.") + 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.GetAt(1).Naam,"ProductType","Kenmerknaam is correct ingevuld.") ]]> @@ -146,23 +148,27 @@ Do KenmerkGroepen.Insert("OL") Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen) - - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1),"Keuken","Er is een ingevulde eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam_" : "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1)_"") + + 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) ? ///Kenmerk wijzigen en wegschrijven Set Waarden = ##class(%ListOfDataTypes).%New() Do Waarden.Insert(NieuweWaarde) - Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden = Waarden + Set Kenmerken.GetAt(4).Waarden = Waarden + /// Set ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken = Kenmerken Do KenmerkenService.BewaarProductenKenmerken(ProductenKenmerken) - k ProductenKenmerken + k ProductenKenmerken, Kenmerken ///Opnieuw ophalen van kenmerken Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen) - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1),NieuweWaarde,"Er is een ingevulde eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam_" : "_NieuweWaarde_"") + Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken + Do $$$AssertEquals(Kenmerken.GetAt(4).Waarden.GetAt(1),NieuweWaarde,"Er is een ingevulde eigenschap "_Kenmerken.GetAt(4).Naam_" : "_NieuweWaarde_"") // We gaan nog eens opnieuw bewaren. Dit zou geen save mogen trigger => zelfde waarden is geen save. @@ -172,8 +178,9 @@ Set Waarden = ##class(%ListOfDataTypes).%New() Do Waarden.Insert(NieuweWaarde) - Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden = Waarden + Set Kenmerken.GetAt(4).Waarden = Waarden + /// Set ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken = Kenmerken Do KenmerkenService.BewaarProductenKenmerken(ProductenKenmerken) Do $$$AssertFalse(%HeeftModEventOntvangen,"De mod event werd niet opgegooid omdat er geen wijzigingen waren") @@ -203,22 +210,24 @@ Do KenmerkGroepen.Insert("OL") Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen) - Set OudeWaarde1 = ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).Waarden.GetAt(1) - Set OudeWaarde2 = ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1) + Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken + Set OudeWaarde1 = Kenmerken.GetAt(3).Waarden.GetAt(1) + Set OudeWaarde2 = Kenmerken.GetAt(4).Waarden.GetAt(1) Set Waarden = ##class(%ListOfDataTypes).%New() Do Waarden.Insert("GoedeWaarde") /// Goed kenmerk instellen - Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).Waarden = Waarden + Set Kenmerken.GetAt(3).Waarden = Waarden /// Slecht kenmerk instellen - Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam = "NietBestaandKenmerk" - Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden = Waarden + Set Kenmerken.GetAt(4).Naam = "NietBestaandKenmerk" + Set Kenmerken.GetAt(4).Waarden = Waarden Set ..ErrorMsg="" Set $ZTRAP = "Catch" + /// Set ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken = Kenmerken Do KenmerkenService.BewaarProductenKenmerken(ProductenKenmerken) GoTo Catch Catch Set $ZTRAP = "" @@ -233,9 +242,9 @@ ///Opnieuw ophalen van kenmerken Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen) - - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).Waarden.GetAt(1),OudeWaarde1,"Gerolbackte eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).KenmerkNaam_" : "_NieuweWaarde_"") - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1),OudeWaarde2,"Gerolbackte eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam_" : "_NieuweWaarde_"") + Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken + Do $$$AssertEquals(Kenmerken.GetAt(3).Waarden.GetAt(1),OudeWaarde1,"Gerolbackte eigenschap "_Kenmerken.GetAt(3).Naam_" : "_NieuweWaarde_"") + Do $$$AssertEquals(Kenmerken.GetAt(4).Waarden.GetAt(1),OudeWaarde2,"Gerolbackte eigenschap "_Kenmerken.GetAt(4).Naam_" : "_NieuweWaarde_"") ]]> @@ -245,7 +254,7 @@ @@ -307,8 +319,8 @@ Set PRNr = GewijzigdePRNrs.GetAt(1) Set ProductenKenmerken = KenmerkenService.GeefProductenKenmerkenOne(PRNr,KenmerkGroep) - - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),18,"Er zijn 18 kenmerken gevonden.") + Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken + Do $$$AssertEquals(Kenmerken.Count(),18,"Er zijn 18 kenmerken gevonden.") ]]> @@ -331,7 +343,8 @@ Do PRNrs.Insert(PRNr) Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen) - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),3,"Er zijn drie producten gevonden.") + Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets + Do $$$AssertEquals(Sets.Count(),3,"Er zijn 3 productkenmerken sets gevonden voor dit product.") Set GewijzigdePRNrs = KenmerkenService.VerwijderKenmerkenSets(KenmerkGroep,UnIDs) @@ -340,9 +353,12 @@ Do $$$AssertEquals(GewijzigdePRNrs.GetAt(1),PRNr,"De kenmerkensets van product '"_PRNr_"' gewijzigd.") Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen) - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Er zijn twee producten gevonden.") - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het eerste product.") - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het tweede product.") + Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets + 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.") ]]> @@ -380,15 +396,19 @@ Do $$$AssertEquals(GewijzigdePRNrs.GetAt(1),1022,"Gewijzigd PRNr : 1022") Set PRNrs = ##class(%ListOfDataTypes).%New() Do PRNrs.Insert(1022) - Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen) - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1022") + Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen) + Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets + Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,1022,"PRNr is correct"_1022) + Do $$$AssertEquals(Sets.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1022") Do $$$AssertEquals(GewijzigdePRNrs.GetAt(2),1023,"Gewijzigd PRNr : 1023") Do PRNrs.Clear() Do PRNrs.Insert(1023) Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen) - Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1022") + Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets + Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,1023,"PRNr is correct"_1023) + Do $$$AssertEquals(Sets.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1023") ]]> Index: JBL Product AMF.prj.xml =================================================================== diff -u -r1507 -r1517 --- JBL Product AMF.prj.xml (.../JBL Product AMF.prj.xml) (revision 1507) +++ JBL Product AMF.prj.xml (.../JBL Product AMF.prj.xml) (revision 1517) @@ -1,10 +1,11 @@ - + + Index: vhUnitTest/APPS/PM/OL/MasterAutoGenerator.cls.xml =================================================================== diff -u --- vhUnitTest/APPS/PM/OL/MasterAutoGenerator.cls.xml (revision 0) +++ vhUnitTest/APPS/PM/OL/MasterAutoGenerator.cls.xml (revision 1517) @@ -0,0 +1,57 @@ + + + + +Do ##class(vhUnitTest.Manager).RunTest("/display=all/debug","APPS.PM.OL.MasterAutoGenerator") +1 +vhUnitTest.TestCase +0 + + +vhUnitTest.DOM.PM.TestData +1 + + + +%Status + + + + +%Status + + + + + 0),"Er zijn waardes voor de kenmerken.") +]]> + + + Index: APPS/PM/dto/Kenm/ProductKenmerkenGroep.cls.xml =================================================================== diff -u --- APPS/PM/dto/Kenm/ProductKenmerkenGroep.cls.xml (revision 0) +++ APPS/PM/dto/Kenm/ProductKenmerkenGroep.cls.xml (revision 1517) @@ -0,0 +1,19 @@ + + + + +JBL + 2011-06-24 +1 +%RegisteredObject,%XML.Adaptor +0 + + +APPS.PM.dto.Kenm.ProductKenmerkenSet +list + + + +%String + + + Index: DOM/PM/impl/ProductKenmerkenSet.cls.xml =================================================================== diff -u -r1507 -r1517 --- DOM/PM/impl/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1507) +++ DOM/PM/impl/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1517) @@ -56,11 +56,13 @@ /// JBL : opmerking zou beter zijn om foutmelding te geven. /// Maar oude code geeft steeds lege waarde teruggeeft als het kenmerk niet gevonden is. + /* Else{ Set ErrorMsg = "Kon kenmerk niet vinden voor "_..UnID_" : "_..KenmerkGroep_"||"_..UnID_"||"_KenmerkNaam Do ##class(vhLib.Logger).%New("APPS.PM.OL").ErrorMail("Kenmerk niet gevonden.",ErrorMsg) //Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),ErrorMsg)) } + */ Quit KenmerkWaarden ]]> Index: APPS/PM/KenmerkenService.cls.xml =================================================================== diff -u -r1507 -r1517 --- APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1507) +++ APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1517) @@ -52,7 +52,9 @@ $$$chkIsObject(PRNrs) Set ProductenKenmerken = ##class(APPS.PM.dto.Kenm.ProductenKenmerken).%New() + Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + // nadien nagaan of er iets in kenmerkGroepen zit if ('$IsObject(KenmerkGroepen) || (KenmerkGroepen.Count() = 0)) { Set KenmerkGroepen = ##class(Prod.Kenmerk.MetaGroep).GetAllMetaGroupsAsList() @@ -67,46 +69,70 @@ Set PRNr = PRNrIterator.Next() Set Product = ProductAPI.GeefProduct(PRNr) - + Set ProductKenmerken = ##class(APPS.PM.dto.Kenm.ProductKenmerken).%New() + Set ProductKenmerken.PRNr = PRNr + Set KenmerkGroepIterator = ##class(TECH.ListIterator).%New(KenmerkGroepen) While (KenmerkGroepIterator.HasNext()) { Set KenmerkGroep = KenmerkGroepIterator.Next() + + Set ProductKenmerkenGroep = ##class(APPS.PM.dto.Kenm.ProductKenmerkenGroep).%New() + Set ProductKenmerkenGroep.Sets = ##class(%ListOfObjects).%New() + Set ProductKenmerkenGroep.Naam = KenmerkGroep + + Set KenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr, KenmerkGroep) Set ProductIDsLijst = ProductService.GeefProductIDsVanProduct(Product) - For ID=1:1:ProductIDsLijst.Count() - { - Set ProductIDs = ProductIDsLijst.GetAt(ID) - Set ProductKenmerken = ##class(APPS.PM.dto.Kenm.ProductKenmerken).%New() + Set ProductIDsIt = ##class(TECH.ListIterator).%New(ProductIDsLijst) + While (ProductIDsIt.HasNext()){ + Set ProductIDs = ProductIDsIt.Next() + + Set ProductKenmerkenSet = ##class(APPS.PM.dto.Kenm.ProductKenmerkenSet).%New() Set UnID = ##class(BL.Kenm.ProdMulti).GetFullID(ProductIDs.PRNr,ProductIDs.MultipleNr) + + Set ProductKenmerkenSet.UnID = UnID + + /// GeneratieType + 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() + } + + Set Kenmerken = ##class(%ListOfObjects).%New() + Set tmpStatus=RS.Execute(KenmerkGroep) - Set KenmerkAanwezig = 0 If $$$ISOK(tmpStatus) - { + { While (RS.Next()) { Set DataDefID= ##class(Prod.Kenmerk.DataDefinitie).BuildDataDefinitionID(KenmerkGroep,UnID,RS.Get("Kenmerk")) If ##class(Prod.Kenmerk.DataDefinitie).%ExistsId(DataDefID) { Set tmpDataDef=##class(Prod.Kenmerk.DataDefinitie).%OpenId(DataDefID) Set ProductKenmerk = ##class(APPS.PM.dto.Kenm.ProductKenmerk).%New() - Set ProductKenmerk.KenmerkNaam = tmpDataDef.GeefKenmerk().Kenmerk + Set ProductKenmerk.Naam = tmpDataDef.GeefKenmerk().Kenmerk Set ProductKenmerk.Waarden = tmpDataDef.Waarden - Set ProductKenmerk.Groep = KenmerkGroep - - Do ProductKenmerken.Kenmerken.Insert(ProductKenmerk) - Set KenmerkAanwezig = 1 + Do Kenmerken.Insert(ProductKenmerk) } } } - if (KenmerkAanwezig){ - /// ProductKenmerken toevoegen. - Set ProductKenmerken.IDs = ProductIDs - Do ProductenKenmerken.Kenmerken.Insert(ProductKenmerken) + + /// Enkel Set toevoegen als er kenmerken zijn voor die set. + If (Kenmerken.Count() > 0){ + Set ProductKenmerkenSet.Kenmerken = Kenmerken + Do ProductKenmerkenGroep.Sets.Insert(ProductKenmerkenSet) } - //} - } + } + + /// Enkel groepen toevoegen als er sets aanwezig zijn + If (ProductKenmerkenGroep.Sets.Count() > 0) { + Do ProductKenmerken.KenmerkenGroepen.Insert(ProductKenmerkenGroep) + } } + Do ProductenKenmerken.Kenmerken.Insert(ProductKenmerken) } $$$TECHErrorTrapOff @@ -133,19 +159,34 @@ Geeft de ProductKenmerken voor 1 UnID terug (combinatie van PRNr en SubID) -PRNr:%String,SubID:%String,KenmerkGroep:%String -APPS.PM.dto.Kenm.ProductKenmerken +UnID:%String,KenmerkGroep:%String +APPS.PM.dto.Kenm.ProductKenmerkenSet