neem dan niet 500 maar 550. Dit is wel afhankelijk van het verlies tijdens productie, dat zou je dan ook moeten weten tijdens selectie. VB. intivo inschuifelement voor C hoogte - Match op hoogte C en op diepte - Indien niets gevonden, match op hoogte C zonder diepte en op "bewerkbaar bevat Diepte" Voor niet-leder gaan we voort zoeken: - indien niets gevonden, match op hoogte D en op diepte en op "bewerkbaar bevat hoogte" - indien niets gevonden, match op hoogte D zonder diepte en op "bewerkbaar bevat diepte en hoogte" Een match zonder diepte is altijd een match voor maatwerk. Analoog is een match op een alternatief ook een match op maatwerk. We houden elk kenmerk waar er niet exact op gematcht is bij als specificatie van welke bewerking er in moeten gebeuren. Dit kan verderop door de "isActief" check bij de kostenberekening gebruikt worden om te zien of een bepaalde bewerking moet aangerekend worden. Kan ook gebruikt worden voor het opstellen van de productiegegevens. Hier kan je ook uitdrukken dat bv. voor een inox design we een chromen reling nemen (omdat we inox niet kunnen inkorten): je matcht op kleur maar er is een mapping van design naar de juiste te matchen kleur. Via die mapping kan je in het algemeen de codes die gebruikt worden voor het zoeken van halffabrikaten ontkoppelen van de ConfiguredProperties. De preferentie voor verpakkingen kan hier ook geimplementeerd worden (altijd grootverpakking maar als die niet in stock is nemen we v1) maar op het moment van uitrekenen heeft het stockniveau geen relevantie vermits je de lade pas later of misschien wel nooit echt moet picken. In die zin kunnen we alleen de prijs berekenen op basis van de grootverpakking en moet evt tijdens het picken een alternatief genomen worden. We kunnen altijd kiezen om ofwel de rollen heel gedetailleerd te maken bv. voor elk onderdeel een rol, ofwel een rol voor een groep van onderdelen te definieren. BV. voor tip-on zouden we 1 rol kunnen definieren, en dus ook 1 builder. Die builder heeft dan alle kennis van tip-on, zoals: - Actief enkel als tip-on gevraagd is - Synchro-stang vanaf een bepaalde interne breedte - ... Een builder produceert 1 item, maar het kan een samengesteld item zijn. Als we dit extra niveau in de hierarchie niet willen, kunnen we een builder ook meerdere items laten produceren. De item builder moet er voor zorgen dat alle relevante kenmerken van elk Halffab ingevuld worden. Uitgebreide foutmelding naar de klant: - Wanneer we een Halffab niet vinden kan op zijn minst aan de gebruiker een bericht getoond worden: we vonden geen met volgende kenmerken: - Verfijndere berichtgeving: haal een voor een een kenmerk weg en doe opnieuw een lookup. Onthoud welke gevallen 1 of meer resultaten opleveren. Dan kan je zeggen: verander dit en/of dat. ]]> 1 persistent TECH.Error 1 %Persistent 0 De Rol(len) van de Builders die nodig zijn om deze te kunnen berekenen. Indien afhankelijk van meerdere rollen, dan moeten deze gescheiden worden met ";" %String 1 %String 1 Property HalffabItem As DOM.PM.Maatwerk.Calc.HF.IHalffabItem [ Private ]; DOM.PM.Maatwerk.Calc.HF.IHalffabListToItemProcessor 1 SamengesteldHalffabItemBuilder:DOM.PM.Maatwerk.Calc.HF.ISamengesteldHalffabItemBuilder 1 1 %Status TECH.Iterator 1 %ListOfObjects %String IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,Context:DOM.PM.Maatwerk.Calc.HF.HalffabContext DOM.PM.Maatwerk.Calc.HF.IHalffabItem Hoofdfunctionaliteit van een builder: het produceren van 1 HalffabItem. Dit wordt gebruikt bij het samenstellen van het maatwerkproduct. Deze method legt het stramien vast van dergelijke functionaliteit: - Bepaal de selectiekenmerken - Bepaal de lijst van passende halffabs - Filter halffabs eruit - Valideer de overblijvende lijst halffabs - Genereer het HalffabItem - Naverwerking van het HalffabItem IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,Context:DOM.PM.Maatwerk.Calc.HF.HalffabContext DOM.PM.Maatwerk.Calc.HF.IHalffabItem Geeft de lijst van halffabs die voldoen aan de selectiekenmerken op voorwaarde dat "de builder moet werken". Wordt gebruikt door Bereken maar ook om de mogelijke IngegevenKenmerken te bepalen. IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,Context:DOM.PM.Maatwerk.Calc.HF.HalffabContext %ListOfObjects IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken 1 %Boolean Elke builder moet deze method implementeren. Wordt gebruikt voor drie doeleinden: 1 Voor het bepalen van mogelijke ingegeven kenmerken. In dit geval mogen de IngegevenKenmerken die als parameter meegegeven worden onvolledig zijn. 2 Voor het bouwen van het maatwerkproduct. In dit geval moeten de IngegevenKenmerken die meegegeven worden volledig zijn. 3 Voor het rapporteren van kenmerken die eventueel een andere waarde zouden moeten krijgen indien er met de huidige IngegevenKenmerken geen maatwerkproduct kan gebouwd worden. Wanneer een builder deze method niet implementeert zullen er geen geldige IngegevenKenmerken gevonden worden in use case 1 en kunnen er geen alternatieven voorgesteld worden in use case 3. IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken %ArrayOfDataTypes 1 1 1 %String 1 %Boolean 1 1 DOM.PM.Maatwerk.Calc.HF.IHalffabListToItemProcessor 1 DOM.PM.Maatwerk.Calc.HF.IHalffabItem %Library.CacheStorage ^DOM.PM.Maat772.IHalffabItem743D IHalffabItemBuilderDefaultData ^DOM.PM.Maat772.IHalffabItem743D ^DOM.PM.Maat772.IHalffabItem743I ^DOM.PM.Maat772.IHalffabItem743S listnode %%CLASSNAME AfhankelijkVan HalffabListToItemProcessor Rol