Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede usar expresiones para transformar dinámicamente los mensajes en la orquestación. XLANG expone un método de transformación al que se puede llamar desde dentro de una forma de asignación de mensajes dentro de una forma Construir mensaje . Este es el mismo método al que se llama cuando se utiliza una forma de Transformación, pero permite transformar de forma programática los mensajes utilizando el mapa que designó dentro de la orquestación. Esto resulta útil cuando se realiza el procesamiento de mensajes independientes del tipo. Por ejemplo, si tiene un proceso empresarial que necesita elegir entre una serie de mapas para transformar los mensajes entrantes según los parámetros proporcionados por los mensajes entrantes recibidos, puede lograrlo utilizando el método de transformación en la forma Expresión, manteniendo intacto su proceso empresarial general.
Transformación de mensajes
Puede usar el código de ejemplo siguiente para transformar mediante programación los mensajes en la forma Asignación de mensajes:
MyMapType = typeof(MyMapName);
transform(MyOutputMsg) = MyMapType(MyInputMsg);
En este ejemplo, MyMapType se declara como una variable de tipo System.Type en la orquestación. MyMapName es el nombre de un mapa que ya se creó en el proyecto de BizTalk. Si desea hacer referencia a un mapa que se encuentra en un ensamblado de BizTalk independiente, deberá hacer referencia a ese ensamblado en el proyecto de BizTalk. MyInputMsg es el mensaje de origen y MyOutputMsg es el mensaje de destino. Si el mapa toma varios mensajes de origen, puede usar el código de ejemplo siguiente para transformar los mensajes:
MyMapType = typeof(MyMapName);
transform(MyOutputMsg) = MyMapType(MyInputMsg1, MyInputMsg2);
Nota:
Si tiene varios mensajes de origen, deben colocarse en orden en la expresión con respecto al número de elemento de mensaje de entrada indicado en el mapa.
Importante
Al transformar dinámicamente los mensajes en la forma Expresión, se recomienda escribir una memoria caché en el código de usuario para almacenar en caché los mapas compilados y, a continuación, usar la memoria caché en la forma Expresión para recuperar los mapas antes de realizar la transformación del mensaje. Si no almacena en caché los mapas, es posible ver que la memoria de Common Language Runtime (CLR) crece significativamente. La asignación dinámica requiere que el runtime de .NET realice una comprobación de acceso al código que da como resultado que se coloque un objeto Evidence de .NET en el montón de objetos grandes para cada transformación y este objeto no se elimine hasta que se complete la orquestación. Por lo tanto, cuando hay muchos de estos tipos de transformaciones que se producen simultáneamente, es posible que vea que el uso de memoria aumenta considerablemente, lo que también puede provocar la excepción de memoria insuficiente.