Udtryksbegrænsninger og tabelbegrænsninger

Anvendes på: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack

I dette emne beskrives brugen af udtryksbegrænsninger og tabelbegrænsninger. Begrænsninger styrer de attributværdier, som du kan vælge, når du konfigurerer produkter til en salgsordre, et salgstilbud, en indkøbsordre eller en produktionsordre. Du kan bruge udtryksbegrænsninger eller tabelbegrænsninger, afhængigt af hvordan du foretrækker at udforme begrænsninger.

Hvad er udtryksbegrænsninger?

Udtryksbegrænsninger er kendetegnet ved et udtryk, der bruger de aritmetiske og booleske operatorer og funktioner. En udtryksbegrænsning skrives til en bestemt komponent i en produktkonfigurationsmodel. Den kan ikke genbruges af eller deles med en anden komponent. Udtryksbegrænsninger for en komponent kan dog henvise til attributter for komponentens underkomponenter. Du kan finde flere oplysninger om, hvordan du opretter en udtryksbegrænsning, under Oprette en udtryksbegrænsning for en produktkomponent.

Hvad er tabelbegrænsninger?

Tabelbegrænsninger viser kombinationerne af de værdi, der er tilladt for attributter, når du konfigurerer et produkt. Definitioner på tabelbegrænsninger kan anvendes generisk. Når du opretter en tabelbegrænsning for en komponent i en produktkonfigurationsmodel, skal du vælge en definition på en tabelbegrænsning.

Hvis du vil oprette kombinationer, der er tilladt, skal du føje attributter af bestemte typer til komponenterne. Hver attributtype har en bestemt værdi. Du kan finde oplysninger om, hvordan du opretter en tabelbegrænsning, og hvordan du føjer den til en produktkonfigurationsmodel, under Oprette en tabelbegrænsning og Føje en tabelbegrænsning til en komponent.

Eksempel på tabelbegrænsning

I dette eksempel vises, hvordan du kan begrænse konfigurationen af et tv til bestemte størrelser og typer for sæsonens tilbud.

I denne første tabel vises de størrelser og typer af fjernsyn, der normalt er tilgængelige til konfiguration. Tv-størrelser og -typer er de værdier, der er tilgængelige for attributtyperne TelevisionType og TelevisionSize.

Egenskab

Attributtype

Værdier

Tv

TelevisionSize

24, 36, 42, 48, 50

TelevisionType

Plasma, Projektion, OLED, LCD

I denne næste tabel vises de kombinationer, der er defineret af tabel begrænsningen Sæsonens tv-tilbud. Ved hjælp af denne tabelbegrænsning kan du kun konfigurere et plasma-tv og et projektions-tv i størrelse 48 og 50, og du kan kun konfigurere et LCD-tv i størrelse 36.

Tabelbegrænsning

Skriv

Størrelse

Sæsonens tv-tilbud

Plasma

48

Plasma

50

Projection

48

Projection

50

LCD

36

Du kan finde flere oplysninger om, hvordan du føjer attributter til komponenter, i Føje en attribut til en komponent.

Du kan oprette systemdefinerede og brugerdefinerede tabelbegrænsninger. Du kan finde flere oplysninger om disse typer tabelbegrænsninger under Om systemdefinerede og brugerdefinerede tabelbegrænsninger.

Hvilken syntaks skal der bruges til at løse begrænsninger i Microsoft Dynamics AX?

Når du skriver begrænsningerne, skal du bruge OML-syntaksen (Optimization Modeling Language). Microsoft Dynamics AX bruger Microsoft Solver Foundation-begrænsningsløseren til at løse begrænsningerne. Du kan finde flere oplysninger under Microsoft Solver Foundation.

Skal jeg bruge tabelbegrænsninger eller udtryksbegrænsninger?

Du kan enten bruge udtryksbegrænsninger eller tabelbegrænsninger, afhængigt af hvordan du foretrækker at konfigurere begrænsninger. Du udformer en tabelbegrænsning som en matrix, hvorimod en udtryksbegrænsning er en enkelt sætning. Når du konfigurerer et produkt, betyder det ikke noget, hvilken slags begrænsning der bruges. I følgende eksempel illustreres forskellen mellem de to metoder.

Når du konfigurerer et produkt ved hjælp af følgende begrænsning, er de kombinationer, der er tilladt, et produkt i farven sort og i størrelse 30 eller 50 og et produkt i farven rød og i størrelse 20.

Konfiguration af tabelbegrænsning

Farve

Størrelse

Sort

30

Sort

50

Rød

20

Udtryksbegrænsning

(Color == "Sort" & (size == "30" | size == "50")) | (color == "Rød" & size = "20")

Skal jeg bruge operatorer eller infix-anmærkning, når jeg skriver udtryksbegrænsninger?

Du kan skrive en udtryksbegrænsning ved hjælp af de tilgængelige præfiksoperatorer eller ved hjælp af infix-anmærkningen. Du kan ikke bruge infix-anmærkningen for operatorerne Min, Max og Abs. Disse operatorer er som standard inkluderet i de fleste programmeringssprog.

