Uso de interfaces de canalizaciones
Un componente de canalización consiste en un componente .NET o COM que implementa un conjunto de interfaces predefinidas para la interacción con el motor de mensajería de BizTalk. Según sea la funcionalidad del componente, se deberán implementar diferentes interfaces. En este tema se tratan estas interfaces y algunos de sus métodos.
Advertencia
Si está creando un componente de canalización personalizado mediante COM, debe configurarlo para utilizar el modelo de subprocesamiento controlado múltiple (MTA, Multi-Threaded Apartment). En caso contrario, se producirá un error en la invocación del componente con 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 que los componentes recuperen la configuración de canalización y fase de ambiente.
Permite que los componentes recuperen mensajes y generadores de mensajes. Con estos generadores, los componentes pueden crear diversos objetos necesarios para la ejecución del componente.
Permite que los componentes recuperen las especificaciones del documento. Una especificación de documento es un esquema XSD más anotaciones adicionales.
IBaseComponent
Todos los componentes de la canalización necesitan implementar esta interfaz para proporcionar información básica sobre el componente.
IComponent
Todos los componentes de la canalización, excepto ensambladores y desensambladores, implementan esta interfaz con el fin de recibir mensajes del motor de BizTalk Server para su proceso y de volver a enviar los mensajes procesados al motor.
Execute. método al que llama 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 y IPropertyBag son las interfaces estándar. Para obtener más información acerca de estas interfaces, consulte la documentación del kit de desarrollo de software (SDK) de Microsoft .NET Framework.
IDisassemblerComponent
Un componente de desensamblado es un componente de canalización que recibe un mensaje en la entrada y produce cero o más mensajes en la salida. Los componentes de desensamblado se utilizan para dividir 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 procesar y pasar documentos desensamblados a BizTalk Server.
Método | Descripción |
---|---|
Disassemble | Realiza el desensamblado 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 está escribiendo un componente de desensamblador que vaya a admitir el procesamiento de intercambio recuperable, debe hacer lo siguiente:
Permitir las búsquedas en secuencias de entrada incluyéndolas en una VirtualStream().
En GetNext(), hacer que la lógica determine cuando un mensaje no es válido. Si un mensaje no es válido, defina BTS.MessageDestination = "SuspendQueue" y vuelva al mensaje en GetNext().
Si el mensaje es válido, defina BTS.SuspendMessageOnRoutingFailure = True y vuelva al mensaje en GetNext().
IAssemblerComponent
Un componente de ensamblado es un componente de canalización que recibe varios mensajes en la entrada y produce un mensaje en la salida. Los componentes de ensamblado se utilizan 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 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 | Crea el intercambio a partir de los mensajes agregados mediante 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 usa en las fases de 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 el formato se reconoce o False de lo contrario. |
INamedItem
Se trata de una interfaz del asistente para tener acceso a los esquemas de documentos a partir del código administrado y sin administrar.
INamedItemList
Se trata de una interfaz del asistente para tener acceso a los esquemas de documentos a partir del código administrado y sin administrar.
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 documentos, 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 correspondiente al documento actual. |
GetBodyPath | Devuelve la XPath al nodo en el documento en el que comienza la parte del cuerpo. |
GetDistinguishedPropertyAnnotationEnumerator | Devuelve un enumerador de diccionarios de todas las anotaciones de propiedades de campos distintivos. |
GetPropertyAnnotationEnumerator | Devuelve un enumerador de todas las anotaciones de propiedades. |
IComponentUI
Los componentes de la canalización deben implementar esta interfaz para su uso 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 canalizaciones para comprobar que todas las propiedades de configuración están definidas 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 IComponentUI Interface (COM) en la guía de interfaz de usuario y la referencia del espacio de nombres de api de desarrolladores.
Consulte también
Desarrollo de componentes de canalización personalizados
CustomComponent (ejemplo de BizTalk Server)