Data sources, and the query language over them
A data source is the only thing a report or a WQL query actually reads. What it is, how to see its fields in your tenant, and how to query it, with queries you can copy.
◆ What a data source is— one primary business object, one row per instance, delivered in variants for different populations.
| Property | What it means |
|---|---|
| Primary business object | Every data source has exactly one. The output is one row per instance of it, and it dictates which related objects a query can reach. See the object model. |
| Delivered variants | Workday ships several sources over the same object for different populations: All Workers, All Active and Terminated Workers, All Active Employees. Same object, different rows. See Worker. |
| Indexed | Some sources are pre-optimized for fast retrieval. Prefer the indexed source when one exists for your primary object. |
| Security | Access is granted per data source and per field through domain security. A query returns only what its user, or ISU, is granted. |
| Do Not Use | Some delivered sources carry a Do Not Use designation. Leave them alone; they exist for backward compatibility. |
◆ WQL in practice— SELECT fields FROM a data source alias, with aliases for clean landing columns.
WQL reads like SQL against a data source alias. Fields are camelCase, AS renames them for your landing zone, and results page through the WQL REST endpoint under an OAuth client. The minimal pull:
SELECT workdayID, employeeID, legalFirstName, legalLastName FROM allWorkers
The same pull with landing-ready column names:
SELECT workdayID AS worker_wid, employeeID AS employee_id, legalFirstName AS first_name, legalLastName AS last_name, email_PrimaryWork AS work_email FROM allWorkers
WQL also filters, sorts, and aggregates, and the exact field names available depend on the data source and your security grants, which is why the reliable workflow is to generate the query from your own tenant rather than type field names from memory. The three ways, next section.
◆ Getting WQL out of your own tenant— convert a report, browse the data source, or build a small report and convert it.
| Route | How | Best for |
|---|---|---|
| Convert Report to WQL | Run the Convert Report to WQL task against an existing standard or custom report. Workday writes the query for you, with the real field names. | The fastest correct query. Start here. |
| Browse the data source | Find the data source through global search, open it, and read its available fields. Write the query from what you see. | Understanding what a source can reach before you build anything. |
| Build, then convert | Build a small Advanced report with exactly the fields you want, then convert it. | Curated extracts where the field list is the design. |
One conversion catch, stated once: calculated fields do not survive the conversion to WQL. The logic stays in the tenant, and the durable fix is rebuilding it as models you own. See the extraction pattern.
◆ Limits that matter— the security domain, the source boundary, calculated fields, and paging.
| Limit | What it means for extraction |
|---|---|
| WQL security domain | The querying user or ISU needs access to the Workday Query Language domain, plus grants on the data source and fields. A missing column in your results is usually a missing grant. |
| The source boundary | A query reads one data source. There are no joins across sources; cross-source questions are answered in your warehouse after landing. See the enterprise model. |
| Calculated fields | Not carried by WQL. If a report's value comes from a calculated field, extract via RaaS or rebuild the logic in dbt. |
| Paging | Results page with limit and offset parameters. Large pulls loop pages; design the pipeline to checkpoint between them. |
| Effective dates | A query answers as of a moment. History comes from pulling with date filters and rebuilding it. See effective dating. |
- data source
- The published set of instances and fields a report or WQL query reads. Security applies here.
- primary business object
- The object a data source returns one row per instance of.
- indexed data source
- A data source pre-optimized for fast retrieval.
- WQL
- Workday Query Language. SELECT fields FROM a data source alias, over REST.
- alias
- The camelCase name a data source or field goes by in WQL, allWorkers for example.
- Convert Report to WQL
- The tenant task that writes the WQL for an existing report, with the real field names.
- calculated field
- Report logic defined inside the tenant. Not carried by WQL.
- ISU
- Integration System User, the read-only service account extracts run as.
- domain security
- Workday's permission model. Grants scope data sources and fields per user.
- paging
- Pulling results in chunks with limit and offset, looped until done.