Loans Processing Using Business Rules (ejemplo de BizTalk Server)

En el ejemplo Loans Processing Using Business Rules se muestra cómo usar un conjunto de reglas administrado en una orquestación y cómo usar una combinación de entradas conocidas como hechos para calcular la configuración de algunos campos en un documento que se está procesando. Los hechos pueden ser el resultado de la llamada a un ensamblado basado en .NET, de los valores recuperados del XML del mensaje o de los datos recuperados de una base de datos. En el ejemplo también se muestra cómo puede cambiar las reglas en cualquier momento, lo que afecta a los cálculos posteriores sin tener que volver a realizar la implementación.

Descripción del ejemplo

En este ejemplo se muestran estas funciones en el contexto de un escenario de procesamiento de préstamos simplificado. La orquestación de BizTalk Server recoge y procesa una solicitud de préstamo, que se conoce también como un escenario de préstamo, en formato de mensaje XML. Esta orquestación usa el Motor de reglas de negocios para evaluar los mensajes entrantes en base a las reglas, modifica el mensaje con el resultado de la aplicación de las reglas y, a continuación, escribe el mensaje como un archivo en la carpeta de salida.

Basándose en hechos de varios orígenes, incluido el mensaje que se está procesando, este ejemplo establece los elementos IncomeStatus, CommitmentsStatus, EmploymentStatus y ResidencyStatus del mensaje que se está procesando.

Ubicación del ejemplo

<Ruta de acceso de> ejemplos\Reglas de negocios\Procesamiento de préstamos mediante reglas de negocios\

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

Archivos Descripción
Case.xsd Archivo de esquema para solicitudes de préstamos entrantes, que se conocen también como escenarios de préstamos.
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.
Create_CustInfo_Table.sql Secuencia de comandos de SQL para la creación de la tabla CustInfo en la base de datos de ejemplo Northwind de SQL.
LoanProcessorBinding.xml Se usa para la configuración automatizada, como el enlace de puertos.
LoansProcessor.btproj, LoansProcessor.sln Proyecto de BizTalk y archivos de solución para este ejemplo.
My Sample Service.odx Orquestación de BizTalk Server para este ejemplo.
sampleLoan.xml Archivo de entrada de ejemplo, con valores vacíos para los cuatro elementos de estado al final de la estructura XML en el archivo.
Setup.bat Se utiliza para crear e iniciar este ejemplo.
En la carpeta \CreateRules:

App.ico, AssemblyInfo.cs, Case.xsd, CreateLoanProcessingPolicy.csproj, CreateLoanProcessingPolicy.sln, WriteToBRL.cs
Archivos de proyecto, de solución, de origen y archivos relacionados de Visual C# usados para crear la aplicación que genera, mediante programación, las reglas en el conjunto. Para obtener ejemplos sobre la generación mediante programación de conjuntos de reglas, vea el archivo de origen WriteToBRL.cs.
En la carpeta \myFactRetriever:

AssemblyInfo.cs

FactRetrieverForLoansProcessing.cs

myFactRetriever.csproj

myFactRetriever.sln
Archivos de proyecto, de solución, de origen y archivos relacionados de Visual C# usados para crear un ensamblado que pueda utilizarse para recuperar información de la tabla CustInfo, agregada anteriormente a la base de datos de ejemplo Northwind de SQL Server.

Crear e inicializar este ejemplo

  1. Asegúrese de que la base de datos Northwind esté instalada en el equipo.

    Importante

    Para ejecutar este ejemplo, debe tener la base de datos de ejemplo Northwind SQL Server. Para descargarlo, vaya a Bases de datos de ejemplo northwind y pubs para Microsoft SQL Server.

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

    <Ruta de acceso de> ejemplos\Reglas de negocios\Procesamiento de préstamos mediante reglas de negocios

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

    • Realiza una limpieza de GAC para eliminar los datos residuales de ejecuciones anteriores de este ejemplo.

    • Compila e implementa el programa de administrador de almacenes de datos, myFactRetreiever.dll.

    • Mediante el uso del archivo de secuencia de comandos SQL Create_CustInfo_Table.sql, agrega una tabla llamada CustInfo a la base de datos de ejemplo Northwind de SQL.

    • Realiza una limpieza del almacén de reglas de SQL compartido para eliminar los residuos de ejecuciones anteriores de este ejemplo.

    • Crea, publica e implementa la versión más reciente (1.0) del conjunto de reglas de procesamiento de préstamos.

      Nota

      Puede usar la herramienta Compositor de reglas de negocio que se proporciona con BizTalk Server para examinar las reglas que se han establecido mediante programación.

    • Crea las carpetas de entrada (In) y de salida (Out) para este ejemplo.

    • Compila e implementa los proyectos restantes de Visual Studio para este ejemplo, incluido el proyecto de BizTalk que contiene la orquestación que usa para coordinar este ejemplo.

    • Crea y enlaza la ubicación de recepción de BizTalk Server y los puertos de envío y recepción.

      Nota

      En este ejemplo se muestran las siguientes advertencias al crear y enlazar puertos:

      Warning: Receive handler not specified for receive location "LoansProcessor_1.0.0.0_LoansProcessor.My_Sample_Service_Incoming_ReceiveLocation"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "LoansProcessor.My_Sample_Service"; updating with first available host.

      Puede omitir estas advertencias de forma segura. (Para dar cabida a posibles diferencias de nombre en las instalaciones de usuario, se han omitido del archivo de enlace el nombre del host y el controlador de recepción).

    • Habilita la ubicación de recepción e inicia el puerto de envío.

    • Da de alta e inicia la orquestación.

