ExpenseReportSubmission
El ejemplo ExpenseReportSubmission indica cómo enviar un documento a una orquestación de BizTalk Server desde una aplicación cliente enriquecida como Microsoft Excel.
Las aplicaciones cliente enriquecidas le permiten realizar una serie de acciones, como la validación de datos y cálculos previos, en el equipo cliente. Esto ayuda a minimizar las interacciones con el servidor de servicios de fondo, lo que puede resultar útil cuando solo hay disponibles conexiones con poco ancho de banda.
Requisitos previos
Debe asegurarse de que el entorno de desarrollo se configura y habilita para trabajar con los servicios Web de BizTalk Server. Para obtener más información, consulte Habilitación de servicios web.
Descripción del ejemplo
Este ejemplo indica cómo enviar un informe de gastos a BizTalk Server directamente desde Excel, mediante la siguiente secuencia de pasos:
El usuario realiza los pasos manuales del ejemplo que se proporcionan en la hoja de cálculo de Excel.
El código de macros de la hoja de cálculo convierte los datos de ésta en formato de Lenguaje de marcado extensible (XML) y, mediante una conexión HTTP, envía el mensaje XML a BizTalk Server.
El equipo que está ejecutando BizTalk Server recupera el mensaje de informe de gastos XML, valida su formato utilizando el esquema proporcionado y lo coloca en una carpeta distinta.
En la práctica, más allá del alcance de este ejemplo, otra aplicación como, por ejemplo, un sistema de planeamiento de recursos empresariales (ERP) recuperaría el archivo de la hoja de cálculo para un procesamiento posterior.
Ubicación del ejemplo
<Ruta de acceso de> ejemplos\AdaptersUsage\ExpenseReportSubmission\
En la tabla siguiente se enumeran los archivos del ejemplo y se describe su propósito.
Archivos | Descripción |
---|---|
Cleanup.bat | Anula la implementación de ensamblados y los elimina de la caché de ensamblados global (GAC); elimina puertos de envío y de recepción; elimina directorios virtuales de los Servicios de Microsoft Internet Information Server (IIS) según sea necesario. |
ExpenseReport.15.3.xls | Hoja de cálculo de Excel con el diseño de informe de gastos, macros asociadas y botones para invocar las macros. |
MessageExample.xml | Ejemplo de formato de informe de gastos XML. |
Setup.bat | Crea e inicializa este ejemplo. |
En la carpeta \BTSExpenseDemo: AssemblyInfo.cs, BTSExpenseDemo.btproj, BTSExpenseDemo.sln |
Proporciona archivos de proyectos, de soluciones y archivos relacionados para este ejemplo. |
En la carpeta \BTSExpenseDemo: BTSExpenseDemoBinding.xml |
Se utiliza para la instalación automatizada, como el enlace de puertos. |
En la carpeta \BTSExpenseDemo: BTSExpenseOrchestration.odx |
Proporciona una orquestación de BizTalk Server para este ejemplo. |
En la carpeta \BTSExpenseDemo: SchemaExpenseReport.xsd |
Proporciona un esquema para el formato de informe de gastos XML. |
Para generar e inicializar el ejemplo
En una ventana de comandos, desplácese a la siguiente carpeta:
<Ruta de acceso de> ejemplos\AdaptersUsage\ExpenseReportSubmission
Ejecute el archivo Setup.bat que realiza las acciones siguientes:
Compila el proyecto de Microsoft Visual Studio para este ejemplo e implementa el ensamblado resultante.
Crea y enlaza los puertos de recepción y envío de BizTalk Server.
Nota
Este ejemplo muestra las siguientes advertencias al crear y enlazar los puertos:
Warning: Receive handler not specified for receive location "BTSExpenseReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.BTSExpenseDemo.BTSOrchestration"; 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.
Configura IIS.
Enlaza e inicia la orquestación de BizTalk Server.
Establece la dirección HTTP para la ubicación que espera la hoja de cálculo de Excel.
Nota
Para obtener más información sobre el filtro ISAPI de BizTalk, vea Cómo configurar IIS para una ubicación de recepción HTTP.
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 selecciona abrir y crear el proyecto de este ejemplo sin ejecutar el archivo 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 el ensamblado resultante.
Nota
Para deshacer los cambios realizados por Setup.bat, ejecute Cleanup.bat. Debe ejecutar Cleanup.bat antes de ejecutar Setup.bat por segunda vez.
El archivo setup.bat configura el directorio virtual de este ejemplo para ejecutarlo en el grupo de aplicaciones de IIS asociado al sitio Web predeterminado. Para configurar el directorio virtual de este ejemplo para que se ejecute en el contexto de un usuario en los usuarios host aislados de BizTalk y IIS_WPG grupos de usuarios, debe configurar el directorio virtual para que se ejecute en un nuevo grupo de aplicaciones de IIS. Configure el directorio virtual para ejecutarlo en un grupo de aplicaciones IIS nuevo realizando los pasos que se indican a continuación:
Nota
Si ya ha creado un grupo de aplicaciones nuevo para otro ejemplo de SDK, puede continuar con el último punto que aparece más abajo.
Haga clic en Inicio, seleccione Programas, Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
En el Administrador de Internet Information Services (IIS), vaya a la carpeta Grupos de aplicaciones .
Haga clic con el botón derecho en la carpeta Grupos de aplicaciones y haga clic en Nuevo, Grupo de aplicaciones...
Escriba un nombre para el identificador del grupo de aplicaciones: como BizTalkSDKSamples, compruebe que la opción Usar la configuración predeterminada para el nuevo grupo de aplicaciones está seleccionada y haga clic en Aceptar para crear el nuevo grupo de aplicaciones.
Haga clic con el botón derecho en el nuevo grupo de aplicaciones y, a continuación, haga clic en Propiedades.
Haga clic en la pestaña Identidad del cuadro de diálogo de propiedades y cambie la identidad en la que se ejecuta este grupo de aplicaciones a un usuario que sea miembro del grupo de usuarios de host aislado de BizTalk . Este usuario también debe ser miembro del grupo de usuarios de IIS_WPG local.
Configure el directorio virtual de este ejemplo SDK para ejecutarlo en el grupo de aplicaciones nuevo. El valor Grupo de aplicaciones: está disponible en la pestaña Directorio virtual del cuadro de diálogo Propiedades del directorio virtual. El directorio virtual creado para este ejemplo es ExpenseReportSubmission.
Agregue una extensión de servicio Web a IIS para HTTPReceive.dll
En el Administrador de Internet Information Services (IIS), vaya a la carpeta Extensiones de servicio web .
Haga clic con el botón derecho en la carpeta Extensiones de servicio web y seleccione Agregar una nueva extensión de servicio web para mostrar el cuadro de diálogo Nueva extensión de servicio web .
Escriba ExpenseReportSubmission como nombre de extensión:
Haga clic en Agregar para mostrar el cuadro de diálogo Agregar archivo .
Haga clic en Examinar para mostrar el cuadro de diálogo Abrir y vaya a <BizTalk Server carpeta> Instalación\HttpReceive\BTSHTTPReceive.dll y haga clic en Abrir y, a continuación, haga clic en Aceptar.
Habilite la opción Establecer el estado de la extensión en Permitido y haga clic en Aceptar.
Ejecución del ejemplo
Utilice el siguiente procedimiento para ejecutar el ejemplo ExpenseReportSubmission.
Nota
Si está utilizando las características de seguridad mejorada de Microsoft Excel, es posible que las macros estén deshabilitadas en la hoja de cálculo. Siga las instrucciones proporcionadas por Excel sobre cómo ejecutar macros no asignadas desde una fuente confiable.
Para ejecutar el ejemplo
Abra el archivo de Excel ExpenseReport.15.3.xls que se incluye con este ejemplo.
Si lo desea, cambie los datos del ejemplo en la hoja de cálculo sin cambiar su formato.
En la hoja de cálculo, haga clic en Iniciar para realizar cálculos locales.
El texto del botón cambia de Iniciar a Enviar.
En la hoja de cálculo, haga clic en Enviar.
Observe el texto del mensaje enviado, el resultado en la parte superior de la tabla con el fondo amarillo (celda C7) y el código devuelto y la descripción de texto en la parte inferior y a la derecha (celda G23).
Si el envío no se produce correctamente, vuelva a intentarlo. Además, vea la tabla de solución de problemas que aparece en la sección Comentarios.
Comentarios
Escenarios como éste se pueden dar cuando, por ejemplo, un equipo de ventas de campo está equipado con versiones anteriores de Microsoft Windows que no admiten .NET Framework y para el que no es viable el requisito de actualizar a una versión más actual.
Las características esenciales que se muestran en este ejemplo son las siguientes:
Envío desde una aplicación cliente enriquecida (que no esté basada en .NET)
Integración con Microsoft Office
Conexiones de recepción HTTP
Orquestaciones sencillas
Adaptador de archivo
En la siguiente tabla se muestran algunos posibles errores de envío y sus soluciones.
Código de error HTTP | Acción posible |
---|---|
401 No autorizado | Habilitar el acceso anónimo al directorio virtual. |
503 Servicio no disponible y la mayoría del resto de códigos HTTP en los rangos 400 y 500 | Asegurarse de que se ejecuta el host y de que se ha implementado el servicio, está enlazado al puerto correcto y se ha iniciado. |