Avaldisepiirangud ja tabelipiirangud toote konfiguratsioonimudelites

Selles teemas kirjeldatakse avaldise piirangute ja tabeli piirangute kasutamist. Piirangute abil kontrollitakse atribuutide väärtusi, mida saab valida toodete konfigureerimisel müügitellimuse, müügipakkumise, ostutellimuse või tootmistellimuse jaoks. Saate avaldise piiranguid või tabeli piiranguid kasutada sõltuvalt sellest, kuidas soovite piiranguid luua.

Piirangute abil juhitakse atribuutide väärtusi, mida saab valida toodete konfigureerimisel müügitellimuse, müügipakkumise, ostutellimuse või tootmistellimuse jaoks. Saate avaldise piiranguid või tabeli piiranguid kasutada sõltuvalt sellest, kuidas soovite piiranguid luua.

Mis on avaldise piirangud?

Avaldise piiranguid iseloomustab avaldis, milles kasutatakse aritmeetilisi ja kahendmuutujaid ning funktsioone. Avaldise piirang kirjutatakse konkreetsele toote konfiguratsioonimudeli komponendile. Seda ei saa uuesti kasutada või teise komponendiga jagada. Kuid komponendi avaldise piirangud võivad viidata komponendi alamkomponentide atribuutidele.

Mis on tabeli piirangud?

Tabeli piirangud loetlevad väärtuste kombinatsioonid, mis toote konfigureerimisel atribuutide puhul lubatud on. Tabeli piirangu definitsioone saab üldiselt kasutada. Komponendile toote konfiguratsioonimudelis tabeli piirangu loomisel tuleb valida tabeli piirangu definitsioon. Lubatud kombinatsioonide loomiseks tuleb lisada komponentidele teatud tüüpi atribuudid. Igal atribuudi tüübil on kindel väärtus.

Tabeli piirangu näide

Selles näites selgitatakse, kuidas saate piirata kõlari konfiguratsiooni kindla korpuseviimistluse ja esiküljega. Esimeses tabelis on üldkonfiguratsiooniks saadaolevad korpuseviimistlused ja esiküljed. Atribuuditüüpidele Korpuseviimistlus ja Esivõre on väärtused määratletud.

Atribuudi tüüp Väärtused
Kabinetiviimistlus Must, tamm, roosipuu, valge
Esivõre Must, metall, valge

Järgmises tabelis on toodud kombinatsioonid, mis on määratletud tabelipiiranguga Värv ja viimistlus. Selle tabelipiirangu abil saate konfigureerida tammeviimistluse ja musta võrega kõlari, roosipuust viimistluse ja valge võrega kõlari jne.

Valmis Võre
Tamm Must
Roosipuu Valge
Valge Must
Valge Valge
Must Must
Must Metall

Saate luua süsteemi ja kasutaja määratletud tabeli piiranguid. Lisateabe saamiseks vt jaotist Süsteemi määratletud ja kasutaja määratletud tabelipiirangud.

Millist süntaksit tuleks piirangute kirjutamisel kasutada?

Piirangute kirjutamisel tuleb kasutada optimeerimise modelleerimiskeele (OML) süntaksit. Süsteem kasutab piirangute lahendamiseks Microsoft Solver Foundationi piirangulahendajat.

Kas peaksin kasutama tabeli või avaldise piiranguid?

Saate kasutada avaldisepiiranguid või tabelipiiranguid olenevalt sellest, kuidas soovite piirangud koostada. Tabelipiirangu saate luua maatriksina, samas kui avaldisepiirang on eraldi lause. Toote konfigureerimisel pole oluline, millist piirangut kasutatakse. Järgmine näide selgitab kahe meetodi erinevust.

Toote konfigureerimisel järgmiste piiranguseadistuste abil on need kombinatsioonid lubatud.

  • Toode, mille värv on must ja suurus 30 või 50.
  • Toode, mille värv on punane ja suurus 20.

Tabeli piirangu seadistus

Värv Suurus
Must 30
Must 50
Punane 20

Avaldisepiirangu seadistus

(Värv == "Must" & (suurus == "30" | suurus == "50")) | (värv == "Punane" & suurus = "20")

Kas avaldise piirangute kirjutamisel tuleks kasutada tehtemärke või infix-märke?

Saate kirjutada avaldisepiirangu kas saadaolevaid tehtemärke või infix-märke kasutades. Tehtemärkide Min, Max ja Abs puhul ei saa infix-märke kasutada. Need tehtemärgid sisalduvad standardina enamikus programmeerimiskeeltes.

Milliseid tehtemärke ja infix-märke saan avaldisepiirangute kirjutamisel kasutada?

