Skip to main content

Veritran Docs

Crear o editar una decisión
Crear una decisión

Las secciones a continuación explican cómo configurar una decisión utilizando un caso de uso que involucra un requisito comercial realizado por nuestro cliente, GoldBank. Goldbank quiere implementar una solución de gamificación. Esto significa que quieren establecer un programa de recompensas ("Premios de Oro") donde los usuarios de la aplicación recibirán un reembolso que representa un porcentaje del monto gastado en cada compra realizada bajo circunstancias específicas. Luego, recibirán ese reembolso como crédito en sus cuentas. GoldBank te proporciona el catálogo de dimensiones que necesitas como entrada y te pide que proporciones un programa potencial para que puedan revisarlo. Las principales condiciones establecidas por GoldBank son que las compras deben cumplir las siguientes condiciones:

  • Debe ser realizado por clientes de la aplicación bajo los perfiles Silver, Gold, Black y Blanc.

  • Deben realizarse compras en línea o en la tienda.

  • La aplicación debe mostrar diferentes mensajes según el monto gastado:

    • Si el monto de la compra es igual o superior a USD 5000, el mensaje mostrado debe ser: ¡Lo estás haciendo genial!

    • Si el monto de la compra es igual o superior a USD 1000, el mensaje mostrado debe ser: ¡Genio de oro!

    • Si el importe de la compra es igual o superior a 100, el mensaje que se muestra debe ser: Sigue usando la aplicación para obtener premios de oro.

Además, el cliente te informa el porcentaje de cashback que se aplica a cada compra realizada. Se trata de un conjunto de números de referencia específicos y en base a ellos debes tomar la decisión:

CONSTANTES.png

Consulta las instrucciones a continuación para saber cómo configurar el contrato.

