Compartir a través de


Restricciones de expresión o restricciones de tabla

Se aplica a: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack

En este tema se describe el uso de las restricciones de expresión y las restricciones de tabla. Las restricciones controlan los valores de atributo que puede seleccionar al configurar los productos para un pedido de ventas, un presupuesto de ventas, un pedido de compra o un pedido de producción. Puede usar las restricciones de expresión o las restricciones de tablas, en función de cómo prefiere crear las restricciones.

¿Qué son las restricciones de expresión?

Las restricciones de expresión se caracterizan por una expresión que utiliza operadores y funciones aritméticas y booleano. Una restricción de expresión para un componente concreto se escribe en un modelo de configuración de productos. No puede volver a utilizarse ni compartirse con otro componente. Sin embargo, las restricciones de expresión de un componente pueden hacer referencia a los atributos de los subcomponentes del componente. Para obtener información acerca de cómo crear una restricción de expresión, consulte Crear una restricción de la expresión para un componente de producto.

¿Qué son las restricciones de tabla?

Las restricciones de tabla muestran las combinaciones de valores permitidas para los atributos cuando configura un producto. Las definiciones de la restricción de tabla se pueden usar genéricamente. Cuando se crea una restricción de tabla para un componente en un modelo de configuración de productos, selecciona una definición de restricción de tabla.

Para crear las combinaciones permitidas, agrega atributos de tipos específicos a los componentes. Cada tipo de atributo tiene un valor específico. Para obtener información sobre cómo crear una restricción de tabla y cómo agregarla a un modelo de configuración de productos, vea Crear una restricción de tabla y Agregar una restricción de tablas a un componente.

Ejemplo de una restricción de tablas

Este ejemplo muestra cómo puede limitar la configuración de un televisor a los tamaños y los tipos específicos para una oferta estacional.

Esta primera tabla muestra los tamaños y los tipos de televisores que suelen estar disponibles para la configuración. Los tamaños y tipos de televisor son los valores que están disponibles para los tipos de atributo TelevisionType y TelevisionSize.

Atributo

Tipo de atributo

Valores

Televisión

TelevisionSize

24, 36, 42, 48, 50

TelevisionType

Plasma, Proyector, OLED, LCD

La tabla siguiente muestra las combinaciones definidas por la restricción de tabla Oferta estacional de televisión. Con esta restricción de tablas, puede configurar un televisor de plasma y un televisor proyector solo en los tamaños 48 y 50, y puede configurar un televisor LCD solo en tamaño 36.

Restricción de tablas

Tipo

Tamaño

Oferta estacional de televisión

Plasma

48

Plasma

50

Proyección

48

Proyección

50

LCD

36

Para obtener más información sobre cómo agregar atributos a los componentes, vea Agregar un atributo a un componente.

Puede crear restricciones de tablas definidas por el sistema y definidas por el usuario. Para obtener más información sobre estos tipos de restricciones de tablas, vea Acerca de las restricciones de tablas definidas por el usuario o definidas por el sistema.

¿Qué sintaxis debe usarse para resolver restricciones en Microsoft Dynamics AX?

Debe usar la sintaxis del modelo de lenguaje de modelado de optimización (OML) al escribir las restricciones. Microsoft Dynamics AX usa el solucionador de restricciones Microsoft Solver Foundation para resolver las restricciones. Para obtener más información, consulte Microsoft Solver Foundation.

¿Se deben usar restricciones de tablas o restricciones de expresión?

Puede usar restricciones de expresión o restricciones de tablas, en función de cómo prefiere crear la configuración de las restricciones. Una restricción de tabla se crea como una matriz, mientras que una restricción de expresión es una sentencia individual. Si configura un producto, no importa qué tipo de restricción se usa. En el ejemplo siguiente se muestra la diferencia entre los dos métodos.

Si configura un producto mediante la siguiente configuración de restricción, las combinaciones permitidas son un producto en el color Negro con el tamaño 30 o 50, y un producto en el color Rojo con el tamaño 20.

Configuración de restricciones de tabla

Color

Tamaño

Negro

30

Negro

50

Rojo

20

Restricción de la expresión

(Color == "Negro" & (size == "30" | size == "50")) | (color == "Rojo" & size = "20")

¿Se deben usar operadores o una notación de infijo al escribir las restricciones de expresión?

