Uma expressão é código que contém lógica personalizada que pode ser
incluída em uma regra. As expressões também podem acessar código externo para o mecanismo da
Tecnologia ACT. Na linguagem de regra, as expressões são válidas
somente nos contextos específicos ou nos elementos de linguagem da regra.
Os autores de regras podem codificar expressões com fins diferentes, dependendo do
contexto e do resultado que desejam obter. As expressões são utilizadas com
freqüência para a inicialização de variáveis, a definição de critérios de seleção
de eventos e a especificação de ações de resposta da regra e de ciclo de vida.
Elementos de Linguagem que Contêm Expressões
Cada
elementos de linguagem que contém uma expressão tem um atributo expressionLanguage
que identifica a linguagem de programação na qual a expressão é gravada.
A linguagem de programação
Java
é a única linguagem de expressão suportada.
As expressões
podem ser obtidas nos elementos de linguagem de regra a seguir.
- <varInitializer> para um conjunto de regras, bloco de regra ou variável de regra
- <filteringPredicate> em <eventSelector>
- <computedValue> em <groupingKey>
- <computeFunction> em uma regra de computação
- <booleanThreshold> em uma regra de limite
- <computedThreshold> em uma regra de limite
- Ações de resposta de uma regra:
- <action> em <onDetection>. Esta ação será válida apenas para as
regras de duplicata, de filtragem, de seqüência e de limite.
- <action> em <onNextEvent>. Esta ação é válida apenas para a
regra de duplicata.
- <action> em <onTimeOut>. Esta ação é válida apenas para as regras
de seqüência e de limite.
- <action> em <onTimeWindowComplete>. Esta ação é válida apenas
para as regras de coleta, de computação, de duplicata e de cronômetro.
- Ações de ciclo de vida de uma regra:
- <action> em <onLoad>
- <action> em <onActivation>
- <action> em <onDeactivation>
- <action> em <onUnload>
O que a Tecnologia ACT Fornece para Ajudar nas
Codificação de Expressões
Para ajudar o autor de regras na codificação de expressões,
a Tecnologia ACT fornece recursos para fazer o seguinte:
- Importar módulos externos (por exemplo, classes
Java) e objetos para serem utilizados nas expressões.
- Inicializar e acessar o conjunto de regras, o bloco de regra ou as variáveis de regra.
- Por meio da variável act_event, acessar o evento atual que está sendo processado
por uma regra.
- Por meio da variável act_eventCount, acessar o número de eventos
aceitos por uma regra.
- Por meio da variável act_eventList, acessar a lista de eventos
aceitos por uma regra. Isso inclui o recurso para acessar vários atributos
de um evento e para acessar cada evento em uma regra de seqüência pelo seu nome de alias.
- Por meio da variável act_lib, acessar métodos que incluem o recurso
de obter e configurar variáveis e para controlar o fluxo de eventos por meio de um conjunto de regras.
- Por meio da variável act_location, acessar o local, na hierarquia da
regra, de uma expressão.
- Por meio da variável act_nodeName, acessar o nome completo de
um nó.
- Por meio da variável act_threshold, acessar o valor do limite definido
de uma regra de limite.