CREATE_DECISION_CONTRACT.gif
  1. En la página Decisions, haz clic en + Create. En primer lugar, debes establecer la configuración básica de la decisión que da lugar al contrato de decisión (luego verás estos datos en la pestaña Decision contract). Solo después de configurar el contrato, podrás configurar las reglas de decisión.

  2. Completa la sección de información básica. Los campos ID y Description son obligatorios.

    1. En el campo ID, ingresa el nombre que identifica la decisión. Para este ejemplo, ingresa Programa de Premios de Oro.

      Nota

      El ID no se puede modificar en el futuro.

    2. En el campo Description, ingresa un texto para describir el propósito de la decisión. Para este ejemplo, ingresa Solución de gamificación GoldAwards que otorga reembolsos a los clientes por cada compra bajo condiciones específicas.

    3. En el campo Tags, puedes ingresar palabras clave que te permitan a ti y a tu equipo identificar fácilmente la decisión. Para este ejemplo, ingresa las etiquetas Solución de gamificación y Premios de Oro.

  3. En la sección Strategy, selecciona el método de evaluación que utilizará la consola BRMS para determinar el resultado de la regla o reglas de decisión. Selecciona una de las tres estrategias que se explican a continuación, con base en el siguiente ejemplo: la decisión contiene tres reglas que definen los puntos que ganan los usuarios de la aplicación cuando realizan diferentes compras; la primera regla tiene 100 puntos como output, la segunda regla tiene 200 puntos como output y la tercera regla tiene 50 puntos como output.

    Break

    Para tomar una decisión y devolver un resultado específico, BRMS evalúa todas las reglas, desde la primera hasta la última (según el orden en la lista de reglas de decisión). Una vez que se satisface la lógica de una regla (independientemente de su orden), BRMS deja de evaluar las reglas y proporciona el resultado o los resultados esperados para esa regla; esto significa que el resto de las reglas no se evaluarán. Es decir, la decisión da como resultado el conjunto de outputs para la primera regla cuyas condiciones se cumplen.

    Para el ejemplo anterior, si no se cumple la primera regla, pero sí la segunda, BRMS deja de evaluar y el resultado sería de 200 puntos.

    Collect

    Para tomar una decisión y devolver un resultado específico, BRMS evalúa todas las reglas establecidas y devuelve un conjunto de resultados por cada regla cuyas condiciones se cumplen. Por lo tanto, si se aplican tres reglas y las tres se cumplen, la decisión devolverá los tres conjuntos de resultados acumulados, un conjunto por regla.

    Para el ejemplo anterior, si se cumplen la primera regla y la tercera regla, BRMS devuelve 100 puntos y 50 puntos, por separado.

    Collect merge

    Para tomar una decisión y devolver un resultado específico, BRMS evalúa todas las reglas y devuelve un único conjunto de resultados para todas las reglas cuyas condiciones se cumplen. Por ejemplo, un grupo con todos los outputs juntos.

    Para el ejemplo anterior, si se cumplen la primera regla y la tercera, BRMS devuelve 150 puntos en un solo conjunto.

    Por ejemplo, una decisión puede tener dos reglas. La primera regla establece que, si la compra entra en la categoría seleccionada, el usuario obtiene 100 puntos. La segunda regla establece que, si la compra se realiza dentro de los 30 días siguientes a la elección de la categoría, el usuario obtiene 200 puntos. Por lo tanto, una vez activada la decisión, el usuario Juan P. obtendrá puntos en función de sus compras. Si este usuario seleccionó la categoría Ropa el 20 de marzo y compró un vestido el 31 de marzo, ganará puntos según la estrategia definida. Si la estrategia es Break ganará 100 puntos. Si la estrategia es Collect ganará 100 y 200 puntos. Si la estrategia es Collect-merge ganará 300 puntos.

    Para este ejemplo, según los requisitos de GoldBank, haz clic en Break. Al elegir Break, BRMS evaluará las reglas desde la primera hasta la última, y, la primera cuyas condiciones se cumplan, será la regla que proporcione el output que impacte en la aplicación.

    Luego hay que definir la entrada de la decisión, que pueden ser dimensiones o inputs. Luego, estos valores se invocarán desde la página Decision rules.

  4. En la sección Dimensions, haz clic en el menú desplegable Select dimension y selecciona las dimensiones que desea que estén disponibles para las reglas de decisión. Para este ejemplo, considerando las especificaciones del proyecto descritas anteriormente, las dimensiones disponibles son tipo de compra (Purchase Type) y perfil (Profile). Haz clic en el campo y selecciona Purchase_type y luego haz clic nuevamente y seleccionaProfile.

    La dimensión Profile contiene los valores Silver, Gold, Black y Blancy la dimensión Purchase Type contiene los valores En tienda y En línea.

    Nota

    El miembro de TI de tu equipo de proyecto estará a cargo de cargar las dimensiones en el backend de BRMS.

  5. En la sección Inputs, defina los valores de entrada de la decisión (si corresponde). La o las entradas definidas se aplicarán a la lógica de la decisión, junto con las dimensiones. Haz clic en + para crear el valor de entrada y completarlo como se describe a continuación:

    1. En el campo que se abre, ingresa el nombre de entrada. Para este ejemplo, ingresa Monto.

    2. Haz clic en el icono situado a la derecha del campo (STRING.png) y selecciona el tipo de datos: elija Stringsi el valor será alfanumérico, por ejemplo, para la dimensión Tipo de compra, los valores pueden ser En línea o En tienda; selecciona Number si el valor es un número, por ejemplo, para la dimensión Monto, los valores pueden ser 100 dólares estadounidenses, 1.000 dólares estadounidenses o 10.000 dólares estadounidenses; o Boolean si el valor será verdadero o falso, por ejemplo, para la dimensión Mayor de edad, los valores pueden ser verdadero o falso.

      Para este ejemplo, selecciona Number como tipo de datos. Los valores de la entrada se definirán en las reglas de decisión.

  6. En la sección Results, define el resultado de la decisión. Las salidas definidas se aplicarán a la lógica de la decisión, junto con las dimensiones. De forma predeterminada, se crea un campo de salida. Completa como se describe a continuación:

    1. En el campo que se abre, ingresa el nombre de salida. Para este ejemplo, ingresa Cashback.

    2. Haz clic en el icono situado a la derecha del campo (STRING.png) y selecciona el tipo de datos. Para este ejemplo, selecciona Number como tipo de datos. El valor de la salida se establecerá en la regla de decisión.

  7. Haz clic en + para agregar una nueva salida y completa lo siguiente.

    1. En el campo que se abre, ingresa el nombre de salida. Para este ejemplo, ingresa Mensaje

    2. Haz clic en el icono situado a la derecha del campo (STRING.png) y selecciona el tipo de datos. Los tipos funcionan como en el caso de las entradas (explicado en el punto 5 anterior). Para este ejemplo, selecciona String como tipo de datos. El valor de la salida se establecerá en la regla de decisión.

  8. Haz clic en Save. La información configurada aparecerá en la pestaña Decision Contract y la pestaña Decision Rules aparecerá disponible para su configuración.

    Importante

    La pestaña Decision Rules no aparecerá a menos que guardes la nueva decisión.

