Skip to content

Find Data Row

Type: find-row  ·  Package: DataTable Activities v1.0.5  ·  Output: DataRow

Returns the first row of a DataTable that matches one or more conditions, or null if none match. It does not modify the table.

The conditions are built visually with the conditions editor — the same as Filter DataTable: each condition is column / operator / value, combined with AND or OR logic. The activity walks the rows in order and stops at the first one that matches.

  • Column: by name (case-insensitive) or by position counting from 0.
  • Value: compared exactly as you type it; it is not evaluated as an expression.
  • Operators: equals, not-equals, contains, starts-with, ends-with, greater-than, less-than, greater-or-equal, less-or-equal, is-empty, is-not-empty. Text comparisons are case-insensitive and the greater/less operators require numbers. Each one is detailed in Filter DataTable › Operators.

The returned row stays linked to its table: if you modify it with Set Cell or Update Data Row, the table changes.

ParameterTypeDefaultDescription
tableDataTable—The DataTable to search, e.g. customers.
conditionsobject—Match conditions (column · operator · value) with AND/OR logic, as { logic, items }.

None.

Returns the first matching DataRow, or null if none matches (also for a table with no rows).

MessageCause and fix
'table' must be a DataTable.table does not evaluate to a DataTable. Check the variable.
At least one condition is required.The conditions editor is empty. Add at least one.
Column '…' not found. Available columns: ….A condition’s column does not exist; the message lists the real ones.
Column index … out of range (table has … column(s)).The given column position does not exist.
Value '…' is not numeric.A numeric operator found a non-numeric or empty cell. Put is-not-empty on that column first, with AND.

Find a customer’s first overdue invoice and report it:

Find Data Row table = invoices conditions: Customer equals "Northwind Trading" AND Status equals "Overdue" → output: invoice
If condition = invoice != null
├─ then:
│ Get Cell row = invoice column = "Number" → output: number
│ Log message = "Overdue invoice: " + str(number)
└─ else:
Log message = "No invoice matches"