Condividi tramite


Extending Mapper (esempio di BizTalk Server)

Nell'esempio Extending Mapper viene illustrato come utilizzare ed estendere BizTalk Mapper. L'esempio include diversi file di mapping BizTalk Server (con estensione btm), ognuno dei quali illustra diverse funzionalità di BizTalk Mapper.

Scopo dell'esempio

Nell'esempio Extending Mapper viene utilizzato il routing basato sul contenuto e non un'orchestrazione. Specificando un filtro sulla porta di trasmissione dell'esempio, quest'ultima viene connessa direttamente alla porta di ricezione dell'esempio. Nella porta di trasmissione viene specificata una mappa da applicare al documento elaborato.

Percorso dell'esempio

<Esempi path>\XmlTools\ExtendingMapper

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

File Descrizione
MapperClassLibrary\AssemblyInfo.cs, MapperClassLibrary\MapperClassLibrary.csproj, MapperClassLibrary\MapperHelper.cs, MapperClassLibrary\MapperClassLibrary.sln File di progetto di Microsoft® Visual Studio® e file di origine visual C#®.
Cleanup.bat Viene utilizzato per annullare la distribuzione degli assembly e rimuoverli dalla Global Assembly Cache.
Destination.xsd File di schema.
ExtendingMapper.btproj, ExtendingMapper.sln File di progetto e di soluzione di BizTalk per questo esempio.
ExtendingMapper.xml XML di origine.
ExtendingMapperBinding.xml XML di binding.
ExternalAssembly.xml XML di assembly esterno.
OverridingMapXslt.btm File di mappa.
OverridingMapXslt.xml XML di mappa di override.
OverridingMapXslt.xslt Foglio di stile di mappa di override.
Scriptor_CallExternalAssembly.btm File di mappa di esempio.
Scriptor_GlobalVariableInInlineScript.btm File di mappa di esempio.
Scriptor_InlineScripts.btm File di mappa di esempio.
Scriptor_InlineXslt.btm File di mappa di esempio.
Scriptor_InlineXsltCallingExternalAssembly.btm File di mappa di esempio.
Scriptor_XsltCalltemplate.btm File di mappa di esempio.
Setup.bat Viene utilizzato per compilare e inizializzare l'esempio.
Source.xsd File di schema.

Compilazione e inizializzazione dell'esempio

Utilizzare la procedura seguente per compilare e inizializzare l'esempio Extending Mapper.

Per compilare e inizializzare l'esempio

  1. In una finestra dei comandi modificare la directory (cd) nella cartella seguente:

    <Esempi path>\XmlTools\ExtendingMapper

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

    • Creazione delle cartelle di input (\In) e di output (\Out) per l'esempio.

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

      Se si desidera utilizzare le mappe Scriptor_CallExternalAssembly.btm o Scriptor_InlineXsltCallingExternalAssembly.btm, aprire ExtendingMapper.sln in Visual Studio ed effettuare le modifiche seguenti (in caso contrario, andare al passaggio 3):

    1. In Esplora soluzioni aprire Scriptor_CallExternalAssembly.btm.

    2. Nella griglia di BizTalk Mapper selezionare il functoid Esecuzione script.

    3. Nella griglia delle proprietà selezionare la proprietà Script e fare clic sul pulsante con i puntini di sospensione (...) per configurare lo script functoid.

    4. Nella finestra di dialogo Configura functoid scripting selezionare La configurazione functoid script e specificare quanto segue:

      Impostare Su
      Tipo di script Assembly esterno
      Script Assembly Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary
      Classe Script Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper
      Metodo script MyConcat
    5. Dal menuFile di Visual Studio scegliere Salva per salvare le modifiche nel file di mappa e chiudere la soluzione.

  3. Premere un tasto qualsiasi per continuare con il file Setup.bat.

    Importante

    Se si desidera utilizzare Scriptor_InlineXsltCallingExternalAssembly.btm, è necessario modificare il file ExternalAssembly.xml. Questo file viene utilizzato da BizTalk per il mapping di uno spazio di nomi registrato di oggetti estensione di BizTalk Mapper con un assembly .NET. Poiché all'assembly dipendente viene fatto riferimento in base al relativo nome completo (incluso il token di chiave pubblica, generato automaticamente), è necessario aggiornare questo valore. Se non si desidera utilizzare Scriptor_InlineXsltCallingExternalAssembly.btm, non è necessario completare i passaggi a - e.

  4. In Esplora risorse passare alla <cartella> di Windows\assembly\.

    1. Fare clic con il pulsante destro del mouse su Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary e selezionare Proprietà.

    2. Copiare il valore del token di chiave pubblica.

    3. In un editor di testo aprire <Percorso>\XML Tools\ExtendingMapper\ExternalAssembly.xml esempi.

    4. Selezionare AssemblyName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=68496d20c737d84b"attribute e sostituire il valore publicKeyToken con il valore del token di chiave pubblica copiato nel passaggio c.

    5. Salvare e chiudere ExternalAssembly.xml.

    Nota

    Prima di tentare di eseguire l'esempio, verificare che non siano stati segnalati errori durante il processo di compilazione e inizializzazione.

