Condividi tramite


EnvelopeProcessing (esempio di BizTalk Server)

L'esempio EnvelopeProcessing illustra come elaborare messaggi e buste di messaggi nelle pipeline di BizTalk Server. Viene inoltre illustrato come elaborare i messaggi dei file flat nei messaggi XML.

Scopo dell'esempio

In questo esempio la cartella EnvInput viene configurata come indirizzo di ricezione. Quando si inserisce un file, ad esempio il file di esempio EnvelopeProcessing_in.txt, in questa cartella, BizTalk Server elabora i messaggi in questo file usando la procedura seguente:

  1. BizTalk Server recupera il file di messaggio dalla cartella del percorso di ricezione EnvInput.

  2. Nella pipeline di ricezione il componente della pipeline Disassembler del file flat rimuove l'intestazione e il trailer dai messaggi del file flat e quindi li analizza in singoli messaggi.

  3. Nel database MessageBox i messaggi vengono indirizzati alla porta di trasmissione mediante i filtri della sottoscrizione.

  4. Nella pipeline di trasmissione della porta di trasmissione il componente della pipeline Assembler XML esegue il wrapping dei messaggi in buste XML e quindi li inserisce nella cartella EnvOutput dell'adapter di trasmissione.

Progettazione e finalità dell'esempio

Nella progettazione di questo esempio sono stati soddisfatti due requisiti di base:

  • Ricezione ed elaborazione di un messaggio di file flat contenente uno o più ordini d'acquisto.

  • Invio di un messaggio XML contenente un ordine d'acquisto e informazioni sul mittente a una directory per il prelievo da parte di un sistema di elaborazione back-end.

    Per soddisfare tali requisiti, è stata utilizzata una combinazione di file flat/schemi XML e di pipeline personalizzate. Nella tabella seguente vengono riepilogati questi ed altri elementi di progettazione.

Elemento di progettazione Motivi selezionati
Pipeline di ricezione personalizzata - Usa gli schemi di disassembler file flat e flat per tradurre i messaggi degli ordini di acquisto in ingresso.
Schemi di file flat per intestazione, corpo e trailer dei messaggi - Definisce tutte le stesse caratteristiche del record e del campo (inclusa la struttura) degli schemi XML e fornisce un meccanismo per definire tutte le caratteristiche del file flat necessarie per convertire un messaggio di istanza di file flat in un messaggio di istanza XML equivalente (o viceversa).
- Gli schemi intestazione, corpo e trailer vengono usati per suddividere il corpo in blocchi discreti per l'elaborazione.
Schema della busta - Usato per eseguire il wrapping di singoli ordini di acquisto con informazioni dall'intestazione.
Filtro della sottoscrizione - Il filtro della sottoscrizione esegue il routing effettivo acquisiscendo i messaggi che soddisfano uno o più criteri in base ai campi delle proprietà.
Pipeline di trasmissione personalizzata - Usa l'assembler XML e una combinazione di schemi busta e corpo per convertire i messaggi di istanza in formato XML.

Le considerazioni seguenti sono applicabili alla progettazione di questo esempio.

  • LO schema del file flat (PO.xsd) contiene annotazioni estese che illustrano la struttura del file flat dell'ordine d'acquisto. È possibile creare tali file manualmente, ma molti possono essere generati utilizzando la Procedura guidata Schema file flat.

  • Lo schema del file flat dell'ordine d'acquisto (PO.xsd) utilizza un valore Unqualified per l'elemento elementFormDefault. Questo produce risultati corretti ma con qualifiche xmlns aggiuntive e impreviste. Per evitare questo problema, utilizzare un valore Qualified per l'elemento elementFormDefault.

  • Gli schemi del file flat di intestazione e trailer vengono utilizzati per separare i dati di intestazione e i dati finali dal messaggio. Le proprietà dello schema di intestazione, documento e trailer del Disassembler file flat sono state impostate rispettivamente sullo schema di intestazione, ordine d'acquisto e trailer.

  • Lo schema della busta XML combina elementi dall'intestazione e dall'ordine d'acquisto per produrre un singolo messaggio XML. Lo schema di intestazione promuove il campo Origine nel campo SourceParty nello spazio dei nomi BTS.bts_system_properties ; lo schema della busta promuove lo stesso valore, causando la demoderazione nel messaggio in uscita.

Percorso dell'esempio

<Samples Path>\Pipelines\AssemblerDisassembler\EnvelopeProcessing\

Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.

File Descrizione
Cleanup.bat Viene utilizzato per annullare la distribuzione degli assembly e rimuoverli dalla Global Assembly Cache. Consente inoltre di rimuovere porte di trasmissione e ricezione. Consente infine di rimuovere le directory virtuali di Microsoft Internet Information Services (IIS), se necessario.
EnvelopeProcessing.btproj, EnvelopeProcessing.sln File di progetto e soluzione per l'esempio.
EnvelopeProcessing_in.txt File di input di esempio.
Header.xsd, PO.xsd, Trailer.xsd Schema per intestazione, corpo e trailer del file flat, rispettivamente.
XmlEnvelope.xsd Schema per busta XML in uscita.
EnvReceivePipeline.btp, EnvSendPipeline.btp BizTalk Server ricevere e inviare file della pipeline con i componenti della pipeline Flat File Disassembler e XML Assembler.
EnvelopeProcessingBinding.xml Utilizzato per l'impostazione automatica, ad esempio il binding delle porte.
Setup.bat Utilizzato per compilare e inizializzare l'esempio.

