Expressiebeperkingen en tabelbeperkingen in productconfiguratiemodellen
Dit artikel beschrijft het gebruik van expressiebeperkingen en tabelbeperkingen. U gebruikt beperkingen om de kenmerkwaarden te beheren die u kunt gebruiken wanneer u producten voor een verkooporder, verkoopofferte, inkooporder, of een productieorder configureert. U kunt expressiebeperkingen of tabelbeperkingen gebruiken, afhankelijk van hoe u de beperkingen wenst te maken.
Beperkingen worden gebruikt om de kenmerkwaarden te beheren die u kunt gebruiken wanneer u producten voor een verkooporder, verkoopofferte, inkooporder, of een productieorder configureert. U kunt expressiebeperkingen of tabelbeperkingen gebruiken, afhankelijk van hoe u de beperkingen wenst te maken.
Wat zijn expressiebeperkingen?
Expressiebeperkingen worden gekenmerkt door een expressie met rekenkundige en Booleaanse operatoren en functies. Een expressiebeperking wordt geschreven voor een bepaald onderdeel in een productconfiguratiemodel. De beperking kan niet worden hergebruikt door of gedeeld met een ander onderdeel. Expressiebeperkingen voor een onderdeel kunnen echter verwijzen naar kenmerken van subonderdelen van het onderdeel.
Wat zijn tabelbeperkingen?
Tabelbeperkingen maken een lijst met de combinaties van waarden die zijn toegestaan voor kenmerken wanneer u een product configureert. De definities van tabelbeperkingen kunnen algemeen worden gebruikt. Wanneer u een tabelbeperking voor een component maakt in een productconfiguratiemodel, selecteert u een definitie voor de tabelbeperking. Om de combinaties te maken die worden toegestaan, voegt u kenmerken van specifieke typen aan de onderdelen toe. Elk kenmerktype heeft een specifieke waarde.
Voorbeeld van een tabelbeperking.
Dit voorbeeld toont hoe u de configuratie van een speaker tot specifieke afwerkingen van de behuizingen en voorkanten kunt beperken. De eerste tabel laat de afwerkingen van de behuizingen en voorkanten zien die algemeen beschikbaar zijn voor configuratie. De waarden zijn gedefinieerd voor Afwerking behuizing en Voorgrill.
Kenmerktype | Waarden |
---|---|
Afwerking behuizing | Zwart, Eiken, Rozenhout, Wit |
Voorgrill | Zwart, Metaal, Wit |
De volgende tabel geeft de combinaties weer die door de tabelbeperking Kleur en afwerking zijn gedefinieerd. Door deze tabelbeperking te gebruiken, kunt u een speaker configureren met een eiken afwerking en een zwarte grill, een rozenhouten afwerking en een witte grill, enzovoort.
Voltooien | Grill |
---|---|
Eiken | Zwart |
Rozenhout | Wit |
Wit | Zwart |
Wit | Wit |
Zwart | Zwart |
Zwart | Metaal |
U kunt door het systeem gedefinieerde en door de gebruiker gedefinieerde tabelbeperkingen maken. Voor meer informatie, zie Door het systeem gedefinieerde en door gebruiker gedefinieerde tabelbeperkingen.
Welke syntaxis moet worden gebruikt om beperkingen te schrijven?
Gebruik de OML-syntaxis (Optimization Modeling Language) wanneer u beperkingen opstelt. Microsoft Solver Foundation-beperkingsoplosser wordt gebruikt om de beperkingen op te lossen.
Moet ik tabelbeperkingen of expressiebeperkingen gebruiken?
U kunt expressiebeperkingen of tabelbeperkingen gebruiken, afhankelijk van hoe u de beperkingen wenst te maken. U maakt een tabelbeperking als matrix, terwijl een expressiebeperking een afzonderlijke statement is. Wanneer u een product configureert, is het niet van belang welk type beperking wordt gebruikt. In het volgende voorbeeld kunt u zien hoe de twee methoden verschillen.
Wanneer u een product met de volgende beperkingsinstellingen configureert, worden deze combinaties toegestaan:
- Een product in de kleur Zwart, in grootte 30 of 50
- Een product in de kleur Rood, in grootte 20
Tabelbeperkingsinstelling
Kleur | Grootte |
---|---|
Zwart | 30 |
Zwart | 50 |
Rood | 20 |
Instelling expressiebeperking
(Kleur == "Zwart" & (afmeting == "30" | afmeting == "50")) | (kleur == "Rood" & afmeting = "20")
Moet ik operators gebruiken of tussenvoegselaantekening gebruiken wanneer ik expressiebeperkingen schrijf?
U kunt een expressiebeperking opstellen met behulp van de beschikbare voorvoegseloperatoren of met tussenvoegselnotatie. Voor de operatoren Min, Max, en Abs kunt u de tussenvoegselnotatie niet gebruiken. Deze operatoren zijn opgenomen als standaardoperatoren in de meeste programmeertalen.
Welke operators en tussenvoegselnotatie kan ik gebruiken wanneer ik expressiebeperkingen schrijf?
In de volgende tabel worden de operatoren en de tussenvoegselnotatie vermeld die u kunt gebruiken voor het schrijven van een expressiebeperking voor een onderdeel van een productconfiguratiemodel. In de voorbeelden in de eerste tabel kunt u zien hoe u een expressie maakt door tussenvoegselnotaties of operators te gebruiken.
Operator | Description | Syntaxis | Voorbeelden |
---|---|---|---|
Heeft | Als voorwaarde a waar is, moet u beperking b toepassen. | Heeft[a, b], tussenvoegselaantekening: a -: b |
|
En | Dit is alleen waar als alle voorwaarden waar zijn. Als het aantal voorwaarden 0 (nul) is, is het resultaat Waar. | And[args], tussenvoegsel: a & b & ... & z |
|
Of | Dit is waar als een van de voorwaarden waar is. Als het aantal condities 0 is (nul), is het product Onwaar. | Or[args], tussenvoegsel: a | b | ... | z |
|
Plus | Dit is de som van de voorwaarden. Als het aantal voorwaarden 0 (nul) is, is het resultaat 0. | Plus[args], tussenvoegsel: a + b + ... + z |
|
Min | Het argument wordt genegeerd. Het moet precies één voorwaarde hebben. | Minus[expr], tussenvoegselaantekening: -expr |
|
Abs | Hiervoor is de absolute waarde van de voorwaarde vereist. Het moet precies één voorwaarde hebben. | Abs[expr] | Operator: Abs[x] |
Tijden | Hiervoor is het product van de voorwaarden vereist. Als het aantal voorwaarden 0 (nul) is, is het resultaat 1. | Times[args], tussenvoegsel: a * b * ... * z |
|
Vermogen | Hiervoor is een exponentiële waarde vereist. Hiermee wordt machtsverheffen van rechts naar links toegepast. (Dat wil zeggen dat het rechts associatief is) Hierdoor is Power[a, b, c] gelijk aan Power[a, Power[b, c]]. Power kan alleen worden gebruikt als de exponent een positieve constante is. | Power[args], tussenvoegsel: a ^ b ^ ... ^ z |
|
Max. | Dit levert de grootste voorwaarde. Als het aantal condities 0 is (nul), resulteert dit in Oneindigheid. | Max[args] | Operator: Max[x, y, 2] == z |
Min. | Dit levert de kleinste voorwaarde. Als het aantal condities 0 is (nul), resulteert dit in Oneindigheid. | Min[args] | Operator: Min[x, y, 2] == z |
Niet | Dit resulteert in de logische inverse van de voorwaarde. Het moet precies één voorwaarde hebben. | Niet[expr], infix: !expr |
|
De voorbeelden in de volgende tabel geven weer hoe een tussenvoegselnotatie moet worden geschreven.
Infix-notatie | Description |
---|---|
x + y + z | Aanvullend |
x * y * z | Vermenigvuldigen |
x - y | Binair aftrekken wordt op dezelfde manier vertaald als binaire optelling waarbij er een genegeerde tweede is. |
x ^ y ^ z | Machtsverheffen met associatie naar rechts |
!x | Booleaans niet |
x -: y | Booleaanse implicatie |
x | y |
x & y & z | Booleaans en |
x == y == z | Gelijkheid |
x != y != z | Afzonderlijk |
x < y < z | Kleiner dan |
x > y > z | Groter dan |
x <= y <= z | Kleiner dan of gelijk aan |
x >= y >= z | Groter dan of gelijk aan |
(x) | Haakjes overschrijven standaard voorrang. |
Waarom worden mijn expressiebeperkingen niet correct gevalideerd?
U kunt geen gereserveerde sleutelwoorden gebruiken als oplossernamen voor kenmerken, onderdelen of subonderdelen in een productconfiguratiemodel. Hierna vindt u een lijst met de gereserveerde woorden die u niet kunt gebruiken:
- Plafond
- Element
- Gelijk
- Etage
- Als
- Kleiner
- Groter
- Heeft
- Logboek
- Max.
- Min
- Min
- Plus
- Vermogen
- Tijden
- Tijd
- Model
- Beslissing
- Doelstelling