Compartir a través de


Evaluación de condición y ejecución de acciones

El marco de reglas de negocios proporciona un motor de inferencia muy eficaz capaz de vincular reglas a objetos .NET, documentos XML o tablas de base de datos.

El motor de reglas de negocios usa un algoritmo de tres fases para la ejecución de directivas. Las fases son las siguientes:

  • Partido. En la etapa de coincidencia, los hechos se comparan con los predicados que utilizan el tipo de hecho (referencias de objeto mantenidas en la memoria de trabajo del motor de reglas) a través de los predicados definidos en las condiciones de la regla. Por motivos de eficacia, la coincidencia de patrones se produce en todas las reglas de la directiva y las condiciones que se comparten entre reglas solo se coinciden una vez. Las coincidencias de condiciones parciales se pueden almacenar en memoria de trabajo para acelerar las operaciones posteriores de coincidencia de patrones. La salida de la fase de coincidencia de patrones consiste en actualizaciones en la agenda del motor de reglas.

  • Resolución de conflictos. En la fase de resolución de conflictos, se examinan las reglas que son candidatas para su ejecución para determinar el siguiente conjunto de acciones de regla que se ejecutarán en función de un esquema de resolución predeterminado. Todas las reglas candidatas encontradas durante la fase de coincidencia se agregan a la agenda del motor de reglas.

    El esquema de resolución de conflictos predeterminado se basa en las prioridades de regla dentro de una directiva. La prioridad es una propiedad configurable de una regla en Business Rule Composer. Cuanto mayor sea el número, mayor será la prioridad; por lo tanto, si se desencadenan varias reglas, primero se ejecutan las acciones de mayor prioridad.

  • Acción. En la fase de acción, se ejecutan las acciones de la regla resuelta. Tenga en cuenta que las acciones de las reglas pueden introducir nuevos hechos en el motor de reglas, lo que provoca que el ciclo continúe. Esto también se conoce como encadenamiento hacia adelante. Es importante tener en cuenta que el algoritmo nunca adelanta la regla que se está ejecutando actualmente. Todas las acciones de la regla que se activan actualmente se ejecutarán antes de repetir la fase de coincidencia. Sin embargo, no se desencadenarán otras reglas en el orden del día antes de que comience de nuevo la fase de partido. La fase de emparejamiento puede hacer que esas normas se eliminen del orden del día antes de que lleguen a activarse.

    En el siguiente ejemplo, se muestra el algoritmo de tres etapas: coincidencia, resolución de conflictos y acción.

    Regla 1: Evaluación de los ingresos

  • Representación declarativa:

    La calificación de crédito de un solicitante solo debe obtenerse si la relación entre ingresos y préstamos del solicitante es inferior a 0,2.

  • Representación IF-THEN utilizando objetos de negocio.

    IF Application.Income / Property.Price < 0.2    
    THEN Assert new CreditRating( Application)   
    

    Regla 2: Evaluación de la calificación de solvencia crediticia

  • Representación declarativa:

    Un solicitante debe ser aprobado únicamente si la calificación de crédito del solicitante es superior a 725.

  • Representación IF—THEN mediante objetos de negocios:

    IF Application.SSN = CreditRating.SSN AND CreditRating.Value > 725    
    THEN SendApprovalLetter(Application)    
    

    Los hechos se resumen en la tabla siguiente.

Hecho Campos
Aplicación: un documento XML que representa una solicitud de préstamo residencial - Ingresos = $65,000
- SSN = XXX-XX-XXXX
Propiedad: un documento XML que representa la propiedad que se va a comprar. - Precio = 225 000 USD
CreditRating: documento XML que contiene la calificación de crédito del solicitante del préstamo - Valor = 0 – 800
- SSN = XXX-XX-XXXX

Inicialmente, la memoria de trabajo y la agenda del motor de reglas están vacías. Una vez que la aplicación agrega los hechos de la Aplicación y la Propiedad, la memoria de trabajo y la agenda del motor de reglas se actualizan de la siguiente manera.

Memoria de trabajo Agenda
-Aplicación
-Propiedad
Regla 1

La regla 1 se agrega al orden del día porque su condición (Application.Income / Property.Price < 0.2) se evalúa como true durante la fase de coincidencia. No hay ningún hecho de CreditRating en la memoria de trabajo, por lo que no se evaluó la condición de la regla 2. Dado que la única regla del orden del día es la Regla 1, la regla se ejecuta y, a continuación, desaparece de la agenda. La única acción definida para la Regla 1 da como resultado un nuevo hecho (documento CreditRating para el solicitante) que se agrega a la memoria de trabajo. Una vez completada la ejecución de la Regla 1, el control vuelve a la fase de coincidencia. Dado que el único objeto nuevo que debe igualarse es el dato de calificación crediticia, los resultados de la fase de coincidencia son los siguientes.

Memoria de trabajo Orden del día
-Aplicación
-Propiedad
- Calificación de Crédito
Regla 2

En este punto se ejecuta la regla 2, lo que da lugar a la invocación de una función que envía una carta de aprobación al solicitante. Una vez completada la Regla 2, la ejecución del algoritmo de encadenamiento hacia adelante vuelve a la fase de coincidencia. Dado que ya no hay nuevos hechos por coincidir y la agenda está vacía, el encadenamiento hacia adelante termina y se completa la ejecución de la directiva.

Véase también

Motor de reglas