Condividi tramite


FlatFileReceive (esempio di BizTalk Server)

L'esempio FlatFileReceive illustra come usare BizTalk Server per elaborare un file flat nel file .xml equivalente.

Scopo dell'esempio

In questo esempio la cartella FFInput viene configurata come indirizzo di ricezione. Quando si inserisce un file, ad esempio il file di esempio FlatFileReceive_in.txt, in questa cartella, BizTalk Server elabora il messaggio in questo file usando la sequenza di passaggi seguente:

  1. Legge il messaggio dal file di input nella cartella dell'indirizzo di ricezione FFInput.

  2. Nella pipeline di ricezione il componente disassembler del file flat converte il messaggio dal formato file flat al messaggio XML equivalente.

  3. Nel database MessageBox il messaggio viene instradato a una porta di trasmissione FILE che scrive il messaggio XML in un file nella cartella dell'adapter di trasmissione FFOutput.

Progettazione e finalità dell'esempio

Il messaggio di esempio illustra la maggior parte degli elementi di progettazione di base di questo esempio. I messaggi dei file flat devono essere disassemblati tramite il disassembler del file flat e uno schema del file flat in una pipeline di ricezione personalizzata. Nella tabella seguente vengono riepilogati questi ed altri elementi di progettazione.

Elemento di progettazione Motivi selezionati
Pipeline di ricezione personalizzata - La pipeline personalizzata usa il disassembler file flat e uno schema di file flat per convertire i messaggi degli ordini di acquisto in ingresso. Il disassembler file flat non è una pipeline e non può essere usato durante la configurazione di una pipeline di ricezione nella console di gestione di BizTalk Server.
Schema del file flat - Definire tutte le stesse caratteristiche di record e campo (inclusa la struttura) come XML Schema e fornire 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).
Filtro della sottoscrizione - Il filtro della sottoscrizione esegue il routing effettivo acquisendo messaggi che soddisfano uno o più criteri in base ai campi delle proprietà.
XMLTransmit : esegue l'assembly di base dei messaggi XML in uscita, se necessario. La pipeline PassThruTransmit non fornisce ulteriore supporto.

Questi elementi sono combinati per creare una soluzione che accetta messaggi di ordini di acquisto in formato file flat dall'indirizzo di ricezione e scrive la rappresentazione XML risultante nell'indirizzo di trasmissione.

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 utilizza il valore Unqualified per elementFormDefault. I risultati ottenuti sono corretti, ma includono qualifiche dello spazio dei nomi XML (xmlns) aggiuntive e impreviste. Per evitare questo problema, utilizzare un valore Qualified per l'elemento elementFormDefault.

  • XmlTransmit viene utilizzato come pipeline di trasmissione. Utilizzare la pipeline PassThruTransmit quando non è necessario abbassare di livello le proprietà o eseguire altre operazioni di elaborazione dei messaggi nella porta di trasmissione.

Percorso dell'esempio

<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileReceive\

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.
FFReceivePipeline.btp BizTalk Server ricevere il file della pipeline con il componente Disassembler file flat.
FlatFileReceive.btproj, FlatFileReceive.sln File di progetto e soluzione per l'esempio.
FlatFileReceive_in.txt File di input di esempio.
FlatFileReceiveBinding.xml Utilizzato per l'impostazione automatica, ad esempio il binding delle porte.
PO.xsd Schema per file flat in ingresso.
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.

Compilazione e inizializzazione dell'esempio

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

    <Percorso> esempi\Pipelines\AssemblerDisassembler\FlatFileReceive

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

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

      <Percorso> esempi\Pipelines\AssemblerDisassembler\FlatFileReceive

    • 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.

      Nota

      In questo esempio viene visualizzato l'avviso seguente durante la creazione e l'associazione delle porte: Warning: Receive handler not specified for receive location "FlatFileReceive_RL"; updating with first receive handler with matching transport type. è possibile ignorare in modo sicuro questi 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

  1. Inserire una copia del file FlatFileReceive_in.txt nella cartella FFInput.

  2. Osservare il file con estensione xml creato nella cartella FFOutput. Il nome del file di output è basato sul GUID dell'ID del messaggio. Questo file contiene l'equivalente XML del file flat nella cartella di ricezione.

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