Condividi tramite


Uso di interfacce pipeline

Un componente pipeline è un componente .NET o COM che implementa una serie di interfacce predefinite per l'interazione con il motore di messaggistica di BizTalk. A seconda della funzionalità del componente, devono essere implementate interfacce diverse. In questo argomento vengono descritte queste interfacce e alcuni dei relativi metodi.

Avviso

Se si sta creando un componente pipeline personalizzato tramite COM, è necessario configurare il componente per l'utilizzo del modello apartment a thread multipli (MTA, Multi-Threaded Apartment). In caso contrario, la chiamata al componente avrà esito negativo e genererà un errore E_NOINTERFACE.

IPipelineContext

Tutti i componenti della pipeline possono usare i metodi IPipelineContext per accedere a tutte le interfacce specifiche dell'elaborazione dei documenti. L'interfaccia IPipelineContext offre le funzionalità seguenti:

  • Consente ai componenti di recuperare la pipeline di ambiente e le impostazioni di fase.

  • Consente ai componenti di recuperare messaggio e factory messaggio. Con queste factory, i componenti possono creare vari oggetti necessari per l'esecuzione del componente.

  • Consente ai componenti di recuperare le specifiche di documento. Una specifica di documento è la combinazione di uno schema XSD e di annotazioni aggiuntive.

IBaseComponent

Tutti i componenti pipeline devono implementare questa interfaccia per fornire informazioni di base sul componente.

IComponent

Tutti i componenti pipeline, ad eccezione di assembler e disassembler, implementano questa interfaccia per ottenere messaggi dal motore di BizTalk Server per elaborare i messaggi e passare nuovamente i messaggi elaborati al motore.

Execute. Metodo chiamato dal motore per passare il messaggio di input al componente e recuperare il messaggio elaborato dal componente.

IPropertyBag, IPersistPropertyBag

I componenti della pipeline devono implementare IPersistPropertyBag per ricevere le informazioni di configurazione. Questa interfaccia e IPropertyBag sono le interfacce standard. Per ulteriori informazioni su queste interfacce, fare riferimento alla documentazione Microsoft .NET Framework Software Development Kit (SDK).

IDisassemblerComponent

Un componente di disassemblaggio è un componente pipeline che riceve un messaggio come input e produce zero o più messaggi come output. I componenti di disassemblaggio vengono utilizzati per suddividere gli interscambi di messaggi in singoli documenti Un componente disassembler deve implementare i metodi dell'interfaccia IDisassemblerComponent per ottenere messaggi da BizTalk Server per l'elaborazione e passare documenti smontati di nuovo a BizTalk Server.

Metodo Descrizione
Smontare Esegue il disassembling del documento in ingresso pInMsg.
Getnext Ottiene il messaggio successivo dall'insieme di messaggi prodotto dall'esecuzione del disassembler. Restituisce NULL se non sono presenti più messaggi.

Se si sta scrivendo un componente disassembler che supporterà l'elaborazione di interscambio reversibile, è necessario eseguire la procedura seguente:

  1. Fare in modo che i flussi di input consentano le ricerche eseguendo il wrapping in VirtualStream().

  2. In GetNext(), disporre di una logica per determinare quando un messaggio non è valido. Se un messaggio non è valido, impostare BTS.MessageDestination = "SuspendQueue" e restituire il messaggio in GetNext().

  3. Se il messaggio è valido, impostare BTS.SuspendMessageOnRoutingFailure = True e restituire il messaggio in GetNext().

IAssemblerComponent

Un componente di assemblaggio è un componente pipeline che riceve diversi messaggi come input e produce un messaggio come output. I componenti di assemblaggio vengono utilizzati per raccogliere singoli documenti nel batch di interscambio messaggi.

Nota

In questa versione di BizTalk Server non viene usata la funzionalità di assemblaggio, quindi BizTalk Server passa sempre un documento all'input del componente.

Un componente assembler implementa i metodi IAssemblerComponent chiamati dal motore di BizTalk Server in fase di esecuzione.

Metodo Descrizione
AddDocument Aggiunge il documento pInMsg all'elenco di messaggi che verranno inclusi nell'interscambio.
Assemblaggio Crea l'interscambio dai messaggi aggiunti dal metodo precedente. Restituisce un puntatore al messaggio assemblato.

IProbeMessage

Qualsiasi componente della pipeline (generale, assembling o disassembling) può implementare IProbeMessage se richiede funzionalità di verifica dei messaggi. Un componente di prova viene usato nelle fasi della pipeline con modalità di esecuzione FirstMatch . In queste fasi, BizTalk Server fornisce il messaggio al componente e il metodo Probe esamina l'inizio del messaggio per determinare se il componente riconosce il formato del messaggio.

Metodo Descrizione
Probe Questo metodo accetta il messaggio pInMsg e restituisce True se il formato viene riconosciuto o False in caso contrario.

INamedItem

Questa è un'interfaccia di supporto per l'accesso agli schemi di documento da codice gestito e non gestito.

INamedItemList

Questa è un'interfaccia di supporto per l'accesso agli schemi di documento da codice gestito e non gestito.

IDocumentSpec

I componenti della pipeline possono usare metodi dell'interfaccia IDocumentSpec per eseguire azioni specifiche del documento, ad esempio lo spostamento delle proprietà del contenuto nel contesto e nel back, l'accesso agli schemi dei documenti e così via.

Metodo Descrizione
Doctype Restituisce il tipo del documento corrente.
DocSpecName Restituisce il nome della specifica del documento corrente.
GetSchemaCollection Restituisce l'elenco degli schemi di documento per il documento corrente.
GetBodyPath Restituisce il percorso XML (XPath) del nodo nel documento in cui inizia la parte corpo.
GetDistinguishedPropertyAnnotationEnumerator Restituisce un enumeratore di dizionario di tutte le annotazioni di proprietà di campo distinte.
GetPropertyAnnotationEnumerator Restituisce un enumeratore di tutte le annotazioni di proprietà.

IComponentUI

I componenti pipeline devono implementare questa interfaccia per essere utilizzati nell'ambiente di progettazione pipeline.

Metodo Descrizione
Icona Fornisce l'icona associata al componente.
Convalida Progettazione pipeline chiama questo metodo prima della compilazione della pipeline, per verificare che tutte le proprietà di configurazione siano impostate correttamente.

La proprietà Icon restituisce un oggetto IntPtr. Nell'esempio C# seguente viene illustrato come restituire un oggetto IntPtr.

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

Per altre informazioni, vedere IComponentUI Interface (COM) nella guida per l'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

Vedere anche

Sviluppo di componenti di pipeline personalizzati
CustomComponent (esempio di BizTalk Server)