Compartir a través de


Business Rules Hello World1 (ejemplo de BizTalk Server)

El ejemplo Business Rules Hello World1 muestra cómo crear un conjunto de reglas BizTalk, guardarlo en un archivo (SampleRuleSet.xml), cargarlo y ejecutarlo basado en un conjunto de ejemplos de hechos. El conjunto de reglas de ejemplos consta de una regla sencilla que implica a un elemento XML y objetos basados en .NET (propiedades y miembros) como términos de la definición de reglas.

Descripción del ejemplo

En este ejemplo se crea un ejecutable que realiza la secuencia de pasos siguiente:

  1. Llama al método CreateRuleset para compilar el conjunto de reglas descrito en la sección Comentarios.

  2. Llama al método SaveToFile para mostrar cómo guardar un conjunto de reglas en un archivo.

  3. Llama al método LoadFromFile para mostrar cómo cargar un conjunto de reglas desde un archivo.

  4. Construye hechos de prueba en los que se puede ejecutar el conjunto de reglas.

  5. Ejecuta el conjunto de reglas en los hechos de prueba, que produce una presentación en la pantalla.

  6. Pausa, le permite examinar el archivo de conjunto de reglas SampleRuleStore.xml.

  7. Realiza una limpieza mediante la eliminación del archivo de conjunto de reglas en preparación de las ejecuciones posteriores del ejemplo.

Ubicación del ejemplo

<Ruta de acceso de> ejemplos\Business Rules\Business Rules Hello World1\

En la tabla siguiente se enumeran los archivos del ejemplo y se describe su propósito.

Archivos Descripción
App.ico, AssemblyInfo.cs, BusinessRulesHelloWorld1.csproj, BusinessRulesHelloWorld1.sln Proyectos, soluciones y archivos relacionados para la parte de este ejemplo que crea, guarda, carga y ejecuta un conjunto de reglas.
HelloWorld1.cs El archivo de Visual C# que contiene métodos para mostrar cómo se crea un conjunto de reglas, se guarda un conjunto de reglas en un archivo y se carga un conjunto de reglas desde un archivo. También contiene código adyacente que llama a estos métodos y, a continuación, ejecuta el conjunto de reglas creado.
Cleanup.bat Se utiliza para anular la implementación de ensamblados y quitarlos de la caché de ensamblados global (GAC). Quita los puertos de envío y recepción. Quita los directorios virtuales de los Servicios de Microsoft Internet Information (IIS) según sea necesario.
SampleDocumentInstance.xml El archivo de entrada de ejemplo que se ajusta al esquema definido en el archivo SampleSchema.xsd.
SampleSchema.xsd El archivo de esquemas que define un esquema simple con un elemento al que hace referencia el conjunto de reglas creado en el archivo HelloWorld1.cs. de Visual C#.
Setup.bat Se utiliza para crear e iniciar este ejemplo.
En la carpeta \MySampleLibrary:

AssemblyInfo.cs, MySampleLibrary.csproj, MySampleLibrary.sln
Proyectos, soluciones y archivos relacionados para la parte de este ejemplo que proporciona la clase que define los objetos a los que hace referencia el conjunto de reglas creado.
En la carpeta \MySampleLibrary:

MySampleLibraryClass.cs
Archivo de Visual C# que contiene la propiedad a la que se hace referencia en la parte IF de la regla creada y el método al que se puede llamar en la parte THEN de la regla creada.

Crear e inicializar este ejemplo

Use el siguiente procedimiento para generar e inicializar el ejemplo Business Rules Hello World1.

Para generar e inicializar el ejemplo

  1. En una ventana de comandos, desplácese a la siguiente carpeta:

    <Ruta de acceso de> ejemplos\Business Rules\Business Rules Hello World1\

  2. Ejecute el archivo Setup.bat que realiza las acciones siguientes:

    • Compila e implementa los proyectos de Microsoft Visual Studio para este ejemplo.

    Nota

    Debe confirmar que BizTalk Server no ha notificado ningún error durante el proceso de generación e inicialización antes de intentar ejecutar este ejemplo.

    Nota

    Si decide abrir y compilar los proyectos de este ejemplo sin ejecutar el archivo Setup.bat, primero debe crear un par de claves de nombre seguro mediante la utilidad de nombre seguro (sn.exe) de .NET Framework. Utilice este par de claves para firmar los ensamblados resultantes.

    Nota

    Para deshacer los cambios realizados por Setup.bat, ejecute Cleanup.bat. Debe ejecutar Cleanup.bat antes de ejecutar Setup.bat por segunda vez.

