Custom Functoid (esempio di BizTalk Server)
Nell'esempio Custom Functoid viene illustrato come scrivere un functoid personalizzato per BizTalk Mapper. È possibile aggiungere il functoid alla casella degli strumenti di Visual Studio. Il functoid verrà visualizzato nella casella degli strumenti quando BizTalk Mapper riceve lo stato attivo.
Un functoid personalizzato deve trovarsi in un assembly di BizTalk Mapper affinché venga riconosciuto. Può essere scritto in qualsiasi linguaggio conforme a .NET, ad esempio C# o Visual Basic.
Inoltre, un functoid personalizzato deve derivare dalla Microsoft.BizTalk.BaseFunctoids
classe e deve fornire l'implementazione per alcuni metodi eseguendone l'override. La BaseFunctoid
classe è definita nell'assembly Microsoft.BizTalk.BaseFunctoids.dll incluso in BizTalk Server.
Scopo dell'esempio
L'esempio Functoid personalizzato implementa diversi functoid, ognuno dei quali deriva dalla classe ed esegue l'override BaseFunctoid
di diversi metodi.
Quando si implementa un functoid personalizzato, è possibile esporre il relativo codice inline. Il codice inline è il componente che esegue i calcoli per il functoid. Il compilatore di BizTalk Mapper estrae il codice inline da un functoid e lo incorpora nell'XSLT compilato quando il progetto viene compilato.
Se il functoid non espone codice inline, BizTalk Mapper genera XSLT che effettua una chiamata nell'assembly in cui risiede il functoid personalizzato. In tal caso, è necessario essere certi che l'assembly del functoid personalizzato sia disponibile nella Global Assembly Cache (GAC) in modo che il motore XSLT possa trovarlo. Un functoid personalizzato deve inoltre avere un attributo GUID univoco. BizTalk Mapper utilizza il GUID per identificare l'assembly da caricare.
Importante
Se si riutilizza il codice dell'esempio Custom Functoid per implementare i propri functoid, assicurarsi di modificare l'attributo GUID impostandolo su un valore univoco.
Percorso dell'esempio
<Percorso> esempi\XmlTools\CustomFunctoid
Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.
File | Descrizione |
---|---|
AssemblyInfo.cs | Codice sorgente in C# di informazioni sull'assembly. |
CBuildArray.bmp | Bitmap della casella degli strumenti. |
CConcat.bmp | Bitmap della casella degli strumenti. |
CExtractArray.bmp | Bitmap della casella degli strumenti. |
Cleanup.bat | Viene utilizzato per annullare la distribuzione degli assembly e rimuoverli dalla Global Assembly Cache, nonché per eliminare CustomFunctoid.dll. |
CLongestString.bmp | Bitmap della casella degli strumenti. |
CMultiply.bmp | Bitmap della casella degli strumenti. |
CustomFunctoid.cs | Codice sorgente in C# del functoid personalizzato. |
CustomFunctoid.csproj | Progetto in C# del functoid personalizzato. |
CustomFunctoid.sln | Soluzione di functoid personalizzato. |
CustomFunctoidResources.resx | Risorse del functoid personalizzato. |
Setup.bat | Viene utilizzato per compilare, distribuire e avviare l'esempio. |
Compilazione e inizializzazione dell'esempio
Utilizzare la procedura seguente per compilare e inizializzare l'esempio Custom Functoid.
Per compilare e inizializzare l'esempio
In una finestra di comando modificare la directory (cd) nella cartella seguente:
<Percorso esempi>\XmlTools\CustomFunctoid
Eseguire il file Setup.bat. Verranno eseguite le operazioni seguenti:
Compilazione del progetto di esempio.
Copia dell'assembly generato nella directory Developer Tools\Mapper Extensions.
Aggiunta dell'assembly generato alla GAC.
Nota
Prima di tentare di eseguire l'esempio, verificare che non siano stati segnalati errori durante il processo di compilazione e inizializzazione.
Esecuzione dell'esempio
Utilizzare la procedura seguente per eseguire l'esempio Custom Functoid.
Per eseguire questo esempio
Da un progetto BizTalk di Visual Studio fare clic sul menu Strumenti e selezionare Scegli elementi della casella degli strumenti.
Nella finestra di dialogo Scegli elementi casella degli strumenti selezionare la scheda Functoid BizTalk Mapper .
Fare clic su Reimposta e quindi su OK.
Nota
Se il functoid personalizzato non espone codice inline, verificare che il relativo assembly sia disponibile nella GAC.
Scegliere Esci dal menu File per chiudere Visual Studio.
Avviare il prompt dei comandi di Visual Studio.
Al prompt dei comandi digitare devenv /setup.
Avviare Microsoft Visual Studio.
I functoid personalizzati (functoid concatenato personalizzato, Stringa più lunga, Functoid build array e Extract array functoid) vengono visualizzati nella scheda Functoid stringa della Casella degli strumenti e il functoid Moltiplica cumulativo viene visualizzato nella scheda Functoid cumulativi .
Rimozione dell'esempio
Utilizzare la procedura seguente per rimuovere l'esempio Custom Functoid.
Per rimuovere l'esempio
Rimuovere i functoid dalla casella degli strumenti di Visual Studio.
Avviso
Se dopo l'esecuzione di Cleanup.bat, nella casella degli strumenti sono ancora visibili i functoid personalizzati non aggiornati (probabilmente a causa della memorizzazione nella cache interna da parte di Visual Studio), attenersi alle seguenti procedure:
Da un progetto BizTalk di Visual Studio fare clic sul menu Strumenti e selezionare Scegli elementi della casella degli strumenti.
Nella finestra di dialogo Scegli elementi casella degli strumenti selezionare la scheda Functoid BizTalk Mapper .
Individuare i functoid personalizzati (Custom Concatenate, Longest String, Build Array, Extract Array e Cumulative Multiply) nell'elenco. Fare clic sulla rispettiva casella di controllo per rimuovere i functoid e quindi fare clic su OK.
Se la procedura riportata sopra non funziona, attenersi alla seguente procedura:
Dal progetto BizTalk di Visual Studio fare clic sulla scheda Casella degli strumenti durante la modifica di una mappa per visualizzare il riquadro degli strumenti.
Fare clic con il pulsante destro del mouse sulla casella degli strumenti e scegliere Scegli elementi.
Nella finestra di dialogo Scegli elementi fare clic su Reimposta e quindi su OK.
Chiudere tutte le istanze di Visual Studio.
Se la procedura riportata sopra non funziona, attenersi alla seguente procedura:
Avviare il prompt dei comandi di Visual Studio come amministratore.
Chiudere tutte le istanze di Visual Studio in esecuzione.
Eseguire i seguenti comandi:
devenv /resetsettings
devenv /setup
Dalla casella degli strumenti, è possibile selezionare manualmente i functoid non desiderati. Fare quindi clic con il pulsante destro del mouse sul functoid e scegliere Elimina.
Se la procedura riportata sopra non funziona, attenersi alla seguente procedura:
Da un progetto BizTalk di Visual Studio fare clic sulla scheda Casella degli strumenti durante la modifica di una mappa per visualizzare il riquadro degli strumenti.
Fare clic sul gruppo Functoid cumulativi .
Fare clic con il pulsante destro del mouse sul functoid che si vuole rimuovere e quindi scegliere Elimina o premere il tasto delete .
Fare clic sul gruppo Functoid stringa .
Fare clic con il pulsante destro del mouse sul functoid che si vuole rimuovere e quindi scegliere Elimina o premere il tasto delete .
In una finestra di comando modificare la directory (cd) nella cartella seguente:
<Percorso esempi>\XmlTools\CustomFunctoid
Eseguire il file Cleanup.bat. Verranno eseguite le operazioni seguenti:
Eliminazione dell'assembly dalla directory Developer Tools\Mapper Extensions.
Rimozione dell'assembly dalla GAC.
Classi o metodi utilizzati nell'esempio
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid
Vedere anche
Uso di BaseFunctoid
XML Tools (cartella di esempi di BizTalk Server)