TO DO De controle bij BewaarKenmerk moet niet in de service controleren of een kenmerk gewijzigd is. Dit moet verplaatst worden naar het persistente Prod.DataDefinitie object. TECH.Error 1 TECH.RegisteredObject,APPS.PM.Kenmerk.KenmerkenService Deze ingestelde VeldBreedteInTekens is een tijdelijke oplossing. Later moet dit als data worden opgeslaan. %Integer 15 %String %ArrayOfObjects APPS.PM.Kenmerk.impl.ProductKenmerkenBewaarder 1 ProductKenmerkenBewaarder:APPS.PM.Kenmerk.impl.ProductKenmerkenBewaarder 1 1 %Status 1 De auto's van de ProductID's opvragen KenmerkenSetIDs:APPS.PM.dto.Kenm.KenmerkenSetIDs,KenmerkGroep:%String APPS.PM.dto.Kenm.AutoVariantenVanMasters KenmerkGroep:%String %Boolean KenmerkGroep:%String BL.Kenm.ProdMulti Zoek productkenmerken aan de hand van de opgegeven PRNrs en productgroepen. PRNrs = lijst van integers KenmerkGroepen = lijst van strings PRNrs:%ListOfDataTypes,KenmerkGroepen:%ListOfDataTypes=##class(%ListOfDataTypes).%New() APPS.PM.dto.Kenm.ProductenKenmerken Opgelet resultaat kan kenmerken voor meerdere UnID's bevatten. PRNr:%String,KenmerkGroep:%String APPS.PM.dto.Kenm.ProductenKenmerken Geeft de ProductKenmerken voor 1 UnID terug (combinatie van PRNr en SubID) UnID:%String,KenmerkGroep:%String APPS.PM.dto.Kenm.ProductKenmerkenSet Zoek metadata aan de hand van de opgegeven kenmerkengroepen. KenmerkGroepen = lijst van strings KenmerkGroepen:%ListOfDataTypes="",EnkelKenmerkenVoorViewerEditor:%Boolean=1 APPS.PM.dto.Kenm.KenmerkMetadataList Bewaar opgegeven KenmerkMetadata, indien nog niet bestaand is wordt deze aangemaakt. KenmerkMetadata:APPS.PM.dto.Kenm.KenmerkMetadata,MetaGroep:Prod.Kenmerk.MetaGroep 0) } /// DataType instellen Set MetaDefinitie.Format = ##class(APPS.PM.impl.ConvertAPPStoDOMenu).ConvertDataType(KenmerkMetadata.DataType) /// DataType beperkingen omzetten If ($IsObject(KenmerkMetadata.DataTypeBeperking)) { #dim DataTypeBeperking As APPS.PM.dto.Kenm.DataTypeBeperking = KenmerkMetadata.DataTypeBeperking If (DataTypeBeperking.%Extends(##class(APPS.PM.dto.Kenm.GeenBeperking).%ClassName(1))) { }ElseIf (DataTypeBeperking.%Extends(##class(APPS.PM.dto.Kenm.GetalBeperking).%ClassName(1))) { Set MetaDefinitie.MaxValue = DataTypeBeperking.Maximum Set MetaDefinitie.MinValue = DataTypeBeperking.Minimum Set MetaDefinitie.Decimalen = DataTypeBeperking.AantalDecimalen Set MetaDefinitie.Eenheid = DataTypeBeperking.Eenheid /// Zonodig format opnieuw instellen indien float (decimalen is ingesteld) Set MetaDefinitie.Format = ##class(APPS.PM.impl.ConvertAPPStoDOMenu).ConvertDataType(KenmerkMetadata.DataType,DataTypeBeperking.AantalDecimalen) }ElseIf (DataTypeBeperking.%Extends(##class(APPS.PM.dto.Kenm.TekstBeperking).%ClassName(1))) { Set MetaDefinitie.Lengte = DataTypeBeperking.MaxAantalTekens }Else{ Set Exception = ##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).Unimplemented(),DataTypeBeperking.%ClassName(1)_" kan niet worden omgezet.") Do ##class(TECH.ExceptionHandler).Throw(Exception) } } /// Mogelijkheden If ($IsObject(KenmerkMetadata.Mogelijkheden) && (KenmerkMetadata.Mogelijkheden.Count() > 0)) { Set WaardenSorteringLB = ##class(TECH.ListUtils).ListToListbuild(KenmerkMetadata.Mogelijkheden) Set MetaDefinitie.WaardenSortering = WaardenSorteringLB } /// Wijzig gegevens Set MetaDefinitie.WijzigGebruiker = ##class(TECH.Context.RuntimeContext).Instance().GeefGebruikerInitialen() Set MetaDefinitie.WijzigTijdstip = ##class(TECH.DateTime).CurrentTimeStamp() Set Status = MetaDefinitie.%Save() If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de KenmerkMetadata niet opslaan (Naam: '"_KenmerkMetadata.Naam_"', ID: '"_KenmerkMetadata.ID_"') ",Status)) } Set MetaDefinitie = "" Set Groep = "" ]]> De opgegeven KenmerkGroepMetadata bewaren, als een onbestaand KenmerkMetadata is, dan wordt een nieuwe gecreëerd. KenmerkGroepMetadata:APPS.PM.dto.Kenm.KenmerkGroepMetadata De opgegeven KenmerkGroepMetadata bewaren, als een onbestaand KenmerkMetadata is, dan wordt een nieuwe gecreëerd. KenmerkGroepMetadataLijst:APPS.PM.dto.Kenm.KenmerkMetadataList De opgegeven ProductenKenmerken bewaren. N.B. Enkel de opgegeven kenmerken worden aangepast. Dus je moet niet alle kenmerken meegeven van het product waaraan je iets wilt wijzigen. ProductenKenmerken:APPS.PM.dto.Kenm.ProductenKenmerken 0 { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.GeneralErrorException).%New(Rapport)) } ]]> Verwijder voor één KenmerkGroep de opgegeven UnIDs KenmerkGroep:%String,KenmerkenSets:APPS.PM.dto.Kenm.KenmerkenSetIDs %ListOfDataTypes Maak nieuwe kenmerkenset voor de opgegeven UnIDs KenmerkGroep:%String,BronKenmerkenSets:APPS.PM.dto.Kenm.KenmerkenSetIDs %ListOfDataTypes %ListOfObjects ELEMENTTYPE="APPS.PM.dto.Kenm.KenmerkGroepData"