TECH.Mockable,DOM.PM.MaatwerkCalcAPI DOM.PM.Maatwerk.LadeInfoAPI 1 DOM.PM.IngegevenKenmerkenAPI 1 %Boolean 1 WSimpl.PM.Maatwerk.MaatwerkService.DotNet.GeefMaatwerkDetails 1 DOM.PM.Maatwerk.Calc.Common.impl.OmleidingNaarDotNetBepaler 1 WSimpl.PM.Maatwerk.MaatwerkService.DotNet.MaatwerkDetailsFromJsonNaarDomConverter 1 APPS.PM.Maatwerk.impl.BerekeningServiceIngegevenKenmerken 1 CacheEenHalffabItemBoom:%Boolean=$$$false 1 1 %Status 1 Variant:DOM.PM.enu.LadeVariant DOM.PM.Maatwerk.Lade.RugUtils Variant:DOM.PM.enu.LadeVariant DOM.PM.Maatwerk.Lade.BodemUtils Variant:DOM.PM.enu.LadeVariant DOM.PM.Maatwerk.Lade.LadeUtils DOM.PM.Maatwerk.Lade.ExtremaBreedteBepaler DOM.PM.Maatwerk.Lade.OpvullijstBreedteBepaler DOM.PM.Maatwerk.Lade.CorpusBreedteBepaler ProductID:%String,KenmerkGroep:%String,KenmerkNaam:%String %List PPSKenmerkGroep:%String %String HalffabItemsBoom:DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom,IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenLadeKenmerken DOM.PM.Maatwerk.LadeInfo.Lade IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,Hoeveelheid:%Integer=1,KlantID:DOM.VKP.VanHoeckeKlantID=##class(DOM.VKP.enu.Klant).Halux(),Personality:DOM.common.impl.Personality=##class(DOM.common.VanHoeckePersonality).Instance(),Tag:%String="",Datum:%Date="" DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom 89 maatwerk lijnen) ; de boom wordt een paar keer na elkaar opgevraagd, alleen de laatste cachen is dus in de meeste gevallen voldoende Do:(..CacheEenHalffabItemBoom) ..HalffabItemsBoomCache.Clear() #dim KostItem As DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem #dim IsBerekeningViaDotNetMaatwerkService As %Boolean = ..IsBerekeningViaDotNetMaatwerkService(IngegevenKenmerken) If IsBerekeningViaDotNetMaatwerkService { #dim MaatwerkDetails As APPS.PM.Maatwerk.dto.DotNet.MaatwerkDetailsParsedFromJson = ..DotNetMaatwerkService.GeefMaatwerkDetails(IngegevenKenmerken, KlantID, Hoeveelheid) Set HalffabItemsBoom = ..MaatwerkDetailsConvertor.GeefHalffabItemsBoom(MaatwerkDetails) Set KostItem = ..MaatwerkDetailsConvertor.GeefKostItems(MaatwerkDetails) } Else { #dim HalffabContext As DOM.PM.Maatwerk.Calc.HF.HalffabContext = ##class(DOM.PM.Maatwerk.Calc.HF.HalffabContext).%New(IngegevenKenmerken.GeefFamilie(), IngegevenKenmerken.GeefVariant(), BerekeningSpecificatie) Do HalffabContext.GeefHalffabSpec().BerekenHalffabDetails(HalffabContext, IngegevenKenmerken) Set HalffabItemsBoom = HalffabContext.HalffabItemsBoom } Do ..HalffabItemsBoomCache.SetAt(HalffabItemsBoom, CacheKey) } Set HalffabItemsBoom = ..HalffabItemsBoomCache.GetAt(CacheKey) Quit HalffabItemsBoom ]]> DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom array 1 IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,Hoeveelheid:%Integer=1,KlantID:DOM.VKP.VanHoeckeKlantID=##class(DOM.VKP.enu.Klant).Halux(),Personality:DOM.common.impl.Personality=##class(DOM.common.VanHoeckePersonality).Instance(),Tag:%String="",Datum:%Date="" DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem Berekening van KostItemsBoom via DotNet kan (momenteel) alleen voor Personality VanHoecke IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,Hoeveelheid:%Integer,KlantID:DOM.VKP.VanHoeckeKlantID 1 DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,Hoeveelheid:%Integer,KlantID:DOM.VKP.VanHoeckeKlantID,Personality:DOM.common.impl.Personality,Tag:%String="",Datum:%Date="" 1 DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem Hoeveelheid:%Integer,KlantID:DOM.VKP.VanHoeckeKlantID,Personality:DOM.common.impl.Personality,Tag:%String="",Datum:%Date="" 1 DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,IsCalcVoorUnittestenViaDotNet:%Boolean=1 1 %Boolean