WQL Schema Tables

The Workday JDBC Connector enables data retrieval using Workday Query Language (WQL) within the WQL schema. The Workday Query Language (WQL) enables you to use SQL-like syntax to access Workday data using data sources and fields.

WQL enables you to query Workday for data and explore:

  • Data sources

  • Data source filters

  • Fields

For more information about WQL, see https://doc.workday.com/admin-guide/en-us/reporting-and-analytics/custom-reports-and-analytics/workday-query-language-wql-/aht1611188422513.html.

WQL DataSources and Fields

Each Workday Data Source and its fields are represented as a Single Table (with fields as columns) within the WQL schema. The connector supports the WQL Query Syntax to query WQL Schema tables.

The connector supports all the following WQL features:

  • PARAMETERS

  • SELECT

  • FROM

  • WHERE

  • WHERE ON

  • ORDER BY

  • LIMIT

  • GROUP BY

  • HAVING

For more information about WQL features and syntax, see https://doc.workday.com/admin-guide/en-us/reporting-and-analytics/custom-reports-and-analytics/workday-query-language-wql-/wql-reference/trh1644452418127.html?toc=1.20.9.0WQL.

Data type Mapping

The following table is a list of supported WQL types:

WQL Type SQL Type
Multi instance WVARCHAR
Currency Numeric
Text WVARCHAR
Time Timestamp
Date Date
Single instance WVARCHAR
Self referencing instance WVARCHAR

Limitations

  • In certain scenarios, you may encounter a "Column not found" error when querying columns that represent related business objects. This happens when the data intended to be retrieved by these columns is already available through another existing top-level column within the same table.

    For example,

    If you query the company{name} column in the allWorkers table, you might receive an error "Column not Found : company{name}" because the data for company{name} is already represented by the company_name column.

    To resolve this issue, use the underscore _ notation in the column names instead of curly braces {}. For instance, replace company{name} with company_name.

  • If the column name in the WQL query is same as any SQL reserved keyword, like public, usage, or default, then it needs to be escaped using double quotations before sending it to the connector for execution.

    For example:

    SELECT instance1, usage FROM inventoryDailyUsageDataSource

    This query will not be executed and the connector will throw "Syntax error near usage<<<?>>>" since usage is a SQL reserved keyword. The query needs to be modified like this to make it work:

    SELECT instance1, "usage" FROM inventoryDailyUsageDataSource