Condividi tramite


Utilizzo delle interfacce della pipeline

Un componente della pipeline è un componente .NET o COM che implementa un set di interfacce predefinite per l'interazione con il motore di messaggistica BizTalk. A seconda della funzionalità del componente, è necessario implementare interfacce diverse. Questo argomento illustra queste interfacce e alcuni dei relativi metodi.

Avvertimento

Se si sta creando un componente della pipeline personalizzato tramite COM, è necessario configurare il componente per l'uso del modello MTA (Multi-Threaded Apartment). Se non lo fai, l'invocazione del componente avrà esito negativo con 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 le impostazioni della pipeline di ambiente e della fase.

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

  • Consente ai componenti di recuperare le specifiche del documento. Una specifica di documento è uno schema XSD più annotazioni aggiuntive.

IBaseComponent

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

IComponent

Tutti i componenti della pipeline, ad eccezione degli assembler e dei disassembler, implementano questa interfaccia per ottenere messaggi dal motore BizTalk Server per l'elaborazione e per passare nuovamente i messaggi elaborati al motore.

Eseguire. 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 altre informazioni su queste interfacce, vedere la documentazione di Microsoft .NET Framework Software Development Kit (SDK).

IDisassemblerComponent

Un componente di disassembling è un componente della pipeline che riceve un messaggio sull'input e produce zero o più messaggi nell'output. I componenti di disassembling vengono usati 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 per passare documenti disassemblati a BizTalk Server.

Metodo Descrizione
disassemble Esegue il disassemblaggio del documento in ingresso pInMsg.
GetNext Ottiene il messaggio successivo dal set di messaggi risultante dall'esecuzione del disassembler. Restituisce NULL se non sono presenti altri messaggi.

Se si scrive un componente disassembler che supporterà l'elaborazione dell'interscambio ripristinabile, è necessario eseguire le operazioni seguenti:

  1. Rendere possibile il seek dei flussi di input incapsulandoli in un oggetto VirtualStream().

  2. In GetNext() disporre della logica per determinare quando un messaggio è difettoso. Se un messaggio è difettoso, impostare BTS.MessageDestination = "SuspendQueue" e restituire il messaggio tramite GetNext().

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

IAssemblerComponent

Un componente di assemblaggio è un componente della pipeline che riceve diversi messaggi sull'input e produce un messaggio nell'output. I componenti di assemblaggio vengono usati per raccogliere singoli documenti nel lotto di interscambio di messaggi.

Annotazioni

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

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

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

IProbeMessage

Qualsiasi componente della pipeline (generico, assembling o disassembling) può implementare IProbeMessage se richiede funzionalità di sondaggio dei messaggi. Un componente di sonda viene utilizzato nelle fasi della pipeline che hanno la modalità di esecuzione FirstMatch. In tali 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 è riconosciuto o False in caso contrario.

INamedItem

Si tratta di un'interfaccia helper per l'accesso agli schemi dei documenti da codice gestito e non gestito.

INamedItemList

Si tratta di un'interfaccia helper per l'accesso agli schemi dei documenti da codice gestito e non gestito.

IDocumentSpec

I componenti della pipeline possono usare i metodi dell'interfaccia IDocumentSpec per eseguire azioni specifiche del documento, ad esempio lo spostamento delle proprietà del contenuto nel contesto e il 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 l'XPath al nodo del documento in cui inizia la parte del corpo.
GetDistinguishedPropertyAnnotationEnumerator Restituisce un enumeratore dizionario di tutte le annotazioni delle proprietà dei campi distinti.
GetPropertyAnnotationEnumerator Restituisce un enumeratore di tutte le annotazioni delle proprietà.

IComponentUI

I componenti della pipeline devono implementare questa interfaccia per essere utilizzati nell'ambiente del Progettista pipeline.

Metodo Descrizione
icona Fornisce l'icona associata a questo componente.
Convalida Pipeline Designer 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. L'esempio C# seguente illustra 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 dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

Vedere anche

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