El motor de reglas de negocio que se incluye con BizTalk Server 2006 ahora es compatible con el uso de objetos estáticos sin pasar ese objeto en particular en el Estado como un “hecho” (fact). Sin embargo, se necesita un cambio de registro para que funcione. ¿Por qué es valioso? Ahora usted puede construir reglas de negocio que sólo requieren objetos con estado para ser aprobada como hechos, y dejan funciones de ayuda, las búsquedas y similares como objetos estáticos. (BizTalk Server 2006 Business Rules and Static Methods)
La versión .NET 2.0 de MS BRE que se incluye con BizTalk Server 2006 tiene una función para invocar miembros estáticos de una clase sin la necesidad de hacer valer un objeto de esa clase, esta función por defecto esta desactivada y se cambia una configuración del Registro para habilitarla. Cuando esta opción está activada, se puede implementar custom predicate y código de acción, pero evitar la necesidad de tener que hacer valer los objetos en el motor con el único fin de invocar el código personalizado. El valor DWORD del registro es: (MS BRE: Controlling rule side effects)
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ BusinessRules \ 3.0 \ StaticSupport
Hay tres valores válidos para esta clave:
- 0 – Esta es la clave por defecto, y casi imita el comportamiento de BizTalk Server 2004, donde siempre se requiere una instancia de un objeto como un hecho de la entrada, y el único método se llama cuando se evalúa o ejecuta la regla.
- 1 – Una instancia del objeto no es necesario, y el método estático se llama cada vez que se evalúa o ejecuta la regla
- 2 – no se requiere una instancia del objeto, pero el método estático será llamado en tiempo de traducción regla (sólo si los parámetros son constantes). Esto está destinado principalmente como una optimización del rendimiento. Sin embargo, tenga en cuenta que los miembros estáticos utilizados como acciones no se ejecutará en tiempo de translación, pero los métodos estáticos utilizados como parámetros pueden ser. (BizTalk Server 2006 Business Rules and Static Methods)
Un enfoque alternativo es proporcionar los valores de configuración de nivel de aplicación para establecer este valor. Por ejemplo, en BizTalk Server, puede agregar parámetros de configuración adicionales para el archivo BTSNTSvc.exe.config. Esta es la configuración adicional necesaria: (MS BRE: Controlling rule side effects)
<configuration>
<configSections>
<section name=”Microsoft.RuleEngine” type=”System.Configuration.SingleTagSectionHandler” />
</configSections>
<Microsoft.RuleEngine StaticSupport=”1″/>
</configuration>