Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile usare espressioni per trasformare dinamicamente i messaggi nell'orchestrazione. XLANG espone un metodo di trasformazione che può essere chiamato dall'interno di una forma Assegnazione messaggio all'interno di una forma Construct Message . Si tratta dello stesso metodo chiamato quando viene usata una forma Transform , ma consente di trasformare i messaggi a livello di codice usando la mappa designata all'interno dell'orchestrazione. Ciò è utile quando si esegue l'elaborazione di messaggi indipendenti dai tipi. Ad esempio, se si dispone di un processo aziendale che deve scegliere tra una serie di mappe per trasformare i messaggi in ingresso in base ai parametri forniti dai messaggi in ingresso ricevuti, è possibile ottenere questo risultato usando il metodo transform nella forma Espressione mantenendo intatto il processo aziendale complessivo.
Trasformazione dei messaggi
È possibile usare il codice di esempio seguente per trasformare i messaggi a livello di codice nella forma Assegnazione messaggi :
MyMapType = typeof(MyMapName);
transform(MyOutputMsg) = MyMapType(MyInputMsg);
In questo esempio MyMapType viene dichiarato come variabile di tipo System.Type nell'orchestrazione. MyMapName è il nome di una mappa già creata nel progetto BizTalk. Se si desidera fare riferimento a una mappa che si trova in un assembly BizTalk separato, sarà necessario fare riferimento a tale assembly nel progetto BizTalk. MyInputMsg è il messaggio di origine e MyOutputMsg è il messaggio di destinazione. Se la mappa accetta più messaggi di origine, è possibile usare il codice di esempio seguente per trasformare i messaggi:
MyMapType = typeof(MyMapName);
transform(MyOutputMsg) = MyMapType(MyInputMsg1, MyInputMsg2);
Annotazioni
Se sono presenti più messaggi di origine, devono essere inseriti nell'ordine nell'espressione rispetto al numero di parte del messaggio di input indicato nella mappa.
Importante
Quando si trasformano dinamicamente i messaggi nella forma Espressione, è consigliabile scrivere una cache nel codice utente per memorizzare nella cache le mappe compilate e quindi usare la cache nella forma Espressione per recuperare le mappe prima di eseguire la trasformazione del messaggio. Se non si memorizzano nella cache le mappe, è possibile visualizzare un aumento significativo della memoria CLR (Common Language Runtime). Per il mapping dinamico è necessario che il runtime .NET esegua il controllo dell'accesso al codice che comporta l'immissione di un oggetto Evidence .NET nell'heap di oggetti Large per ogni trasformazione e questo oggetto non viene eliminato fino al completamento dell'orchestrazione. Pertanto, quando si verificano molti di questi tipi di trasformazioni contemporaneamente, è possibile che l'utilizzo della memoria aumenti notevolmente, che può anche causare un'eccezione di memoria insufficiente.
Vedere anche
Forme di orchestrazione
Creazione di mappe con BizTalk Mapper