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"