Cómo usar expresiones para transformar mensajes de forma dinámica
En la orquestación, puede usar expresiones para transformar mensajes de forma dinámica. 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 usa una forma de transformación , pero permite transformar mediante programación los mensajes mediante el mapa que designó dentro de la orquestación. Esto resulta útil en los procesamientos de mensajes de tipo independiente. Por ejemplo, si tiene un proceso empresarial que necesita elegir entre una serie de asignaciones para transformar mensajes entrantes según los parámetros que los mensajes entrantes recibidos proporcionaron, puede conseguirlo mediante el uso del método de transformación en la forma Expresión mientras mantiene intacto su proceso empresarial general.
Transformar 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 una asignación ya creada en el proyecto de BizTalk. Si desea hacer referencia a una asignación que se encuentre en un ensamblado de BizTalk diferente, tendrá que hacer referencia a ese ensamblado en el proyecto de BizTalk. MyInputMsg es el mensaje de origen y MyOutputMsg es el mensaje de destino. Si la asignación toma varios mensajes de origen, puede usar el siguiente código de ejemplo para transformar los mensajes:
MyMapType = typeof(MyMapName);
transform(MyOutputMsg) = MyMapType(MyInputMsg1, MyInputMsg2);
Nota
Si tiene varios mensajes de origen, deben estar colocados en orden en la expresión en relación al número de parte del mensaje de entrada que se indica en la asignación.
Importante
Cuando se transforman mensajes de forma dinámica en la forma Expresión, se recomienda escribir una caché en el código de usuario para almacenar las asignaciones compiladas y, después, usarla en la forma Expresión para recuperar las asignaciones antes de realizar la transformación del mensaje. Si no almacena en caché las asignaciones, existe la posibilidad de que la memoria de Common Language Runtime (CLR) aumente de forma significativa. La asignación dinámica requiere que el motor de tiempo de ejecución de .NET realice comprobaciones de acceso al código que de origen a un objeto de evidencia de .NET se coloque en el montón del objeto grande para cada transformación y a que este objeto no se elimine hasta que la orquestación finalice. Por tanto, cuando se suceden muchos de estos tipos de transformaciones de forma simultánea, puede ver que el uso de memoria aumenta significativamente lo que puede provocar también una excepción de memoria insuficiente.
Consulte también
Formas de orquestación
Crear asignaciones con el Asignador de BizTalk