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 forcompany{name}
is already represented by thecompany_name
column.To resolve this issue, use the underscore _ notation in the column names instead of curly braces {}. For instance, replace
company{name}
withcompany_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