Si estás creando una nueva decisión, la pestaña Decision rules solo aparecerá después de haber guardado el contrato descrito anteriormente.

La regla de decisión establece la lógica que debe evaluar el BRMS para definir un resultado específico que afectará al usuario de la aplicación. La decisión puede tener una o más reglas, que serán evaluadas por el BRMS dependiendo de la estrategia definida en el contrato (Break, Collect, Collect-merge). La lógica de cada regla incluye la sentancia CUANDO + dimensión(es) + SI + Condición + ENTONCES + Salida. La descripción lógica sería la siguiente:

  • dimensiones: cuando las dimensiones están satisfechas y

  • condición: si ocurren en una o más circunstancias específicas,

  • salida: entonces el resultado para el usuario de la aplicación será el resultado especificado.

Estos elementos pueden ser válidos desde y hasta un período de tiempo específico y pueden estar activados o no.

Al establecer una nueva regla, puedes definir qué dimensiones se aplican, las condiciones que se deben evaluar y el resultado que devolverá la regla ejecutada. Consulta las instrucciones a continuación para saber cómo establecer una regla. Estas instrucciones explican cómo configurar todas las reglas aplicables al programa GoldAwards, en función del contrato de decisión configurado anteriormente.

DECISION_RULES_FINAL.png

Nota

