Restrições de expressão e restrições de tabela
Se aplica a: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack
Este tópico descreve o uso de restrições de expressão e de tabela. As restrições controlam os valores de atributo que podem ser selecionados quando você configura produtos para uma ordem de venda, cotação de venda, ordem de compra, ou uma ordem de produção. É possível usar restrições de expressão ou de tabela, dependendo de como você preferir criar as restrições.
O que são as restrições de expressão?
As restrições de expressão são caracterizadas por uma expressão que usa operadores e funções aritméticos e boolianos. Uma restrição de expressão será criado para um determinado componente em um modelo de configuração de produto. Não pode ser reutilizada ou compartilhada com outro componente. No entanto, as restrições de expressão para um componente pode fazer referência a atributos dos subcomponentes do componente. Para obter informações sobre como criar uma restrição de expressão, consulte Criar uma restrição de expressão para um componente do produto.
O que são as restrições de tabela?
As restrições de tabela listam as combinações de valores que são permitidas para os atributos quando você configura um produto. As definições de restrição de tabela podem ser usadas genericamente. Ao criar uma restrição de tabela para um componente em um modelo de configuração de produto, selecione uma definição de restrição de tabela.
Para criar combinações que são permitidas, adicione tipos de atributos específicos aos componentes. Cada tipo de atributo possui um valor específico. Para obter informações sobre como criar uma restrição de tabela e de como adicioná-la a um modelo de configuração de produto, consulte Criar uma restrição de tabela e Adicionar uma restrição da tabela à um componente.
Exemplo de uma restrição de tabela
Este exemplo mostra como você pode limitar a configuração de uma televisão a tamanho e a tipos específicos para uma oferta sazonal.
Essa primeira tabela mostra os tamanhos e os tipos de televisões que geralmente estão disponíveis para a configuração. Os tamanhos de televisão e os tipos são os valores disponíveis para os tipos de atributo Tipo de televisão e Tamanho de televisão.
Atributo |
Tipo de atributo |
Valores |
---|---|---|
Televisão |
Tamanho de televisão |
24, 36, 42, 48, 50 |
Tipo de televisão |
Plasma, projeção, OLED, LCD |
A tabela a seguir mostra as combinações que são definidas pela restrição da tabela Oferta sazonal de tevê. Usando a restrição de tabela, é possível configurar uma televisão de plasma e uma televisão de projeção apenas nos tamanhos 48 e 50, e é possível configurar uma televisão LCD apenas no tamanho 36.
Restrição de tabela |
Tipo |
Tamanho |
---|---|---|
Oferta sazonal de tevê |
Plasma |
48 |
Plasma |
50 |
|
Projeção |
48 |
|
Projeção |
50 |
|
LCD |
36 |
Para obter mais informações sobre como adicionar atributos aos componentes, consulte Adicionar um atributo a um componente.
É possível criar restrições de tabela definidas pelo sistema e pelo usuário. Para obter mais informações sobre esses tipos de restrições de tabela, consulte Sobre as restrições de tabela definidas pelo sistema e pelo usuário.
Qual sintaxe deve ser usada para resolver restrições no Microsoft Dynamics AX?
É necessário usar a sintaxe OML (Optimization Modeling Language) ao escrever restrições. O Microsoft Dynamics AX usa o agente de resolução de restrição do Solver Foundation Microsoft para resolver as restrições. Para obter mais informações, consulte Microsoft Solver Foundation.
Devo usar as restrições de tabela ou restrições de expressão?
É possível usar restrições de expressão ou de tabela, dependendo de como você preferir criar a configuração de restrição. Você acumula uma restrição de tabela como uma matriz, enquanto uma restrição da expressão é um demonstrativo individual. Ao configurar um produto, não importa o tipo de restrição que está sendo usado. O exemplo a seguir ilustra a diferença entre os dois métodos.
Ao configurar um produto usando a configuração de restrição a seguir, as combinações que são permitidas são um produto na cor preta e de tamanho 30 ou 50, e um produto na cor vermelha e de tamanho 20.
Configuração da restrição de tabela
Cor |
Tamanho |
---|---|
Preto |
30 |
Preto |
50 |
Vermelho |
20 |
Restrição de expressão
(Cor == "Preto" & (tamanho == "30" | tamanho == "50")) | (cor == "Vermelho" & tamanho = "20")
Devo usar operadores ou notação de infixo quando escrevo restrições de expressão?
É possível criar uma restrição de expressão usando os operadores de prefixo disponíveis ou usando a notação de infixo. Para os operadores Min, Max, e Abs, não é possível usar uma notação de infixo. Estes operadores estão incluídos por padrão na maioria das linguagens de programação.
Quais operadores e notações de infixo posso usar ao escrever restrições de expressão?
As tabelas a seguir listam os operadores e as notações de infixo que podem ser usados ao criar uma restrição de expressão para um componente em um modelo de configuração de produto.
Nos exemplos da primeira tabela, você pode ver como gravar uma expressão usando os operadores ou a notação de infixo.
Operador |
Descrição |
Sintaxe |
Exemplos |
---|---|---|---|
Implies |
Isso ocorre se a primeira condição for falsa, a segunda condição for verdadeira ou ambos. |
Implies[a, b], infixo: a -: b |
Operador: Implies[x != 0, y >= 0] Notação de infixo: x != 0 -: y >= 0 |
And |
Isso ocorre apenas se todas as condições forem verdadeiras. Se o número de condições for 0, será Verdadeiro. |
And[args], infixo: a & b & ... e z |
Operador: And[x == 2, y <= 2] Notação de infixo: x == 2 & y <= 2 |
Or |
Isso será verdadeiro se qualquer condição for verdadeira. Se o número de condições for 0, será Falso. |
Or[args], infixo: a | b | ... | z |
Operador: Or[x == 2, y <= 2] Notação de infixo: x == 2 | y <= 2 |
Plus |
Isso soma as condições. Se o número de condições for 0, será 0. |
Plus[args], infixo: a + b + ... + z |
Operador: Plus[x, y, 2] == z Notação de infixo: x + y + 2 == z |
Minus |
Isso nega o argumento. Deve ter exatamente uma condição. |
Minus[expr], infixo: -expr |
Operador: Minus[x] == y Notação de infixo: -x == y |
Abs |
Leva o valor absoluto da condição. Deve ter exatamente uma condição. |
Abs[expr] |
Operador: Abs[x] |
Times |
Leva o produto das condições. Se o número de condições for 0, será 1. |
Times[args], infixo: a * b * ... * z |
Operador: Times[x, y, 2] == z Notação de infixo: x * y * 2 == z |
Power |
Leva um exponencial. Aplica a exponenciação da direita para a esquerda. Ou seja, é associativo à direita, consequentemente Power[a, b, c] é equivalente a Power[a, Power[b, c]]. Ao mesmo tempo só pode ser usada com uma constante positiva como o expoente. |
Power[args], infixo: a ^ b ^ ... ^ z |
Operador: Power[x, 2] == y Notação de infixo: x ^ 2 == y |
Max |
Isso gera a condição a maior. Se o número de condições for 0, será infinito. |
Max[args] |
Operador: Max[x, y, 2] == z |
Min |
Isso gera a condição menor. Se o número de condições for 0, será infinito. |
Min[args] |
Operador: Min[x, y, 2] == z |
Not |
Isso gera a inversão lógica da condição. Deve ter exatamente uma condição. |
Not[expr], infixo: !expr |
Operador: Not[x] & Not[y == 3] Notação de infixo: !x!(y == 3) |
Os exemplos na tabela a seguir mostram como gravar uma notação de infixo.
Notação de infixo |
Descrição |
---|---|
x + y + z |
Adição |
x * y * z |
Multiplicação |
x - y |
A subtração binária é traduzida da mesma forma de uma adição binária com um segundo binário. |
x ^ y ^ z |
Exponenciação com associabilidade direta |
!x |
Não booliano |
x -: y |
Implicação booliana |
x | y | z |
Ou booliano |
x & y & z |
E booliano |
x == y == z |
Igualdade |
x != y != z |
Distinto |
x < y < z |
Menor que |
x > y > z |
Maior que |
x <= y <= z |
Menor que ou igual a |
x >= y >= z |
Maior que ou igual a |
(x) |
Precedência padrão de sobreposição de parênteses. |
Por que minhas restrições de expressão não validam corretamente?
Não é possível usar palavras-chave reservadas como nomes de atributos, componentes ou subcomponentes em um modelo de configuração de produto. A tabela a seguir contém uma lista de palavras-chave reservadas que você não deve usar:
Teto
Elemento
Igual
Piso
Se
Menos
Maior
Implica
Log.
Máx.
Mín.
Menos
Mais
Energia
Horas
Slot
Modelo
Decisão
Meta
Não vê sue pergunta aqui?
Estamos trabalhando para incluir o máximo de perguntas possível, de modo que a ajuda do Microsoft Dynamics AX seja mais útil para pessoas como você.
Informe-nos qual pergunta você deseja adicionar a este tópico. Envie um e-mail para adocs@microsoft.com.