Configuración y ejecución de reglas empresariales
El motor de reglas empresariales ejecuta las reglas registradas en un conjunto de reglas empresariales y devuelve los resultados de la validación. El motor de reglas empresariales recupera el conjunto de reglas empresariales a partir de las claves únicas del conjunto de reglas empresariales especificado y las referencias de contenedor de los objetos semilla. Con el conjunto de reglas empresariales, el motor las ejecuta con los objetos semilla.
En las fases siguientes se describe la ejecución de conjuntos de reglas empresariales por parte del motor de reglas empresariales:
1. Recupera los objetos semilla especificados para su validación
2. Recupera los conjuntos de reglas empresariales
3. Genera y ejecuta un plan de ejecución para los conjuntos de reglas empresariales
4. Informes de los resultados del plan ejecutado.
Flujo de ejecución de reglas empresariales
Llamada al motor de reglas empresariales
Hay ejemplos en los flujos de trabajo por defecto de notificación de cambio y solicitud de promoción que muestran cómo llamar al motor de reglas empresariales desde un flujo de trabajo. El flujo de trabajo de notificación de cambio por defecto incluye dos direccionadores condicionales diferentes que llaman al motor de reglas empresariales. Si hay errores, la tarea de notificación de cambio de auditoría mostrará un vínculo denominado "Ver conflictos" en la tarea. La tarea de notificación de cambio de auditoría permite continuar sin corregir los errores. Del mismo modo, en la tarea de resolver conflictos de liberación se muestran los conflictos, si los hubiera. Debe corregir los problemas antes de continuar con esta tarea.
Este es otro ejemplo de cómo se puede configurar un bucle de retrabajo en el proceso de aprobación de solicitudes de promoción. La regla empresarial se ejecuta en el direccionador condicional OR. Si falla, se envía un correo electrónico y aparece la tarea de solicitud de promoción de retrabajo.
Hay dos API soportadas para ejecutar conjuntos de reglas empresariales.
BusinessRulesHelper.engine.execute(primaryBusinessObject, BusinessRuleSetBean[]) : RuleValidationResultSet
La segunda opción permite sustituir el contenedor para todos los objetos, independientemente del contenedor en el que se encuentren los objetos semilla. Esta API requiere que los objetos semilla se especifiquen de antemano y solo soporta la ejecución de conjuntos de reglas empresariales de uno en uno.
BusinessRulesHelper.engine.execute(“Business rule set”, RuleValidationCriteria) : RuleValidationResultSet
Consulte Javadoc para obtener más información.
Recuperación de objetos semilla
El delegado de relaciones se utiliza para obtener los objetos semilla de un objeto de negocio principal que se va a evaluar para un conjunto de reglas empresariales determinado. Todos los delegados de relaciones implementan la interfaz RuleValidation.
Los delegados de relaciones se registran en service.properties. A continuación se muestra un ejemplo de un delegado para obtener los objetos resultantes de un objeto principal:
<Service context="default" name="com.ptc.core.businessRules.relationship.
BusinessRuleSetRelationshipDelegate">
<Option serviceClass="com.ptc.core.businessRules.relationship.
ResultingObjectsRelationshipDelegate"
selector="wt.change2.ChangeRecord2"
cardinality="singleton"
requestor="null"/>
El selector es la clave de relación que se utiliza para buscar la instancia de delegado de relaciones. La convención de nomenclatura de la clave de relación es utilizar el nombre de la clase de vínculo, pero no es un requisito. Tenga en cuenta que si el delegado de relaciones devuelve los vínculos de la relación, los objetos de rol B de los vínculos se utilizarán como objetos semilla. El rol de vínculo de destino se puede especificar opcionalmente en BusinessRuleSetBean o RuleValidationCriteria. Consulte el Javadoc de BusinessRuleSetBean para obtener más información sobre cómo especificar la relación para un conjunto de reglas empresariales y los delegados de relaciones soportados actualmente.
En la tabla siguiente se muestran los delegados por defecto que se proporcionan en una instalación de Windchill estándar:
Relación
Delegado de relaciones
Descripción
wt.change2.AffectedActivityData
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
Permite obtener los vínculos de objetos afectados del objeto de negocio principal si se trata de una notificación de cambio o una tarea de cambio.
wt.change2.ReportedAgainst
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
Permite obtener los vínculos de objetos afectados del objeto de negocio principal si se trata de un informe de problemas o variación.
wt.change2.RelevantRequestData
com.ptc.core.businessRules.relationship.AffectedObjectsRelationshipDelegate
Permite obtener los vínculos de objetos afectados del objeto de negocio principal si se trata de una solicitud de cambio
wt.change2.ChangeRecord2
com.ptc.core.businessRules.relationship.ResultingObjectsRelationshipDelegate
Permite obtener los vínculos de objetos resultantes del objeto de negocio principal si se trata de una notificación de cambio o una tarea de cambio.
wt.change2.IncludedIn2
com.ptc.core.businessRules.relationship.IncludedInRelationshipDelegate
Permite obtener las tareas de cambio del objeto de negocio principal si se trata de una notificación de cambio o la notificación de cambio si el objeto de negocio principal es una tarea de cambio.
wt.maturity.MaturityBaseline
com.ptc.core.businessRules.relationship.MaturityBaselineObjectsRelationshipDelegate
Permite obtener los elementos de instantánea del objeto de negocio principal si se trata de una notificación de promoción.
wt.maturity.PromotionSeed
com.ptc.core.businessRules.relationship.PromotionSeedObjectsRelationshipDelegate
Permite obtener las semillas de promoción del objeto de negocio principal si se trata de una notificación de promoción.
wt.maturity.PromotionTarget
com.ptc.core.businessRules.relationship.PromotionTargetObjectsRelationshipDelegate
Permite obtener los destinos de promoción del objeto de negocio principal si se trata de una notificación de promoción.
Recuperación del conjunto de reglas empresariales basado en el contenedor
La siguiente información es necesaria para obtener un conjunto de reglas empresariales del sistema:
1. La clave única para un conjunto de reglas empresariales
2. La referencia de contenedor de la que se deben evaluar las reglas
El motor de reglas empresariales será responsable de adquirir el conjunto de reglas empresariales adecuado de los servicios de Windchill. Los conjuntos de reglas empresariales se detectarán mediante una búsqueda jerárquica de contenedores. Los conjuntos de reglas empresariales que no estén activados se ignorarán.
En el siguiente diagrama de flujo se explica el flujo de la búsqueda de contenedores para una clave de conjunto de reglas y un contenedor.
¿Fue esto útil?