BizTalk Server a través del Business Rule Engine (BRE) ofrece la posibilidad de almacenar las reglas de negocio (BR) implementadas en archivos xml o en bases de datos para su posterior invocación y ejecución. Cada almacenamiento ofrece sus ventajas y desventajas, y adicional su invocación difiere en cada uno.
Archivos XML
Una BR se puede almacenar e invocar desde un archivo plano usando la clase FileRuleStore.
void SaveToFile() { RuleStore ruleStore = new FileRuleStore("filename"); ruleStore.Save(new RuleSet("rulesetname")); } void LoadFromFile() { RuleStore ruleStore = new FileRuleStore("filename"); RuleSetInfoCollection rsInfo = ruleStore.GetRuleSets("rulesetname", RuleStore.Filter.Latest); RuleSet newRS = ruleStore.GetRuleSet(rsInfo[0]); }
Este almacenamiento ofrece las siguientes ventajas:
Las desventajas son:
Base de datos
Una BR puede ser almacenada e invocada desde una base de datos usando las clases SqlRuleStore o OleDbRuleStore
using Microsoft.BizTalk.RuleEngineExtensions; static void DeployRuleSet(RuleSet ruleset) { RuleSetDeploymentDriver dd = new RuleSetDeploymentDriver(); SqlRuleStore sqlrs; sqlrs = (SqlRuleStore) dd.GetRuleStore(); sqlrs.Add(ruleset, true); dd.Deploy(new RuleSetInfo(ruleset.Name, ruleset.CurrentVersion.MajorRevision, ruleset.CurrentVersion.MinorRevision)); } static void GetRuleStore(string rulesetname) { RuleSetDeploymentDriver dd = new RuleSetDeploymentDriver(); SqlRuleStore sqlrs = (SqlRuleStore) dd.GetRuleStore(); RuleSetInfoCollection rss = new RuleSetInfoCollection(); rss = sqlrs.GetRuleSets(rulesetname, RuleStore.Filter.Latest); }
Las ventajas de utilizar una base de datos se enumeran en:
En ambos casos se puede exportar facilmente una BR de un archivo xml a la base de datos y viceversa, para ello se puede utilizar el framework de BRE o el Business Rule Engine Deployment Wizard que provee BizTalk Server.
Autor: Carlos MedinaEste mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningun derecho