Compartir a través de


Uso de interfaces de canalización

Un componente de canalización es un componente .NET o COM que implementa un conjunto de interfaces predefinidas para la interacción con el motor de mensajería de BizTalk. En función de la funcionalidad del componente, se deben implementar interfaces diferentes. En este tema se describen estas interfaces y algunos de sus métodos.

Advertencia

Si va a crear un componente de canalización personalizado mediante COM, debe configurar el componente para que use el modelo de Apartamento multiproceso (MTA). Si no lo hace, la invocación de su componente fallará dando lugar a un error E_NOINTERFACE.

IPipelineContext

Todos los componentes de canalización pueden usar métodos IPipelineContext para acceder a todas las interfaces específicas del procesamiento de documentos. La interfaz IPipelineContext proporciona las siguientes funcionalidades:

  • Permite a los componentes recuperar la tubería ambiente y las configuraciones de etapa.

  • Permite a los componentes recuperar mensajes y generadores de mensajes. Con estos generadores, los componentes pueden crear varios objetos necesarios para la ejecución del componente.

  • Permite a los componentes recuperar las especificaciones del documento. Una especificación de documento es un esquema XSD más anotaciones adicionales.

IBaseComponent

Todos los componentes de canalización deben implementar esta interfaz para proporcionar información básica sobre el componente.

IComponent

Todos los componentes de canalización, excepto ensambladores y desensambladores, implementan esta interfaz para obtener mensajes del motor de BizTalk Server para su procesamiento y pasar mensajes procesados al motor.

Ejecutar. Método llamado por el motor para pasar el mensaje de entrada al componente y recuperar el mensaje procesado del componente.

IPropertyBag, IPersistPropertyBag

Los componentes de canalización deben implementar IPersistPropertyBag para recibir su información de configuración. Esta interfaz e IPropertyBag son las interfaces estándar. Para obtener más información sobre estas interfaces, consulte la documentación del Kit de desarrollo de software (SDK) de Microsoft .NET Framework.

IDisassemblerComponent

Un componente de desensamblaje es un componente de canalización que recibe un mensaje en la entrada y genera cero o más mensajes en la salida. Los componentes de desmontaje se usan para separar los intercambios de mensajes en documentos individuales. Un componente de desensamblador debe implementar los métodos de la interfaz IDisassemblerComponent para obtener mensajes de BizTalk Server para su procesamiento y pasar documentos desensambllados de nuevo a BizTalk Server.

Método Descripción
de desensamblar Realiza el desensamblaje del documento entrante pInMsg.
GetNext Obtiene el siguiente mensaje del conjunto de mensajes resultante de la ejecución del desensamblador. Devuelve NULL si no hay más mensajes.

Si va a escribir un componente de desensamblador que admitirá el procesamiento de intercambio recuperable, debe hacer lo siguiente:

  1. Haga que los flujos de entrada se puedan buscar encapsulando en virtualStream().

  2. En GetNext(), tenga lógica para determinar cuándo un mensaje es incorrecto. Si un mensaje es defectuoso, establezca BTS.MessageDestination = "SuspendQueue" y devuelva el mensaje mediante GetNext().

  3. Si el mensaje es válido, establecer BTS.SuspendMessageOnRoutingFailure = True y devolver el mensaje en GetNext().

IAssemblerComponent

Un componente de montaje es un componente de canalización que recibe varios mensajes en la entrada y genera un mensaje en la salida. Los componentes de ensamblado se usan para recopilar documentos individuales en el lote de intercambio de mensajes.

Nota:

En esta versión de BizTalk Server, no se usa la funcionalidad de montaje, por lo que BizTalk Server siempre pasa un documento a la entrada del componente.

Un componente de ensamblador implementa los métodos IAssemblerComponent a los que llama el motor de BizTalk Server en tiempo de ejecución.

Método Descripción
AddDocument Agrega el documento pInMsg a la lista de mensajes que se incluirán en el intercambio.
ensamblar Compila el intercambio a partir de los mensajes agregados por el método anterior. Devuelve un puntero al mensaje ensamblado.

IProbeMessage

Cualquier componente de canalización (general, ensamblado o desensamblado) puede implementar IProbeMessage si requiere funcionalidad de sondeo de mensajes. Un componente de sondeo se utiliza en las etapas de la canalización que tienen el modo de ejecución FirstMatch. En estas fases, BizTalk Server proporciona el mensaje al componente y el método Probe examina el principio del mensaje para determinar si el componente reconoce el formato del mensaje.

Método Descripción
Sondeo Este método toma el mensaje pInMsg y devuelve True si se reconoce el formato o False en caso contrario.

INamedItem

Se trata de una interfaz auxiliar para acceder a esquemas de documento desde código administrado y no administrado.

INamedItemList

Se trata de una interfaz auxiliar para acceder a esquemas de documento desde código administrado y no administrado.

IDocumentSpec

Los componentes de canalización pueden usar métodos de la interfaz IDocumentSpec para realizar acciones específicas del documento, como mover propiedades de contenido al contexto y atrás, acceder a esquemas de documento, etc.

Método Descripción
DocType Devuelve el tipo del documento actual.
DocSpecName Devuelve el nombre de especificación del documento actual.
GetSchemaCollection Devuelve la lista de esquemas de documento para el documento actual.
GetBodyPath Devuelve el XPath al nodo del documento donde comienza la parte del cuerpo.
GetDistinguishedPropertyAnnotationEnumerator Devuelve un enumerador de diccionario de todas las anotaciones de propiedad de campo distintivos.
GetPropertyAnnotationEnumerator Devuelve un enumerador de todas las anotaciones de propiedad.

IComponentUI

Los componentes de canalización deben implementar esta interfaz para usarse en el entorno del Diseñador de canalizaciones.

Método Descripción
Icono Proporciona el icono asociado a este componente.
Validación El Diseñador de canalizaciones llama a este método antes de la compilación de canalización para comprobar que todas las propiedades de configuración están establecidas correctamente.

La propiedad Icon devuelve un intPtr. En el siguiente ejemplo de C# se muestra cómo devolver un intPtr.

static   ResourceManager resManager = new ResourceManager("ResourceManager", Assembly.GetExecutingAssembly());  
...  
[Browsable(false)]  
public IntPtr Icon  
{  
   get  
   {  
      return ((Bitmap)resManager.GetObject("MyIcon")).GetHicon();  
   }  
}  

Para obtener más información, consulte la Interfaz de IComponentUI (COM) en la guía de la interfaz de usuario y la referencia del espacio de nombres de API de desarrolladores.

Véase también

Desarrollo de componentes de canalización personalizados
CustomComponent (ejemplo de BizTalk Server)