Las dimensiones y opciones de salida que aparezcan dependerán de la configuración del contrato previamente establecida.

  1. De forma predeterminada, la tabla tiene una regla creada. La primera regla se utilizará para mostrar el reembolso y el mensaje "¡Lo estás haciendo genial!", aplicable a compras por un importe igual o superior a 5000.

    CREATE_DECISION_RULE_1.gif
    1. Vaya a la sección Dimensions, donde definirás si deseas establecer las reglas para cada dimensión o una combinación de dimensiones, o para todas ellas. Si dejas Any seleccionado, la dimensión se aplica a todas las operaciones. Si deseas establecer una dimensión específica para que se tenga en cuenta, haz clic en la flecha y selecciónala de la lista.

      Para este ejemplo, en la columna Profile, deja Any seleccionado. De esta manera, la regla se aplica a todos los perfiles que ejecutan una transacción.

    2. En la columna Purchase_type, deja Any seleccionado.

    3. Ve a la sección Conditions, donde establecerás la lógica de la regla. Esto significa que debes definir cómo la regla evalúa las dimensiones y devuelve un valor como salida. En la tabla Dimensions, se establece la lógica considerando que se deben cumplir todas las dimensiones para que se ejecute la regla; por lo tanto, la lógica indica que las dimensiones se combinan mediante la condición AND.

      Importante

      Para establecer una condición, es necesario tener conocimientos de lógica.

      Puedes establecer una condición si deseas definir una lógica que no utilice solo el condicional AND, sino una combinación de otros condicionales (como IF, WHEN, OR, entre otros). La condición se ejecutará y devolverá una salida si se produce la lógica definida. Para establecer una condición de regla, escribe @. Aparece un menú desplegable que ofrece opciones para ingresar una constante (@cons), una entrada (@input), una dimensión (@dim) o la variable de tiempo. La variable tiempo se utiliza para evaluar una condición que ocurre en ese momento (por ejemplo si en ese momento es lunes o si son las 2 pm). Para obtener más información sobre la sintaxis, consulta la sección Sintaxis de las reglas.

      Nota

      Puedes utilizar la condición como si estuvieras utilizando una dimensión. Por ejemplo, para la dimensión card_type puedes elegir el valor crédito. Para establecer la misma lógica como condición, debes ingresar @dim.card_type="credit". En ambos casos, la regla evaluará si el tipo de tarjeta utilizada en la transacción es una tarjeta de crédito.

      Para este ejemplo, en la columna Condition A, ingresa @input.Cantidad >= 5000. Esto significa que la regla se aplicará si el importe de la compra es igual o superior a 5000.

      Nota

      Asegúrate de dejar espacios antes y después del condicional, como =, > o <.

    4. Ve a la sección Outputs. En la columna Message (la dimensión previamente configurada), ingresa "¡Lo estás haciendo genial!" .

      Nota

      Para ingresar un texto, asegúrate de comenzarlo y terminarlo con "".

    5. En la columna Cashback, ingresa @entrada.Monto*@const.GoldAwards/100. Esta expresión define que, para obtener el monto de reembolso, BRMS multiplicará el monto de entrada por los datos configurados en la constante Premios de Oro y luego dividirá ese resultado por 100, para obtener el monto del reembolso. Para obtener más información sobre las constantes, lee Crear o editar una constante.

    6. Ve a la sección Validity, donde podrás definir desde y hasta qué fecha se aplicarán las reglas para tomar una decisión y si la regla está activa o no. En las columnas To y From, puedes elegir las fechas respectivas. Por ejemplo, en el caso de una campaña que empieza el 2 de marzo, y tiene una duración de dos semanas, configurarás la fecha del 2 de marzo al 16 de marzo incluido. En ese caso, ya has establecido el marco temporal y no necesitarás activar manualmente la regla el 2 de marzo ni desactivarla el 16 de marzo. Para este ejemplo, ve a la columna To, haz clic en el ícono del calendario y selecciona 1 de abril.

      Nota

      Los campos To y From no son obligatorios. Puede elegir una fecha para From (desde), una fecha para To (hasta), ambas o ninguna.

      Para este ejemplo, ve a la columna To. Haz clic en el icono del calendario y selecciona 28 de marzo de 2025. Esto significa que BRMS evaluará la norma a partir del 28 de marzo de 2025.

    7. Ve a la columna Active, donde podrás definir si la regla está activada o no. Cada regla se establece como Active por defecto. Para desactivar una regla, haz clic en el interruptor. Una regla activa significa que BRMS la evalúa cuando se ejecuta una transacción. Inactiva significa que la regla no se puede aplicar, incluso si tiene un período de tiempo definido. Para este ejemplo, deja el interruptor habilitado.

  2. Haz clic en Add row (ADD_ROW.png). La nueva regla aparece listada y puedes completar su lógica. La segunda regla se utilizará para mostrar el reembolso y el mensaje "¡Genio de oro!", aplicable a compras por un importe igual o superior a 1000.

    CREATE_DECISION_RULE_2.gif
    1. Ve a la sección Dimensions. Para este ejemplo, en la columna Profile, deja Any seleccionado. De esta manera, la regla se aplica a todos los perfiles que ejecutan una transacción.

    2. En la columna Purchase_type, deja Any seleccionado.

    3. Ve a la sección Condicions. Para este ejemplo, en la columna Condition A, ingresa @input.Cantidad >= 1000. Esto significa que la regla se aplicará si el importe de la compra es igual o superior a 1000.

    4. Ve a la sección Outputs. Para este ejemplo, en la columna Message (la dimensión previamente configurada), ingresa "¡¡Genio del oro!!".

    5. Para este ejemplo, en la columna Cashback, ingresa @entrada.Monto*@const.GoldAwards/100.

    6. Ve a la sección Validity. Para este ejemplo, ve a la columna To. Haz clic en el icono del calendario y selecciona 28 de marzo de 2025. Esto significa que BRMS evaluará la norma a partir del 28 de marzo de 2025.

    7. Ve a la columna Active. Para este ejemplo, deja el interruptor habilitado.

  3. Haz clic en Add row (ADD_ROW.png). La nueva regla aparece listada y puedes completar su lógica. La segunda regla se utilizará para mostrar el reembolso y el mensaje "Sigue usando la aplicación para obtener GoldAwards", aplicable a compras por un importe igual o superior a 100.

    CREATE_DECISION_RULE_3.gif
    1. Ve a la sección Dimensions. Para este ejemplo, en la columna Profile, deja Any seleccionado. De esta manera, la regla se aplica a todos los perfiles que ejecutan una transacción.

    2. En la columna Purchase_type, deja Any seleccionado.

    3. Ve a la sección Conditions. Para este ejemplo, en la columna Condition A, ingresa @input.Cantidad >= 100. Esto significa que la regla se aplicará si el importe de la compra es igual o superior a 100.

    4. Ve a la sección Outputs. Para este ejemplo, en la columna Message (la dimensión previamente configurada), ingresa "Sigue usando la aplicación para obtener GoldAwards".

    5. Para este ejemplo, en la columna Cashback, ingresa @entrada.Monto*@const.GoldAwards/100.

    6. Ve a la sección Validity. Para este ejemplo, ve a la columna To. Haz clic en el icono del calendario y selecciona 28 de marzo de 2025. Esto significa que BRMS evaluará la norma a partir del 28 de marzo de 2025.

    7. Ve a la columna Active. Para este ejemplo, deja el interruptor habilitado.

  4. Haz clic en Add row (ADD_ROW.png). La última regla será la regla predeterminada. Esto significa que, si no se cumple ninguna de las tres reglas anteriores, BRMS no devolverá ningún mensaje y el reembolso será 0.

    CREATE_DECISION_RULE_4.gif
    1. Ve a la sección Dimensions. Para este ejemplo, en la columna Profile, deja Any seleccionado. De esta manera, la regla se aplica a todos los perfiles que ejecutan una transacción.

    2. En la columna Purchase_type, deja Any seleccionado.

    3. Ve a la sección Conditions. Para este ejemplo, en la columna Condition A, deja Any seleccionado.

    4. Ve a la sección Outputs. Para este ejemplo, escribe 99999. Esto indica que se debe mostrar un texto; sin embargo, como el usuario no recibe ningún reembolso, no habrá ningún mensaje (y la aplicación no mostrará un error).

    5. Para este ejemplo, en la columna Cashback, ingresa 0.

    6. Ve a la sección Validity. Para este ejemplo, ve a la columna To. Haz clic en el icono del calendario y selecciona 28 de marzo de 2025. Esto significa que BRMS evaluará la norma a partir del 28 de marzo de 2025.

    7. Ve a la columna Active. Para este ejemplo, deja el interruptor habilitado.

