Tabla de decisiones
Una tabla de decisiones es un conjunto de reglas que evalúan una o más condiciones de entrada y proporcionan el valor o valores de salida correspondientes. Una tabla de decisiones tiene las siguientes características:
•Cada fila de una tabla de decisiones representa una regla.
•Cada regla consta de condiciones (entradas) y acciones (salidas).
•Si todas las condiciones de entrada de una regla son verdaderas, se realizará la acción correspondiente si cumple con la política de aciertos.
•Para cada tabla de decisiones, existe una política de aciertos que define qué reglas se implementan y qué resultados se generan. Para más detalles, consulte Política de aciertos más abajo.
Las tablas de decisiones suelen utilizarse en sistemas de automatización de procesos y gestión de decisiones para:
•simplificar una lógica de toma de decisiones compleja, dividiéndola en reglas manejables
•garantizar la coherencia en diferentes situaciones mediante el uso de un conjunto de reglas centralizado
•facilitar a los usuarios que carecen de conocimientos técnicos el proceso de definición y gestión de la lógica sin necesidad de programar código
Cómo agregar una tabla de decisiones a una asignación de datos
Para agregar un componente Tabla de decisiones a su asignación de datos, siga uno de los pasos que se indican a continuación:
•Haga clic en el comando de menú Insertar | Tabla de decisiones.
•Haga clic en el comando de la barra de herramientas.
•Seleccione el componente Tabla de decisiones en la pestaña Procesamiento de la Galería de componentes (se abre con el comando de la barra de herramientas).
Independientemente del método elegido, el componente Tabla de decisiones aparecerá en la asignación de datos (imagen siguiente).

Estructura de una tabla de decisiones
Al hacer doble clic en el título de una tabla de decisiones, se abren las propiedades de este componente (imagen siguiente). Observe la organización del cuadro de diálogo:
•La mitad superior del cuadro de diálogo Propiedades de la tabla de decisiones describe la sintaxis y ofrece ejemplos de varias condiciones (botón Mostrar/Ocultar condiciones de muestra).
•La mitad inferior del cuadro de diálogo sirve para configurar los valores de entrada y salida que constituirán las reglas.
Definir entradas/salidas
De forma predeterminada, hay una columna de entrada (input) y una columna de salida (output). Para agregar más entradas y/o salidas:
1.Vuelva al componente Tabla de decisiones y haga clic en el icono correspondiente ( ).
2.Edite la entrada/salida recién creada según sea necesario en el cuadro de diálogo Propiedades de la tabla de decisiones.
Para cada entrada y salida, establezca un tipo de datos adecuado. Para ello, elija el tipo de datos deseado en la lista desplegable de cada entrada/salida (imagen siguiente). También puede cambiar el nombre de las columnas haciendo clic en el icono del lápiz o haciendo doble clic en el título de la columna correspondiente. Para agregar o editar un valor, haga doble clic en la celda correspondiente e introduzca el valor.
Menú contextual de las celdas de salida
Al hacer clic con el botón derecho en una celda de la columna de salida (en nuestro caso, Discount), se abre el menú contextual de la celda (imagen siguiente). Con este menú, puede hacer lo siguiente:
•introducir un valor fijo en una celda de salida (Valor literal).
•fijar un valor de salida en NULL
•pasar los valores de las columnas de entrada existentes si los tipos de datos son compatibles

