Cargar y publicar políticas en el BRE es una tarea muy fácil utilizando el Business Rules Engine Deployment Wizard que viene con BizTalk Server siendo esta una herramienta útil, pero cuando es necesario cargar un numero de políticas de manera masiva la tarea puede volverse complicada porque se necesitaría ejecutar el Wizard por cada política a desplegar.
Para solucionar este inconveniente se puede construir un componente que permita cargar varias políticas al BRE de manera masiva utilizando las clases que nos proporciona Business Rules Framework (BRF).
Para utilizar estas clases se debe hacer referencia a “Microsoft.RuleEngine.dll”
1. Para iniciar se debe crear un nuevo proyecto de tipo Console Application.
2. Se debe crear una carpeta donde se encuentran los archivos xml de las políticas que se desean subir al BRE
3. Obtenemos los archivos de la carpeta donde están ubicadas las políticas utilizando la clase Directory del System.IO
string [] files = Directory.GetFiles(directory, “*.xml”);
4. Se debe crear una nueva instancia de la clase FileRuleStore y como parámetro se debe dar el nombre de la política a almacenar en el sistema de archivos del RuleStore.
RuleStore store = null;
foreach (var fileName in files)
{
store = new FileRuleStore(filename);
}
5. Luego de ingresar las políticas se deben publicar y desplegar.
foreach (RuleSetInfo ruleset in store.GetRuleSets(RuleStore.Filter.Latest))
{
RuleSetDeploymentDriver driver = new RuleSetDeploymentDriver();
RuleStore ruleStore = driver.GetRuleStore();
ruleStore.Add(ruleset, true);
driver.Deploy(new RuleSetInfo(ruleset.Name, ruleset.CurrentVersion.MajorRevision, ruleset.CurrentVersion.MinorRevision));
}
Se obtiene las últimas políticas almacenadas con el método GetRuleSets, a continuación se publican en el RuleStore utilizando el método Add y finalmente se despliegan con método Deploy.
Es una implementación sencilla que puede facilitarnos la vida al momento de cargar políticas al BRE.