Filtros y condiciones
En este tema se explica cómo filtrar datos utilizando los componentes de filtro y WHERE/ORDER de SQL/NoSQL. Asimismo, muestra cómo utilizar el componente if-else para evaluar una condición lógica y devolver uno de varios valores sencillos, en función de si dicha condición da como resultado true o false. Para más información, siga leyendo.
Estos componentes se pueden añadir a través del menú Insertar, la barra de herramientas o la galería de componentes.
Filtro: nodos/filas
Cuando necesite filtrar datos, incluidos nodos XML o filas CSV, utilice un componente Filtro: nodos/filas. El componente Filtro: nodos/filas le permite recuperar un subconjunto de nodos a partir de un conjunto de datos más amplio, en función de una condición que dé como resultado true o false. Esta es su estructura en el área de asignación:

En la estructura anterior, la condición vinculada a bool determina si el nodo o la fila conectados se dirigen a la salida on-true u on-false. Es decir, si la condición se cumple (es true), entonces node/row se redirige a la salida on-true. Por el contrario, si la condición no se cumple (es false), node/row se redirigirá a la salida on-false.
Cuando necesite que la asignación solamente consuma elementos que cumplan la condición de filtrado, puede dejar sin conectar la salida on-false. Si necesita procesar los elementos que no cumplan la condición de filtrado, entonces conecte la salida on-false al nodo de destino donde se deben redirigir dichos elementos. Si desea añadir una excepción cuando no se cumpla la condición del filtro, es obligatorio conectar la salida on-false (véase Añadir excepciones).
Para ver un ejemplo paso a paso, consulte Ejemplo: Filtrar nodos.
Filtrar bases de datos (ediciones Professional y Enterprise Edition)
Los componentes Filtro: nodos/filas pueden filtrar datos de cualquier otra estructura de componentes compatible con MapForce, incluidas las bases de datos. Sin embargo, si desea filtrar datos de una base de datos, lo más recomendado es usar un componente WHERE/ORDER de SQL. El componente SQL WHERE/ORDER está optimizado para trabajar con bases de datos y ofrece un mayor rendimiento que el componenteFiltro: nodos/filas.

Para más información consulte el apartado Componente WHERE/ORDER de SQL.
Devolver un valor de forma condicional
Si necesita obtener un solo valor (en lugar de un nodo o de una fila) de forma condicional, lo mejor es usar la condición if-else. Recuerde que estas condiciones if-else no son adecuadas para el filtrado de nodos o filas. A diferencia de los componentes Filtro: nodos/filas, las condiciones if-else devuelven un valor de tipo simple (como una cadena o un entero). Por tanto, estas condiciones if-else solamente deben utilizarse cuando sea necesario procesar un valor simple de forma condicional. Por ejemplo, imagine que tiene una lista de las temperaturas medias de cada mes en este formato:
<Temperatures> |
Una condición if-else permite devolver por cada elemento de la lista el valor "alto" si la temperatura supera los 20 grados centígrados y el valor "bajo" si la temperatura es inferior a los 5 grados centígrados.
En la asignación la estructura de la condición if-else sería:

Si la condición asociada a bool se cumple (es true), el valor conectado a value-true se devuelve como result. Si la condición no se cumple (es false), el valor que está conectado a value-false se devuelve como result. El tipo de datos de result se conoce previamente y depende del tipo de datos del valor que está conectado a value-true o value-false. Lo importante es que siempre sea de tipo simple (cadena, entero, etc.). Las condiciones if-else no admiten el uso de valores de entrada de tipo complejo (como nodos o filas).
Las condiciones if-else son ampliables. Esto significa que puede añadir varias condiciones al componente con solo hacer clic en el botón Agregar (
). Para eliminar una condición añadida previamente, haga clic en el botón Eliminar (
). Esta función le permite comprobar varias condiciones y devolver un valor diferente para cada una de ellas, siempre que sea true.

Las condiciones if-else ampliadas, se evalúan de arriba a abajo (se comprueba en primer lugar las condiciones situadas más arriba). Si desea devolver un valor cuando ninguna de las condiciones sea true, conéctelo a otherwise.
Para ver un ejemplo paso a paso, consulte Ejemplo: Devolver un valor de forma condicional.