Nota

  • Si su nombre de host de BizTalk no es BizTalkServerApplication, modifique los archivos Setup.bat y LoanProcessorBinding.xml para que reflejen el nombre de host apropiado.
  • 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.
  • Si decide abrir y compilar los proyectos en este ejemplo sin ejecutar el archivo Setup.bat, primero debe crear un par de claves de nombre seguro mediante la utilidad De nombre seguro de .NET Framework (sn.exe). Utilice este par de claves para firmar los ensamblados resultantes.
  • 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

Para ejecutar el ejemplo Loans Processing Using Business Rules

  1. Pegue una copia del archivo sampleLoan.xml en la carpeta \In .

  2. Observe el archivo .xml creado en la carpeta Out. Contiene el mensaje XML de entrada con datos agregados a los cuatro elementos de estado siguientes al final de la estructura XML: IncomeStatus, CommitmentsStatus, EmploymentStatus y ResidencyStatus.

    Puede usar la herramienta Compositor de reglas de negocios para cambiar las reglas del conjunto de reglas y volver a implementar esas reglas.

Para usar la herramienta Compositor de reglas de negocio para cambiar una o varias reglas de un conjunto de reglas

  1. Haga clic en Inicio, seleccione Programas, Microsoft BizTalk Server 20xx y, a continuación, haga clic en Business Rule Composer.

    Nota

    En un sistema que admita el Control de cuentas de usuario (UAC), es posible que deba ejecutar la herramienta con privilegios administrativos. Para ello, haga clic con el botón derecho en la aplicación y seleccione Ejecutar como administrador.

  2. En el cuadro de diálogo SQL Server, haga clic en Aceptar para conectarse al almacén de reglas.

  3. En el Explorador de directivas, debajo del nodo LoanProcessing, haga clic con el botón derecho en el nodo Versión 1.0 : Implementado y, a continuación, haga clic en Copiar.

  4. Haga clic con el botón derecho en LoanProcessing y, a continuación, haga clic en Pegar.

  5. Cambie cualquier regla o acción de una manera que produzca valores diferentes para los elementos IncomeStatus, CommitmentsStatus, EmploymentStatus y ResidencyStatus . Asegúrese de cambiar también el valor de la parte de negación (básicamente, la cláusula Else ) de cualquier regla que elija cambiar.

    La siguiente tabla muestra el conjunto de reglas usado por este ejemplo. A menos que se especifique lo contrario, los hechos provienen del mensaje entrante. La cadena (db) indica una base de datos como el origen de un hecho.

    Número de regla Nombre de la regla Descripción
    1 Regla de estado de entrada IF BasicSalary + OtherIncome> 0

    THEN IncomeStatus = Válido
    2 Regla de estado de confirmación IF ID ID == (db)

    y

    IF CreditCardBalance (db)> 500

    THEN CommitmentsStatus =

    "Compute Commitments"
    3 Regla de estado laboral IF EmploymentType | TimeInMonths> 18

    THEN EmploymentStatus = Válido
    4 Regla de situación legal IF PlaceOfResidence | TimeInMonths> 18

    THEN ResidencyStatus = Valid
    !1, !2, !3, !4 Reglas de negación Condiciones que son not lógicas de la condición correspondiente descrita en las reglas 1 a 4. Las acciones resultantes son un cambio en la cadena que se está estableciendo.
  6. Haga clic con el botón derecho en el nodo Versión 1.1(no guardado) y, a continuación, haga clic en Guardar.

  7. Haga clic con el botón derecho en el nodo Versión 1.1 y, a continuación, haga clic en Publicar.

  8. Haga clic con el botón derecho en el nodo Versión 1.1 y, a continuación, haga clic en Implementar.

  9. Espere 60 segundos para que los cambios se propaguen por el almacén de reglas de SQL Server compartido.

  10. Pegue una copia del archivo sampleLoan.xml en la carpeta In.

  11. Observe el archivo .xml creado en la carpeta Out. Contiene el mensaje XML de entrada con datos agregados a los cuatro elementos de estado siguientes al final de la estructura XML: IncomeStatus, CommitmentsStatus, EmploymentStatus y ResidencyStatus. Los datos agregados a estos elementos se diferenciarán, o no, de la ejecución anterior, en función de la naturaleza de los cambios realizados en el paso 5 de este procedimiento.

Comentarios

Si desea ver la información de seguimiento de este ejemplo, debe anular la implementación y volver a implementar el conjunto de reglas correspondiente (procesamiento de préstamos) mediante el uso del Asistente para implementar el Motor de reglas de negocios.

En este ejemplo se muestra cómo se pueden usar las reglas de negocios para aplicar directivas empresariales en forma de reglas dentro de una orquestación. También se muestra cómo pueden cambiarse las directivas y realizar el cambio en la directiva reflejada de forma dinámica en la orquestación sin tener que volver a compilar o implementar la solución de orquestación.

Los escenarios de préstamos de entrada de este ejemplo son mensajes XML con la siguiente estructura:

    Name  
    ID  
    Income  
        BasicSalary  
        OtherIncome  
    EmploymentType  
        TimeInMonths  
    PlaceOfResidence  
        TimeInMonths  
    CommitmentsStatus  
    IncomeStatus  
    EmploymentStatus  
    ResidencyStatus  

Consulte también

Reglas de negocio (carpeta de ejemplos de BizTalk Server)