Botones para administrar los datos de la tabla
En esta tabla puede ver los botones que están disponibles para administrar los datos de la tabla de decisiones.
Botón | Descripción |
---|---|
![]() | Inserta una fila encima de la fila seleccionada. |
![]() | Elimina la fila seleccionada de forma permanente. |
![]() | Revierte la acción anterior. |
![]() | Restaura la última acción deshecha. |
![]() | Elimina la fila seleccionada y la copia en el portapapeles. |
![]() | Copia las celdas seleccionadas en el portapapeles. |
![]() | Pega la tabla copiada del portapapeles. |
Política de aciertos
La política de aciertos determina cómo gestionar las entradas que coinciden con varias reglas y especifica qué salidas devolver.
Primera regla de coincidencia
La política de la primera regla de coincidencia significa que:
•La tabla de decisiones evalúa las reglas de arriba abajo.
•Solo se ejecuta la primera regla de coincidencia.
•Las demás reglas de coincidencia se ignoran.
Esta política está indicada cuando las reglas son mutuamente excluyentes o cuando la prioridad es importante.
Todas las reglas de coincidencia
La política de todas las reglas de coincidencia funciona así:
•La tabla de decisiones evalúa todas las reglas.
•Se ejecutan todas las reglas de coincidencia y los resultados se devuelven en forma de secuencia.
Esta política ha de utilizarse cuando se deban aplicar varias reglas simultáneamente.
Ejemplo
Un banco quiere decidir qué prestaciones conceder a un solicitante de un préstamo basándose en dos condiciones:
•Puntuación crediticia
•Nivel de ingresos
Las reglas son las siguientes:
Puntuación crediticia | Nivel de ingresos | Acción |
---|---|---|
≥ 750 | ≥ 50 000 | Tipo de interés más bajo |
≥ 700 | ≥ 40 000 | Límite de préstamo más alto |
≥ 650 | ≥ 30 000 | Bonificación en efectivo |
Por ejemplo, un cliente tiene una puntuación crediticia de 760 y unos ingresos de 60 000.
Primera regla de coincidencia
•Las reglas se evalúan de arriba abajo.
•Solo se aplica la regla 1: Tipo de interés más bajo.
Todas las reglas de coincidencia
•Se aplican todas las reglas que cumplan las condiciones.
•Los datos del cliente cumplen todas las reglas.
•El resultado incluye la siguiente secuencia: Tipo de interés más bajo., Límite de préstamo más alto, Bonificación en efectivo.
Caso de uso: Reglas de descuento para clientes
El ejemplo descrito en este apartado muestra cómo una empresa minorista aplica descuentos en función del tipo de cliente y del importe de la compra.
Asignación
Hemos creado la asignación de datos que aparece más abajo para ilustrar el uso del componente Tabla de decisiones.

Origen
El componente de origen es un archivo CSV que contiene una lista con los detalles del pedido:
order_id,customer_id,customer_type,purchase_amount ORD-1001,CUST-501,VIP,600.00 ORD-1002,CUST-502,Regular,450.00 ORD-1003,CUST-503,New Customer,250.00 ORD-1004,CUST-504,VIP,180.00 ORD-1005,CUST-505,Regular,520.00 ORD-1006,CUST-506,New Customer,150.00 |
Tabla de decisiones
La tabla de decisiones aplica reglas de descuento basadas en el tipo de cliente (customer_type) y el importe de la compra (purchase_amount). En la imagen siguiente puede ver cómo se han definido las reglas de descuento en la tabla de decisiones. La política de aciertos elegida es Primera regla de coincidencia. El signo «-» representa cualquier valor.

Las reglas se evalúan de la siguiente manera:
•Si el importe de la compra de un cliente VIP es igual o superior a 500, este cliente recibe un descuento del 30 %.
•Si el importe de la compra de cualquier cliente es igual o superior a 500, este cliente recibe un descuento del 20 %.
•Si el importe de la compra de un cliente VIP es igual o superior a 300, este cliente recibe un descuento del 20 %.
•Si el importe de la compra de cualquier cliente es igual o superior a 300, este cliente recibe un descuento del 10 %.
•Si ninguna de las reglas anteriores es aplicable, se muestra el valor null.
Destino
El componente de destino es una base de datos SQLite denominada Orders que almacena información sobre los pedidos de los clientes. Cada fila representa un pedido individual y contiene el identificador del pedido, el cliente, el tipo de cliente, el importe de la compra y el descuento aplicable. El campo discount_percentage admite valores NULL, almacena el descuento calculado por la tabla de decisiones y representa el porcentaje del importe de la compra que se debe deducir del pedido.
Resultados
Después de ejecutar la asignación de datos y de escribir los datos en la base de datos, obtenemos el siguiente resultado:

Dado que los pedidos 1003, 1004 y 1006 no cumplen ninguna condición de entrada en la tabla de decisiones, los valores de discount_percentage para estos pedidos se han fijado en NULL.