En este quinto Hands on Lab dedicado a BizTalk Server 2006 R2 vamos a demostrar como configurar los nuevos adaptadores para POP3 y Sharepoint. Adicionalmente mostraremos cómo construir y configurar una orquestación que subscribe los mensajes fallidos.
El hands on lab lo podéis descargar desde la siguiente url:
http://www.puntocompartido.com/BlogShare/Documentos/BTSHOL05%20Integration%20with%20POP3%20and%20SharePoint%20and%20Routing%20Failed%20Messages.doc
Las siguientes son las tareas a realizar por el Hands On Lab:
- Examinar y comprobar la orquestación de proceso de aprobación
- Configurar y comprobar el Adaptador POP3
- Modificar dos puertos de envió para utilizar el adaptador de Sharepoint
- Modificar una ubicación de recepción para utilizar el adaptador de Sharepoint
- Comprobar la aplicación
- Crear una orquestación para manejar mensajes fallidos
- Desplegar, configurar y testear la aplicación
Ejercicio 1: Examinar y comprobar la orquestación de proceso de aprobación
La orquestación de proceso de aprobación es utilizada para enviar informes de gastos pendientes al departamento de contabilidad donde los gastos son aprobados o denegados. El informe de gastos se transforma en una confirmación, con información adicional enviándose al empleado y al departamento de contabilidad para ser archivados. En este ejercicio probaremos la orquestación y veremos como trabajo utilizando solo el adaptador de archivos
Para empezar a realizar el ejercicio, navegue a la ruta C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Lab 5\Start\Setup y ejecute el archivo Setup.exe. Este archivo creará y configurará la librería de Sharepoint así como la aplicación de BizTalk mediante la invocación de btstask.exe.

Seguidamente, desde la ruta C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Lab 5\Start\, abra la solución SharepointLab.sln. El siguiente paso será examinar la orquestación disponible en la solución. Para ello, en el explorador de soluciones haga doble clic sobre la orquestación ApprovalProcess.odx para abrirla.
Examine la orquestación y observe que la aplicación esta actualmente configurada con todos los puertos en recepción y envío utilizando el adaptador de archivos. El mensaje (un informe de gastos) es recibido y enviado para aprobación manual. El informe de gastos es evaluado para un código de estado de denegado. El mensaje entonces se transforma en un tipo de mensaje ProcessedExpenses, y un mensajes de asignación se utiliza para crear la explicación de por qué el informe de gastos ha sido denegado o ha sido confirmado en el flujo de aprobación. El nuevo mensaje es entonces enviado al departamento de contabilidad y al empleado correspondiente.
Seguidamente, haga clic sobre el proyecto ErrorHandling en el explorador de soluciones y seleccione Deploy. Mientras examinamos la orquestación, nota que la aplicación esta actualmente configurada puertos de envío y de recepción utilizando el adaptador de archivos. El mensaje
A continuación, vamos a proceder a iniciar la aplicación. Para ello, en la consola de administración de BizTalk, nos situaremos sobre BizTalk Group==>Applications==>Lab5 y procederemos a pulsar el botón derecho del ratón para hacer clic sobre Start. Vuelva a pulsar Start sobre la ventana Start ‘Lab5’ Application.
Una vez iniciada la aplicación, vamos a proceder a enviar un mensaje de prueba para asegurarnos que la orquestación lo procesa correctamente. En el explorador de Windows, desplácese a la ubicación C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages y copie el archivo (mensaje) Over100.xml al directorio IN. A continuación desplácese al directorio C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages\Approval-Denial OUT y haga doble clic sobre el archivo {GUID}.xml para abrirlo en InfoPath.
Una vez abierto el archivo con InfoPath, cambie el campo Status a Declined.
Guarde y cierre el formulario. Seguidamente, en el explorador de Windows, mueva el archivo {GUID}.xml desde el directorio Approval-Denial OUT al directorio Approval-Denial IN. Navegue al directorio OUT y abra el mensaje (el mensaje se abrirá con Internet Explorer y no con InfoPath).
Fíjese que el elemento <Explaination> ha sido agregado con un comentario donde indica que el gasto ha sido denegado. Cierre el mensaje y elimínelo del directorio OUT. A continuación, navegue a la ruta C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages y copie el archivo (mensaje) Under100.xml dentro del directorio IN. Desplácese a la ruta C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages\Approval-Denial OUT y haga doble clic sobre el archivo {GUID}.xml para abrirlo con InfoPath.
Una vez abierto el archivo con InfoPath, cambie el campo Status a Approved, guarde los cambios y cierre el formulario. En el explorador de windows, mueva el archivo {GUID}.xml desde el directorio Approval-Denial OUT al directorio Approval-Denial IN. Navegue a continuación al directorio OUT y abra el mensaje.
Observe que el elemento <Explaination> ha sido agregado con un comentario donde se indica que el gasto ha sido aprobado. Cierre el archivo y elimínelo del directorio OUT.
Estos archivos representan los mensajes de correo que se enviarán al empleado y al deparamento de contabilidad. Elimine también los dos mensajes que se encuentran en el directorio C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages\OUT\Accounting. Este directorio representa la librería de formularios de Sharepoint donde los mensajes procesados serán guardados.
Ejercicio 2: Configurar y comprobar el Adaptador POP3
El adaptador POP3 es utilizado para recibir mensajes dentro de BizTalk Server 2006 vía correo electrónico. El mensaje puede ser enviado como adjunto o como contenido en el cuerpo de un mensaje de correo. En este ejercicio, crearemos una nueva ubicación que utiliza el adaptador POP3. Una vez que hayamos configurado la ubicación de recepción, enviará un documento XML adjunto en un correo y completará el proceso de negocio.
Para ello, vamos a utilizar la consola de administración de BizTalk para crear y configurar una ubicación de recepción. El primer paso será situarnos sobre BizTalk Server 2006 Administration > BizTalk Group > Applications > Lab5. A continuación, haga clic con el botón derecho del ratón sobre Receive Locations, seleccione New, y haga clic sobre One-way Receive Location.
En el cuadro de diálogo Select a Receive Port, haga clic sobre RcvExpenses y a continuación pulse el botón OK.
En la ventana de propiedades de Receive Location, cambie el campo Name a RcvExpensesPOP3, seleccione POP3 en el campo Type y pulse el botón Configure. En el cuadro de diálogo POP3 Transport Properties, establezca la configuración como se muestra a continuación:
Property Value
Body Part Index 2
Mail Server localhost
Authentication Scheme Basic
Password P2ssword
User Name Expenses@bts2006.com
Polling Interval Unit Seconds

