Compartir a través de


Adaptador de archivo (ejemplo de BizTalk Server)

El ejemplo de adaptador de archivo se escribe en Microsoft Visual C# .NET para trabajar con Microsoft BizTalk Server. Proporciona código para construir un adaptador estático o dinámico. Sin embargo, el siguiente procedimiento solo describe el adaptador estático. Un adaptador estático es un adaptador con un conjunto de esquemas estático y sin interfaz de usuario personalizada. Un adaptador dinámico tiene una interfaz de usuario personalizada y posiblemente un conjunto de esquemas dinámico. Tanto los adaptadores estáticos como los dinámicos utilizan el Asistente para agregar adaptador para agregar sus esquemas a un proyecto de BizTalk.

Nota

El ejemplo del adaptador de archivo no es el mismo que el adaptador de ARCHIVO nativo que se incluye con BizTalk Server. Por lo tanto, al seleccionar el tipo de transporte que se va a utilizar con este ejemplo seleccione “estático” en lugar de Archivo.

El adaptador dinámico, al tener una interfaz de usuario personalizada y posiblemente un conjunto de esquemas dinámico, requerirá código adicional en la administración del adaptador. Para comprender mejor el uso del conjunto dinámico de esquemas, consulte Dynamic Design-Time Adapter Configuration(Configuración dinámica del adaptador de Design-Time).

Descripción del ejemplo

El adaptador de ejemplo copia archivos de una carpeta de archivos, envía a BizTalk como mensajes o toma mensajes de BizTalk Server y quita a una carpeta de archivos. Proporciona código para construir un adaptador dinámico o estático; sin embargo, el siguiente procedimiento sólo describe el adaptador estático. Un adaptador estático es un adaptador con un conjunto de esquemas estático y sin interfaz de usuario personalizada. Un adaptador dinámico tiene una interfaz de usuario personalizada y posiblemente un conjunto de esquemas dinámico. Tanto los adaptadores estáticos como los dinámicos utilizan el Asistente para agregar adaptador para agregar sus esquemas a un proyecto de BizTalk.

Puede utilizar el adaptador de archivo de ejemplo como una plantilla en la que crear otros adaptadores personalizados.

Ubicación del ejemplo

<Ruta de acceso de> ejemplos\AdaptersDevelopment\File Adapter

Nota

La ubicación predeterminada de <la ruta> de acceso de ejemplos es %ProgramFiles%\Microsoft BizTalk Server\SDK\Samples cuando se instala BizTalk Server en un equipo que ejecuta una versión de 32 bits de Windows. La ubicación predeterminada de <la ruta> de acceso de ejemplos es %ProgramFiles(x86)%\Microsoft BizTalk Server\SDK\Samples cuando se instala BizTalk Server en un equipo que ejecuta una versión de 64 bits de Windows. Para determinar los valores asociados a las variables de entorno %ProgramFiles% o %ProgramFiles(x86)% , escriba echo %ProgramFiles% o echo %ProgramFiles(x86)% en un símbolo del sistema y presione ENTRAR. Si ejecuta este ejemplo en un sistema operativo de 64 bits, deberá cambiar todas las referencias de cualquiera de los archivos .reg de %ProgramFiles% a %ProgramFiles(x86)% antes de ejecutar los archivos .reg.

En las siguientes tablas se enumeran los archivos del ejemplo y se describe el propósito de cada uno.