Per configurare, integrare e avviare la porta di trasmissione

  1. Fare clic su Start, selezionare Tutti i programmi, selezionare Microsoft BizTalk Server e quindi selezionare amministrazione BizTalk Server.

  2. Nella console di amministrazione BizTalk Server fare clic per espandere amministrazione BizTalk Server, fare clic per espandere Il gruppo BizTalk [<servername>:<management database>], quindi fare clic per espandere Applicazioni.

  3. Fare clic per espandere ExtendingMapperApplication e quindi fare clic su Invia porte.

  4. Nel riquadro destro fare clic con il pulsante destro del mouse su Invia porte e quindi scegliere Proprietà.

  5. Nella finestra di dialogo EstensioneMapperSP - Invia proprietà porta fare clic sulla pagina Mappe in uscita .

    Nella colonna Mappa selezionare la mappa necessaria nell'elenco a discesa e quindi fare clic su OK. Le mappe sono descritte nella tabella riportata di seguito.

    Proprietà di Mappa da applicare Descrizione
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_CallExternalAssembly Illustra come chiamare una funzione in un assembly .NET esterno da un functoid scripting in una mappa, in base ai parametri di input a questo functoid. I questo modo è possibile separare correttamente la logica di elaborazione dal file di mappa. Il file di mappa utilizza l'assembly MapperClassLibrary.dll fornito con questo esempio.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineScripts Viene illustrato come scrivere script inline semplici all'interno di functoid di scripting in un file di mappa usando linguaggi .NET, ad esempio C#, Visual Basic.NET e JScript.NET.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_GlobalVariableInInlineScript Viene illustrato come usare le variabili globali negli script inline dei functoid di scripting . Le variabili globali vengono in genere usate per mantenere le informazioni sullo stato in un file di mapping tra functoid di script diversi .
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXslt Viene illustrato come costruire struttura nel documento di destinazione usando XSLT non elaborati all'interno di un functoid scripting nella mappa. È possibile costruire alcune parti del documento di destinazione usando functoid scripting con XSLT inline ogni volta che non è possibile farlo in BizTalk Mapper usando altri functoid.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_XsltCalltemplate Illustra come creare struttura nel documento di destinazione usando un modello di chiamata XSLT all'interno di un functoid scripting nella mappa. Il vantaggio di un modello di chiamata XSLT su XSLT inline è che il modello di chiamata può accettare parametri, quindi è possibile creare la struttura in base ai parametri di input al functoid scripting . È possibile costruire alcune parti del documento di destinazione usando functoid scripting con XSLT inline ogni volta che non è possibile farlo in BizTalk Mapper usando altri functoid.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXsltCallingExternalAssembly Viene illustrato come chiamare in un assembly .NET esterno dall'interno dell'oggetto XSLT inline di un functoid scripting in una mappa. Viene illustrato come eseguire l'override della proprietà XML estensione personalizzata della griglia BizTalk Mapper con il file di estensione personalizzato ExternalAssembly_extxml.xml contenente i dettagli dell'assembly .NET esterno da richiamare. È possibile costruire alcune parti del documento di destinazione usando functoid scripting con XSLT inline ogni volta che non è possibile farlo nell'interfaccia utente di Mapper usando altri functoid.
    Microsoft.Samples.BizTalk.ExtendingMapper. Override diMapXslt Illustra come eseguire completamente l'override dell'XSLT compilato del file di BizTalk Mapper con un file XSLT personalizzato. A tale scopo, è possibile eseguire l'override della proprietà Custom XSL Pathe facoltativamente la proprietà XML estensione personalizzata della griglia BizTalk Mapper. Il file XSLT personalizzato fornito è incluso nell'assembly compilato BizTalk Server del progetto che si vuole usare in fase di esecuzione. In questo caso, il contenuto del file di mappa (con estensione btm) viene ignorato. Questo file di mapping usa rispettivamente OverridingMapXslt.xslt e OverridingMapXslt.xml per le proprietà XML di estensione XSL personalizzate e estensione personalizzata .

    È possibile convalidare un file di mappa in Esplora soluzioni. È quindi possibile usarlo come file di modello che è possibile modificare e usare per la proprietà Custom XSL Path della griglia BizTalk Mapper. Questa opzione può essere utilizzata ogni volta che non è possibile produrre questo XSLT tramite BizTalk Mapper.

Esecuzione dell'esempio

Per eseguire l'esempio Extending Mapper, eseguire la procedura seguente.

Per eseguire questo esempio

  1. Copiare il file di input ExtendingMapper.xml nella cartella di input in <Samples Path>\XmlTools\ExtendingMapper\In.

  2. Si noti come il file viene trasformato e instradato alla <cartella Samples Path>\XmlTools\ExtendingMapper\Out. La trasformazione che si verifica è basata sulla mappa applicata.

Vedere anche

XML Tools (cartella di esempi di BizTalk Server)