Para agregar más reglas, haz clic en Add row (ADD_ROW.png). Si necesitas crear una regla similar con pequeñas diferencias, haz clic en Duplicate row (DUPLICATE.png) y realiza los cambios necesarios.

Si ya no necesitas una regla, puedes hacer clic en el interruptor Active para desactivarla o haz clic directamente en Remove row (DELETE.png) para eliminarla.

Por último, puedes hacer clic en Re-order row (RE-ORDER_ROW.png ) y arrástrala hacia arriba o hacia abajo para mover la regla dentro de la lista: esto organiza las reglas y cómo las ejecuta BRMS.

¿Cómo evalúa BRMS las reglas?

Cuando se ejecuta una regla, BRMS verifica su configuración en pasos: primero, verifica si la regla está activa o no. Si está inactiva, la regla no se tiene en cuenta. Si la regla está activa, verifica si tiene un período de tiempo especificado: si el período de tiempo está establecido, se ejecutará solo en esa fecha; si no hay período de tiempo, se ejecutará la regla. Esto significa que BRMS sólo ejecuta reglas que son válidas, es decir, reglas que están activas y dentro del marco de tiempo especificado (si corresponde).

Una vez que se abre la página Decision rules, puedes ver la información configurada para crear las reglas. Haz clic + Quick access para ver las entradas creadas para tu decisión y todas las constantes creadas en el ambiente en el que estás trabajando. Puedes ver sus valores y hacer clic enCopy (COPY.png ) para luego pegarlas en la sintaxis de las reglas.