Archivos de \File Adapter Descripción
Archivos de \BizTalk Project Contiene el proyecto de instrumento de adaptador que se utiliza para probar el adaptador de ejemplo.
Archivos de \Design Time Contiene el tiempo de diseño y el proyecto de administración (AdapterManagement.csproj).
Archivos de \Runtime Contiene los proyectos de recepción y transmisión de copia de archivos en tiempo de ejecución (DotNetFile.csproj).
DynamicAdapterManagement.reg Registra el adaptador dinámico de ejemplo.
Instance.xml Archivo de ejemplo para pasar a través del adaptador de archivo.
StaticAdapterManagement.reg Registra el adaptador estático de ejemplo.
Archivos de \BizTalk Project\Adapter Harness Descripción
AdapterHarness.odx, AdapterHarness.sln y AdapterHarnessProject.btproj Proporciona archivos de proyecto, de solución y archivos relacionados para el proyecto de BizTalk.
mySchema.xsd Proporciona el esquema Instance.xml que espera la orquestación de instrumento de la parte de recepción del adaptador, así como el esquema Instance.xml que la orquestación entrega a la parte de envío del adaptador.
Archivos de \Design Time\Adapter Management Descripción
AdapterManagement.cs, AdapterManagement.csproj y AdapterManagement.sln Archivos de proyecto, de solución y archivos relacionados para el tiempo de diseño del adaptador.
AssemblyInfo.cs Contiene información de ensamblado de este ejemplo.
CategorySchema2.xml No lo utiliza el adaptador de ejemplo.
CategorySchema.xml Contiene el árbol de organización de servicio del adaptador estático.
DotNetFileResource.resx Contiene recursos.
ReceiveHandler.xsd, ReceiveLocation.xsd Contiene el controlador de recepción y esquemas de propiedades personalizadas de extremos
service1.wsdl Contiene definiciones de operación del adaptador.
TransmitHandler.xsd, TransmitLocation.xsd Contiene el controlador de transmisión y esquemas de propiedades personalizadas de extremos
Archivos de \Runtime Descripción
DotNetFile.csproj y DotNetFile.sln

AssemblyInfo.cs,

DotNetFileExceptions.cs, DotNetFileProperties.cs, DotNetFileReceiver.cs, DotNetFileReceiverEndPoint.cs, DotNetFileTransmitter.cs,

DotNetFileTransmitterEndpoint.cs,

DotNetFileAsyncTransmitterBatch.cs

BatchMessage.cs
Archivos para los adaptadores de recepción y envío de copias de archivo en tiempo de ejecución. Puede modificar estos archivos y guardarlos con un nombre nuevo para los componentes personalizados.

DotNetFile.csproj y DotNetFile.sln son los archivos de proyecto y solución.

AssemblyInfo.cs contiene información de ensamblado de este ejemplo.

DotNetFileReceiver.cs lee los archivos de las ubicaciones de recepción y los envía a BizTalk Server.

DotNetFileExceptions.cs implementa código para controlar excepciones durante el procesamiento de mensajes.

DotNetFileProperties.cs contiene propiedades comunes tanto para las operaciones de envío como de recepción

BatchMessage.cs implementa la mensajería de lotes.

DotNetFileReceiverEndPoint.cs es una clase que corresponde a una ubicación de recepción/URI. Controla el sondeo de la carpeta dada para obtener mensajes nuevos.

DotNetFileTransmitter.cs es una clase singleton para el adaptador de envío DotNetFile. Todos los mensajes que vayan a diferentes puertos de envío de este tipo de adaptador pasan a través de esta clase.

DotNetFileTransmitterEndpoint.cs controla los mensajes de transmisión.
Archivos de \SDK\Samples\AdaptersDevelopment\BaseAdapter\v1.0.2 Descripción
Adapter.cs, AdapterException.cs, AsyncTransmitter.cs, batch.cs, ConfigProperties.cs, ControlledTermination.cs, IManageEndpoints.cs, Receiver.cs y ReceiverEndpoint.cs Proporciona las clases que constituyen el adaptador base. Puede utilizarlos para crear sus propios adaptadores.

Uso del ejemplo

Utilice el adaptador de archivo de ejemplo como una plantilla para crear otros adaptadores personalizados.

Generar este ejemplo

Importante

Si la instalación de BizTalk es de 64 bits o se modifica la ubicación de la instalación, OutboundAssemblyPath, InboundAssemblyPath y AdapterMgmtAssemblyPath deben cambiarse según corresponda.

Utilice los procedimientos siguientes para generar e inicializar el ejemplo de adaptador de archivo.

