Skip to main content

Cálculos con tablas de decisión

Si está formulando una pregunta que solo admite sí o no al utilizar un proceso de decisión automatizada, como "¿Este pedido de compra requiere aprobación adicional?", una regla When (regla de decisión) sirve a este propósito. Sin embargo, si necesita probar los valores de varias propiedades para responder preguntas, como "¿Qué oferta promocional debe ofrecer la empresa?", puede utilizar una tabla de decisión (Decision table).

Por ejemplo, configura una tabla de decisión para determinar el descuento para los clientes en diferentes umbrales de gasto. Con la tabla de decisión, los clientes que hayan gastado más de USD 1000 el año pasado y hayan sido clientes durante cinco o más años tendrán derecho a recibir un 20 % de descuento en compras de más de USD 50. Los clientes que hagan compras por valores superiores a los USD 1000, pero que hayan sido clientes desde hace menos de cinco años, tendrán derecho a recibir un 15 % de descuento en compras de más de USD 100. Los clientes que no cumplan ninguna de las condiciones no tendrán derecho a recibir un descuento. La siguiente imagen muestra una tabla gráfica del ejemplo de descuento:

example of a decision table

El siguiente video describe la estructura de una tabla de decisión y cómo las tablas de decisión evalúan la información.

Transcripción

Una tabla de decisión está compuesta por una tabla de condiciones y resultados. Define un conjunto de condiciones, por ejemplo, valores de propiedad que deben estar dentro de un rango determinado, y los resultados que se devolverán cuando las condiciones sean verdaderas. Cada conjunto de condiciones incluye un resultado correspondiente. Puede agregar columnas para cada condición contra la que quiere probar, ya sea una referencia de propiedad o una expresión, y filas para cada combinación de condiciones que quiere probar.

Cuando el sistema evalúa una tabla de decisión, comienza con la fila superior y evalúa cada condición de la fila. Si todas las condiciones son verdaderas, el sistema devuelve el resultado para dicha fila. De lo contrario, avanza a la siguiente fila y evalúa las condiciones de dicha fila. Además, si ninguna de las combinaciones devuelve un resultado, el sistema devuelve el resultado "otherwise" en la parte inferior de la tabla. Esto garantiza que la decisión siempre devuelva un resultado.

Ha llegado al final del video.

Compruebe sus conocimientos con la siguiente actividad:

Lógica de tabla de decisión

Las tablas de decisión son de gran utilidad cuando usa un conjunto de propiedades o expresiones para llegar a una decisión.

En el siguiente ejemplo, una aplicación bancaria utiliza una tabla de decisión para determinar las comisiones mensuales de mantenimiento. Para encontrar la comisión correcta, la tabla de decisión compara los valores de propiedad Account type (tipo de cuenta) y Customer type (tipo de cliente) de la tabla con los valores de entrada.

La tabla tiene filas para evaluar la comisión correcta para cada combinación. Por ejemplo, si el tipo de cuenta es "Checking" y el tipo de cliente es "Basic", el sistema devuelve un valor de USD 10.

El siguiente ejemplo muestra cómo funciona la evaluación de decisiones en función de los valores de propiedad tipo de cuenta y tipo de cliente:

Decision table

De forma predeterminada, una condición utiliza un operador de comparación de igualdad (tal como se configuró en el ejemplo anterior). Si utiliza condiciones numéricas, también puede especificar operaciones de comparación de mayor a o menor a. Por ejemplo, puede crear una condición para que, si el saldo de la cuenta de ahorro es superior a USD 1000, no se le cobre ninguna comisión a un cliente. También puede utilizar rangos de valores para definir la comparación. Por ejemplo, si el saldo de la cuenta de ahorro es superior a USD 500, pero inferior a USD 1000, se le puede cobrar al cliente solo una comisión de cuenta Checking (cheques).

Tablas de decisión en App Studio

Puede configurar los campos calculados (calculated fields) mediante funciones básicas listas para usar y expresiones personalizadas sencillas en App Studio. Por ejemplo, en una aplicación de tienda en línea, puede utilizar una expresión para multiplicar la cantidad por el precio unitario para calcular el costo total de un artículo.

En el caso de cálculos complejos que implican varias condiciones con diferentes resultados en función de las condiciones, puede configurar un campo calculado que haga referencia a una tabla de decisión actual o personalizada.

Nota:  Las tablas de decisión complejas que están preconfiguradas en Dev Studio y marcadas como registros relevantes (relevant records) están disponibles en App Studio para que los Citizen Developers puedan utilizarlas.

Imagine el ejemplo de la empresa de transporte de carga YPlus que cobra un cargo de entrega de USD 500 para los servicios de mensajería. YPlus ha decidido actualizar el cálculo del cargo de entrega según la distancia. Supongamos que la dirección de entrega está en un radio de 100 millas. En ese caso, el cargo de entrega será USD 50. Si la dirección está en un radio de 500 millas, el cargo de entrega será de USD 100. Si la dirección está en un radio de 1000 millas, el cargo de entrega será de USD 250 , y si la dirección de entrega supera las 1000 millas, el cargo de entrega será USD 500. Configura un campo calculado que hace referencia a la tabla de decisión descrita a continuación para determinar el cargo de entrega.

En la siguiente imagen, haga clic en los íconos + para comprender cómo configurar una tabla de decisión para lograr el comportamiento deseado en el ejemplo de empresa de mensajería:

Compruebe sus conocimientos con la siguiente actividad:


This Topic is available in the following Module:

If you are having problems with your training, please review the Pega Academy Support FAQs.

¿Le ha resultado útil este contenido?

¿Quiere ayudarnos a mejorar este contenido?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice