Creando una Variable Dinámica

Esta guía describe los pasos para crear una variable dinámica en una biblioteca de valores utilizando el Diseñador de Reglas. Las variables dinámicas le permiten externalizar valores de configuración que pueden ser sobrescritos en tiempo de ejecución.

Requisitos previos

  • MPS (versión 2022.3.1)

  • Un modelo que utiliza el com.iconsolutions.simple.devkit, o un kit de desarrollo que lo utilice

Pasos

1. Cree o Abra una Biblioteca de Valores

Las variables dinámicas se definen dentro de las bibliotecas de valores. Si no tiene una ya, cree una nueva biblioteca de valores haciendo clic derecho en su modelo en el Logical View y navegando a New > com.iconsolutions.simple > Value Library.

create dynamic variable step 1 1

Si está creando una nueva Biblioteca de Variables Dinámicas, asegúrese de nombrarla.

create dynamic variable step 1 2

2. Agregue una Variable Dinámica

Dentro de la biblioteca de valores, cree una nueva entrada colocando el cursor en la tabla de Variables Dinámicas, o donde dice <no declarations>(si no se han definido variables); y presione Enter. Se creará una nueva fila en la tabla con elementos de columna vacíos listos para ser definidos.

create dynamic variable step 2

3. Nombre la Variable

Dé a su variable dinámica un nombre descriptivo. Este nombre se combinará con el nombre del modelo para formar la clave de configuración.

Por ejemplo, si su modelo se llama paymentService y usted nombra la variable upperBound, la clave de configuración será paymentService_upperBound.

create dynamic variable step 3

4. Establezca el Tipo

Especifique el tipo de su variable dinámica. Los tipos soportados son:

  • number - para valores numéricos

  • string - para valores de texto

  • boolean - para valores verdadero/falso

  • list<number> - para listas de números

  • list<string> - para listas de cadenas

  • list<boolean> - para listas de booleanos

Presione Ctrl+Space en el campo de tipo para ver las opciones disponibles.

create dynamic variable step 4

5. Establezca el Valor Predeterminado

Cada variable dinámica debe tener un valor predeterminado. Este valor se utiliza cuando no se proporciona una anulación de configuración en tiempo de ejecución.

Ingrese un valor predeterminado apropiado para su tipo:

  • Números:`1000`,3.14

  • Cadenas:`"USD"`

  • Booleanos:`true`,false

  • Listas:`[1, 2, 3],["USD", "EUR"]`

create dynamic variable step 5

6. Establezca la Descripción

Finalmente, se debe añadir una descripción para explicar para qué es la variable, o cualquier otra información importante relacionada con ella.

create dynamic variable step 6

7. Ejemplo Completo

Una biblioteca de valores completada con múltiples variables dinámicas podría verse así:

create dynamic variable step 7

En este ejemplo:

  • exampleString es una cadena con valor predeterminado "example"

  • exampleInt es un int con valor predeterminado 1

  • exampleBoolean es un booleano con valor predeterminado true

  • exampleStringList es una lista de cadenas con predeterminado ["a", "b", "c"]

Código Generado

Cuando construya su modelo,MPS genera una clase que implementa DynamicVariablesLibrary, que contiene:

  • Estático DynamicVariable<T> constantes para cada variable

  • A singleton INSTANCE

  • A getDynamicVariables() método que devuelve todas las variables

public class ExampleDynamicVariablesLib implements DynamicVariableLibrary {

    public static final DynamicVariable<String> exampleString =
        new DynamicVariable<>("exampleModel", "exampleString",
            String.class, "example");

    // ... other DynamicVariable static declarations

    private final List<DynamicVariable<?>> dynamicVariables;

    public static DynamicVariableLibrary INSTANCE = new ExampleDynamicVariablesLib();
    private ExampleDynamicVariablesLib() {
        dynamicVariables = new ArrayList<>();
        dynamicVariables.add(exampleString);
        // ... adds other DynamicVariables
    }


    public static DynamicVariable<?> valueOf(String name) {
        switch(name) {
            case "exampleString":
                return exampleString;
            // ... other DynamicVariable cases
            default:
                return null;
        }
    }

    @Override
    public List<DynamicVariable<?>> getDynamicVariables() {
        return dynamicVariables;
    }
}

Próximos Pasos

Después de crear sus variables dinámicas:

  1. Construya su MPS modelo para generar el Java código

  2. Configure valores de anulación utilizando Configuración HOCON o a través de otra fuente de valor dinámica.

  3. Utilice las variables en sus reglas de negocio.- ver Uso de Variables Dinámicas en Reglas de Negocio