Hvilke operatorer og infix-anmærkninger kan jeg bruge, når jeg skriver udtryksbegrænsninger?

I følgende tabeller vises operatorerne og de infix-anmærkninger, som du kan bruge, når du skriver en udtryksbegrænsning for en komponent i en produktkonfigurationsmodel.

I eksemplerne i denne første tabel kan du se, hvordan du skriver et udtryk ved hjælp af infix-anmærkningen eller operatorer.

Operatør

Beskrivelse

Syntaks

Eksempler

Indebærer

Dette er tilfældet, hvis den første betingelse er falsk, den anden betingelse er sand, eller begge dele.

Implies[a, b], infix: a -: b

Operator: Implies[x != 0, y >= 0]

Infix-anmærkning: x != 0 -: y >= 0

Og

Dette gælder kun, hvis alle betingelser er opfyldt.

Hvis antallet af betingelser er 0 (nul), returneres True.

And[args], infix: a & b & ... & z

Operator: And[x == 2, y <= 2]

Infix-anmærkning: x == 2 & y <= 2

Eller

Dette er tilfældet, hvis en betingelse er sand.

Hvis antallet af betingelser er 0 (nul), returneres False.

Or[args], infix: a | b | ... | z

Operator: Or[x == 2, y <= 2]

Infix-anmærkning: x == 2 | y <= 2

Plus

Dette opsummerer dens betingelser.

Hvis antallet af betingelser er 0 (nul), returneres 0.

Plus[args], infix: a + b + ... + z

Operator: Plus[x, y, 2] == z

Infix-anmærkning: x + y + 2 == z

Minus

Derved negeres argumentet.

Dette skal have præcis én betingelse.

Minus[expr], infix: -expr

Operator: Minus[x] == y

Infix-anmærkning: -x == y

Abs

Dette tager den absolutte værdi af dets tilstand.

Dette skal have præcis én betingelse.

Abs[expr]

Operator: Abs[x]

Tider

Herefter tages produktet af dens betingelser.

Hvis antallet af betingelser er 0 (nul), returneres 1.

Times[args], infix: a * b * ... * z

Operator: Times[x, y, 2] == z

Infix-anmærkning: x * y * 2 == z

Strøm

Det tager en eksponentiel.

Dette gælder eksponentiering fra højre mod venstre. Dvs., at det er højre-association, og derfor svarer Power[a, b, c] til Power[a, Power[b, c]]. Power kan kun bruges med en positiv konstant som eksponent.

Power[args], infix: a ^ b ^ ... ^ z

Operator: Power[x, 2] == y

Infix-anmærkning: x ^ 2 == y

Maks.

Dette giver den største tilstand.

Hvis antallet af betingelser er 0 (nul), returneres Infinity.

Max[args]

Operator: Max[x, y, 2] == z

Min.

Dette giver den mindste tilstand.

Hvis antallet af betingelser er 0 (nul), returneres Infinity.

Min[args]

Operator: Min[x, y, 2] == z

Negeret

Dette giver den logiske inverse af tilstanden.

Dette skal have præcis én betingelse.

Not[expr], infix: !expr

Operator: Not[x] & Not[y == 3]

Infix-anmærkning: !x!(y == 3)

Eksemplerne i tabellen nedenfor viser, hvordan du skriver en infix-anmærkning.

Notationen infix

Beskrivelse

x + y + z

Tilføjelse

x * y * z

Multiplikation

x - y

Binær subtraktion oversættes på samme måde som binær addition med et negativt sekund.

x ^ y ^ z

Eksponentiering med højre-association

!x

Boolesk ikke

x -: y

Boolesk virkning

x | y | z

Boolsk eller

x & y & z

Boolesk og

x == y == z

Lig med

x != y != z

Bestemt

x < y < z

Mindre end

x > y > z

Større end

x <= y <= z

Mindre end eller lig med

x >= y >= z

Større end eller lig med

(x)

Parentes tilsidesætter standardprioritering.

Hvorfor valideres mine udtryksbegrænsninger ikke korrekt?

Du kan ikke bruge et reserveret nøgleord som problemløsernavn til attributter, komponenter og underkomponenter i en produktkonfigurationsmodel. Følgende liste indeholder de reserverede nøgleord, som du kan bruge:

  • Loft

  • Applikationsobjekt

  • Lig med

  • Etage

  • Hvis

  • Mindre end

  • Større end

  • Indebærer

  • Logfil

  • Maks.

  • Min.

  • Minus

  • Plus

  • Strøm

  • Tider

  • Slot

  • Model

  • Beslutning

  • Mål

Kan du ikke se dit spørgsmål her?

Vi arbejder på at medtage så mange spørgsmål, som vi kan, så Microsoft Dynamics AX Hjælp bliver mere nyttig for folk som dig.

Fortæl os, hvilke spørgsmål du ønsker at føje til dette emne. Send en mail til adocs@microsoft.com.