Condividi tramite


Gestione degli errori (cartella di esempi di BizTalk Server)

Lo scopo di questo esempio è di creare una funzionalità di gestione degli errori per l'applicazione di routing basato sul contenuto.

Prerequisiti

Per eseguire l'esempio, è consigliabile installare Microsoft Office InfoPath 2010 o versione successiva. È possibile eseguire l'esempio senza utilizzare InfoPath, ma in tale caso non sarà possibile visualizzare le note spese e l'invio di note spese tramite l'adapter HTTP.

Scopo dell'esempio

Nell'esempio viene implementata parte di un sistema di elaborazione delle note spese. In particolare, nell'esempio vengono eseguite le operazioni seguenti:

  1. Viene definito uno schema di note spese, contenente informazioni su una nota spese e il singolo mittente, incluso il nome del reparto.

  2. Viene consentito l'invio di note spese tramite una directory oppure tramite un servizio Web mediante InfoPath.

  3. Promuove le proprietà Department e correlationID nel documento del messaggio in modo che possa essere usata in un filtro di porta per controllare il routing.

  4. Le note spese appartenente al reparto Marketing vengono indirizzate a un file in una directory, simulando il recapito al sistema back-end del reparto.

  5. Viene generato un messaggio di errore per le note spese appartenenti a reparti diversi da Marketing. Nel messaggio di errore sono disponibili informazioni sull'errore, inclusi il codice e la descrizione dell'errore.

  6. I messaggi non riusciti vengono indirizzati a un destinatario umano, ovvero un utente business o un operatore dell'applicazione, per la correzione e il nuovo invio.

  7. Le note spese reinviate vengono indirizzate in base al reparto, come illustrato in precedenza.

    La maggior parte di queste operazioni viene eseguita mediante una pianificazione dell'orchestrazione di BizTalk.

Progettazione e finalità dell'esempio

La progettazione si basa sull'invio predefinito e sulla ricezione di pipeline XML, promozione delle proprietà, filtri di sottoscrizione e pianificazioni di orchestrazione all'interno di BizTalk Server per instradare i messaggi. Nella tabella seguente sono elencati gli elementi di progettazione e la rispettiva giustificazione.

Elemento di progettazione Motivi selezionati
Pipeline XML di ricezione predefinita - La pipeline XMLReceive supporta la promozione delle proprietà; la pipeline PassThruReceive non lo fa.
- Il messaggio in ingresso è già in formato XML e non richiede l'elaborazione oltre alla risoluzione di base disassembly e party.
Routing dei messaggi non riusciti - Le porte di ricezione sospendono i messaggi non riusciti e generano un riconoscimento negativo per impostazione predefinita. Quando il routing è abilitato BizTalk Server tenta di instradare qualsiasi messaggio che non riesce a elaborare un'applicazione di sottoscrizione, ad esempio un'altra porta di ricezione o una pianificazione dell'orchestrazione.
Promozione delle proprietà - BizTalk Server dipende dai campi delle proprietà da eseguire il routing. I campi differenzianti sono utilizzati dalle orchestrazioni e non possono essere utilizzati per il routing.
Filtro della sottoscrizione - Il filtro della sottoscrizione esegue il routing acquisendo messaggi che soddisfano uno o più criteri in base ai campi delle proprietà.
Pianificazione dell'orchestrazione di BizTalk - Offre la possibilità di aggiungere informazioni ai messaggi non riusciti.
- Abilita il routing dei messaggi non riusciti in una posizione dedicata per l'intervento umano.
- Elabora le note spese inviate di nuovo.
XMLTransmit : esegue l'assembly di base dei messaggi XML in uscita. La pipeline PassThruTransmit non fornisce ulteriore supporto.

Percorso dell'esempio

Questo esempio si trova in <Samples Path>\Messaging\ErrorHandling\.

La tabella seguente include un elenco di file per questo esempio.

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.

Rimuove le directory virtuali di Internet Information Services (IIS), se necessario.
ErrorHandling.sln File di soluzione Visual Studio per l'esempio.
ErrorHandlingBinding.xml File di associazione per l'esempio.
Setup.bat Utilizzato per compilare e inizializzare l'esempio.
Expense Report – John Doe.xml Documento InfoPath di nota spese di esempio.
Invalid Expense Report – John Doe.xml Documento InfoPath di nota spese di esempio, contenente dati non validi.
Nella cartella ErrorHandler:

ErrorHandler.btproj
Progetto BizTalk per l'orchestrazione.
Nella cartella ErrorHandler:

ResubmitLogic.odx
Orchestrazione che sottoscrive i messaggi non riusciti, li invia a un destinatario umano per la correzione, quindi invia di nuovo i messaggi corretti al server per il routing.
Nella cartella ErrorHandler:

SuspendMessage.odx
Orchestrazione utilizzata per sospendere messaggi che non possono essere elaborati all'interno dell'orchestrazione di gestione degli errori.
Nella cartella InfoPathForms:

Expense Report.xsn

Expense Report - Resubmit.xsn
Modulo InfoPath di nota spese e modulo utilizzato per la visualizzazione e il reinvio di messaggi non riusciti.
Nella cartella PipelinesAndSchemas:

ExpenseReportSchema.xsd
Schema XML per il documento della nota spese.
Nella cartella PipelinesAndSchemas:

PipelinesAndSchemas.btproj
Progetto BizTalk per l'esempio.
Nella cartella PipelinesAndSchemas:

PropertySchema.xsd
Schema proprietà per l'esempio.

Modalità di utilizzo dell'esempio

Questo esempio costituisce un punto di partenza per la creazione di una procedura di gestione degli errori personalizzata.

Compilazione e inizializzazione dell'esempio

