Portal Community

Node Configuration

{
  "nodeType": "DataOceanQuery",
  "name": "fetchPayrollSummary",
  "config": {
    "dataset": "payroll-runs",
    "filter": {
      "employeeId": "$output.fetchEmployee.entityId",
      "periodYear": "$json.year",
      "periodMonth": { "gte": 1, "lte": 12 }
    },
    "fields": ["periodYear", "periodMonth", "grossPay", "netPay", "deductions"],
    "orderBy": "periodMonth",
    "orderDirection": "desc",
    "limit": 12
  }
}

Configuration Fields

FieldTypeDescription
datasetstringData Ocean dataset ID. Available datasets are tenant-specific.
filterobjectFilter criteria using the same operator syntax as EntityQueryNode (gte, in, contains, etc.).
fieldsstring[]Fields to include in results (projection). If omitted, all fields are returned.
orderBystringField name to sort by.
orderDirectionasc | descSort direction. Default: asc.
limitintMaximum rows. Default: 100. Max: 10,000 (Data Ocean supports large result sets).

Node Output

{
  "rows": [
    { "periodYear": 2026, "periodMonth": 5, "grossPay": 5200.00, "netPay": 3900.00, "deductions": 1300.00 },
    { "periodYear": 2026, "periodMonth": 4, "grossPay": 5200.00, "netPay": 3920.00, "deductions": 1280.00 }
  ],
  "rowCount": 2,
  "dataset": "payroll-runs"
}

DataOcean vs SQL Query

AspectSqlQueryNodeDataOceanQueryNode
SourceExternal database via registered connectionData Ocean — BizFirstGO's internal analytics store
Query styleRaw SQL with @paramsStructured filter DSL (no SQL)
Row limit50010,000 (optimized for analytics)
LatencyLow (OLTP)Higher (OLAP / data warehouse)
CredentialVia datasource registrationImplicit — uses execution's tenant access
Analytics workflows: Use DataOceanQueryNode for reporting and analytics workflows that need to process large aggregated datasets. Use EntityQueryNode or SqlQueryNode for operational workflows that need current transactional data.