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:
Fare in modo che i flussi di input consentano le ricerche eseguendo il wrapping in VirtualStream().
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().
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)