The CData Sync App provides a straightforward way to continuously pipeline your Workday data to any database, data lake, or data warehouse, making it easily available for Analytics, Reporting, AI, and Machine Learning.
The Workday connector can be used from the CData Sync application to pull data from Workday and move it to any of the supported destinations.
Create a connection to Workday by navigating to the Connections page in the Sync App application and selecting the corresponding icon in the Add Connections panel. If the Workday icon is not available, click the Add More icon to download and install the Workday connector from the CData site.
Required properties are listed under the Settings tab. The Advanced tab lists connection properties that are not typically required.
The WQL service must be enabled before connecting:
To obtain the Host and Tenant properties, log into Workday and search for View API Clients. On this screen, Workday will display the Workday REST API Endpoint which contains both the Host and Tenant. The Tenant is the portion after the last slash, while the Host is the "https://" and the domain name.
For example: if the API endpoint is https://wd3-impl-services1.workday.com/ccx/api/v1/mycompany, the Host is https://wd3-impl-services1.workday.com and the Tenant is mycompany.
You also have the option of connecting to reports when the UseWQL property is enabled. See Fine-Tuning Data Access for details on how to configure this.
You can authenticate to the Workday WQL API as a normal (non-ISU) user, or an ISU (via either OAuth or OAuthJWT).
To authenticate as a normal user in Workday, you must first create an API Client. Please refer to Creating a Custom OAuth Application for details on the procedure.
Once you have an API client configured, set the following properties to connect:
To authenticate as an ISU, you must first create either an API Client or an API Client for Integrations. Please refer to Creating a Custom OAuth Application for details on the procedure. You can create either an API Client for Integrations or an API Client using the JWT bearer grant type.
If you created an API Client for Integrations, set the following properties to connect:
If you created an API Client with JWT, set the following properties to connect:
Connections using the SOAP API support all the same authentication schemes that the WQL and reporting services do, in addition to basic authentication. Each of the above configurations can be used with SOAP by setting the UseWQL property to false.
Basic authentication can also be used with a normal user or an ISU without configuring an API client:
Other authentication methods are configured the same way as for the WQL and reporting services. Please refer to the corresponding sections for more details on those authentication schemes as well as the Host and Tenant properties.
When connecting with UseWQL disabled, the following properties will determine what tables are exposed:
When connecting with the UseWQL property enabled, the Sync App supports reading reports that have been exposed through Workday Reports as a Service (RaaS). Workday does not have a built-in way for the Sync App to determine which reports have been exposed via RaaS, so you must create a custom report to use this feature:
After the report is created, you need to add a few columns and filters:
Note that the Current User filter is optional but recommended. It is there to ensure that the Sync App does not surface reports that your account does not have permissions to view. However, if the report has performance issues then the filter can be removed.
The final step is to find the URL associated with the report. This URL is used to set the CustomReportURL connection property.
While connecting, you may receive an error stating "Invalid Request". This is a server-side Workday error. It often indicates that your user account has not been granted the permissions required to either connect via the API, or to obtain the specific information you have requested.
The tables and columns are retrieved from a publicly available service that requires no authentication, so this error may appear while either testing the connection, or when trying to retrieve data after metadata has been obtained.
While connecting, you may receive an error stating "Processing error occurred. The task submitted is not authorized".
This is a server-side error Workday error. This error typically indicates that your Workday account does not have the necessary module activated to access the table or Service you are attempting to connect to.
Ensure the correct module is activated if you receive this error. The Sync App is unable to dynamically determine which modules are available at runtime, but the exposed services can be configured via the Service connection property.
This section details a selection of advanced features of the Workday Sync App.
The Sync App allows you to define virtual tables, called user defined views, whose contents are decided by a pre-configured query. These views are useful when you cannot directly control queries being issued to the drivers. See User Defined Views for an overview of creating and configuring custom views.
Use SSL Configuration to adjust how Sync App handles TLS/SSL certificate negotiations. You can choose from various certificate formats; see the SSLServerCert property under "Connection String Options" for more information.
Configure the Sync App for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.
The Sync App offloads as much of the SELECT statement processing as possible to Workday and then processes the rest of the query in memory (client-side).
See Query Processing for more information.
See Logging for an overview of configuration settings that can be used to refine CData logging. For basic logging, you only need to set two connection properties, but there are numerous features that support more refined logging, where you can select subsets of information to be logged using the LogModules connection property.
By default, the Sync App attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store.
To specify another certificate, see the SSLServerCert property for the available formats to do so.
To connect through the Windows system proxy, you do not need to set any additional connection properties. To connect to other proxies, set ProxyAutoDetect to false.
In addition, to authenticate to an HTTP proxy, set ProxyAuthScheme, ProxyUser, and ProxyPassword, in addition to ProxyServer and ProxyPort.
Set the following properties:
When UseWQL is enabled, the Sync App models Workday data sources as views. You can get a complete list of these data sources using the Data Sources standard report in Workday. The Sync App exposes each data source using its WQL Alias which is shown on the View Data Source page. All WQL data sources appear under the REST schema.
The Sync App does not list all the data sources defined within Workday:
You can use UseSplitTables to work around this limtiation by splitting each data source into multiple views with fewer columns.
When you enable UseWQL, the Sync App also grants access to reports that are exposed using Reports as a Service (RaaS). These reports are exposed as views within the Reports schema. Accessing these reports requires extra connection setup beyond the basic settings for WQL access. See Fine-Tuning Data Access for details on what is required.
The Sync App considers WQL views as higher priority than report views.
If you write a query that does not specify a schema, the Sync App first tries to find a WQL data source with the name of the table.
If it cannot find one then it tries to find a report with a title that matches the table name.
Though in practice this kind of conflict is unlikely, as WQL data sources and report titles have different naming conventions.
SELECT * FROM [Possible Report Or Data Source] /* Executed as SELECT * FROM REST.[Possible Report Or Data Source] if there is both a report and WQL data source with this name */
Many Workday data sources and reports have prompts that affect the output of the report.
The Sync App exposes these prompts as input columns that have the _Prompt suffix.
Most prompts accept only a single value, but prompts that accept multiple values can be set with IN or equals:
SELECT * FROM [Account Balance Data] WHERE Company_Prompt IN ('1234567890abcdef', 'f1234567890abcde') AND Region_Prompt = 'ef1234567890abcd' AND Include_Managers_Prompt = TRUE AND Start_Date_Prompt = '2022-01-01'
Other filters may be included with prompts.
These do not affect the way Workday generates the report, but the Sync App removes non-matching rows from the response:
SELECT * FROM [Account Balance Data] /* Prompts */ WHERE Company_Prompt IN ('1234567890abcdef', 'f1234567890abcde') AND Region_Prompt = 'ef1234567890abcd' AND Include_Managers_Prompt = TRUE AND Start_Date_Prompt = '2022-01-01' /* Other filters */ AND Department = 'Sales and Marketing' AND Account_Type = 'LIABILITY'
The data models listed in Service are only available in the SOAP API. Accessing them requires disabling UseWQL.
Views are composed of columns and pseudo columns. Views are similar to tables in the way that data is represented; however, views do not support updates. Entities that are represented as views are typically read-only entities. Often, a stored procedure is available to update the data if such functionality is applicable to the data source.
Queries can be executed against a view as if it were a normal table, and the data that comes back is similar in that regard.
Dynamic views, such as queries exposed as views, and views for looking up specific combinations of project_team work items are supported.
Name | Description |
allAllowancePlans | Accesses the Allowance Plan as the primary object and returns one row per plan. Includes all allowance plans. Does not contain built-in prompts. This data source delivers the additions and removals for plans over time. |
allBonusPlans | Accesses the Bonus Plan as the primary object and returns one row per bonus plan. Includes all active bonus plans. Does not contain built-in prompts. The data source delivers the additions and removals for bonus plans over time. |
allCompensationPlans | Accesses the Compensation Plan as the primary object and returns one row per plan. Includes all active plans. Does not contain built-in prompts. This data source delivers the additions and removals for plans over time. |
allCompensationRuleAssignments | Accesses the Compensation Rule as its primary object. The Compensation Rule object returns one row per Compensation Rule. Includes all Compensation Rules. Does not contain any built-in prompts. |
allJobProfiles | Accesses Job Profile as the primary object and returns one row per job profile. Includes all active and inactive job profiles. Does not contain built-in prompts. |
allMeritPlans | Accesses the Merit Plan as the primary object and returns one row per plan. Includes all active and inactive plans. Does not contain any built-in prompts. The data source delivers the additions and removals for plans over time. |
allOpenPositions | Accesses the Position as its primary object. The Position object returns one row per position. Includes only open positions that are in supervisory organizations that the user has access. Does not contain any built-in prompts. |
allPre_Hires | Accesses Pre-Hire as the primary object and returns one row per pre-hire. Includes all pre-hires as well as pre-hires converted to hires. Does not contain built-in prompts. |
allWorkdayAccounts | Accesses the Workday Account object and returns one row per Workday account. Includes all Workday accounts ever created, either currently enabled or not. Does not contain built-in prompts. This data source will show settings of the user login information and preferences in Workday. |
allWorkers | Accesses the Worker as its primary object and returns one row per worker. Includes all workers even workers to be hired in the future. Does not contain any built-in prompts. This data source can be used to build reports on all workers. Helpful Tips - 1) If the worker is hired in the future, all fields will be returned based on the effective date. 2) If no effective date is specified, the system will use the current date as the effective date. 3) If the effective date is less than the worker's hire date, no effective dated information (such as position information, compensation information and so on) will be returned. 4) If effective dated behavior is desired, use the "All Active and Terminated workers" data source instead. |
classes | Returns all classes accessible by the current user |
organizationsIManage | Accesses the Organization as its primary object. The Organization object returns one row per organization. Only includes supervisory organizations that the user manages. Prompts the user at run-time for Supervisory Organization to automatically filter the report results. |
positionsValidForCompensationSelectionRule | Accesses the Position Group as its primary object. The Position Group object returns one row per Position Group. Includes all unfilled and filled Positions. Prompts the user at run-time for a Compensation Rule to automatically filter the report results. |
topLevelOrganizations | Accesses the Organization object and returns one row per organization. Includes all active and inactive organizations with no superior. Does not contain built-in prompts. |
topLevelOrganizationsAndSubordinates | Accesses the Organization as its primary object. The Organization object returns one row per organization. |
Accesses the Allowance Plan as the primary object and returns one row per plan. Includes all allowance plans. Does not contain built-in prompts. This data source delivers the additions and removals for plans over time.
Name | Type | References | Description |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
cf_CompensationPlanEqualToHourly | Bool | Compensation Plan = Hourly | |
cf_FrequencyForCompensationPlan_id | String | Frequency for Compensation Plan id | |
cf_FrequencyForCompensationPlan_descriptor | String | Frequency for Compensation Plan descriptor | |
cf_CompensationPlanEqualToAllowance | Bool | Compensation Plan = Allowance | |
cf_CompensationPlanEqualToBonus | Bool | Compensation Plan = Bonus | |
cf_CompensationPlanTypeEqualToMerit | Bool | Compensation Plan Type = Merit | |
cf_CompensationPlanEqualToCommission | Bool | Compensation Plan = Commission | |
cf_CompensationPlanEqualToStock | Bool | Compensation Plan = Stock | |
cf_CompensationPlanEqualToSalaryPlanUnitPeriodOrSalary | Bool | Compensation Plan = Salary Plan (Unit, Period or Salary) | |
compensationPlanName | String | Compensation Plan Name | |
description | String | Description | |
compensationPlanDefaults_id | String | Compensation Plan Defaults id | |
compensationPlanDefaults_descriptor | String | Compensation Plan Defaults descriptor | |
compensationPlanProcessHistory | String | Compensation Plan Process History | |
compensationPackages | String | Compensation Packages | |
eligibilityRules | String | Eligibility Rules | |
compensationPlan_id | String | Compensation Plan id | |
compensationPlan_descriptor | String | Compensation Plan descriptor | |
positionsInCompensationPlan | String | Positions in Compensation Plan | |
employeesInCompensationPlan | String | Employees in Compensation Plan | |
calculationType_id | String | Calculation Type id | |
calculationType_descriptor | String | Calculation Type descriptor | |
calculation_id | String | Calculation id | |
calculation_descriptor | String | Calculation descriptor | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Bonus Plan as the primary object and returns one row per bonus plan. Includes all active bonus plans. Does not contain built-in prompts. The data source delivers the additions and removals for bonus plans over time.
Name | Type | References | Description |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
cf_CompensationPlanEqualToHourly | Bool | Compensation Plan = Hourly | |
cf_FrequencyForCompensationPlan_id | String | Frequency for Compensation Plan id | |
cf_FrequencyForCompensationPlan_descriptor | String | Frequency for Compensation Plan descriptor | |
cf_CompensationPlanEqualToAllowance | Bool | Compensation Plan = Allowance | |
cf_CompensationPlanEqualToBonus | Bool | Compensation Plan = Bonus | |
cf_CompensationPlanTypeEqualToMerit | Bool | Compensation Plan Type = Merit | |
cf_CompensationPlanEqualToCommission | Bool | Compensation Plan = Commission | |
cf_CompensationPlanEqualToStock | Bool | Compensation Plan = Stock | |
cf_CompensationPlanEqualToSalaryPlanUnitPeriodOrSalary | Bool | Compensation Plan = Salary Plan (Unit, Period or Salary) | |
compensationPlanName | String | Compensation Plan Name | |
description | String | Description | |
compensationPlanDefaults_id | String | Compensation Plan Defaults id | |
compensationPlanDefaults_descriptor | String | Compensation Plan Defaults descriptor | |
compensationPlanProcessHistory | String | Compensation Plan Process History | |
compensationPackages | String | Compensation Packages | |
eligibilityRules | String | Eligibility Rules | |
compensationPlan_id | String | Compensation Plan id | |
compensationPlan_descriptor | String | Compensation Plan descriptor | |
positionsInCompensationPlan | String | Positions in Compensation Plan | |
employeesInCompensationPlan | String | Employees in Compensation Plan | |
calculationType_id | String | Calculation Type id | |
calculationType_descriptor | String | Calculation Type descriptor | |
calculation_id | String | Calculation id | |
calculation_descriptor | String | Calculation descriptor | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Compensation Plan as the primary object and returns one row per plan. Includes all active plans. Does not contain built-in prompts. This data source delivers the additions and removals for plans over time.
Name | Type | References | Description |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
cf_CompensationPlanEqualToHourly | Bool | Compensation Plan = Hourly | |
cf_FrequencyForCompensationPlan_id | String | Frequency for Compensation Plan id | |
cf_FrequencyForCompensationPlan_descriptor | String | Frequency for Compensation Plan descriptor | |
cf_CompensationPlanEqualToAllowance | Bool | Compensation Plan = Allowance | |
cf_CompensationPlanEqualToBonus | Bool | Compensation Plan = Bonus | |
cf_CompensationPlanTypeEqualToMerit | Bool | Compensation Plan Type = Merit | |
cf_CompensationPlanEqualToCommission | Bool | Compensation Plan = Commission | |
cf_CompensationPlanEqualToStock | Bool | Compensation Plan = Stock | |
cf_CompensationPlanEqualToSalaryPlanUnitPeriodOrSalary | Bool | Compensation Plan = Salary Plan (Unit, Period or Salary) | |
compensationPlanName | String | Compensation Plan Name | |
description | String | Description | |
compensationPlanDefaults_id | String | Compensation Plan Defaults id | |
compensationPlanDefaults_descriptor | String | Compensation Plan Defaults descriptor | |
compensationPlanProcessHistory | String | Compensation Plan Process History | |
compensationPackages | String | Compensation Packages | |
eligibilityRules | String | Eligibility Rules | |
compensationPlan_id | String | Compensation Plan id | |
compensationPlan_descriptor | String | Compensation Plan descriptor | |
positionsInCompensationPlan | String | Positions in Compensation Plan | |
employeesInCompensationPlan | String | Employees in Compensation Plan | |
workdayID | String | Workday ID | |
referenceID1 | String | Reference ID | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Compensation Rule as its primary object. The Compensation Rule object returns one row per Compensation Rule. Includes all Compensation Rules. Does not contain any built-in prompts.
Name | Type | References | Description |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
positionsAndPositionGroupsSelectedByCompensationRule | String | Positions and Position Groups Selected by Compensation Rule | |
compensationRuleName | String | Compensation Rule Name | |
compensationRuleAssignment_id | String | Compensation Rule Assignment id | |
compensationRuleAssignment_descriptor | String | Compensation Rule Assignment descriptor | |
compensationComponents | String | Compensation Components | |
employeesSelectedByCompensationRule | String | Employees Selected by Compensation Rule | |
compensationGradeProfiles | String | Compensation Grade Profiles | |
compensationGrades | String | Compensation Grades | |
compensationPlans | String | Compensation Plans | |
compensationPackages | String | Compensation Packages | |
workdayID | String | Workday ID | |
compensationEligibilityRule_id | String | Compensation Eligibility Rule id | |
compensationEligibilityRule_descriptor | String | Compensation Eligibility Rule descriptor | |
referenceID | String | Reference ID | |
createdMoment | Date | Created Moment | |
lastFunctionallyUpdated | Date | Last Functionally Updated | |
currentOMSVersion_id | String | Current OMS Version id | |
currentOMSVersion_descriptor | String | Current OMS Version descriptor | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses Job Profile as the primary object and returns one row per job profile. Includes all active and inactive job profiles. Does not contain built-in prompts.
Name | Type | References | Description |
cf_JobProfileDegrees | String | Job Profile Degrees | |
cf_CompensationSurvey | String | Compensation Survey | |
cf_JobEvaluationScore | String | Job Evaluation Score | |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
cf_countriesWherePayRateTypeEqualToSalaried | String | Countries where Pay Rate Type = Salaried | |
cf_countriesWherePayRateTypeEqualToHourly | String | Countries where Pay Rate Type = Hourly | |
cf_CompensationGroup_id | String | Compensation Group id | |
cf_CompensationGroup_descriptor | String | Compensation Group descriptor | |
jobProfileName | String | Job Profile Name | |
jobFamilyGroupAndFamily | String | All Job Families and Groups for Job Profile | |
jobProfileSummary | String | Job Profile Summary | |
jobProfile_id | String | Job Profile id | |
jobProfile_descriptor | String | Job Profile descriptor | |
jobClassifications | String | Job Classifications | |
managementLevel_id | String | Management Level id | |
managementLevel_descriptor | String | Management Level descriptor | |
ID | String | ID | |
compensationGradesImpactedByRules | String | Compensation Grades impacted by rules | |
jobExempt | Bool | Job Exempt | |
averagePay_Amount_value | Decimal | Average Pay - Amount value | |
averagePay_Amount_currency | String | Average Pay - Amount currency | |
employeeCount | Int | Employee Count | |
highestPay_Amount_value | Decimal | Highest Pay - Amount value | |
highestPay_Amount_currency | String | Highest Pay - Amount currency | |
lowestPay_Amount_value | Decimal | Lowest Pay - Amount value | |
lowestPay_Amount_currency | String | Lowest Pay - Amount currency | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Merit Plan as the primary object and returns one row per plan. Includes all active and inactive plans. Does not contain any built-in prompts. The data source delivers the additions and removals for plans over time.
Name | Type | References | Description |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
cf_CompensationPlanEqualToHourly | Bool | Compensation Plan = Hourly | |
cf_FrequencyForCompensationPlan_id | String | Frequency for Compensation Plan id | |
cf_FrequencyForCompensationPlan_descriptor | String | Frequency for Compensation Plan descriptor | |
cf_CompensationPlanEqualToAllowance | Bool | Compensation Plan = Allowance | |
cf_CompensationPlanEqualToBonus | Bool | Compensation Plan = Bonus | |
cf_CompensationPlanTypeEqualToMerit | Bool | Compensation Plan Type = Merit | |
cf_CompensationPlanEqualToCommission | Bool | Compensation Plan = Commission | |
cf_CompensationPlanEqualToStock | Bool | Compensation Plan = Stock | |
cf_CompensationPlanEqualToSalaryPlanUnitPeriodOrSalary | Bool | Compensation Plan = Salary Plan (Unit, Period or Salary) | |
compensationPlanName | String | Compensation Plan Name | |
description | String | Description | |
compensationPlanDefaults_id | String | Compensation Plan Defaults id | |
compensationPlanDefaults_descriptor | String | Compensation Plan Defaults descriptor | |
compensationPlanProcessHistory | String | Compensation Plan Process History | |
compensationPackages | String | Compensation Packages | |
eligibilityRules | String | Eligibility Rules | |
compensationPlan_id | String | Compensation Plan id | |
compensationPlan_descriptor | String | Compensation Plan descriptor | |
positionsInCompensationPlan | String | Positions in Compensation Plan | |
employeesInCompensationPlan | String | Employees in Compensation Plan | |
workdayID | String | Workday ID | |
referenceID1 | String | Reference ID | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Position as its primary object. The Position object returns one row per position. Includes only open positions that are in supervisory organizations that the user has access. Does not contain any built-in prompts.
Name | Type | References | Description |
cf_SupervisoryOrganizationHierarchy_id | String | Supervisory Organization Hierarchy id | |
cf_SupervisoryOrganizationHierarchy_descriptor | String | Supervisory Organization Hierarchy descriptor | |
cf_EarliestHireDate_Quarter | String | Earliest Hire Date - Quarter | |
cf_MonthsFromEarliestHireDate | Int | Months from Earliest Hire Date | |
cf_TimeToFill1 | Int | Time to Fill | |
cf_OpenPositionCountAtEndOfLastQuarter | Int | Open Position Count at End of Last Quarter | |
cf_ExecutiveGroup1_id | String | Executive Group id | |
cf_ExecutiveGroup1_descriptor | String | Executive Group descriptor | |
cf_AnnualPositionBurdenInUSD1_value | Decimal | Annual Position Burden in USD value | |
cf_AnnualPositionBurdenInUSD1_currency | String | Annual Position Burden in USD currency | |
cf_DaysFromEarliestHireDate | Int | Days from Earliest Hire Date | |
cf_NumberOfMonthsPositionUnfilled | Int | # of Months Position Unfilled | |
cf_PositionCount_Frozen | Int | Position Count - Frozen | |
cf_AnnualPositionBurdenInUSDOpenPositionsOnly_value | Decimal | Annual Position Burden in USD (Open Positions Only) value | |
cf_AnnualPositionBurdenInUSDOpenPositionsOnly_currency | String | Annual Position Burden in USD (Open Positions Only) currency | |
cf_IsPositionOpenAndEarliestHireDateCurrent | Bool | Is Position Open and Earliest Hire Date Current | |
cf_EarliestHireDate9Months1 | Date | Earliest Hire Date + 9 Months | |
cf_CompensationRangeMidpointInUSD_value | Decimal | Compensation Range Midpoint in USD value | |
cf_CompensationRangeMidpointInUSD_currency | String | Compensation Range Midpoint in USD currency | |
cf_EarliestHireDate6Months1 | Date | Earliest Hire Date + 6 Months | |
cf_OpenPositionCount_GAndA | Int | Open Position Count - G and A | |
cf_TimeInPositionRange_id | String | Time in Position Range id | |
cf_TimeInPositionRange_descriptor | String | Time in Position Range descriptor | |
cf_IsInGAndA | Bool | Is in G and A | |
cf_AvailableYearQuarter | String | Available Year Quarter | |
cf_EarliestHireDate3Months1 | Date | Earliest Hire Date + 3 Months | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses Pre-Hire as the primary object and returns one row per pre-hire. Includes all pre-hires as well as pre-hires converted to hires. Does not contain built-in prompts.
Name | Type | References | Description |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
cf_WorkerCountryISOCodeOnExpensePayee | String | Worker Country ISO Code on Expense Payee | |
pre_Hire_id | String | Pre-Hire id | |
pre_Hire_descriptor | String | Pre-Hire descriptor | |
source_id | String | Source id | |
source_descriptor | String | Source descriptor | |
referredBy | String | Referred by | |
pre_HirePools | String | Pre-Hire Pools | |
datePre_HireAddedToSystem | Date | Date Pre-Hire Added to System | |
notEligibleForHireComment | String | Eligible for Rehire Comment | |
comment | String | Comment | |
resume | String | Resume | |
pre_HireConsideration | String | Pre-Hire Consideration | |
availableForHire | Bool | Available For Hire | |
roleName | String | Role Name | |
email_Primary | String | Email - Primary | |
phone_Primary | String | Phone - Primary | |
organizationRoleAssignments | String | Organization Role Assignments | |
integrationIdentifier | String | Integration Identifier | |
organizationRoles | String | Organization Roles | |
externalIDForSystemID | String | External ID for System ID | |
raceEthnicity_id | String | Race/Ethnicity id | |
raceEthnicity_descriptor | String | Race/Ethnicity descriptor | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Workday Account object and returns one row per Workday account. Includes all Workday accounts ever created, either currently enabled or not. Does not contain built-in prompts. This data source will show settings of the user login information and preferences in Workday.
Name | Type | References | Description |
forUnitTestingMulti | String | For Unit Testing Multi | |
cf_ClickableAddedRoleAssignments | String | Clickable Added Role Assignments | |
cf_ClickableRemovedRoleAssignments | String | Clickable Removed Role Assignments | |
cf_SecurityGroupsWithAccessToSettlePayments_Payroll | String | Security Groups with Access to Settle Payments - Payroll | |
cf_SecurityGroupsWithAccessToInputEditOrProcessPayroll | String | Security Groups with Access to Input , Edit or Process Payroll | |
cf_SecurityGroupsWithAccessToRefundCustomers | String | Security Groups with access to refund customers | |
cf_SecurityGroupsWithAccessToCreateModifyCustomers | String | Security Groups with access to create / modify customers | |
cf_ReportsAndTasks_View | String | Reports and Tasks - View | |
cf_SecurityGroupsWithAccessToCreateModifySuppliers | String | Security Groups with access to create / modify suppliers | |
cf_ReportsAndTasks_Modify | String | Reports and Tasks - Modify | |
cf_SecurityGroupsWithAccessToCreateEditSupplierInvoices | String | Security Groups with access to create / edit supplier invoices | |
cf_BusinessProcessPolicy_Approve | String | Business Process Policy - Approve | |
cf_BusinessProcessPolicy_Cancel | String | Business Process Policy - Cancel | |
cf_SecurityGroupsWithAccessToSettlePayments_Suppliers | String | Security Groups with Access to Settle Payments - Suppliers | |
cf_BusinessProcessPolicy_Rescind | String | Business Process Policy - Rescind | |
cf_SecurityGroupsWithAccessToCreateModifyExpenseReports | String | Security Groups with access to create / modify expense reports | |
cf_BusinessProcessPolicy_Initiate | String | Business Process Policy - Initiate | |
cf_SecurityGroupsWithAccessToSettlePayments_Expenses | String | Security Groups with Access to Settle Payments - Expenses | |
cf_BusinessProcessPolicy_View | String | Business Process Policy - View | |
cf_BusinessProcessPolicy_ViewCompleted | String | Business Process Policy - View Completed | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Worker as its primary object and returns one row per worker. Includes all workers even workers to be hired in the future. Does not contain any built-in prompts. This data source can be used to build reports on all workers. Helpful Tips - 1) If the worker is hired in the future, all fields will be returned based on the effective date. 2) If no effective date is specified, the system will use the current date as the effective date. 3) If the effective date is less than the worker's hire date, no effective dated information (such as position information, compensation information and so on) will be returned. 4) If effective dated behavior is desired, use the "All Active and Terminated workers" data source instead.
Name | Type | References | Description |
cf_ContractPayRateAnnualized_value | Decimal | Contract Pay Rate Annualized value | |
cf_ContractPayRateAnnualized_currency | String | Contract Pay Rate Annualized currency | |
cf_NumberOfTerminations | Int | # of Terminations | |
cf_DisciplinaryActions_Completed | String | Disciplinary Actions - Completed | |
cf_RetirementEligibility_id | String | Retirement Eligibility id | |
cf_RetirementEligibility_descriptor | String | Retirement Eligibility descriptor | |
cf_LocationSiteHierarchyLevel2_id | String | Location Site Hierarchy (Level 2) id | |
cf_LocationSiteHierarchyLevel2_descriptor | String | Location Site Hierarchy (Level 2) descriptor | |
cf_TotalBasePayAnnualizedInCAD_Amount_value | Decimal | Total Base Pay Annualized in CAD - Amount value | |
cf_TotalBasePayAnnualizedInCAD_Amount_currency | String | Total Base Pay Annualized in CAD - Amount currency | |
cf_TotalBasePayHourly_Amount_value | Decimal | Total Base Pay Hourly - Amount value | |
cf_TotalBasePayHourly_Amount_currency | String | Total Base Pay Hourly - Amount currency | |
cf_PrimaryAddressHomeStateText | String | Primary Address Home State (Text) | |
cf_NumberOfHires | Int | # of Hires | |
cf_SpendAuthorizationsNotInUseByActiveExpenseReports | String | Spend Authorizations Not In Use by Active Expense Reports | |
cf_FormatPercentOfExpenseReportsWithWarningValidations | String | Format Percent of Expense Reports with Warning Validations | |
cf_LegalName_LastNameUppercase | String | Legal Name - Last Name (Uppercase) | |
cf_Apparel | String | Apparel | |
cf_TopLevelSupervisoryOrganizationGMS_id | String | Top Level Supervisory Organization (GMS) id | |
cf_TopLevelSupervisoryOrganizationGMS_descriptor | String | Top Level Supervisory Organization (GMS) descriptor | |
cf_HireDate90Days | Date | Hire Date + 90 Days | |
cf_TotalBasePayAnnualizedInEUR_Amount_value | Decimal | Total Base Pay Annualized in EUR - Amount value | |
cf_TotalBasePayAnnualizedInEUR_Amount_currency | String | Total Base Pay Annualized in EUR - Amount currency | |
cf_TotalBasePayMonthly_Amount_value | Decimal | Total Base Pay Monthly - Amount value | |
cf_TotalBasePayMonthly_Amount_currency | String | Total Base Pay Monthly - Amount currency | |
cf_PerformanceImprovementPlans_InProgressOrCompleted | String | Performance Improvement Plans - In Progress or Completed | |
cf_ExternalPayrollActualHoursWorkedInLast12Months | Int | External Payroll Actual Hours Worked in Last 12 Months | |
cf_PreferredName_LastNameUppercase | String | Preferred Name - Last Name (Uppercase) | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Returns all classes accessible by the current user
Name | Type | References | Description |
class1_id | String | Class id | |
class1_descriptor | String | Class descriptor | |
classOfInstance1_id | String | Class of Instance id | |
classOfInstance1_descriptor | String | Class of Instance descriptor | |
superclasses | String | Superclasses | |
instanceSet1_id | String | Instance Set id | |
instanceSet1_descriptor | String | Instance Set descriptor | |
name1 | String | Name | |
metadata | Bool | Metadata | |
countClassReportFieldForClass | Int | Count Class Report Field for Class | |
totalInstancesOfClassIncludingSubclasses | Int | Total Instances of Class Including Subclasses | |
comment | String | Comment | |
classReportFieldsForClassAndSuperClasses | String | Class Report Fields for Class and Super Classes | |
DEPRECATED | Bool | DEPRECATED | |
translatableDataForClassOrSupersOrSubs | String | Translatable Data for Class or Supers or Subs | |
securityGroups1 | String | Security Groups | |
iManSetupDataClass_id | String | iMan Setup Data class id | |
iManSetupDataClass_descriptor | String | iMan Setup Data class descriptor | |
setupDataClass_id | String | Setup Data class id | |
setupDataClass_descriptor | String | Setup Data class descriptor | |
workdayID | String | Workday ID | |
businessObjectName | String | Business Object Name | |
customerAccessibleReportFields | String | Customer Accessible Report Fields | |
customerAccessibleDataSources | String | Customer Accessible Data Sources | |
secured_id | String | Secured id | |
secured_descriptor | String | Secured descriptor | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Organization as its primary object. The Organization object returns one row per organization. Only includes supervisory organizations that the user manages. Prompts the user at run-time for Supervisory Organization to automatically filter the report results.
Name | Type | References | Description |
cf_BusinessUnitManager_id | String | Business Unit Manager id | |
cf_BusinessUnitManager_descriptor | String | Business Unit Manager descriptor | |
cf_EmployeeTerminationsCount_IncludingSubordinateOrganizations | Int | Employee Terminations Count - Including Subordinate Organizations | |
cf_CompanyCostingManager_id | String | Company Costing Manager id | |
cf_CompanyCostingManager_descriptor | String | Company Costing Manager descriptor | |
cf_CostCenterManager_id | String | Cost Center Manager id | |
cf_CostCenterManager_descriptor | String | Cost Center Manager descriptor | |
cf_ManagerCount_IncludingSubordinateOrganizations | Int | Manager Count - Including Subordinate Organizations | |
cf_BeginningEmployeeCount_IncludingSubordinateOrganizations | Int | Beginning Employee Count - Including Subordinate Organizations | |
cf_RegionCostingManager_id | String | Region Costing Manager id | |
cf_RegionCostingManager_descriptor | String | Region Costing Manager descriptor | |
cf_MidYearReviewPercentCompleteRange_id | String | Mid Year Review Percent Complete Range id | |
cf_MidYearReviewPercentCompleteRange_descriptor | String | Mid Year Review Percent Complete Range descriptor | |
cf_EmployeeVoluntaryTerminationsCount | Int | Employee Voluntary Terminations Count | |
cf_EndingEmployeeCount_IncludingSubordinateOrganizations | Int | Ending Employee Count - Including Subordinate Organizations | |
cf_EmployeeVoluntaryTerminationsCount_IncludingSubordinateOrganizations | Int | Employee Voluntary Terminations Count - including Subordinate Organizations | |
cf_EndingContingentWorkerCount_IncludingSubordinateOrganizations | Int | Ending Contingent Worker Count - Including Subordinate Organizations | |
cf_AverageHeadcount_IncludingSubordinateOrganizations | Int | Average Headcount - Including Subordinate Organizations | |
cf_SupervisoryOrganizationHierarchy_id | String | Supervisory Organization Hierarchy id | |
cf_SupervisoryOrganizationHierarchy_descriptor | String | Supervisory Organization Hierarchy descriptor | |
cf_BeginningContingentWorkerCountInclSubOrgs | Int | Beginning Contingent Worker Count (incl Sub Orgs) | |
cf_TurnoverPercent_IncludingSubordinateOrganizations | Int | Turnover Percent - Including Subordinate Organizations | |
cf_OrgHierarchy_id | String | Org Hierarchy id | |
cf_OrgHierarchy_descriptor | String | Org Hierarchy descriptor | |
cf_EmployeeToManagerRatio | Int | Employee to Manager Ratio | |
cf_TopPerformerEmployeeCount | Int | Top Performer Employee Count | |
cf_BeginningEmployeeCount | Int | Beginning Employee Count | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Position Group as its primary object. The Position Group object returns one row per Position Group. Includes all unfilled and filled Positions. Prompts the user at run-time for a Compensation Rule to automatically filter the report results.
Name | Type | References | Description |
cf_SupervisoryOrganizationHierarchy_id | String | Supervisory Organization Hierarchy id | |
cf_SupervisoryOrganizationHierarchy_descriptor | String | Supervisory Organization Hierarchy descriptor | |
cf_TimeInPositionRange_id | String | Time in Position Range id | |
cf_TimeInPositionRange_descriptor | String | Time in Position Range descriptor | |
cf_PositionsFrozen | Int | Positions Frozen | |
cf_QuarterAvailable | String | Quarter Available | |
cf_PositionText | String | Position Text | |
cf_AnnualPositionBurdenInUSD_value | Decimal | Annual Position Burden in USD value | |
cf_AnnualPositionBurdenInUSD_currency | String | Annual Position Burden in USD currency | |
cf_NumberOfMonthsUnfilledRange_id | String | Number of Months Unfilled Range id | |
cf_NumberOfMonthsUnfilledRange_descriptor | String | Number of Months Unfilled Range descriptor | |
cf_EarliestHireDate9Months | Date | Earliest Hire Date + 9 Months | |
cf_TimeInPosition_Days | Int | Time in Position - Days | |
cf_AnnualEmployeeBurdenInUSD_value | Decimal | Annual Employee Burden in USD value | |
cf_AnnualEmployeeBurdenInUSD_currency | String | Annual Employee Burden in USD currency | |
cf_DefaultCompensationRangeMidpointInUSD_value | Decimal | Default Compensation Range Midpoint in USD value | |
cf_DefaultCompensationRangeMidpointInUSD_currency | String | Default Compensation Range Midpoint in USD currency | |
cf_EarliestHireDate6Months | Date | Earliest Hire Date + 6 Months | |
cf_AnnualContingentWorkerBurdenInUSD_value | Decimal | Annual Contingent Worker Burden in USD value | |
cf_AnnualContingentWorkerBurdenInUSD_currency | String | Annual Contingent Worker Burden in USD currency | |
cf_EarliestHireDate3Months | Date | Earliest Hire Date + 3 Months | |
cf_MyOrganizations_id | String | My Organizations id | |
cf_MyOrganizations_descriptor | String | My Organizations descriptor | |
cf_PositionCount_AllStatuses | Int | Position Count - All Statuses | |
cf_AnnualCompensationPayWithBurdenInUSD_value | Decimal | Annual Compensation / Pay with Burden in USD value | |
cf_AnnualCompensationPayWithBurdenInUSD_currency | String | Annual Compensation / Pay with Burden in USD currency | |
cf_Worker_id | String | Worker id | |
cf_Worker_descriptor | String | Worker descriptor | |
cf_AnnualCompensationPayInUSD_value | Decimal | Annual Compensation / Pay in USD value | |
cf_AnnualCompensationPayInUSD_currency | String | Annual Compensation / Pay in USD currency | |
cf_WorkerType_id | String | Worker Type id | |
cf_WorkerType_descriptor | String | Worker Type descriptor | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Organization object and returns one row per organization. Includes all active and inactive organizations with no superior. Does not contain built-in prompts.
Name | Type | References | Description |
cf_BusinessUnitManager_id | String | Business Unit Manager id | |
cf_BusinessUnitManager_descriptor | String | Business Unit Manager descriptor | |
cf_EmployeeTerminationsCount_IncludingSubordinateOrganizations | Int | Employee Terminations Count - Including Subordinate Organizations | |
cf_CompanyCostingManager_id | String | Company Costing Manager id | |
cf_CompanyCostingManager_descriptor | String | Company Costing Manager descriptor | |
cf_CostCenterManager_id | String | Cost Center Manager id | |
cf_CostCenterManager_descriptor | String | Cost Center Manager descriptor | |
cf_ManagerCount_IncludingSubordinateOrganizations | Int | Manager Count - Including Subordinate Organizations | |
cf_BeginningEmployeeCount_IncludingSubordinateOrganizations | Int | Beginning Employee Count - Including Subordinate Organizations | |
cf_RegionCostingManager_id | String | Region Costing Manager id | |
cf_RegionCostingManager_descriptor | String | Region Costing Manager descriptor | |
cf_MidYearReviewPercentCompleteRange_id | String | Mid Year Review Percent Complete Range id | |
cf_MidYearReviewPercentCompleteRange_descriptor | String | Mid Year Review Percent Complete Range descriptor | |
cf_EmployeeVoluntaryTerminationsCount | Int | Employee Voluntary Terminations Count | |
cf_EndingEmployeeCount_IncludingSubordinateOrganizations | Int | Ending Employee Count - Including Subordinate Organizations | |
cf_EmployeeVoluntaryTerminationsCount_IncludingSubordinateOrganizations | Int | Employee Voluntary Terminations Count - including Subordinate Organizations | |
cf_EndingContingentWorkerCount_IncludingSubordinateOrganizations | Int | Ending Contingent Worker Count - Including Subordinate Organizations | |
cf_AverageHeadcount_IncludingSubordinateOrganizations | Int | Average Headcount - Including Subordinate Organizations | |
cf_SupervisoryOrganizationHierarchy_id | String | Supervisory Organization Hierarchy id | |
cf_SupervisoryOrganizationHierarchy_descriptor | String | Supervisory Organization Hierarchy descriptor | |
cf_BeginningContingentWorkerCountInclSubOrgs | Int | Beginning Contingent Worker Count (incl Sub Orgs) | |
cf_TurnoverPercent_IncludingSubordinateOrganizations | Int | Turnover Percent - Including Subordinate Organizations | |
cf_OrgHierarchy_id | String | Org Hierarchy id | |
cf_OrgHierarchy_descriptor | String | Org Hierarchy descriptor | |
cf_EmployeeToManagerRatio | Int | Employee to Manager Ratio | |
cf_TopPerformerEmployeeCount | Int | Top Performer Employee Count | |
cf_BeginningEmployeeCount | Int | Beginning Employee Count | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
Accesses the Organization as its primary object. The Organization object returns one row per organization.
Name | Type | References | Description |
cf_BusinessUnitManager_id | String | Business Unit Manager id | |
cf_BusinessUnitManager_descriptor | String | Business Unit Manager descriptor | |
cf_EmployeeTerminationsCount_IncludingSubordinateOrganizations | Int | Employee Terminations Count - Including Subordinate Organizations | |
cf_CompanyCostingManager_id | String | Company Costing Manager id | |
cf_CompanyCostingManager_descriptor | String | Company Costing Manager descriptor | |
cf_CostCenterManager_id | String | Cost Center Manager id | |
cf_CostCenterManager_descriptor | String | Cost Center Manager descriptor | |
cf_ManagerCount_IncludingSubordinateOrganizations | Int | Manager Count - Including Subordinate Organizations | |
cf_BeginningEmployeeCount_IncludingSubordinateOrganizations | Int | Beginning Employee Count - Including Subordinate Organizations | |
cf_RegionCostingManager_id | String | Region Costing Manager id | |
cf_RegionCostingManager_descriptor | String | Region Costing Manager descriptor | |
cf_MidYearReviewPercentCompleteRange_id | String | Mid Year Review Percent Complete Range id | |
cf_MidYearReviewPercentCompleteRange_descriptor | String | Mid Year Review Percent Complete Range descriptor | |
cf_EmployeeVoluntaryTerminationsCount | Int | Employee Voluntary Terminations Count | |
cf_EndingEmployeeCount_IncludingSubordinateOrganizations | Int | Ending Employee Count - Including Subordinate Organizations | |
cf_EmployeeVoluntaryTerminationsCount_IncludingSubordinateOrganizations | Int | Employee Voluntary Terminations Count - including Subordinate Organizations | |
cf_EndingContingentWorkerCount_IncludingSubordinateOrganizations | Int | Ending Contingent Worker Count - Including Subordinate Organizations | |
cf_AverageHeadcount_IncludingSubordinateOrganizations | Int | Average Headcount - Including Subordinate Organizations | |
cf_SupervisoryOrganizationHierarchy_id | String | Supervisory Organization Hierarchy id | |
cf_SupervisoryOrganizationHierarchy_descriptor | String | Supervisory Organization Hierarchy descriptor | |
cf_BeginningContingentWorkerCountInclSubOrgs | Int | Beginning Contingent Worker Count (incl Sub Orgs) | |
cf_TurnoverPercent_IncludingSubordinateOrganizations | Int | Turnover Percent - Including Subordinate Organizations | |
cf_OrgHierarchy_id | String | Org Hierarchy id | |
cf_OrgHierarchy_descriptor | String | Org Hierarchy descriptor | |
cf_EmployeeToManagerRatio | Int | Employee to Manager Ratio | |
cf_TopPerformerEmployeeCount | Int | Top Performer Employee Count | |
cf_BeginningEmployeeCount | Int | Beginning Employee Count | |
effectiveAsOfDate | Date | Pseudo-column used to filter the data source | |
effectiveAsOfMoment | Datetime | Pseudo-column used to filter the data source | |
entryDate | Date | Pseudo-column used to filter the data source | |
entryMoment | Datetime | Pseudo-column used to filter the data source |
The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.
For more information on establishing a connection, see Establishing a Connection.
Property | Description |
AuthScheme | The type of authentication to use when connecting to Workday. |
Tenant | The tenant for the account. |
Host | The host for the API URL. |
UseWQL | Set to True to use Workday WQL REST API. |
User | The Workday user account used to authenticate. |
Password | The password used to authenticate the user. |
Service | The specific SOAP service or services to retrieve data from. Enter as a comma seperated list. |
CustomReportURL | The URL Of the report that shows all Reports as a Service (RaaS) reports. |
UseSplitTables | Whether to split WQL data sources into multiple tables. |
Property | Description |
InitiateOAuth | Set this property to initiate the process to obtain or refresh the OAuth access token when you connect. |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
OAuthRefreshToken | The OAuth refresh token for the corresponding OAuth access token. |
OAuthExpiresIn | The lifetime in seconds of the OAuth AccessToken. |
OAuthTokenTimestamp | The Unix epoch timestamp in milliseconds when the current Access Token was created. |
Property | Description |
OAuthJWTCert | The JWT Certificate store. |
OAuthJWTCertType | The type of key store containing the JWT Certificate. |
OAuthJWTCertPassword | The password for the OAuth JWT certificate. |
OAuthJWTCertSubject | The subject of the OAuth JWT certificate. |
OAuthJWTIssuer | The issuer of the Java Web Token. |
OAuthJWTSubject | The user subject for which the application is requesting delegated access. |
Property | Description |
SSLServerCert | The certificate to be accepted from the server when connecting using TLS/SSL. |
Property | Description |
FirewallType | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
Property | Description |
LogModules | Core modules to be included in the log file. |
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC. |
Property | Description |
APIURL | The complete url to the API endpoint to use for making SOAP requests. |
EnforceWQLRowLimit | Determines whether the provider restricts queries to returning only 1 million rows. |
ExpandIDTypes | Whether to expand multiple ID types when they appear in reports. Only has an effect for queries using the Reports as a Service (RaaS) API. |
ExpandMultiValueLimit | The maximum number of output rows that may be expanded from a single input row. |
ExpandMultiValues | Determines if multi-instance fields are expanded into separate rows. |
MaxRows | Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time. |
MetadataFilters | Specifies what types of fields are ignored by the provider. |
Other | These hidden properties are used only in specific use cases. |
Pagesize | The maximum number of results to return per page from Workday. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
WSDLURL | The URL to the WSDL. Only avaialble for the SOAP API. |
WSDLVersion | The version of the WSDL to use. Only available for the SOAP API. |
This section provides a complete list of the Authentication properties you can configure in the connection string for this provider.
Property | Description |
AuthScheme | The type of authentication to use when connecting to Workday. |
Tenant | The tenant for the account. |
Host | The host for the API URL. |
UseWQL | Set to True to use Workday WQL REST API. |
User | The Workday user account used to authenticate. |
Password | The password used to authenticate the user. |
Service | The specific SOAP service or services to retrieve data from. Enter as a comma seperated list. |
CustomReportURL | The URL Of the report that shows all Reports as a Service (RaaS) reports. |
UseSplitTables | Whether to split WQL data sources into multiple tables. |
The type of authentication to use when connecting to Workday.
The available authentication methods depend upon the service you are connecting to:
When connecting with UseWQL enabled, the following authentication schemes are available:
When connecting with UseWQL disabled, the following authentication schemes are available:
The tenant for the account.
The tenant will be used when constructing the URL to use when attempting to retrieve data from Workday. For example:
https://wd3-impl-services1.workday.com/ccx/service/mycompany_gms1/Human_Resources
In this example, "mycompany_gms1" would be the tenant.
The host for the API URL.
The host will be used when constructing the APIURL. To obtain the Host, log into Workday and search for View API Clients. In the listed values, find the Workday REST API Endpoint. For example:
https://wd3-impl-services1.workday.com/ccx/api/v1/mycompany
In this case the Host is "https://wd3-impl-services1.workday.com".
Set to True to use Workday WQL REST API.
Set to True to use Workday WQL REST API.
The Workday user account used to authenticate.
Together with Password, this field is used to authenticate against the Workday server.
The password used to authenticate the user.
The User and Password are together used to authenticate with the server.
The specific SOAP service or services to retrieve data from. Enter as a comma seperated list.
Combined with the WSDLVersion, the service determines which WSDLs may be used to dynamically obtain metadata from. Enter them as a comma seperated list, or leave this value blank to use all services the CData Sync App supports. The following values may be specified:
Note that services come from the following: https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html
The URL Of the report that shows all Reports as a Service (RaaS) reports.
Workday does not have a built-in way of finding all the reports which can be used with RaaS. In order to discover these reports automatically, the Sync App uses a custom report that lists all reports enabled for RaaS.
See Fine-Tuning Data Access for instructions on how to create the report and retrieve its URL.
Whether to split WQL data sources into multiple tables.
Workday data sources will often have several hundred fields, with some data sources like allWorkers having thousands of fields. Many database and reporting tools do not support tables with this many columns. By default the Sync App exposes the data sources the same way Workday does, so tools with these limitations cannot use larger data sources.
Enabling this option allows the Sync App to be used with these tools. When split tables are enabled, the Sync App creates multiple tables for complex Workday data sources. Each split table contains between 50-100 columns, along with the primary key, last modified timestamp and effective and entry inputs.
JOINs can be used if data is required from columns that are part of different split tables.
SELECT a.academicDegree, b.yearsExperience FROM allWorkers_1 a INNER JOIN allWorkers_60 b ON a.workdayID = b.workdayID
This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.
Property | Description |
InitiateOAuth | Set this property to initiate the process to obtain or refresh the OAuth access token when you connect. |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
OAuthRefreshToken | The OAuth refresh token for the corresponding OAuth access token. |
OAuthExpiresIn | The lifetime in seconds of the OAuth AccessToken. |
OAuthTokenTimestamp | The Unix epoch timestamp in milliseconds when the current Access Token was created. |
Set this property to initiate the process to obtain or refresh the OAuth access token when you connect.
The following options are available:
The client Id assigned when you register your application with an OAuth authorization server.
As part of registering an OAuth application, you will receive the OAuthClientId value, sometimes also called a consumer key, and a client secret, the OAuthClientSecret.
The client secret assigned when you register your application with an OAuth authorization server.
As part of registering an OAuth application, you will receive the OAuthClientId, also called a consumer key. You will also receive a client secret, also called a consumer secret. Set the client secret in the OAuthClientSecret property.
The OAuth refresh token for the corresponding OAuth access token.
The OAuthRefreshToken property is used to refresh the OAuthAccessToken when using OAuth authentication.
The lifetime in seconds of the OAuth AccessToken.
Pair with OAuthTokenTimestamp to determine when the AccessToken will expire.
The Unix epoch timestamp in milliseconds when the current Access Token was created.
Pair with OAuthExpiresIn to determine when the AccessToken will expire.
This section provides a complete list of the JWT OAuth properties you can configure in the connection string for this provider.
Property | Description |
OAuthJWTCert | The JWT Certificate store. |
OAuthJWTCertType | The type of key store containing the JWT Certificate. |
OAuthJWTCertPassword | The password for the OAuth JWT certificate. |
OAuthJWTCertSubject | The subject of the OAuth JWT certificate. |
OAuthJWTIssuer | The issuer of the Java Web Token. |
OAuthJWTSubject | The user subject for which the application is requesting delegated access. |
The JWT Certificate store.
The name of the certificate store for the client certificate.
The OAuthJWTCertType field specifies the type of the certificate store specified by OAuthJWTCert. If the store is password protected, specify the password in OAuthJWTCertPassword.
OAuthJWTCert is used in conjunction with the OAuthJWTCertSubject field in order to specify client certificates. If OAuthJWTCert has a value, and OAuthJWTCertSubject is set, a search for a certificate is initiated. Please refer to the OAuthJWTCertSubject field for details.
Designations of certificate stores are platform-dependent.
The following are designations of the most common User and Machine certificate stores in Windows:
MY | A certificate store holding personal certificates with their associated private keys. |
CA | Certifying authority certificates. |
ROOT | Root certificates. |
SPC | Software publisher certificates. |
In Java, the certificate store normally is a file containing certificates and optional private keys.
When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
The type of key store containing the JWT Certificate.
This property can take one of the following values:
USER | For Windows, this specifies that the certificate store is a certificate store owned by the current user. Note: This store type is not available in Java. |
MACHINE | For Windows, this specifies that the certificate store is a machine store. Note: this store type is not available in Java. |
PFXFILE | The certificate store is the name of a PFX (PKCS12) file containing certificates. |
PFXBLOB | The certificate store is a string (base-64-encoded) representing a certificate store in PFX (PKCS12) format. |
JKSFILE | The certificate store is the name of a Java key store (JKS) file containing certificates. Note: this store type is only available in Java. |
JKSBLOB | The certificate store is a string (base-64-encoded) representing a certificate store in Java key store (JKS) format. Note: this store type is only available in Java. |
PEMKEY_FILE | The certificate store is the name of a PEM-encoded file that contains a private key and an optional certificate. |
PEMKEY_BLOB | The certificate store is a string (base64-encoded) that contains a private key and an optional certificate. |
PUBLIC_KEY_FILE | The certificate store is the name of a file that contains a PEM- or DER-encoded public key certificate. |
PUBLIC_KEY_BLOB | The certificate store is a string (base-64-encoded) that contains a PEM- or DER-encoded public key certificate. |
SSHPUBLIC_KEY_FILE | The certificate store is the name of a file that contains an SSH-style public key. |
SSHPUBLIC_KEY_BLOB | The certificate store is a string (base-64-encoded) that contains an SSH-style public key. |
P7BFILE | The certificate store is the name of a PKCS7 file containing certificates. |
PPKFILE | The certificate store is the name of a file that contains a PPK (PuTTY Private Key). |
XMLFILE | The certificate store is the name of a file that contains a certificate in XML format. |
XMLBLOB | The certificate store is a string that contains a certificate in XML format. |
The password for the OAuth JWT certificate.
If the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store.
The subject of the OAuth JWT certificate.
When loading a certificate the subject is used to locate the certificate in the store.
If an exact match is not found, the store is searched for subjects containing the value of the property.
If a match is still not found, the property is set to an empty string, and no certificate is selected.
The special value "*" picks the first certificate in the certificate store.
The certificate subject is a comma separated list of distinguished name fields and values. For instance "CN=www.server.com, OU=test, C=US, [email protected]". Common fields and their meanings are displayed below.
Field | Meaning |
CN | Common Name. This is commonly a host name like www.server.com. |
O | Organization |
OU | Organizational Unit |
L | Locality |
S | State |
C | Country |
E | Email Address |
If a field value contains a comma it must be quoted.
The issuer of the Java Web Token.
The issuer of the Java Web Token. This is typically either the Client Id or Email Address of the OAuth Application.
The user subject for which the application is requesting delegated access.
The user subject for which the application is requesting delegated access. Typically, the user account name or email address.
This section provides a complete list of the SSL properties you can configure in the connection string for this provider.
Property | Description |
SSLServerCert | The certificate to be accepted from the server when connecting using TLS/SSL. |
The certificate to be accepted from the server when connecting using TLS/SSL.
If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected.
This property can take the following forms:
Description | Example |
A full PEM Certificate (example shortened for brevity) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
A path to a local file containing the certificate | C:\cert.cer |
The public key (example shortened for brevity) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
The MD5 Thumbprint (hex values can also be either space or colon separated) | ecadbdda5a1529c58a1e9e09828d70e4 |
The SHA1 Thumbprint (hex values can also be either space or colon separated) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
If not specified, any certificate trusted by the machine is accepted.
Use '*' to signify to accept all certificates. Note that this is not recommended due to security concerns.
This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.
Property | Description |
FirewallType | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
The protocol used by a proxy-based firewall.
This property specifies the protocol that the Sync App will use to tunnel traffic through the FirewallServer proxy. Note that by default, the Sync App connects to the system proxy; to disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.
Type | Default Port | Description |
TUNNEL | 80 | When this is set, the Sync App opens a connection to Workday and traffic flows back and forth through the proxy. |
SOCKS4 | 1080 | When this is set, the Sync App sends data through the SOCKS 4 proxy specified by FirewallServer and FirewallPort and passes the FirewallUser value to the proxy, which determines if the connection request should be granted. |
SOCKS5 | 1080 | When this is set, the Sync App sends data through the SOCKS 5 proxy specified by FirewallServer and FirewallPort. If your proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes. |
To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.
The name or IP address of a proxy-based firewall.
This property specifies the IP address, DNS name, or host name of a proxy allowing traversal of a firewall. The protocol is specified by FirewallType: Use FirewallServer with this property to connect through SOCKS or do tunneling. Use ProxyServer to connect to an HTTP proxy.
Note that the Sync App uses the system proxy by default. To use a different proxy, set ProxyAutoDetect to false.
The TCP port for a proxy-based firewall.
This specifies the TCP port for a proxy allowing traversal of a firewall. Use FirewallServer to specify the name or IP address. Specify the protocol with FirewallType.
The user name to use to authenticate with a proxy-based firewall.
The FirewallUser and FirewallPassword properties are used to authenticate against the proxy specified in FirewallServer and FirewallPort, following the authentication method specified in FirewallType.
A password used to authenticate to a proxy-based firewall.
This property is passed to the proxy specified by FirewallServer and FirewallPort, following the authentication method specified by FirewallType.
This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.
The hostname or IP address of a proxy to route HTTP traffic through.
The hostname or IP address of a proxy to route HTTP traffic through. The Sync App can use the HTTP, Windows (NTLM), or Kerberos authentication types to authenticate to an HTTP proxy.
If you need to connect through a SOCKS proxy or tunnel the connection, see FirewallType.
By default, the Sync App uses the system proxy. If you need to use another proxy, set ProxyAutoDetect to false.
The TCP port the ProxyServer proxy is running on.
The port the HTTP proxy is running on that you want to redirect HTTP traffic through. Specify the HTTP proxy in ProxyServer. For other proxy types, see FirewallType.
The authentication type to use to authenticate to the ProxyServer proxy.
This value specifies the authentication type to use to authenticate to the HTTP proxy specified by ProxyServer and ProxyPort.
Note that the Sync App will use the system proxy settings by default, without further configuration needed; if you want to connect to another proxy, you will need to set ProxyAutoDetect to false, in addition to ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
The authentication type can be one of the following:
If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.
A user name to be used to authenticate to the ProxyServer proxy.
The ProxyUser and ProxyPassword options are used to connect and authenticate against the HTTP proxy specified in ProxyServer.
You can select one of the available authentication types in ProxyAuthScheme. If you are using HTTP authentication, set this to the user name of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a user name in one of the following formats:
user@domain domain\user
A password to be used to authenticate to the ProxyServer proxy.
This property is used to authenticate to an HTTP proxy server that supports NTLM (Windows), Kerberos, or HTTP authentication. To specify the HTTP proxy, you can set ProxyServer and ProxyPort. To specify the authentication type, set ProxyAuthScheme.
If you are using HTTP authentication, additionally set ProxyUser and ProxyPassword to HTTP proxy.
If you are using NTLM authentication, set ProxyUser and ProxyPassword to your Windows password. You may also need these to complete Kerberos authentication.
For SOCKS 5 authentication or tunneling, see FirewallType.
By default, the Sync App uses the system proxy. If you want to connect to another proxy, set ProxyAutoDetect to false.
The SSL type to use when connecting to the ProxyServer proxy.
This property determines when to use SSL for the connection to an HTTP proxy specified by ProxyServer. This value can be AUTO, ALWAYS, NEVER, or TUNNEL. The applicable values are the following:
AUTO | Default setting. If the URL is an HTTPS URL, the Sync App will use the TUNNEL option. If the URL is an HTTP URL, the component will use the NEVER option. |
ALWAYS | The connection is always SSL enabled. |
NEVER | The connection is not SSL enabled. |
TUNNEL | The connection is through a tunneling proxy. The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy. |
A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .
The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.
Note that the Sync App uses the system proxy settings by default, without further configuration needed; if you want to explicitly configure proxy exceptions for this connection, you need to set ProxyAutoDetect = false, and configure ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
This section provides a complete list of the Logging properties you can configure in the connection string for this provider.
Property | Description |
LogModules | Core modules to be included in the log file. |
Core modules to be included in the log file.
Only the modules specified (separated by ';') will be included in the log file. By default all modules are included.
See the Logging page for an overview.
This section provides a complete list of the Schema properties you can configure in the connection string for this provider.
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC. |
A path to the directory that contains the schema files defining tables, views, and stored procedures.
The path to a directory which contains the schema files for the Sync App (.rsd files for tables and views, .rsb files for stored procedures). The folder location can be a relative path from the location of the executable. The Location property is only needed if you want to customize definitions (for example, change a column name, ignore a column, and so on) or extend the data model with new tables, views, or stored procedures.
Note: Given that this Sync App supports multiple schemas, the structure for Workday custom schema files is as follows:
If left unspecified, the default location is "%APPDATA%\\CData\\Workday Data Provider\\Schema" with %APPDATA% being set to the user's configuration directory:
This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
Listing the schemas from databases can be expensive. Providing a list of schemas in the connection string improves the performance.
This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
Listing the tables from some databases can be expensive. Providing a list of tables in the connection string improves the performance of the Sync App.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
Specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.
Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.
Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
Listing the views from some databases can be expensive. Providing a list of views in the connection string improves the performance of the Sync App.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
Specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.
Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.
This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.
Property | Description |
APIURL | The complete url to the API endpoint to use for making SOAP requests. |
EnforceWQLRowLimit | Determines whether the provider restricts queries to returning only 1 million rows. |
ExpandIDTypes | Whether to expand multiple ID types when they appear in reports. Only has an effect for queries using the Reports as a Service (RaaS) API. |
ExpandMultiValueLimit | The maximum number of output rows that may be expanded from a single input row. |
ExpandMultiValues | Determines if multi-instance fields are expanded into separate rows. |
MaxRows | Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time. |
MetadataFilters | Specifies what types of fields are ignored by the provider. |
Other | These hidden properties are used only in specific use cases. |
Pagesize | The maximum number of results to return per page from Workday. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
WSDLURL | The URL to the WSDL. Only avaialble for the SOAP API. |
WSDLVersion | The version of the WSDL to use. Only available for the SOAP API. |
The complete url to the API endpoint to use for making SOAP requests.
Instead of entering the Tenant, Service, and Host individually, the complete API URL may be specified in the following format. For example:
https://<host>.workday.com/ccx/service/<tenant>/<Service>
For example, a complete API URL might appear as:
https://wd3-impl-services1.workday.com/ccx/service/mytenant/Human_Resources
Alternatively, the Service may be left out, which will enable all services enabled via the Service property. For example:
https://wd3-impl-services1.workday.com/ccx/service/mytenant
Determines whether the provider restricts queries to returning only 1 million rows.
By default the Sync App will add a LIMIT 1000000 to any WQL query it executes. This prevents Workday from raising an error if the query would return too many values.
If you disable this option, the Sync App will not add the LIMIT clause. Any queries that would return more rows than the Workday row limit will instead raise an error.
Whether to expand multiple ID types when they appear in reports. Only has an effect for queries using the Reports as a Service (RaaS) API.
Every Workday entity is identified by a WID (a GUID generated by Workday) but some types of entities have other types of identifiers. For example, a Workday country record for the United States would be identified using the "US" country code in addition to its WID.
By default the Sync App collects all these IDs under one column and produce an aggregate.
This is the value of the Country_Reference.ID column for the US record:
<wd:Country_Reference> <wd:ID type="WID">abcdef1234567890</wd:ID> <wd:ID type="Country_Code">US</wd:ID> </wd:Country_Reference>
If this option is enabled, the Sync App instead produces a separate column for each ID type. For the US record:
The maximum number of output rows that may be expanded from a single input row.
When using ExpandMultiValues, the Sync App can generate multiple output rows for each input row from Workday. Each multi-value column included in the query increases the number of output rows exponentially. For example, if a table has five array columns and has one row has three values for each, then rows are generated in this pattern:
Number of Array Columns Selected | Number of Output Rows |
0 | 1 |
1 | 3 |
2 | 9 |
3 | 27 |
4 | 81 |
5 | 243 |
Realistic queries can output thousands of rows which can be expanded into hundreds of thousands of output rows. Generating these rows reduces the Sync App's performance and can potentially cause the Sync App to run out of memory.
To avoid this, the Sync App counts the number of output rows before actually generating them. If any input row would generate more rows than the ExpandMultiValueLimit, the Sync App reports an error instead. When this happens you should carefully evaluate the query and remove any array columns that are not required. Only increase this limit if there is no way to simplify your query.
Determines if multi-instance fields are expanded into separate rows.
The behavior of this option depends upon the service you are connecting to. Please refer to the WQL section for an overview, as the reporting and SOAP sections only cover details specific to those services. Also refer to ExpandMultiValueLimit to understand the performance consequences of enabling this option.
WQL uses multi-value fields to reference multiple rows from another table, such one journal entry referencing multiple journal line items. By default the Sync App displays these as JSON aggregates which must be parsed to get individual values.
workdayID | orderNumber | lineItem |
01234 | 1 | [{"id": "123abc", "descriptor": "..."}, {"id": "234bcd", ...}, {"id": "345cde", ...}] |
56789 | 2 | [{"id": "456def", "descriptor": "..."}, {"id": "567fea", ...}] |
Enabling this option expands each of these multi-value references across multiple rows. The Sync App separates out each aggregate into an ID column and a descriptor column (the same as single-value ID fields). It also generates a new field called workdayIDIndex that counts the number of rows expanded from one WQL row. The workdayID and workdayIDIndex form a composite primary key, instead of the workdayID being the primary key on its own.
workdayID | workdayIDIndex | orderNumber | lineItem.id | lineItem.descriptor |
01234 | 1 | 1 | 123abc | ... |
01234 | 2 | 1 | 234bcd | ... |
01234 | 3 | 1 | 345cde | ... |
56789 | 1 | 2 | 456def | ... |
56789 | 2 | 2 | 567fea | ... |
The Sync App only expands rows that are included in the SELECT clause of the query. If more than one multi-value reference is selected, its values are combined with the other multi-value fields using a CROSS JOIN. This ensures that all combinations are included in the output so they can be used in WHERE or JOIN conditions.
The reporting API behaves similarly to the WQL API, with two main differences. The first is that two extra columns are added instead of just one. One is called RowIndex and it behaves the same as workdayIDIndex. The other is called RowNumber and it counts the number of original rows from the report. It is included because reports do not have a built-in primary key like WQL data sources do.
The second is that reporting supports the ExpandIDTypes option. By default single-value IDs are treated as multi-value fields and expanded in the same way. This is because even single-value references can have a separate value for each type of ID. If ExpandIDTypes is enabled then each type of ID gets its own column and only multi-value references are expanded across rows.
The SOAP API exposes a more complex data model with different types of repeated values:
This property only applies to the first two types because complex repeated structures are always exposed as child tables. The other two types behave similarly to WQL and reporting APIs with a few exceptions:
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
Specifies what types of fields are ignored by the provider.
Several types of fields in Workday are slow to read or are common sources of query errors. Excluding these fields at the Sync App level allows for faster and more reliable queries without explicitly excluding these columns for every query. If a field is included in this property, it does not show up in table metadata and it cannot be used in queries.
This property can be set to a comma-separated list containing any combination of the following field types. For example, Calculated,MultiInstance will exclude both calculated and multi-instance fields.
These hidden properties are used only in specific use cases.
The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.
Specify multiple properties in a semicolon-separated list.
DefaultColumnSize | Sets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000. |
ConvertDateTimeToGMT | Determines whether to convert date-time values to GMT, instead of the local time of the machine. |
RecordToFile=filename | Records the underlying socket data transfer to the specified file. |
The maximum number of results to return per page from Workday.
The Pagesize property affects the maximum number of results to return per page from Workday. Setting a higher value may result in better performance at the cost of additional memory allocated per page consumed.
This property indicates whether or not to include pseudo columns as columns to the table.
This setting is particularly helpful in Entity Framework, which does not allow you to set a value for a pseudo column unless it is a table column. The value of this connection setting is of the format "Table1=Column1, Table1=Column2, Table2=Column3". You can use the "*" character to include all tables and all columns; for example, "*=*".
The value in seconds until the timeout error is thrown, canceling the operation.
If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.
If Timeout expires and the operation is not yet complete, the Sync App throws an exception.
A filepath pointing to the JSON configuration file containing your custom views.
User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The Sync App automatically detects the views specified in this file.
You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Sync App.
This User Defined View configuration file is formatted as follows:
For example:
{ "MyView": { "query": "SELECT * FROM [CData].[Human_Resources].Workers WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"
The URL to the WSDL. Only avaialble for the SOAP API.
As an alternative to entering Service and WSDLVersion, the WSDL URL may be entered directly. For example:
https://community.workday.com/sites/default/files/file-hosting/productionapi/Human_Resources/v34.1/Human_Resources.wsdl
The version of the WSDL to use. Only available for the SOAP API.
The WSDL Version for Workday changes often. If you would like to use the latest version, the version may be set to a higher value here to match the latest release. Alternatively, set the WSDLURL directly and this property will be ignored.