Una vez configuradas las propiedades, haga clic en OK. A continuación elija XMLValidateReceivePipe desde el campo Receive pipeline y pulse el botón OK.
Seguidamente vamos a habilitar la ubicación de recepción. Para ello, sitúese sobre BizTalk Server 2006 Administration > BizTalk Group > Applications > Lab5 y a continuación haga clic sobre Receive Locations. En el panel derecho, haga clic con el botón derecho del ratón sobre RcvExpensesPOP3, y seleccione Enable.
Una vez habilitada la ubicación de recepción, vamos a crear y enviar un mensaje de correo con un informe de gastos adjunto. Para ello, desde el menú inicio, haga clic en todos los programas y a continuación, haga clic en Outlook Express. En Outlook Express, haga clic en el botón Create Mail.
En la ventana New Message, escriba Expenses@bts2006.com en el campo To, y escriba Expense Report Submittal en el campo Subject. En el menú Insert, haga clic en File Attachment. En el cuadro de diálogo Insert Attachment, desplácese a la ubicación C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages, seleccione el archivo Over100.xml, y haga clic en Attach. Por último, en la ventana Expense Report Submittal, haga clic en Send.
Si ahora navegamos a la ruta C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages\Approval-Denial OUT podemos observar ha sido satisfactoriamente recibido en dicho directorio.
Seguidamente vamos a mover el archivo (mensaje) {GUID}.xml al directorio Approval-Denial IN y vamos a completar el proceso de aprobación de forma manual para el informe de gastos. Para ello, vamos a navegar al directorio OUT y eliminar el mensaje, y seguidamente acceder al directorio Accounting y eliminar también el mensaje que aparece. Con este paso limpiamos los directorios de los mensajes de los archivos procesados.
Ejercicio 3: Modificar dos puertos de envió para utilizar el adaptador de Sharepoint
El adaptador de Windows Sharepoint Services se utiliza para enviar o recibir mensajes a/desde librerías de documentos de Sharepoint. Esta integración proporciona una excelente manera de gestionar y almacenar los mensajes. En este ejercicio, vamos a modificar dos de los puertos enviar utilizar el adaptador de SharePoint.
La primera tarea va a consistir en cambiar el nombre y el tipo de transporte para el puerto de envío SndForApprovalFILE. Para ello, acceda a la consola de administración de BizTalk, debajo de Lab5, sitúese sobre Send Ports, y haga doble clic sobre el puerto de envió SndForApprovalFile. En la ventana de las propiedades del puerto de envío, cambie el nombre a SndForApprovalWSS, y entonces en el campo Type, haga clic en Windows Sharepoint Services.
A continuación, vamos a configurar el adaptador de Sharepoint. Para ello haga clic en el botón Configure, y acceda a la ventana de diálogo Windows SharePoint Services Transport Properties, para establecer las siguientes propiedades y pulse el botón OK:
Propiedad Valor
Adapter Web Service Port 13016
Destination Folder URL Expense Reports
Sharepoint Site URL http://localhost:13016/
En la ventana de diálogo Send Port Properties, asegúrese que el campo Send pipeline está establecido a PassThruTransmit y pulse en botón OK. Seguidamente vamos a cambiar el nombre y el tipo de transporte para el puerto de envío SndAccountingAckFILE. Para ello, haga doble clic sobre el puerto de envío SndAccountingAckFILE y cambie el campo Name a SndAccountingAckWSS, y seleccione Windows SharePoint Services en el campo Type.