Para crear una clave de nombre seguro para los proyectos DotNetFileAdapter y el proyecto de adaptador base

  1. Inicie el símbolo del sistema de Visual Studio.

    Nota

    Ejecute el símbolo del sistema como administrador.

  2. Cambie el directorio actual al < directorio Samples Path>\AdaptersDevelopment\BaseAdapter\v1.0.2.

  3. En el símbolo del sistema, escriba sn –k BaseAdapter.snk y presione ENTRAR. Es posible que este archivo .snk exista ya como resultado de la ejecución con anterioridad de otros ejemplos. Si es así, puede ir directamente al paso 4 y saltarse éste.

  4. Cambie el directorio actual al < directorio Samples Path>\AdaptersDevelopment\File Adapter\Runtime.

  5. En el símbolo del sistema, escriba sn –k DotNetFileAdapter.snk y presione ENTRAR.

  6. En el símbolo del sistema, escriba exit y presione ENTRAR para cerrar la ventana del símbolo del sistema.

Para crear el proyecto en tiempo de ejecución del receptor

  1. Haga clic en Inicio, seleccione Todos los programas, Accesorios y, a continuación, haga clic en Explorador de Windows.

  2. Vaya al directorio Samples Path>"\AdaptersDevelopment\File Adapter\Runtime" y, a < continuación, haga doble clic en DotNetFile.sln.

  3. Para recompilar el proyecto en tiempo de ejecución del receptor de adaptadores, en Explorador de soluciones, haga clic con el botón derecho en DotNetFile y, a continuación, haga clic en Recompilar.

  4. En el menú Archivo , haga clic en Salir para cerrar Visual Studio.

Para crear el proyecto en tiempo de diseño del adaptador

  1. En el < Explorador de Windows, vaya al directorio Samples Path>"\AdaptersDevelopment\File Adapter\Design Time\Adapter Management" y, a continuación, haga doble clic en AdapterManagement.sln.

  2. En Explorador de soluciones, haga clic con el botón derecho en AdapterManagement y, a continuación, haga clic en Recompilar.

  3. En el menú Archivo , haga clic en Salir para cerrar Visual Studio.

Para registrar el adaptador estático de ejemplo

  1. En el < Explorador de Windows, vaya al directorio Samples Path>"\AdaptersDevelopment\File Adapter".

  2. Para agregar el adaptador de ejemplo al Registro, haga doble clic en StaticAdapterManagement.reg.

    Nota

    StaticAdapterManagement.reg incluye rutas de acceso codificadas de forma rígida a C:\Archivos de programa\Microsoft BizTalk Server\. Si no instaló BizTalk Server en el directorio %ProgramFiles%\Microsoft BizTalk Server\\, si actualizó la instalación de BizTalk Server desde BizTalk Server 2009 o BizTalk Server 2006 R2, o si instaló BizTalk Server en un equipo que ejecuta una versión de 64 bits de Windows, debe modificar el archivo StaticAdapterManagement.reg con las rutas de acceso adecuadas. De forma predeterminada, BizTalk Server se instala en el directorio %ProgramFiles(x86)%\Microsoft BizTalk Server\ en equipos que ejecutan una versión de 64 bits de Windows. Actualice las rutas asociadas a los valores "InboundAssemblyPath", "OutboundAssemblyPath" y "AdapterMgmtAssemblyPath" para que señalen la ubicación correcta de los archivos especificados.

    Importante

    Si instala BizTalk en una máquina de 64 bits, cambie todas las instancias de la entrada del Registro de HKEY_CLASSES_ROOT\CLSID\ a HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ en el archivo del registro StaticAdapterManagement.reg .

  3. En el cuadro de diálogo Editor del Registro , haga clic en para agregar el adaptador de ejemplo al Registro y, a continuación, haga clic en Aceptar.

  4. Para cerrar el Explorador de Windows, en el menú Archivo , haga clic en Cerrar.

