Biztalk Server ¿Cómo filtrar en el mapper?

Para un proyecto de BizTalk Server 2006 tuvimos que usar el Mapper de manera intensa. Una de las cosas que aprendí implementando unas transformaciones algo que suena my trivial, y en rigor lo es pero cuando uno sabe cómo hacerlo.

La problemática es la siguiente:

Si quiero pasar de un esquema A a un esquema B, dónde el mensaje original tiene un Record con múltiples filas y el destino sólo requiere una fila debemos filtrar.

 ¿Cómo puedo filtrar usando el mapper?

La solucionatica.

Para esto se deben usar dos Functoids:

 

  • Equal: Use the Equal functoid to return the value “true” if the first input parameter is equal to the second input parameter. This functoid requires two input parameters.
  • Looping: Use the Looping functoid to combine multiple records and/or fields in the source schema into a single record in the destination schema. This functoid needs at least one input parameter. There is no limit to the number of input parameters that the Looping functoid will accept. Only links are allowable as input parameters.

La idea es que Looping realiza las iteraciones de todos los elementos contenidos el record. Equal se usa para generar una salida lógica (True/False). La salida de la condición lógica se junta con la salida del Looping. Si el valor de la comparación lógica es verdadero, entonces se copia el registro al destino. Si es falso el registro se ignora.

Está es una simple implementación de un filtro en el Mapper.

La siguiente imagen muestra el mapa de ejemplo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s