Validate Data Versions Using the Workday Query Language
Write queries using the Workday Query Language (WQL) to validate data versions produced by Visier's Workday connector.
Overview
The Workday Query Language (WQL) is a query language used to interact with and retrieve data from the Workday system. In Studio, you can write WQL queries to validate the data versions produced by the Workday connector. Use the WQL to validate your Workday data as you configure the mappings and rules in Visier during initial onboarding.
Create a WQL connector
-
Add OAuth 2.0 credentials in Studio.
Note: WQL only supports OAuth 2.0 for authentication. For instructions on how to create OAuth 2.0 credentials in Visier, see Workday.
- In a project, on the navigation bar, click Data > Connectors. Create a connector and select the Workday WQL connector type. For instructions, see Set Up Data Connectors.
Get the WQL schema
- After the connector is created, click Request Sandbox.
- In the Request Sandbox tab, select Data from the Type list.
Result: A list of tables available for querying will appear. This may take some time.
- Select the table you want to query and look at its columns.
Tip:
- Use search to quickly find tables and columns.
- To view columns in a table, click the Expand button .
- To insert tables or columns to your query, click the Add button .
Write the WQL query
Visier offers a dialect of Structured Query Language (SQL) that allows you to query data in Visier more easily. For more information, see Write SQL-Like Queries. To validate your data, write aggregate queries in WQL and compare the results with the metrics in Visier. Then, write list queries in WQL and compare the result with the Detailed View visual in Visier to investigate the root cause of any discrepancies.
Use the following code samples as guidance when writing your WQL queries. For more information about the WQL syntax, see WQL Reference.
Aggregate query
Headcount query
This query retrieves 1 month of Headcount data up to October 31, 2024. It does not use any group bys or filters. This is equivalent to the Headcount metric for October, 2024.
select count() from allActiveEmployees (effectiveAsOfDate = "2024-10-31")
Headcount query with group by
This query retrieves 1 month of Headcount data grouped by Gender up to October 31, 2024.
select count(), gender from allActiveEmployees (effectiveAsOfDate = "2024-10-31")
group by gender
This query retrieves 1 month of Headcount data grouped by Gender and Employee Type up to October 31, 2024.
select count(), gender, cf_EmployeeTypeSI from allActiveEmployees (effectiveAsOfDate = "2024-10-31")
group by gender, cf_EmployeeTypeSI
Note: Group by does not support multi-instance columns. employeeType is one example. Because of how this data is structured, you must use its corresponding calculated field cf_EmployeeTypeSI.
List query
Basic list query
This query retrieves the employee ID, first name, last name for all employees who were active as of October 31, 2024. It does not use any group bys or filters. The effectiveAsOfDate clause allows you to set the time parameter of the query.
select employeeID, firstName, lastName from allActiveEmployees (effectiveAsOfDate = "2024-10-31")
Tip: Paginate results when querying a large data set
- Use the the Limit and Offset options to control the number of records returned in one query. For example, if the estimated number of records is approximately 10,000. Set the limit to 1000, and offset to 0 to get the first 1000 records, then limit to 1000 and offset to 1000 for the next 1000 records, and so on.
- By default the limit is 100.
List query with filter
Use the where clause to filter records.
This query retrieves the employee ID, gender, and employee type for employee 210001.
select workdayID, employeeID, gender, cf_EmployeeTypeSI from allActiveEmployees (effectiveAsOfDate = "2024-10-31")
where employeeID = "21001"
This query retrieves the employee ID, gender, and employee type for regular, women employees who were active as of October 31, 2024.
select workdayID, employeeID, gender, cf_EmployeeTypeSI from allActiveEmployees (effectiveAsOfDate = "2024-10-31")
where cf_employeeTypeText = "Regular" and cf_Gender1Letter = "F"
Note: Filter only support data types such as text, boolean, or numeric. Multi-instance and single instance types cannot be used in a where clause. gender is one example. Because of how the data is structured, you must use its corresponding text field cf_Gender1Letter.
Event query
If you're querying an event table, such as termination, use the proper event date in the where clause.
This query retrieves all employee terminations for 2022.
select employeeID, terminationDate from allTerminatedEmployees
where terminationDate <= "2022-12-31" and terminationDate >= "2022-01-01"