Para instalar el adaptador estático de ejemplo

  1. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y, a continuación, seleccione administración BizTalk Server.

  2. En la consola de administración de BizTalk Server, haga clic para expandir BizTalk Server Administración, haga clic para expandir Grupo de BizTalk y haga clic para expandir Configuración de la plataforma.

  3. Haga clic con el botón derecho en Adaptadores, haga clic en Nuevoy, a continuación, haga clic en Adaptador.

  4. En el cuadro de diálogo Agregar adaptador , haga lo siguiente.

    Use Para hacer esto
    Nombre Escriba Static.
    Adapter (Adaptador) Seleccione DotNetFile estático en la lista desplegable.
    Comment Adaptador de ejemplo de tipo.
  5. Haga clic en OK.

    El adaptador estático aparece ahora en la lista de adaptadores en la ventana derecha de la consola de administración de BizTalk.

Para detener y reiniciar la instancia de host

  1. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y BizTalk Server Administración.

  2. En la consola de administración de BizTalk Server, haga clic para expandir BizTalk Server Administración, haga clic para expandir Grupo de BizTalk, haga clic para expandir Configuración de plataforma y haga clic en Instancias de host. Seleccione BizTalkServerApplication en el panel de la derecha.

  3. En el panel de resultados, haga clic con el botón derecho en la instancia de host (normalmente, el nombre del equipo) y, a continuación, haga clic en Reiniciar.

Ejecución del ejemplo

Para ejecutar el ejemplo del adaptador de archivo
  1. Haga clic en Inicio, seleccione Todos los programas, Accesorios y, a continuación, haga clic en Explorador de Windows.

  2. Cree las siguientes carpetas en la unidad de instalación de BizTalk Server:

    • <drive>:\Temp

    • <drive>:\Temp\Send

    • <drive>:\Temp\Receive

  3. Para cerrar el Explorador de Windows, en el menú Archivo , haga clic en Cerrar.

  4. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y, a continuación, haga clic en Administración de BizTalk Server.

  5. Haga clic con el botón derecho en el nodo Administración de BizTalk Server y seleccione Conectar al grupo existente.

  6. En el cuadro de diálogo Conectar a la base de datos de configuración de BizTalk Server existente, haga lo siguiente.

    Nota

    La base de datos de administración de BizTalk también se denomina la base de datos de configuración de BizTalk.

    Use Para hacer esto
    SQL Server Escriba . (un punto).
    Base de datos Seleccionar el nombre de la base de datos de administración de BizTalk que creó el Asistente para configuración. El nombre de base de datos predeterminado usado por el Asistente para configuración es BizTalkMgmtDb.
  7. Haga clic en OK.

  8. Expanda el nodo Grupo de BizTalk[nombre del servidor] en la consola de administración de BizTalk Server, expanda el nodo Aplicaciones, expanda el nodo Aplicación de BizTalk 1.

  9. Haga clic con el botón derecho en el nodo Puertos de envío y, a continuación, haga clic en Nuevo, seleccione Static One-Way Send Port (Puerto de envío) y, a continuación, haga clic en Aceptar.

  10. En el cuadro de diálogo Propiedades del puerto de envío, seleccione General y haga lo siguiente.

    Use Para hacer esto
    Nombre Escriba AdapterSend.
    Tipo de transporte Seleccione Estático en la lista desplegable y haga clic en Configurar.

    - En el cuadro Directorio , escriba <drive>:\Temp\Send.
    - En el cuadro Modo de archivo , seleccione CrearNuevo.
    - En el cuadro Nombre de archivo , escriba %MessageID%.xml.
    - Haga clic en Aceptar.
    - El campo URI debe mostrar <unidad>:\Temp\Send\%MessageID%.xml.
    Canalización de envío Seleccione PassThruTransmit (Microsoft.BizTalk.DefaultPipelines.PassThruTransmit) y haga clic en Aceptar.
  11. En el nodo Aplicación de BizTalk 1 , haga clic en Puertos de recepción y seleccione Nuevo /One-Way Puerto de recepción.

  12. En el cuadro de diálogo Crear nuevo puerto de recepción , en el cuadro Especificar el tipo de puerto de recepción, seleccione Puerto de recepción unidireccional en la lista desplegable y, a continuación, haga clic en Aceptar.

  13. En el cuadro de diálogo Propiedades del puerto de recepción , en el cuadro Nombre , escriba AdapterReceivey, a continuación, haga clic en Aceptar.

  14. En el nodo Aplicación de BizTalk 1 , haga clic con el botón derecho en Ubicaciones de recepción y seleccione Nueva/Ubicación de recepción unidireccional.

  15. En el cuadro de diálogo Seleccionar un puerto de recepción , seleccione AdapterReceive y haga clic en Aceptar.

  16. En el cuadro de diálogo Propiedades de ubicación de recepción , haga lo siguiente.

    Use Para hacer esto
    Nombre Type AdapterReceiveLocation
    Tipo de transporte Seleccione Estático en la lista desplegable y presione Configurar para acceder a estas propiedades restantes.
    URI - Haga clic en el botón de puntos suspensivos (...).
    - En el cuadro Número de archivos en lote , escriba 20.
    - En el cuadro Directorio , escriba <drive>:\Temp\Receive.
    - Asegúrese de que la propiedad Máscara de archivo está establecida en *.xml.
    - En el cuadro Intervalo de sondeo , escriba 5 y haga clic en Aceptar.
    - Asegúrese de que la etiqueta URI contiene <unidad>:\Temp\Receive\*.xml.
    Controlador de recepción Seleccione BizTalkServerApplication en la lista desplegable.
    Canalización de recepción Seleccione XMLReceive en la lista desplegable.
  17. Haga clic en OK.

    Continúe con la compilación, la implementación y el enlace del adaptador de ejemplo.

