📝 Workday Get_Workers notes
Workday's Get_Workers web service is a common way to get worker related data out of Workday. One of its more powerful features is transaction detection which can help achieve requirements like, "Get all workers with a compensation change in the last week".
This is a few organized notes I've gathered from Community1 and my experience.
Data sections
First, figure out what data sections you want to see in the response. You can toggle these on or off. Some are "Exclude" and others are "Include". There are nearly 60 of these as of v39.0. Example:
<wd:Response_Group>
<wd:Include_Compensation>true</wd:Include_Compensation>
<wd:Exclude_Gifts>true</wd:Exclude_Gifts>
...
</wd:Response_Group>
Transaction types
In the <wd:Transaction_Log_Criteria_Data>
section, you specify any transactions a worker should have had to be returned in the response. Transactions must be specified with an ID type of WID
, Event_Lite_Type_ID
, Business_Process_Type
, or Reorganization_Activity_Type
.
Excluding WIDs, there are over 1k type IDs you could specify. Here's a few ways to help identify the IDs you need for the request:
- Task: Integration IDs
- On a report, or Related Actions > Report Fields and Values, there is a reporting field named
Transaction Types
that will list the type of transaction for any given business process. - Delivered report2
Transaction Types available for Subscription
Devil is in the details: Transaction types are tricky. For example, a "Change Job" business process can have multiple transaction types. A few of them are 'Promotion Inbound' and 'Change Job'. So you have to be careful to select all the ones you care about. If you only selected the 'Change Job' transaction type, then you would miss out on the promo job changes. Also, Get_Workers can handle rescinds and corrections, but you must add them to the transaction types list.
Transaction log date range logic
The transaction log filter has two date range sets, Updated (entered) From / Through
and Effective From / Through
.
These two date range sets don't have to be used together. If they are used together, they are treated as AND. This differs from CCW's which take and compare two separate snapshots.
<wd:Transaction_Date_Range_Data>
<wd:Updated_From>2022-09-22T09:44:07.134-07:00</wd:Updated_From>
<wd:Updated_Through>2022-07-22T10:48:19.129-07:00</wd:Updated_Through>
<wd:Effective_From>2022-07-22T00:00:00.000-07:00</wd:Effective_From>
<wd:Effective_Through>2022-07-22T00:00:00.000-07:00</wd:Effective_Through>
</wd:Transaction_Date_Range_Data>
The above example would return all workers with a transaction of any of the specified types that was both effective and entered between 9/22 and 7/22.
- Only using Updated (entered) From / Through
would return changes entered between the specified dates regardless of their effective date.
- Only using the Effective From / Through
contains all the changes that became effective in the date range, regardless of when they were entered.
Additional Get_Workers notes
Security
Worker Data: Public Worker Reports
domain controls access to the Get_Workers web service.Worker Data: Workers
domain controls access to the workers extracted from the web service.- Specific fields in the response will have their own domain security permissions
Versus CCW and other change detection tools
- Get_Workers will return more data than CCW by default.
- Get_Workers can detect corrections and rescinds if they are included in the Transaction_Types criteria. CCW may be more limited.
- CCW can return the current and prior value for a set of fields. Get_Workers will only return the current data as of an effective and entry moment.