Ahora vamos a configurar de nuevo el adaptador. Para ello, haga clic en el botón Configure y establezca en el cuadro de diálogo Windows SharePoint Services Transport Properties las siguientes propiedades y pulse el botón OK:
Propiedad Valor
Adapter Web Service Port 13016
Destination Folder URL Processed Expense Reports
Sharepoint Site URL http://localhost:13016/
De nuevo, en la ventana de diálogo Send Port Properties, asegúrese que el campo Send pipeline está establecido a PassThruTransmit y pulse en botón OK.
Ejercicio 4: Modificar una ubicación de recepción para utilizar el adaptador de Sharepoint
En este ejercicio vamos a visualizar como el adaptador de Windows SharePoint Services utiliza las vistas de SharePoint para conocer que documentos deberían ser procesados desde el sitio de Sharepoint. Las vistas de Sharepoint muestran todos los documentos con un estado que no sea igual a New (las librerías de documentos de Sharepoint utilizan un nombre de columna denominada ReportStatus para almacenar el estado). Mediante este ejercicio editaremos la ubicación de recepción existente para utilizar el adaptador de Sharepoint para controlar la biblioteca de documentos Processed Expense Reports.
Para ello, en la consola de administración de BizTalk Server, por debajo de la aplicación Lab5, haga clic en Receive Locations, y a continuación, haga doble clic en RcvApproval-DenialFILE.
En la ventana de propiedades de la ubicación de recepción, cambie el campo Name a RcvApproval-DenialWSS y seleccione Windows SharePoint Services en el campo de lista Type.

