Compartir a través de


Error Handling (carpeta de ejemplos de BizTalk Server)

Este ejemplo tiene como finalidad crear una funcionalidad de control de errores para la aplicación de enrutamiento por contenidos (CBR).

Requisitos previos

Para ejecutar el ejemplo, se recomienda tener instalado Microsoft Office InfoPath 2010 o posterior. Se puede ejecutar el ejemplo sin usar InfoPath pero, en ese caso, no se podrán ver los informes de gastos ni el envío de informes de gastos a través del adaptador de HTTP.

Descripción del ejemplo

El ejemplo implementa parte de un sistema de procesamiento de informes de gastos. En concreto, este ejemplo realiza lo siguiente:

  1. Define un esquema de informe de gastos con información sobre un informe de gastos y el enviador individual, incluido el nombre del departamento.

  2. Permite el envío del informe de gastos a través de un directorio o de un servicio Web mediante InfoPath.

  3. Promueve las propiedades Department y correlationID del documento del mensaje para que se pueda usar en un filtro de puerto para controlar el enrutamiento.

  4. Enruta los informes de gastos del departamento de marketing a un archivo situado en un directorio, que simula la entrega al sistema de servidor del departamento.

  5. Genera un mensaje de error correspondiente a los informes de gastos pertenecientes a otros departamentos distintos del departamento de marketing. El mensaje de error contiene información sobre el error, incluidos el código y la descripción del error.

  6. Enruta los mensajes con errores a un destinatario físico (un usuario empresarial o un operador de la aplicación) para su corrección y reenvío.

  7. Enruta los informes de gastos reenviados por departamento, según se ha explicado anteriormente.

    Gran parte de este trabajo se lleva a cabo mediante una programación de orquestación de BizTalk.

Cómo se ha diseñado este ejemplo y por qué

El diseño se basa en las canalizaciones XML de envío y recepción predeterminadas, la promoción de propiedades, los filtros de suscripción y las programaciones de orquestación en BizTalk Server para enrutar los mensajes. Los elementos de diseño y su justificación se enumeran en la tabla siguiente.

Elemento de diseño Razones seleccionadas
Canalización de recepción XML predeterminada - La canalización XMLReceive admite la promoción de propiedades; La canalización PassThruReceive no.
- El mensaje entrante ya está en formato XML y no requiere el procesamiento más allá del desensamblaje básico y la resolución de entidad.
Enrutamiento para mensajes con errores - Los puertos de recepción suspenden los mensajes con errores y generan una confirmación negativa de forma predeterminada. Cuando el enrutamiento está habilitado, BizTalk Server intenta enrutar cualquier mensaje con errores de procesamiento a una aplicación de suscripción (por ejemplo, a otra programación de orquestación o puerto de recepción).
Promoción de propiedades - BizTalk Server depende de los campos de propiedad para realizar el enrutamiento. Los campos distintivos los utilizan las orquestaciones y no se pueden usar para enrutamiento.
Filtro de suscripción - El filtro de suscripción realiza el enrutamiento mediante la captura de mensajes que cumplen uno o varios criterios basados en campos de propiedad.
Programación de orquestación de BizTalk - Proporciona la oportunidad de agregar información a los mensajes con errores.
- Permite el enrutamiento de mensajes erróneos a una ubicación dedicada para la intervención humana.
- Procesa los informes de gastos reenviados.
XMLTransmit - Realiza un ensamblado básico de mensajes XML salientes. La canalización PassThruTransmit no ofrece compatibilidad adicional.

Ubicación del ejemplo

Este ejemplo se encuentra en <Samples Path>\Messaging\ErrorHandling\.

La siguiente tabla contiene una lista de archivos para este ejemplo.

Archivo Descripción
Cleanup.bat Se utiliza para anular la implementación de ensamblados y quitarlos de la caché de ensamblados global.

Quita los puertos de envío y recepción.

Quita los directorios virtuales de Internet Information Services (IIS) según sea necesario.
ErrorHandling.sln Archivo de solución de Visual Studio para el ejemplo.
ErrorHandlingBinding.xml Archivo de enlace para el ejemplo.
Setup.bat Se utiliza para crear e iniciar este ejemplo.
Expense Report – John Doe.xml Ejemplo del documento de informe de gastos de InfoPath.
Invalid Expense Report – John Doe.xml Ejemplo del documento de informe de gastos de InfoPath con datos no válidos.
En la carpeta ErrorHandler:

ErrorHandler.btproj
Proyecto de BizTalk para la orquestación.
En la carpeta ErrorHandler:

ResubmitLogic.odx
Orquestación que se suscribe a los mensajes con errores, los envía al destinatario físico para su corrección y, a continuación, vuelve a enviar los mensajes corregidos al servidor para su enrutamiento.
En la carpeta ErrorHandler:

SuspendMessage.odx
Orquestación usada para suspender mensajes que no se pueden procesar en la orquestación de control de errores.
En la carpeta InfoPathForms:

Expense Report.xsn

Expense Report - Resubmit.xsn
Formulario de InfoPath correspondiente al informe de gastos y formulario utilizado para ver y reenviar los mensajes con errores.
En la carpeta PipelinesAndSchemas:

ExpenseReportSchema.xsd
Esquema XML para el documento de informe de gastos.
En la carpeta PipelinesAndSchemas:

PipelinesAndSchemas.btproj
Proyecto de BizTalk para el ejemplo.
En la carpeta PipelinesAndSchemas:

PropertySchema.xsd
Esquema de propiedad del ejemplo.

Uso del ejemplo

Este ejemplo proporciona un punto de partida para crear un procedimiento de control de errores propio.

Crear e inicializar este ejemplo