Järgmistes tabelites on tehtemärkide ja infix-märkide loend, mida saate toote konfiguratsioonimudeli komponendile avaldisepiirangu kirjutamisel kasutada. Esimeses tabelis toodud näited selgitavad, kuidas infix-märkide või tehtemärkide abil avaldist kirjutada.

Tehtemärk Kirjeldus Süntaks Näited
Tähendab See on tõene, kui esimene tingimus on väär, teine tingimus on tõene või mõlemad. Tähendab[a, b], infix: a -: b
  • Tehtemärk: Tähendab[x != 0, y >= 0]
  • Infix-märk: x != 0 -: y >= 0
Ja See on tõene ainult juhul, kui kõik tingimused on tõesed. Kui tingimuste arv on 0 (null), on vastus Tõene. Ja[argumendid], infix: a & b & ... & z
  • Tehtemärk: And[x == 2, y <= 2]
  • Infix-märk: x == 2 & y <= 2
Või See on tõene, kui mis tahes tingimus on tõene. Kui tingimuste arv on 0 (null), on vastus Väär. Või[argumendid], infix: a | b | ... | z
  • Tehtemärk: Või[x == 2, y <= 2]
  • Infix-märk: x == 2 | y <= 2
Pluss See summeerib tingimused. Kui tingimuste arv on 0 (null), on vastus 0. Pluss[argumendid], infix: a + b + ... + z
  • Tehtemärk: Plus[x, y, 2] == z
  • Infix-märk: x + y + 2 == z
Miinus See muudab argumendi negatiivseks. Sel peab olema täpselt üks tingimus. Miinus[avaldis], infix: –avaldis
  • Tehtemärk: Minus[x] == y
  • Infix-märk: -x == y
Abs See arvestab tingimuse absoluutväärtuse. Sel peab olema täpselt üks tingimus. Abs[avaldis] Tehtemärk: Abs[x]
Ajad See arvestab tingimuste korrutise. Kui tingimuste arv on 0 (null), on vastus 1. Kordaja[argumendid], infix: a * b * ... * z
  • Tehtemärk: Times[x, y, 2] == z
  • Infix-märk: x * y * 2 == z
Võimsus See võtab astme. See rakendab paremalt vasakule astendamise. (See tähendab parempoolset seost) Seega on avaldis Aste[a, b, c] võrdne avaldisega Aste[a, Aste[b, c]]. Astet saab kasutada ainult siis, kui aste on positiivne konstant. Aste[argumendid], infix: a ^ b ^ ... ^ z
  • Tehtemärk: Power[x, 2] == y
  • Infix-märk: x ^ 2 == y
Suurim See annab vastuseks suurima tingimuse. Kui tingimuste arv on 0 (null), on vastus Lõpmatus. Max[argumendid] Tehtemärk: Max[x, y, 2] == z
Väikseim See annab vastuseks vähima tingimuse. Kui tingimuste arv on 0 (null), on vastus Lõpmatus. Min[argumendid] Tehtemärk: Min[x, y, 2] == z
Ei ole See annab vastuseks tingimuse loogilise pöördväärtuse. Sel peab olema täpselt üks tingimus. Pole[avaldis], infix: !avaldis
  • Tehtemärk: Pole[x] & Pole[y == 3]
  • Infix-märk: !x!(y == 3)

Järgmise tabeli näited selgitavad, kuidas kirjutada infix-märke.

Infix-märk Kirjeldus
x + y + z Lisa
x * y * z Korrutamine
x - y Binaarne lahutamine teisendatakse samamoodi nagu negatiivse teise liikmega binaarne liitmine.
x ^ y ^ z Parempoolse seosega astendamine
!x Kahendmuutuja pole
x -: y Kahendmuutuja mõju
x y
x & y & z Kahendmuutuja ja
x == y == z Võrdne
x != y != z Distinktne
x < y < z Väiksem kui
x > y > z Suurem kui
x <= y <= z Väiksem kui või võrdne
x >= y >= z Suurem kui või võrdne
(x) Sulud alistavad vaikejärjestuse.

Miks minu avaldisepiiranguid õigesti ei kinnitata?

Toote konfiguratsioonimudelis ei saa kasutada atribuutide, komponentide või alamkomponentide nimena lahendaja nimena reserveeritud märksõnu. Siin on loend, mis sisaldab reserveeritud märksõnu, mida ei saa kasutada.

  • Ülempiir
  • Element
  • Võrdne
  • Põrand
  • Kui
  • Väiksem kui
  • Suurem
  • Tähendab
  • Logi
  • Suurim
  • Väikseim
  • Miinus
  • Pluss
  • Võimsus
  • Ajad
  • Pesa
  • Mudel
  • Otsus
  • Eesmärk

Vt ka

[Avaldise piirangu loomine (tegevuse juhis)(tasks/add-expression-constraint-product-configuration-model.md)

Arvutuse lisamine toote konfiguratsioonimudelile (tegevuse juhis)