Ahora vamos a configurar el adaptador para que utilice las vistas que están especificadas en el sitio de Sharepoint. Cualquier archivo que se encuentre en la vista que el adaptador de Sharepoint utiliza, será procesado. Haga clic en el botón Configure, establezca en el cuadro de diálogo Windows SharePoint Services Transport Properties las siguientes propiedades y pulse el botón OK:
Propiedad Valor
Adapter Web Service Port 13016
Polling Interval 15
SharePoint Site URL Http://localhost:13016/
Source Document Library URL Expense Reports
View Name Processed
Vuelva a pulsar el botón OK para confirmar los cambios en la ventana de propiedades de la ubicación de recepción.
Ejercicio 5: Comprobando la aplicación
La aplicación se encuentra lista para probarla. El mensaje del informe de gastos se recibirá como un adjunto de correo y será entonces posteado a la biblioteca de documentos Expense Reports. Dicha biblioteca es entonces evaluada y los informes de gastos serán manualmente aprobados o denegados. A continuación, el mensajes será de nuevo procesado por BizTalk. Finalmente, la confirmación es posteada de forma simultanea a una biblioteca de Sharepoint diferente (Processed Expense Reports) y a un directorio en disco.
Para comprobar la aplicación, vamos a enviar un mensaje de correo, cambiaremos el estado del informe de gastos en el sitio de Sharepoint, y entonces comprobaremos que el mensaje transformado ha sido enviado de nuevo al sitio de Sharepoint.
Para ello, sitúese en Platform Settings, y haga clic en Host Instances. En el panel derecho, haga clic con el botón izquierdo del ratón sobre BizTalkServerApplication, y a continuación haga clic en Restart.
En el menú inicio, sitúese sobre todos los programas, y a continuación, haga clic en Outlook Express. En Outlook Express, haga clic en el botón Create Mail. En la ventana New Message, indique Expenses@bts2006.com en el campo To, e indique Expense Report Submittal en el campo Subject. Desde el menú Insert, haga clic en File Attachment y adjunte el mensaje Over100.xml que se encuentra en la ubicación C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages y pulse el botón Send.
A continuación, repita todos los pasos anteriores para crear otro mensaje, pero esta vez adjuntando el archivo Under100.xml. Una vez enviados los dos correos, vamos a aprobar uno de ellos. Para ello, abra el navegador web y acceda al repositorio de Sharepoint (http://localhost:13016). Seguidamente, haga clic en el enlace Documents (situado en el panel izquierdo del sitio de trabajo) y seleccione Expense Reports.
Haga clic sobre el primer mensaje Msg-{GUID} y en la ventana descarga de archivos, haga clic en Open. El mensaje se abrirá en Microsoft Office InfoPath 2007. Si el montante del informe de gastos en menor que $100, elija Approved en el campo Status. Si el montante del informe de gastos en mayor que $100, elija Declined en el campo Status. Guarde y cierre el formulario de InfoPath. Haga el mismo proceso con el segundo mensaje, pero esta vez indicando Declined en el campo Status. Refresque el navegador y observe que los dos mensajes han desaparecido una vez que el campo Status ha sido cambiado, siendo recogidos por BizTalk Server para procesado adicional. Si accedemos ahora a la biblioteca de documentos Processed Expense Reports, al igual que accedimos a la biblioteca Expense Reports, podemos observar que ya se encuentran procesados los dos mensajes, uno con estado aprobado y otro con estado rechazado.
Ejercicio 6: Crear una orquestación para manejar mensajes fallidos
Ahora que los informes de gastos pueden ser enviados vía correo electrónico, y manualmente aprobados o denegados utilizando el sitio de Sharepoint, necesitamos construir una interfaz de usuario para manejar los informes de gastos que contienen información inválida. Esta nueva característica de BizTalk Server 2006 se conoce como subscripción de mensajes fallidos. El objetivo es crear una orquestación que subscribirá los mensajes fallidos. La orquestación agregará información del error del informe que se generará cuando el mensaje falle y la agregará al mensaje para que se envíe a la orquestación de BizTalk para que se produzca la intervención humana correspondiente.
Resumiendo, en este ejercicio, vamos a crear una orquestación que procese los mensajes fallidos. A continuación escribiremos dos expresiones que agregarán la información del error del informe al mensaje fallido. Para ello, en el explorador de soluciones de Visual Studio 2005, haga clic con el botón derecho del ratón sobre el proyecto Error Handling, haga clic en Add, y a continuación en New Item. En la ventana de diálogo Add New Item, haga clic en Orchestration Files en el panel de la izquierda, en el campo Name introduzca ErrorHandler.odx, y a continuación haga clic en el botón Add. (Si se abre un cuadro de diálogo indicando si queremos sobrescribir el archivo existente, elija Yes para sobrescribir el archivo).
A continuación, vamos a crear el mensaje que utilizará la orquestación. La orquestación utilizará dos tipos de mensajes XML que actuarán como contenedores para los mensajes de error generados cuando un mensaje inválido sea enviado. Para ello, active la vista de Orquestaciones (Orchestration View) desde el menú View==>Other Windows==>Orchestration View
Una vez activada la vista de orquestaciones, haga clic con el botón derecho del ratón sobre Messages, y a continuación haga clic en New Message.
En la ventana de propiedades del mensaje, cambie la propiedad Identifier a FailedMessage y en el campo de lista Message Type, expanda .NET Classes, y a continuación haga clic sobre <Select from referenced assembly…>.
En el cuadro de diálogo Select Artifact Type, expanda System.Xml, y haga clic en { } System.Xml. En el panel derecho, haga clic en XmlDocument, y pulse el botón OK.
Repita los pasos anteriores para crear otro mensaje con el campo Identifier igual a ErrorReportMessage. Seguidamente vamos a agregar una forma de recepción (receive shape) a la orquestación ErrorHandler. La orquestación subscribirá directamente el mensaje. Esto significa que no habrá un puerto físico para pasar el mensaje a la orquestación. La orquestación será utilizada para procesar mensajes fallidos que son recibidos a través del puerto RcvExpenses.
Para ello, en el diseñador de orquestaciones, haga clic con el botón derecho sobre Drop a shape from the toolbox here, seleccione Insert Shape, y haga clic sobre Receive.
Configure la forma de recepción con los siguientes valores:
Propiedad Valor
Activate True
Message FailedMessage
Name Failed Message IN
En la ventana de propiedades de la forma de recepción Failed Message IN, haga clic en el botón Ellipsis (…) al lado de Filter Expression. En la primera línea del cuadro de diálogo Filter Expression, establezca el campo Property a ErrorReport.ErrorType, establezca el campo Operator a ==, e indique “FailedMessage” en el campo Value (incluyendo las comillas) y a continuación haga clic en Click here to add a new row!
En la segunda línea del filtro, establezca el campo Property a ErrorReport.ReceivePortName, el campo Operator a ==, e indique “RcvExpenses” en el campo Value (incluyendo las comillas dobles). Establezca la propiedad Group By a Or, y pulse el botón OK.

A continuación, establezca la orquestación para que sea de larga duración. Cualquier transacción que contenga otra transacción debe ser una transacción de larga duración. Para establecer que la transacción es de larga duración haga clic en Orchestration Start Shape (el círculo verde situado en lo más alto de la orquestación). En la ventana de propiedades, establezca la propiedad Transaction Type a Long Running.

Ahora vamos a agregar una forma Scope a la orquestación. Para ello, haga clic con el botón derecho del ratón por debajo de la fecha de la forma Failed Message In, seleccione Insert Shape y haga clic sobre Scope.
Configure la forma Scope con las siguientes propiedades:
Propiedad Valor
Transaction Type Atomic
Retry False
Name Contruct ErrorReport
El siguiente paso será agregar dos variables a la forma Scope Construct Error Report, creada en el paso anterior. Esas variables se usaran en formas de expresión (Expression Shapes) para crear el mensaje de error. Para ello, en la vista de orquestaciones, expanda Construct Error Report, haga clic con el botón derecho del ratón sobre Variables, y a continuación seleccione New Variable.

Cambie la propiedad Identifier a markup, y establezca la propiedad Type a String.

Repita el mismo proceso para crear una nueva variable con la propiedad Identifier a XMLDoc, e indicando <.NET Class…> en la propiedad Type. En el cuadro de diálogo Select Artifact Type, expanda System.Xml, y haga clic en { } System.Xml, seleccionando en el panel derecho XmlDocument. Pulse en botón OK.
Seguidamente vamos a agregar una forma expresión (Expression Shape) a la orquestación. Esta expresión creará un mensaje xhtml que será agregado al informe de gastos original. Este mensaje xhtml contendrá la información del error del informe. En la forma Scope, haga clic sobre Drop a shape from the toolbox here, seleccione Insert Shape, y haga clic en Expression.
En la ventana de propiedades, cambie el campo Name de la forma expression a Set Error Details, y haga clic en el botón Ellipsis (…) situado junto a la propiedad Expression. Abra el archivo SetErrorDetails.txt situado en la ubicación C:\MSLabs\BizTalk Server 2006 R2\Core Labs \Lab 5\Start\ con el bloc de notas y copie la expresión dentro de la ventana del editor de expresiones de BizTalk.

Cierre el bloc de notas y pulse OK en el editor de expresiones de BizTalk. A continuación agregaremos una forma de mensaje de asignación a la orquestación. Esta forma creará el mensaje ErrorReportMessage y agregará la información del error a los nodos de error del mensaje del informe de gastos. Para ello, desde el cuadro de herramientas, arrastre y suelte la forma Message Assignment debajo de la forma de expresión Set Error Details dentro del ámbito Construct ErrorReport.
Haga clic en la forma ConstructMessage_1, cambie el nombre a Construct ErrorReportMessage, y establezca la propiedad Message Constructed a ErrorReportMessage.

Seguidamente, haga clic sobre la forma MessageAssignment_1, cambie la propiedad Name a Add Error Details, y entonces haga clic sobre el botón de los puntos suspensivos (…) al lado de la propiedad Expression. Abra el archivo C:\MSLabs\BizTalk Server 2006 R2\Core Labs \Lab 5\Start\AddErrorDetails.txt en el bloc de notas y copie el contenido dentro de la ventana del editor de expresiones de BizTalk Server.
Cierre el bloc de notas y en el editor de expresiones de BizTalk pulse el botón OK. A continuación vamos a agregar una forma de envío a la orquestación. Para ello, haga clic con el botón derecho del ratón en la flecha inferior debajo de la forma de ámbito Construct ErrorReport, seleccione Insert Shape, y haga clic en Send.
En la ventana de propiedades para la forma de envío, cambie la propiedad Name a ErrorReport OUT, y establezca la propiedad Message a ErrorReportMessage
Ahora sólo queda configurar los puertos de recepción y de envío de la orquestación. Para ello, haga clic con el botón derecho del ratón sobre Port Surface (situado a la izquierda) del diseñador de orquestaciones y seleccione New Configured Port.
En el asistente de configuración de puertos, haga clic en el botón Next.
En la página Port Properties, cambie el nombre a GetFailedMessages, y haga clic en el botón Next.
En la página Select a Port Type, establezca Port Type Name a GetFailedMessages_Type, y haga clic en el botón Next.
En la página Port Binding, seleccione I’ll always be receiving messages on this port para Port direction of communication, elija Direct desde la lista Port binding, y verifique que Routing between ports will be defined by filter expressions on incoming messages in the Message Box database se encuentra seleccionado,y haga clic en el botón Next para hacer clic en el botón Finish.
Ahora vamos con el puerto de envío. Para ello haga clic con el botón derecho del ratón sobre Port Surface (situado en la parte derecha del diseñador de orquestaciones) y haga clic sobre New Configured Port.
En el asistente de configuración de puertos, haga clic en el botón Next.

En la página Port Properties, cambie la propiedad Name a ErrorReportSend, y haga clic en el botón Next.

En la página Select a Port Type, establezca Port Type Name a ErrorReportSend_Type, y haga clic en el botón Next.
En la página Port Binding, elija I’ll always be sending messages on this port en Port direction of communication, y haga clic en el botón Next para a continuación hacer clic en Finish.

Por último solo queda conectar los puertos de la orquestación a las formas. Para ello, haga clic en el conector verde del puerto de recepción GetFailedMessages y arrastre y suelte sobre la forma de recepción Failed Message IN, y haga clic sobre el conector verde del puerto de envío ErrorReportSend y arrastre y suelte sobre la forma de envío ErrorReport OUT.

Ejercicio 7: Desplegar, configurar y testear la aplicación
Ahora que la orquestación para el manejo de errores ha sido finalizada, podemos comprobar todo el proceso. En este ejercicio vamos a desplegar el proyecto con la nueva orquestación creada. Vamos a crear un nuevo puerto para la orquestación del manejo de errores, y entonces configuraremos el enlazado e iniciaremos la aplicación. Una vez que la aplicación esta ejecutándose, enviaremos un mensaje inválido vía correo electrónico, corregiremos el mensaje utilizando el sitio de Sharepoint, y entonces volveremos a enviar el mensaje y completar el proceso de negocio.
Para ello, en el explorador de soluciones, haga clic con el botón derecho del ratón sobre el proyecto ErrorHandling, y haga clic en Deploy. En la consola de administración de BizTalk Server 2006, expanda Plattform Settings, y a continuación sitúese sobre Host Instances. Haga clic con el botón derecho del ratón sobre BizTalkServerApplication y haga clic en Restart.
A continuación vamos a crear un nuevo puerto de envío. Este puerto se utilizará para el envío de los mensajes fallidos a una librería de formularios de Sharepoint donde se evaluarán y/o corregirán por un trabajador del negocio. Para conseguir dicho fin, en la consola de administración de BizTalk Server, expanda la aplicación Lab5, haga clic en Send Ports, sitúese en New, y haga clic en Static One-way Send Port.
En la ventana de las propiedades del puerto de envío, cambie la propiedad Name a SndErrorWSS, elija Windows Sharepoint Services en la lista Type, y a continuación haga clic en Configure.
En el cuadro de diálogo Windows Sharepoint Services Transport Properties, configure las propiedades con los valores que se muestran a continuación y pulse el botón OK:
Propiedad Valor
Adapter Web Service Port 13016
Destination Folder URL Failed Expense Reports
Sharepoint Site URL Http://localhost:13016/
En la página Send Port Properties, haga clic en OK. Seguidamente vamos a configurar la aplicación. Para ello, en la consola de administración de BizTalk, haga clic con el botón derecho del ratón sobre Lab5 y haga clic en Refresh. A continuación, en la consola de administración de BizTalk, haga clic con el botón derecho del ratón sobre la aplicación Lab5 y haga clic sobre Configure.
En el panel izquierdo de la ventana de configuración de la aplicación, haga clic sobre ErrorHandler. En el campo Host, seleccione BizTalkSeverApplication, en la lista Send Ports/Send Port Groups seleccione SndErrorWSS y pulse el botón OK.
Haga clic con el botón derecho sobre la aplicación Lab5 y haga clic en Start.
b. In the Start ‘Lab5’ Application dialog box, click Start. A continuación, vamos a enviar un informe de gastos inválido. El informe de gastos inválido no cumplirá los criterios establecidos por el esquema. La cuenta de correo tiene dos @. Para ello, abra Outlook Express, si no se encuentra abierto y haga clic sobre el botón Create Mail. En la ventana de nuevo mensaje, indique Expenses@bts2006.com en el campo To, e indique Submit Expenses en la línea Subject. En el menú Insert, haga clic sobre File Attachment y seleccione el archivo WithError.xml que se encuentra en la ubicación C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages, y a continuación haga clic en Attach para por último hacer clic en Send.
En Internet Explorer, navegue al sitio de Sharepoint en la ubicación http://localhost:13016/ y en la sección izquierda, haga clic en View All Site Content y a continuación haga clic en el enlace Failed Expense Reports.
Una vez dentro del repositorio, haga clic sobre el enlace Msg-GUID y en el cuadro de diálogo File Download, haga clic en Open.
En el campo de formulrio Email, observe que el borde de color rojo del campo. Si se sitúa sobre dicho campo, podrá acceder con el botón derecho del ratón a la descripción del error, que se traduce en que al valor introducido le falta añadirle la extensión de dominio (.com,.net,.org,…)
Cambie el campo Report Date a la fecha de hoy, y entonces agregue el .com al final de la dirección de correo que esta causando el error en la dirección. En el menú File, haga clic en Save As. En el cuadro de diálogo Save As, navegue a la ubicación C:\MSLabs\BizTalk Server 2006 R2\Core Labs\Work\Lab 5\Messages, cambie el nombre del archivo a Fixed.xml y haga clic en Save para por último cerrar InfoPath.
Seguidamente, vamos a enviar el mensaje con el error subsanado (Fixed.xml). El mensaje será ahora procesado de la misma forma que cualquier otro mensaje válido. Para ello, vuelva a enviar un correo con Outlook Express al usuario Expenses@bts2006.com, con el mismo asunto, pero esta vez adjunte el fichero Fixed.xml guardado en el paso anterior, y haga clic en el botón Send.
En Internet Explorer, haga clic sobre el enlace View All Site Content y a continuación haga clic sobre el repositorio Expense Reports.
Haga clic en el enlace Msg-GUID y en la ventana de diálogo File Download, haga clic en Open. Cambie el campo Status a Approved, a continuación en el menú File, haga clic en Save, y cierre InfoPath.
Vuelva a hacer clic sobre el enlace View All Site Content y acceda al repositorio Processed Expense Reports. Haga clic sobre el enlace Msg-GUID más reciente para ver el mensaje aprobado.
Para acabar, vamos a eliminar la aplicación. Para ello, en la consola de administración BizTalk Server 2006, haga clic con el botón derecho del ratón sobre la aplicación Lab5 y seleccione Stop. Si la pestaña Options no esta visible, haga clic sobre el botón de opciones para expandir las opciones de parada. Seleccione la opción Full Stop – Terminate Instances y haga clic en Stop.
Después de que el proceso se complete, haga clic con el botón derecho del ratón sobre la aplicación Lab5 y seleccione Delete. Expanda Platform Settings > Host Instances en la vista de árbol y seleccione BizTalkServerApplication en el panel derecho. Haga clic con el botón derecho del ratón y elija Restart.