Ejecución del ejemplo

Use el siguiente procedimiento para ejecutar el ejemplo Business Rules Hello World1.

Para ejecutar el ejemplo

  1. En una ventana de comandos, desplácese a la siguiente carpeta:

    <Ruta de acceso de> ejemplos\Business Rules\Business Rules Hello World1\bin\Debug\

  2. En la ventana de comandos, escriba el nombre del archivo ejecutable para este ejemplo (BusinessRulesHelloWorld1.exe) y, a continuación, presione ENTRAR.

    Nota

    Mientras se ejecuta, este ejemplo genera el archivo del conjunto de reglas SampleRuleStore.xml en la carpeta bin\Debug . Cuando se pausa el ejecutable y se espera a que presione ENTRAR para finalizar, puede examinar los contenidos de este archivo. Recuerde cerrarlo antes de presionar cualquier tecla para finalizar. En caso contrario, puede que el ejecutable no pueda quitarlo en preparación de las ejecuciones posteriores del ejemplo.

    En función de la naturaleza del conjunto de reglas creado, si ejecuta este ejemplo con el archivo de entrada de ejemplo proporcionado SampleDocumentInstance.xml, que tiene un valor de uno (1) definido para su elemento ID , verá la siguiente salida:

Creating a new ruleset ...  
Saving ruleset to SampleRuleStore.xml ...  
Loading ruleset ...  
Asserting objects ...  
Executing ...  
MySampleBusinessObject Class -- MySampleMethod executed for object 2 with parameter 5  
MySampleBusinessObject Class -- MySampleMethod executed for object 3 with parameter 5  
Press any key to finish ...  

Nota

La salida que se muestra en negrita, tanto en el código anterior como en el código siguiente, es la salida generada por el objeto de negocio de ejemplo, definida por los archivos de la carpeta MySampleLibrary , a la que hace referencia el conjunto de reglas.

Si cambia el valor asociado al elemento ID del archivo de entrada de ejemplo SampleDocumentInstance.xml de uno (1) a dos (2), la salida cambiaría de la siguiente manera:

Creating a new ruleset ...  
Saving ruleset to SampleRuleStore.xml ...  
Loading ruleset ...  
Asserting objects ...  
Executing ...  
MySampleBusinessObject Class -- MySampleMethod executed for object 1 with parameter 5  
MySampleBusinessObject Class -- MySampleMethod executed for object 3 with parameter 5  
Press any key to finish ...  

No obtendrá una línea de salida para ningún objeto de la clase MySampleBusinessObject que tenga su propiedad MyValue establecida en un valor (durante la construcción) que coincida con el valor asociado al elemento ID del archivo de entrada de ejemplo SampleDocumentInstance.xml.

Comentarios

La regla creada mediante programación en el método CreateRuleset() muestra:

IF

MySampleBusinessObject.MyValue no es igual al valor del elemento ID del documento XML.

THEN

MySampleBusinessObject.MySampleMethod(int) con un parámetro entero, codificado de forma rígida en la constante cinco (5) en este caso. Este método genera las líneas de salida que comienzan la clase MySampleBusinessObject –-.

Esta regla depende de lo siguiente:

  • Una clase MySampleBusinessObject con una propiedad pública denominada MyValue y un método público llamado MySampleMethod (que toma un parámetro entero).

  • Esquema del lenguaje de definición de esquema XML (XSD) que define un documento XML que contiene un elemento ID .

    Puede definir las reglas en términos de clases y esquemas pero, durante la ejecución, se necesitan las instancias de objetos de las clases relevantes y las instancias de documentos de los esquemas relevantes. Evalúe las reglas en estas instancias de tiempo de ejecución (conocidas como hechos). En este ejemplo, los hechos son varias instancias del objeto MySampleBusinessObject , construidos con valores diferentes para su propiedad MyValue y una única instancia XML del esquema definido que contiene un valor para el elemento ID .

Consulte también

Reglas de negocio (carpeta de ejemplos de BizTalk Server)