Modalità di utilizzo dell'esempio

Utilizzare l'esempio come base per la propria soluzione di elaborazione dei file flat. È possibile estendere molti degli elementi di progettazione utilizzati in questo esempio in base alle proprie esigenze. Di seguito sono riportati alcuni esempi:

  • Ottimizzare l'esempio per scrivere una versione file flat di ogni ordine d'acquisto, oltre alla versione XML. A tale scopo, creare una nuova pipeline di trasmissione personalizzata e utilizzare l'Assembler file flat. Specificare gli schemi di intestazione, ordine d'acquisto e trailer del file flat nell'Assembler file flat. Quando viene utilizzato in una porta di trasmissione, crea singoli ordini d'acquisto con informazioni sull'intestazione e sul trailer.

  • Ottimizzare la busta aggiungendo ulteriori informazioni dall'ordine d'acquisto. Per scrivere informazioni aggiuntive nel messaggio in uscita, alzare di livello il nome "ship to" o altri campi utilizzando Innalzamento di livello rapido, aggiungere campi alla busta e quindi alzare di livello i campi della busta fino allo stesso livello. Quando il messaggio viene elaborato tramite l'assembler, le proprietà alzate di livello vengono abbassate di livello e copiate nel messaggio in uscita.

Compilazione e inizializzazione dell'esempio

Per compilare e inizializzare l'esempio EnvelopeProcessing

  1. In una finestra di comando passare alla seguente cartella:

    <Esempi Path>\Pipelines\AssemblerDisassembler\EnvelopeProcessing

  2. Eseguire il file Setup.bat. Verranno eseguite le operazioni seguenti:

    • Creazione delle cartelle di input (EnvInput) e output (EnvOutput) per l'esempio nella cartella:

      <>Percorsi di esempio\Pipelines\AssemblerDisassembler\EnvelopeProcessing\

    • Compila e distribuisce il progetto di Visual Studio per questo esempio.

    • Creazione e binding dell'indirizzo di ricezione di BizTalk e delle porte di trasmissione e ricezione.

      Nell'esempio vengono visualizzati gli avvisi seguenti durante la creazione e il binding delle porte:

      Warning: Receive handler not specified for receive location "EnvelopeProcessing_RL"; updating with first receive handler with matching transport type.  
      Warning: Host not specified for orchestration "EnvelopeProcessing"; updating with first available host.  
      

      È possibile ignorare tali avvisi. Per ovviare a possibili differenze di denominazione nelle installazioni utente, il nome host e il gestore di ricezione sono stati omessi dal file di associazione.

    • Abilita l'indirizzo di ricezione e avvia la porta di trasmissione.

Nota

Prima di provare a eseguire l'esempio, è necessario verificare che BizTalk Server non abbia segnalato errori durante il processo di generazione e inizializzazione.

Nota

Se si sceglie di aprire e compilare il progetto dell'esempio senza eseguire il file Setup.bat, è necessario creare innanzitutto una coppia di chiavi con nome sicuro tramite l'utilità Nome sicuro di .NET Framework (sn.exe) Utilizzare questa coppia di chiavi per firmare l'assembly risultante.

Nota

Per annullare le modifiche apportate da Setup.bat, eseguire Cleanup.bat. È necessario eseguire Cleanup.bat prima di eseguire Setup.bat una seconda volta.

Esecuzione dell'esempio

Per eseguire l'esempio EnvelopeProcessing

  1. Inserire una copia del file EnvelopeProcessing_in.txt nella cartella EnvInput.

  2. Esaminare i tre file con estensione xml creati nella cartella EnvOutput. I nomi di tali file con estensione xml sono basati sui relativi GUID di ID del messaggio. Contengono i messaggi estratti dal file di input e con wrapping in buste.

Classi o metodi utilizzati nell'esempio

Gli script di configurazione Setup.bat e Cleanup.bat si basano sui seguenti script di amministrazione di Strumentazione gestione Windows (WMI):

  • Start Send Port\StartSendPort.vbs

  • Enable Receive Location\EnableRecLoc

  • Remove Send Port\RemoveSendPort

    Nei file batch di pulitura e installazione viene utilizzato BTSTask come descritto di seguito:

  • BTSTask ImportBindings per applicare il file di associazione e creare l'applicazione, le porte e le associazioni

  • BTSTask RemoveApp per rimuovere FlatFileReceiveApplication

Vedere anche

Pipelines-AssemblerDisassembler (cartella di esempi di BizTalk Server)