Generar, implementar y enlazar el adaptador de ejemplo

Antes de que se active el adaptador, debe generar el proyecto, enlazar la orquestación con los puertos y dar de alta el adaptador.

Para crear una clave de nombre seguro para el adaptador estático
  1. Inicie el símbolo del sistema de Visual Studio.

  2. En el símbolo del sistema, cambie el directorio actual al < directorio Samples Path>\AdaptersDevelopment\File Adapter\BizTalk Project\Adapter Harness.

  3. En el símbolo del sistema, escriba sn –k AdapterHarness.snk y presione ENTRAR.

  4. Haga clic en OK.

Para crear el proyecto de instrumento de adaptador
  • En Explorador de soluciones, haga clic con el botón derecho en AdapterHarnessProject y, a continuación, haga clic en Recompilar.
Para implementar el proyecto de instrumento de adaptador
  1. En Explorador de soluciones, cuando el proyecto se haya vuelto a generar, haga clic con el botón derecho en AdapterHarnessProjecty, a continuación, haga clic en Implementar.

  2. En BizTalk Server consola de administración, seleccione el proyecto que ha implementado y, a continuación, haga clic en Actualizar.

Para enlazar la orquestación con los puertos
  1. En BizTalk Server consola de administración, en la aplicación BizTalk Server adecuada, expanda el nodo Orquestaciones.

  2. Haga clic con el botón derecho en AdapterHarness.AdapterHarnessType y, a continuación, haga clic en Enlazar.

  3. En el cuadro de diálogo Propiedades de enlace de puerto - AdapterHarness.AdapterHarnessType- Configuraciones de enlace, haga lo siguiente.

    Use Para hacer esto
    AdapterFileReceivePort Seleccione AdapterReceive en la lista desplegable.
    AdapterFileSendPort Seleccione AdapterSend (Adaptador) en la lista desplegable.
  4. En el panel izquierdo, haga clic en Host.

  5. En el cuadro Host , seleccione BizTalkServerApplication en la lista desplegable y, a continuación, haga clic en Aceptar.

    Continúe con la administración del adaptador de ejemplo.

Administrar el Adaptador de ejemplo

Complete las tareas de administración para el adaptador de ejemplo en la consola de Administración de BizTalk.