También puedes utilizar la función Simulate decision para ver los resultados de las reglas una vez que el BRMS las evalúa. Para obtener más información, lee Simular una decisión.

Sintaxis de la regla

La siguiente lista describe los elementos lógicos que se pueden invocar en la sección de condición de una regla.

  • @entrada.<nombre_de_entrada>: invoca el valor de entrada utilizado para evaluar la decisión.

  • @dim.<nombre_de_dimensión>: invoca el valor de dimensión utilizado para evaluar la decisión.

  • @time.<tiempo>: invoca el valor de tiempo utilizado para evaluar la decisión.

  • @default:palabra especial utilizada para hacer referencia al valor predeterminado cuando se invoca expresamente una constante.

  • @const.<nombre_de_constante_de_valor>: utiliza un valor constante.

  • @const.<nombre_de_constante_de_vector_o_matriz: utiliza una constante vectorial o matricial que infiere los valores de dimensión a partir de la decisión; si no se utiliza una dimensión en la definición de la decisión, se utiliza el valor predeterminado.

  • @const.<nombre_de_constante_vectorial>(@dim.<nombre_de_dimensión>|@default|string): obtiene explícitamente un valor constante, utilizando una referencia @dim, el valor @default o una cadena específica.

  • @const.<nombre_de_constante_de_matriz>(@dim.<nombre_de_dimensión>|@default|string, @dim.<nombre_de_dimensión>|@default|string):

Además, puedes utilizar diferentes condicionales que permitan combinar los elementos lógicos mencionados anteriormente. Consulta la lista a continuación para obtener más información:

  • -: agregar o concatenar cadenas

  • *: restar

  • *: multiplicar

  • /: dividir

  • ^: potencia

  • %: módulo

  • ==: igual a

  • !=: no es igual a

  • <: menos que

  • >: mayor que

  • <=: menor o igual a

  • >=: mayor o igual que

  • y

  • o

  • hasta

Editar una decisión

Para editar una decisión, ve a la página Decisions. Recorre la lista para encontrar la decisión que deseas editar o utiliza la barra de búsqueda y haz clic en ella. La decisión se abre en la pestaña Decision contract, donde puedes editar todos los campos excepto el ID de la decisión. Para realizar cambios en las reglas, haz clic en Decision rules y realiza los cambios necesarios. Luego, haz clic Save.

Simular una decisión

La página Decision rules permite simular la evaluación de las reglas definidas estableciendo las entradas y dimensiones y visualizando el resultado final, es decir, el resultado que impactará al usuario cuando ejecute una transacción en la aplicación bajo esas condiciones específicas.

Las siguientes instrucciones explican cómo utilizar la función de simular una decisión. El ejemplo sigue el programa GoldAwards descrito en el artículo Crear o editar una decisión. En este caso, es necesario simular la cantidad de reintegro que recibe un usuario si el usuario tiene un perfil Gold, y la compra se realizó en una tienda y por un monto de USD 100.

  1. En la página Decision rules, haz clic en Simulate decision.

  2. En la sección Inputs solo tienes la entrada Amount (monto). Introduce el valor 100.

  3. En la sección Dimensions tienes las dimensiones Profile (perfil) y Purchase type (tipo de compra).

    1. En el menú desplegable Profile, selecciona Gold.

    2. En el menú desplegable Purchase type, selecciona In-store.

  4. Haz clic en Run.

  5. La sección Outputs mostrará el monto de reembolso en USD en función del monto de la compra y el porcentaje establecido en los valores constantes. En este caso, el valor constante aplicable es 1, por lo que el valor de salida es 1, es decir, el usuario recibirá 1 USD como reembolso.