Para crear e inicializar el ejemplo de composición

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

    <Samples Path>\Messaging\ErrorHandling

  2. Ejecute Setup.bat, que realiza las siguientes acciones:

    • Crea tres carpetas: ExpenseReportIn, ExpenseReportOut y ResubmittedReportIn en la ruta de acceso siguiente:

      <Samples Path>\Messaging\ErrorHandling

    • Copia y publica los formularios informe de gastos de InfoPath.xsn e informe de gastos: vuelva a enviar.xsn en la carpeta C:\Temp\InfoPathForms.

    • Compila los proyectos de Visual Studio para este ejemplo.

    • Crea un directorio virtual denominado ExpenseReports.

    • Crea una nueva aplicación de BizTalk denominada Ejemplo de control de errores e implementa los ensamblados de ejemplo en él.

    • Crea y enlaza las ubicaciones de recepción de BizTalk Server, así como los puertos de envío y recepción.

    • Da de alta e inicia orquestaciones, habilita las ubicaciones de recepción e inicia los puertos de envío.

      Si opta por abrir y crear los proyectos de este ejemplo sin ejecutar Setup.bat, debe crear, en primer lugar, 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 de ejemplo.

  3. Antes de tratar de ejecutar este ejemplo, confirme que BizTalk Server no ha informado de ningún error durante el proceso de generación o inicialización.

    Nota

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

  4. Si usa Internet Information Services (IIS) 7.0, debe realizar pasos de configuración adicionales para ajustar la configuración del directorio virtual que corresponde a la ubicación de recepción HTTP de BizTalk Server usada por el ejemplo. Para configurar IIS, lleve a cabo lo siguiente:

    1. Mediante el administrador de IIS 7.0, cree un nuevo grupo de aplicaciones para el grupo Usuarios de hosts aislados de BizTalk.

    2. Configure el grupo de aplicaciones para que se ejecute bajo la identidad del usuario de hosts aislados de BizTalk Server. (Si ya tiene un grupo de aplicaciones configurado para otras ubicaciones de recepción HTTP de BizTalk Server, puede omitir este paso.)

    3. Configure el directorio virtual ExpenseReport para usar el grupo de aplicaciones de recepción HTTP creado en el paso anterior.

      Si todavía no dispone de una extensión de servidor Web para la extensión ISAPI BTSHTTPReceive.dll, créela y habilítela estableciendo su estado como permitido. Para llevarlo a cabo en IIS 7.0, use la consola de administración de IIS (directamente en Herramientas administrativas o bien mediante la consola de administración del equipo), tal como se indica a continuación:

    4. Expanda el árbol administrador de Internet Information Services .

    5. Haga clic en la carpeta Extensiones de servicio web .

    6. En el panel derecho de la consola de administración, haga clic en Agregar una nueva extensión de servicio web.

    7. En el cuadro de diálogo Nueva extensión de servicio web , haga clic en Agregar.

    8. En el cuadro de diálogo Agregar archivo , haga clic en Examinar para seleccionar el archivo <BizTalkInstallPath>\HttpReceive\BTSHTTPReceive.dlly, a continuación, haga clic en Aceptar.

    9. Configurar el directorio virtual ExpenseReport para usar la ruta de acceso local \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>HTTPReceive

      Para obtener más información, consulte Configuración de IIS para una ubicación de recepción HTTP.

Ejecutar el ejemplo

Antes de ejecutar el ejemplo con el informe de gastos correcto, use el procedimiento siguiente para verificar que el ejemplo "sin errores" funciona correctamente.

Para verificar que el ejemplo "sin errores" funciona correctamente

  1. Abra el formulario Informe de gastos de InfoPath - John Doe.xml. Examine el campo Departamento dentro del formulario. Este campo debe estar establecido como "Marketing".

  2. En la esquina superior izquierda de la ventana de InfoPath, haga clic en Enviar o haga clic en Volver a enviar informe de gastos. Espere a que aparezca una ventana de confirmación que indique que el informe de gastos se ha enviado correctamente.

    O

    Copie y pegue este archivo en la carpeta ExpenseReportIn .

  3. Debería ver un nuevo archivo quitado en la carpeta ExpenseReportOut . Este archivo es el mismo formulario de informe de gastos que se ha enviado en los pasos anteriores.

    Después de confirmar el funcionamiento del ejemplo "sin errores", use el procedimiento siguiente para ejecutar el ejemplo con un informe de gastos incorrecto con el fin de desencadenar la funcionalidad de control de errores.

Para desencadenar el control de errores

  1. Abra el formulario Informe de gastos no válidos de InfoPath - John Doe.xml. Examine el campo Departamento dentro del formulario. Este campo está establecido con un valor no válido.

  2. En la esquina superior izquierda de la ventana de InfoPath, haga clic en Enviar. Espere a que aparezca una ventana de confirmación que indique que el informe de gastos se ha enviado correctamente.

    O

    Copie y pegue este archivo en la carpeta ExpenseReportIn .

  3. Debería ver un nuevo archivo denominado ErrorReport_<date_time>.xml quitado en la carpeta ExpenseReportOut .

    Abra el archivo y observe que se trata del informe de gastos enviado en el paso anterior, pero con la información de errores agregada al principio.

  4. Reemplace el valor de departamento erróneo por "Marketing" y, a continuación, haga clic en Enviar en la esquina superior izquierda de la ventana de InfoPath.

    O

    Copie y pegue este archivo en la carpeta ResubmittedReportIn .

  5. Debería ver un nuevo archivo creado en la carpeta ExpenseReportOut . Este archivo es el informe de gastos corregido que se ha enviado al servidor.

Consulte también

Utilizar el enrutamiento de mensajes con errores
Messaging (carpeta de ejemplos de BizTalk Server)