Para administrar el ejemplo del adaptador de archivo
  1. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y, a continuación, haga clic en Administración de BizTalk Server.

  2. En el panel izquierdo, haga clic para expandir Aplicaciones, haga clic para expandir Aplicación de BizTalk 1 y haga clic en Ubicaciones de recepción.

  3. Asegúrese de que el estado AdapterReceive es Habilitado.

    Si el estado no es Habilitado, haga clic con el botón derecho en AdapterReceive en el panel derecho y, a continuación, haga clic en Habilitar.

  4. En el panel izquierdo, haga clic en Orquestaciones y asegúrese de que AdapterHarness.AdapterHarnessType está inscrito. Haga clic con el botón derecho en AdapterHarness.AdapterHarnessType y, a continuación, haga clic en Enlist (si AdapterHarness.AdapterHarnessType ya está inscrito, la opción de menú Lista no está disponible).

  5. Haga clic con el botón derecho en AdapterHarness.AdapterHarnessType y seleccione Iniciar. El estado de esta orquestación debe cambiar a En ejecución.

    Vaya a Probar el adaptador de ejemplo.

Probar el adaptador de ejemplo

Una vez que haya implementado el adaptador de ejemplo, debe detener y reiniciar la instancia de host. Es fundamental que pruebe el adaptador de ejemplo antes de colocarlo en producción.

Para detener y reiniciar la instancia de host
  1. En la consola de administración de BizTalk Server, haga clic para expandir BizTalk Server Administración, haga clic para expandir Grupo de BizTalk, haga clic para expandir Configuración de la plataforma y haga clic en Instancias de host. Seleccione BizTalkServerApplication en el panel de la derecha.

  2. Haga clic con el botón derecho en la instancia de host (normalmente, el nombre del equipo) y, a continuación, haga clic en Detener.

    El estado de la instancia de host cambia a Detenido.

  3. Haga clic con el botón derecho en la instancia de host y, a continuación, haga clic en Iniciar.

    El estado de la instancia de host cambia a En ejecución.

Para probar el adaptador estático de ejemplo en tiempo de ejecución
  1. En el < Explorador de Windows, vaya al directorio Samples Path>\AdaptersDevelopment\File Adapter y copie el archivo InstanceXML.xml en el Portapapeles.

  2. Vaya a <drive>:\Temp\Receive y pegue el archivo Instance.xml en la carpeta.

    Si los adaptadores de transmisión y recepción funcionan, el archivo debe moverse de la <carpeta drive>:\Temp\Receive a la <carpeta drive>:\Temp\Send .

Para probar la funcionalidad del Asistente para agregar adaptador de ejemplo del adaptador estático de ejemplo
  1. En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en AdapterHarnessProject, seleccione Agregar y, a continuación, haga clic en Agregar elementos generados.

  2. En el cuadro de diálogo Agregar elementos generados - AdapterHarnessProject , haga clic en Agregar metadatos del adaptadory, a continuación, haga clic en Abrir.

    Aparecerá la lista de adaptadores registrados.

  3. Seleccione DotNetFile estático y, a continuación, haga clic en Siguiente.

    Aparecerá la organización de servicio que ha expuesto el adaptador.

  4. Expanda Organización del servicio, Cuidado de saludy, a continuación, haga clic en Administrativo.

    Tenga en cuenta que la elegibilidad se muestra de forma diferente de los demás nodos. La idoneidad es un nodo de servicio que puede seleccionar. El resto de nodos son nodos de organización que no describen ningún servicio específico.

  5. Seleccione el nodo Elegibilidad y, a continuación, haga clic en Finalizar.

    BizTalk importa un archivo .odx y uno .xsd en el proyecto.

    Ahora puede utilizar esquemas, PortTypes, operaciones y MessageTypes que se han importado desde el adaptador a la programación del proyecto de BizTalk.

Clases o métodos utilizados en este ejemplo

Interfaces: IBaseMessage, IPropertyBag, IBTTransportProxy

Clases (del adaptador base): AsyncTransmitterEndpoint, AsyncTransmitter, BatchMessage, ControlledTermination, ReceiverEndpoint, DotNetFileCommonProperties, BatchOperationType

Comentarios

Después de completar el adaptador de ejemplo, puede modificar el adaptador de ejemplo para crear un adaptador estático o dinámico personalizado. Para obtener más información, vea Adaptador Design-Time Configuración.

Consulte también

Ejemplos de adaptadores: uso
Registro de un adaptador