Per compilare e inizializzare l'esempio Compose

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

    < Samples Path > \Messaging\ErrorHandling

  2. Eseguire Setup.bat, che esegue le azioni seguenti:

    • Crea tre cartelle: ExpenseReportIn, ExpenseReportOut e ResubmittedReportIn nel percorso seguente:

      < Samples Path > \Messaging\ErrorHandling

    • Copia e pubblica i moduli di InfoPath Expense Report.xsn e Expense Report - Resubmit.xsn nella cartella C:\Temp\InfoPathForms.

    • Compilazione di progetti di Visual Studio per l'esempio.

    • Crea una directory virtuale denominata ExpenseReports.

    • Crea una nuova applicazione BizTalk denominata Esempio di gestione degli errori e ne distribuisce gli assembly di esempio.

    • Crea e associa i percorsi di ricezione BizTalk Server e le porte di trasmissione e ricezione.

    • Integrazione e avvio delle orchestrazioni, abilitazione degli indirizzi di ricezione e avvio delle porte di trasmissione.

      Se si sceglie di aprire e compilare i progetti 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) e utilizzarla per firmare gli assembly di esempio.

  3. Prima di tentare di eseguire questo esempio, verificare che BizTalk Server non abbia rilevato errori durante il processo di compilazione o inizializzazione.

    Nota

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

  4. Se si usa Internet Information Services (IIS) 7.0, è necessario eseguire passaggi di configurazione aggiuntivi per modificare l'impostazione per la directory virtuale che corrisponde al percorso di ricezione HTTP BizTalk Server usato dall'esempio. Per configurare IIS, effettuare le operazioni seguenti:

    1. Utilizzando Gestione IIS 7.0, creare un nuovo pool di applicazioni per il gruppo Utenti host BizTalk di tipo Isolato.

    2. Configurare il pool di applicazioni per l'esecuzione con l'identità dell'utente host isolato BizTalk Server. È possibile ignorare questo passaggio se è già stato configurato un pool di applicazioni per altri percorsi di ricezione HTTP BizTalk Server.

    3. Configurare la directory virtuale ExpenseReport per l'uso del pool di applicazioni di ricezione HTTP creato nel passaggio precedente.

      Se non è già disponibile un'estensione server Web per l'estensione BTSHTTPReceive.dll ISAPI, crearla e abilitarla impostandone lo stato su "Consentito". È possibile eseguire questa operazione in IIS 7.0 usando la console di gestione IIS (direttamente in Strumenti di amministrazione o tramite la console gestione computer) come indicato di seguito:

    4. Espandere l'albero di Internet Information Services Manager .

    5. Fare clic sulla cartella Estensioni servizio Web .

    6. Nel riquadro destro della console di gestione fare clic su Aggiungi una nuova estensione del servizio Web.

    7. Nella finestra di dialogo Nuova estensione del servizio Web fare clic su Aggiungi.

    8. Nella finestra di dialogo Aggiungi file fare clic su Sfoglia per selezionare il file <BizTalkInstallPath>\HttpReceive\BTSHTTPReceive.dlle quindi fare clic su OK.

    9. Configurare la directory virtuale ExpenseReport per l'uso del percorso locale \Programmi (x86)\Microsoft BizTalk Server <VERSION>HTTPReceive

      Per altre informazioni, vedere Come configurare IIS per un percorso di ricezione HTTP.

Esecuzione dell'esempio

Prima di eseguire l'esempio con la nota spese corretta, utilizzare la procedura seguente per verificare che l'esempio di caso "no errors" funzioni correttamente.

Per verificare che l'esempio di caso "no errors" funzioni correttamente

  1. Aprire il modulo InfoPath Expense Report - John Doe.xml. Esaminare il campo Reparto all'interno del modulo. Tale campo deve essere impostato su "Marketing".

  2. Nell'angolo in alto a sinistra della finestra di InfoPath fare clic su Invia o su Invia di nuovo a Expense Report. Attendere la visualizzazione di una finestra di conferma dell'invio corretto della nota spese.

    -OPPURE-

    Copiare e incollare questo file nella cartella ExpenseReportIn .

  3. Verrà visualizzato un nuovo file eliminato nella cartella ExpenseReportOut . Tale file è lo stesso modulo di nota spese inviato durante i passaggi precedenti.

    Dopo la conferma del caso "no errors", utilizzare la procedura seguente per eseguire l'esempio con una nota spese errata, in modo da attivare la funzionalità di gestione degli errori.

Per attivare la gestione degli errori

  1. Aprire il modulo InfoPath Non valido - Report spese - John Doe.xml. Esaminare il campo Reparto all'interno del modulo. Questo campo è impostato su un valore non valido.

  2. Nell'angolo superiore sinistro della finestra di InfoPath fare clic su Invia. Attendere la visualizzazione di una finestra di conferma dell'invio corretto della nota spese.

    -OPPURE-

    Copiare e incollare questo file nella cartella ExpenseReportIn .

  3. Verrà visualizzato un nuovo file denominato ErrorReport_<date_time>.xml eliminato nella cartella ExpenseReportOut .

    Aprire tale file e notare che si tratta della nota spese inviata nel passaggio precedente, al cui inizio sono state aggiunte informazioni sull'errore.

  4. Sostituire il valore errato del reparto con "Marketing" e quindi fare clic su Invia nell'angolo superiore sinistro della finestra di InfoPath.

    -OPPURE-

    Copiare e incollare questo file nella cartella ResubmittedReportIn .

  5. Verrà visualizzato un nuovo file creato nella cartella ExpenseReportOut . Tale file è la nota spese corretta inviata nuovamente al server.

Vedere anche

Utilizzo del routing dei messaggi non riusciti
Messaging (cartella di esempi di BizTalk Server)