Compartir vía


CustomComponent (ejemplo de BizTalk Server)

El ejemplo CustomComponent muestra cómo crear y utilizar un componente de canalización personalizado que modifique un mensaje transmitido. También muestra la configuración de un componente de canalización personalizado en el Diseñador de canalizaciones.

Descripción del ejemplo

Este ejemplo implementa un componente de canalización personalizado que puede agregar cadenas como prefijo o como anexo al mensaje de entrada. BizTalk Server procesa el mensaje en modo de transmisión, lo que significa que nunca se carga en la memoria el mensaje completo. El componente de canalización personalizado se demuestra con la siguiente secuencia de pasos:

  1. BizTalk recupera un mensaje de texto de un archivo en una carpeta determinada.

  2. El mensaje de texto se envía a través de una canalización de recepción que contiene el componente personalizado FixMsg. Este componente se configura para insertar una cadena al comienzo del mensaje.

  3. El mensaje de texto que se obtiene como resultado se envía a través de una canalización de envío con el componente personalizado FixMsg. Este componente se configura para agregar una cadena al final del mensaje.

  4. BizTalk Server escribe el mensaje de texto que se obtiene como resultado en un archivo en una carpeta determinada.

Ubicación del ejemplo

<Ruta de acceso de> ejemplos\Pipelines\CustomComponent\

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

Archivos Descripción
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.
Input.txt Archivo de entrada de ejemplo.
Setup.bat Se utiliza para crear e iniciar este ejemplo.
En la carpeta \FixMsg:

AssemblyInfo.cs, FixMsg.csproj, FixMsg.sln
Archivos de información de proyecto, de solución y de ensamblado para la parte del componente de canalización personalizado de este ejemplo.
En la carpeta \FixMsg:

FixMsg.cs
Implementa las interfaces del componente de canalización.
En la carpeta \FixMsg:

FixMsgStream.cs
Implementa un contenedor para la clase System.IO.Stream , lo que permite el procesamiento de flujos de datos.
En la carpeta \FixMsg:

FixMsgDescription.cs
Proporciona métodos para obtener acceso y representar recursos de interfaz de usuario de componentes en el Diseñador de canalizaciones.
En la carpeta \FixMsg:

FixMsg.resx
Contiene descripciones de propiedad, un icono y mensajes de error.
En la carpeta \PipelineComponentSample:

PipelineComponentSample.btproj, PipelineComponentSample.sln
Archivos de proyecto y de solución para la parte de proyecto de BizTalk de este ejemplo.
En la carpeta \PipelineComponentSample:

PipelineComponentSampleBinding.xml
Se usa para la configuración automatizada, como el enlace de puertos.
En la carpeta \PipelineComponentSample:

FixMsgReceivePipeline.btp, FixMsgSendPipeline.btp
Canalizaciones de BizTalk Server que contienen el componente de canalización personalizado FixMsg, para las canalizaciones de recepción y de envío, respectivamente.

Crear e inicializar este ejemplo

Para crear e inicializar el ejemplo CustomComponent

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

    <Ruta de acceso de> ejemplos\Pipelines\CustomComponent

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

    • Crea las carpetas de entrada (In) y de salida (Out) de este ejemplo en la carpeta:

      <Ruta de acceso de> ejemplos\Pipelines\CustomComponent

    • Compila e implementa los proyectos de Visual Studio para este ejemplo.

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

      Nota

      Este ejemplo muestra las siguientes advertencias al crear y enlazar los puertos:

      Warning: Receive handler not specified for receive location "PCReceiveLocation"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "CustomComponent"; 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.

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 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). Use este par de claves para firmar los ensamblados resultantes.

Nota

Para deshacer los cambios realizados por Setup.bat, debe detener y reiniciar, en primer lugar, la instancia de host de la consola MMC de administración de BizTalk Server. A continuación, ejecute Cleanup.bat. Debe ejecutar Cleanup.bat antes de ejecutar Setup.bat por segunda vez.

Ejecución del ejemplo

Para ejecutar el ejemplo CustomComponent

  1. Pegue una copia del archivo de texto Input.txt en la carpeta In.

  2. Observe el archivo de texto creado en la carpeta Out. Este archivo contiene el contenido del archivo Input.txt con texto adicional insertado al principio (por la canalización de recepción) y al final (por la canalización de envío). El formato del nombre de este archivo es <MessageID>.xml, donde <MessageID> es el GUID generado para identificar de forma única el mensaje.

Comentarios

Puede ver las canalizaciones preconfiguradas en el Diseñador de canalizaciones mediante los pasos que se indican a continuación:

  1. En el Explorador de soluciones, haga doble clic en ReceivePipeline.btp para abrir la canalización de recepción en el Diseñador de canalizaciones. Observe que el componente FixMsg se coloca en la fase Validar de la canalización de recepción.

  2. Haga clic en el componente FixMsg en la fase Validate (Validar ) en la superficie de diseño. En la ventana Propiedades, puede ver las propiedades de configuración del componente de canalización. Observe que la propiedad PrependData está establecida en Datos para anteponer en la cadena de canalización de recepción.

  3. En el Explorador de soluciones, haga doble clic en SendPipeline.btp para abrir la canalización de envío en el Diseñador de canalizaciones. Observe que el componente FixMsg se coloca en la fase Preensamblaje de la canalización de envío.

  4. Haga clic en el componente FixMsg en la fase Preensamblaje en la superficie de diseño. Tenga en cuenta que la propiedad AppendData está establecida en Datos para anexar en la cadena de canalización de envío.

Consulte también

Canalizaciones (carpeta de ejemplos de BizTalk Server)