Expresiones

Una expresión es código que contiene lógica personalizada y que puede ser añadido a una regla. Las expresiones también pueden acceder a código externo al motor de Active Correlation Technology. En el lenguaje de reglas, las expresiones son válidas sólo dentro de unos contextos, o elementos de lenguaje de reglas, específicos.

Los creadores de reglas pueden codificar expresiones con distintos objetivos según el contexto y el resultado que deseen obtener. Las expresiones se utilizan frecuentemente para las inicialización de variables, la definición de los criterios de selección de sucesos, y la especificación de las acciones de respuesta de regla o de ciclo de vida.

Elementos de lenguaje que pueden contener expresiones

Cada elemento de lenguaje que contiene una expresión tiene un atributo expressionLanguage que identifica el lenguaje de programación en el que está escrita la expresión. El lenguaje de programación Java es el único lenguaje soportado para las expresiones.

Las expresiones pueden estar contenidas dentro de los siguientes elementos de lenguaje de reglas.
  • <varInitializer> para una variable de conjunto de reglas, de bloque de reglas o de reglas
  • <filteringPredicate> sobre <eventSelector>
  • <computedValue> sobre <groupingKey>
  • <computeFunction> sobre una regla de cálculo
  • <booleanThreshold> sobre una regla de umbral
  • <computedThreshold> sobre una regla de umbral
  • Acciones de respuesta de regla para una regla:
    • <action> dentro de <onDetection>. Esta acción es válida únicamente para las reglas de duplicación, de filtro, de secuencia y de umbral.
    • <action> dentro de <onNextEvent>. Esta acción es válida únicamente para la regla de duplicación.
    • <action> dentro de <onTimeOut>. Esta acción es válida únicamente para las reglas de secuencia y de umbral.
    • <action> dentro de <onTimeWindowComplete>. Esta acción es válida únicamente para las reglas de colección, de cálculo, de duplicación y de temporizador.
  • Acciones de ciclo de vida para una regla:
    • <action> dentro de <onLoad>
    • <action> dentro de <onActivation>
    • <action> dentro de <onDeactivation>
    • <action> dentro de <onUnload>

Qué ayuda proporciona Active Correlation Technology para codificar expresiones

Para ayudar a un creador de reglas a codificar expresiones, Active Correlation Technology proporciona la posibilidad de hacer lo siguiente:
  • Importar módulos externos (como clases Java) y objetos para utilizar en las expresiones.
  • Inicializar y acceder a variables de conjunto de reglas, de bloque de reglas o de reglas
  • Acceder, a través de la variable act_event, al suceso que está procesando actualmente una regla.
  • Acceder, a través de la variable act_eventCount, al número de sucesos que han sido aceptados por una regla.
  • Acceder, a través de la variable act_eventList, a la lista de sucesos que han sido aceptados por una regla. Esto incluye la posibilidad de acceder a varios atributos de un suceso y de acceder a cada suceso en una regla de secuencia por su nombre de alias.
  • Acceder, a través de la variable act_lib, a métodos que incluyan la posibilidad de obtener y establecer variables y de controlar el flujo de sucesos a través de un conjunto de reglas.
  • Acceder, a través de la variable act_location, a la ubicación de una expresión dentro de la jerarquía de reglas.
  • Acceder, a través de la variable act_nodeName, al nombre completo de un nodo.
  • Acceder, a través de la variable act_threshold, al valor de umbral definido para una regla de umbral.