Se puede escribir una restricción de expresión mediante los operadores de prefijo disponibles, o bien mediante la notación de infijo. Para los operadores Min, Max y Abs, no puede usar una notación de infijo. Estos operadores se incluyen como estándar en la mayoría de los lenguajes de programación.

¿Qué operadores o notaciones de infijo se pueden usar al escribir restricciones de expresión?

En las tablas siguientes se enumeran los operadores y las notaciones de infijo que se pueden utilizar al escribir la restricción de expresión de un componente en un modelo de configuración de productos.

En los ejemplos de esta primera tabla, puede ver cómo escribir una expresión mediante la notación de infijo o los operadores.

Operador

Descripción

Sintaxis

Ejemplo

Implica

Se aplica si la primera condición es falsa, la segunda condición es verdadera, o se dan ambas condiciones.

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

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

Notación de infijo: x != 0 -: y >= 0

Y

Se aplica solo si todas las condiciones son verdaderas.

Si el número de condiciones es 0 (cero), produce True.

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

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

Notación de infijo: x == 2 & y <= 2

O

Se aplica si cualquier condición es verdadera.

Si el número de condiciones es 0 (cero), produce False.

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

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

Notación de infijo: x == 2 | y <= 2

Más

Esto suma sus condiciones.

Si el número de condiciones es 0 (cero), produce 0.

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

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

Notación de infijo: x + y + 2 == z

Menos

Esto establece su argumento como negativo.

Debe tener exactamente una condición.

Minus[expr], infix: -expr

Operador: Minus[x] == y

Notación de infijo: -x == y

Abs

Toma el valor absoluto de la condición.

Debe tener exactamente una condición.

Abs[expr]

Operador: Abs[x]

Horas

Toma el producto de sus condiciones.

Si el número de condiciones es 0 (cero), produce 1.

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

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

Notación de infijo: x * y * 2 == z

Potencia

Toma un exponencial.

Aplica la potencia de derecha a izquierda. Es decir, es asociativo a la derecha y, por tanto, Power[a, b, c] es equivalente a Power[a, Power[b, c]]. Power solo se puede usar con una constante positiva como exponente.

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

Operador: Power[x, 2] == y

Notación de infijo: x ^ 2 == y

Máx.

Produce la condición mayor.

Si el número de condiciones es 0 (cero), produce Infinity.

Max[args]

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

Mín.

Produce la condición más pequeña.

Si el número de condiciones es 0 (cero), produce Infinity.

Min[args]

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

No

Produce el contrario lógico de la condición.

Debe tener exactamente una condición.

Not[expr], infix: !expr

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

Notación de infijo: !x!(y == 3)

Los ejemplos en la siguiente tabla muestran cómo escribir una notación de infijo.

Notación de infijo

Descripción

x + y + z

Adición

x * y * z

Multiplicación

x - y

La resta binaria se traduce de la misma forma que la adición binaria con un segundo negativo.

x ^ y ^ z

Potenciación con asociación a la derecha

!x

No booleano

x -: y

Implicación booleano

x | y | z

Booleano o

x & y & z

Booleano y

x == y == z

Igualdad

x != y != z

Distinto

x < y < z

Menor que

x > y > z

Mayor que

x <= y <= z

Inferior a o igual a

x >= y >= z

Superior a o igual a

(x)

El paréntesis anula la prioridad predeterminada.

¿Por qué las restricciones de expresión no se validan correctamente?

No se pueden usar palabras clave reservadas como nombres del solucionador de atributos, componentes o subcomponentes en un modelo de configuración de productos. La siguiente lista contiene una lista de palabras clave reservadas que no se pueden usar:

  • Techo

  • Elemento

  • Igual

  • Piso

  • Si

  • Menor

  • Mayor

  • Implica

  • Registro

  • Máx.

  • Mín.

  • Menos

  • Más

  • Potencia

  • Horas

  • Ranura

  • Modelo

  • Decisión

  • Objetivo

¿No ven su consulta aquí?

Estamos trabajando para incluir tantas preguntas como podemos, para que la ayuda de Microsoft Dynamics AX sea más útil a personas como usted.

Díganos qué consulta desea agregar a este tema. Envíe un correo electrónico a la dirección adocs@microsoft.com.