Filter DataTable
Filter DataTable
Sección titulada «Filter DataTable»Tipo: filter-datatable · Paquete: DataTable Activities v1.0.5 · Salida: DataTable
Filtra una DataTable y devuelve una tabla nueva solo con las filas que cumplen las condiciones. Es la operación más común al procesar datos: quedarte con los pendientes, los mayores a un monto, los de un cliente. Soporta varias condiciones combinadas con lógica Y (todas) u O (alguna).
Cómo funciona
Sección titulada «Cómo funciona»Evalúa cada fila contra las conditions. En el Designer, las condiciones se arman con un editor visual: por cada una eliges una columna, un operador y un valor, y defines si se combinan con Y (and) u O (or). Devuelve una tabla nueva, con las mismas columnas, solo con las filas que pasan el filtro; la tabla original no cambia.
- Columna: por nombre (sin distinguir mayúsculas de minúsculas) o por posición contando desde 0 (
0,1…). - Valor: se compara tal como lo escribes en el editor; no se evalúa como expresión. Las comillas que lo rodean se quitan (
"Pendiente"yPendienteson lo mismo). - Lógica:
orexige que se cumpla alguna condición; cualquier otro valor (por defectoand) exige todas. Las condiciones se evalúan en orden y la evaluación se detiene en cuanto el resultado está decidido. - La estructura que guarda el editor es
{ logic, items: [ { column, operator, value } ] }; también se acepta una lista plana de condiciones. Los playbooks antiguos que expresaban una sola condición con los campos sueltoscolumn/operator/value/logicsiguen funcionando.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
table | DataTable | — | La DataTable a filtrar. |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
conditions | object | — | Condiciones del filtro (columna · operador · valor) con lógica Y/O, como { logic, items }. Aunque el esquema la marca como opcional, la actividad necesita al menos una condición para ejecutarse. |
Operadores disponibles
Sección titulada «Operadores disponibles»| Operador | Significado |
|---|---|
equals / not-equals | Igual / distinto. Si la celda y el valor son números, compara como números (5 = 5.0); si no, como texto sin distinguir mayúsculas. |
contains | Contiene el texto (sin distinguir mayúsculas). |
starts-with / ends-with | Empieza / termina con (sin distinguir mayúsculas). |
greater-than / less-than | Mayor / menor que. Solo numérico: la celda y el valor deben ser números. |
greater-or-equal / less-or-equal | Mayor-igual / menor-igual. Solo numérico. |
is-empty / is-not-empty | Celda vacía (o solo espacios) / no vacía. No usan el valor. |
Los números se leen con punto decimal (1500.50); la coma se interpreta como separador de miles.
Devuelve una DataTable con las mismas columnas que la original y solo las filas que cumplen, en su orden original. Si ninguna fila cumple, devuelve una tabla vacía (0 filas, mismas columnas), no null.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
'table' debe ser una DataTable. | table no evalúa a una DataTable (variable vacía o de otro tipo). Revisa la actividad que la produce. |
Se requiere al menos una condición ('column'+'value' o 'conditions'). | No hay condiciones. Agrega al menos una en el editor. |
No se encontró la columna '…'. Columnas disponibles: …. | La columna de una condición no existe en la tabla. El mensaje lista las columnas reales; corrige el nombre. |
El índice de columna … está fuera de rango (la tabla tiene … columna(s)). | Usaste una posición de columna mayor que las disponibles. |
Value '…' is not numeric. / Comparison value '…' is not numeric. | Un operador numérico (greater-than, less-than…) encontró una celda o un valor que no es número; también ocurre con celdas vacías. Antepón una condición is-not-empty sobre la misma columna con lógica Y: como la evaluación se detiene en la primera condición falsa, las filas vacías ya no llegan a la comparación. |
Unrecognized operator: '…' | El operador no es uno de la tabla anterior (pasa al editar el playbook a mano). |
Ejemplo
Sección titulada «Ejemplo»Quedarse con las facturas pendientes y mayores a 1.000.000:
Filter DataTable table = facturas conditions: Estado equals "Pendiente" Y Total greater-than 1000000 → output: importantes
Log message = "Filas que cumplen: " + rowCount(importantes) + " de " + rowCount(facturas)Actividades relacionadas
Sección titulada «Actividades relacionadas»- Find Data Row — obtener solo la primera fila que cumple.
- Sort DataTable — ordenar el resultado filtrado.
- Aggregate Column — sumar/contar sobre las filas filtradas.
- Group By — resumir por categorías.