Workday¶
flowtask.components.Workday
¶
Location
¶
Bases: BaseModel
Pydantic model for a Workday location record.
raw_data holds the full SOAP response dict for any extra fields.
LocationType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Locations operation.
execute
async
¶
Execute the Get_Locations operation and return a pandas DataFrame.
Supported parameters: - location_id: Specific location ID to fetch (uses Request_References) - location_name: Filter by location name (uses Request_Criteria) - location_type: Filter by location type - location_usage: Filter by location usage - inactive: Filter by inactive status (True/False)
get_location_by_id
async
¶
Convenience method to get a specific location by ID.
get_location_by_name
async
¶
Convenience method to get a specific location by name.
get_locations_by_type
async
¶
Convenience method to get locations by type.
Organization
¶
Bases: BaseModel
Complete organization model based on actual Workday payload.
OrganizationType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Organizations operation.
execute
async
¶
Execute the Get_Organizations operation and return a pandas DataFrame.
Supported parameters: - organization_id: Specific organization ID to fetch (uses Request_References) - organization_id_type: Type of organization ID (WID, Organization_Reference_ID, Cost_Center_Reference_ID, etc.) - organization_type: Filter by organization type (Company, Cost Center, Custom, Matrix, Pay Group, Region, Retiree, Supervisory, etc.) - include_inactive: Include inactive organizations (True/False) - enable_transaction_log_lite: Enable transaction log lite (True/False)
get_active_organizations
async
¶
Get only active organizations.
:return: DataFrame with active organizations data
get_all_organizations
async
¶
Get all organizations (active and optionally inactive).
:param include_inactive: Whether to include inactive organizations :return: DataFrame with all organizations data
get_companies
async
¶
Get only company organizations.
:return: DataFrame with company organizations data
get_cost_centers
async
¶
Get only cost center organizations.
:return: DataFrame with cost center organizations data
get_organization_by_cost_center_id
async
¶
Get a specific organization by Cost Center Reference ID.
:param cost_center_id: The organization Cost Center Reference ID to fetch :return: DataFrame with organization data
get_organization_by_id
async
¶
Get a specific organization by ID.
:param organization_id: The organization ID to fetch :param id_type: Type of ID (WID, Organization_Reference_ID, Cost_Center_Reference_ID, etc.) :return: DataFrame with organization data
get_organization_by_wid
async
¶
Get a specific organization by WID.
:param wid: The organization WID to fetch :return: DataFrame with organization data
get_organizations_by_type
async
¶
Get organizations filtered by type.
:param organization_type: Organization type (Company, Cost Center, Custom, Matrix, Pay Group, Region, Retiree, Supervisory, etc.) :return: DataFrame with organizations data
get_supervisory_organizations
async
¶
Get only supervisory organizations.
:return: DataFrame with supervisory organizations data
TimeBlock
¶
Bases: BaseModel
Pydantic model for a Workday calculated time block record.
raw_data holds the full SOAP response dict for any extra fields.
TimeBlockType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Calculated_Time_Blocks operation.
execute
async
¶
Execute the Get_Calculated_Time_Blocks operation and return a pandas DataFrame.
Supported parameters: - worker_id: Specific worker ID to fetch time blocks for - start_date: Start date for date range filter (YYYY-MM-DD) - end_date: End date for date range filter (YYYY-MM-DD) - time_block_id: Specific time block ID to fetch - status: Filter by status - supervisory_org: Filter by supervisory organization - include_deleted: Whether to include deleted time blocks (default: False)
get_time_blocks_by_date_range
async
¶
Convenience method to get time blocks for a date range.
get_time_blocks_by_worker
async
¶
Convenience method to get time blocks for a specific worker.
TimeRequest
¶
Bases: BaseModel
Pydantic model for a Workday time request record.
raw_data holds the full SOAP response dict for any extra fields.
TimeRequestType
¶
Bases: WorkdayTypeBase
Handles Get_Time_Requests operation for Workday Time Tracking API.
get_time_request_by_id
async
¶
Get a specific time request by ID.
get_time_requests_by_date_range
async
¶
Get all time requests within a date range.
get_time_requests_by_organization
async
¶
Get time requests for a specific organization within an optional date range.
get_time_requests_by_worker
async
¶
Get time requests for a specific worker within an optional date range.
Workday
¶
Bases: SOAPClient, FlowComponent
Workday Component
Overview
The Workday class is a Flowtask component for the Workday SOAP API. It encapsulates all Workday-specific logic, including authentication, request/response handling, and data normalization.
Properties
type (str): Operation type to perform (e.g. 'get_workers', 'get_time_blocks') worker_id (str): Optional worker ID to fetch a specific worker use_storage (bool): Enable data storage functionality storage_path (str): Path where to store the data files
Returns:
| Type | Description |
|---|---|
|
Returns a pandas DataFrame with the requested data. |
Examples:
# Basic usage
Workday:
type: get_workers
worker_id: "72037046323885"
# With storage enabled
Workday:
type: get_workers
use_storage: true
storage_path: "/data/workday"
# Location hierarchy assignments with storage
Workday:
type: get_location_hierarchy_assignments
use_storage: true
storage_path: "/data/workday"
# Organizations with storage
Workday:
type: get_organizations
organization_type: "Cost_Center"
use_storage: true
storage_path: "/data/workday"
Worker
¶
Bases: BaseModel
Pydantic model for a Workday worker record.
raw_data holds the full SOAP response dict for any extra fields.
WorkerType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Workers operation, batching pages
so that no more than max_parallel requests run concurrently.
:param component: Component instance :param max_retries: Maximum retry attempts (default: 5 for connection resilience) :param retry_delay: Base delay between retries in seconds (default: 0.5 for exponential backoff)
execute
async
¶
Execute the Get_Workers operation and return a pandas DataFrame.
If worker_id is provided, fetches only that one; otherwise
fetches all pages in batches of at most max_parallel concurrent requests.
models
¶
Location
¶
Bases: BaseModel
Pydantic model for a Workday location record.
raw_data holds the full SOAP response dict for any extra fields.
Organization
¶
Bases: BaseModel
Complete organization model based on actual Workday payload.
TimeBlock
¶
Bases: BaseModel
Pydantic model for a Workday calculated time block record.
raw_data holds the full SOAP response dict for any extra fields.
TimeRequest
¶
Bases: BaseModel
Pydantic model for a Workday time request record.
raw_data holds the full SOAP response dict for any extra fields.
Worker
¶
Bases: BaseModel
Pydantic model for a Workday worker record.
raw_data holds the full SOAP response dict for any extra fields.
location
¶
Location
¶
Bases: BaseModel
Pydantic model for a Workday location record.
raw_data holds the full SOAP response dict for any extra fields.
location_hierarchy_assignments
¶
Pydantic models for Location Hierarchy Organization Assignments.
LocationHierarchyAssignment
¶
Bases: BaseModel
Model for location hierarchy organization assignment.
LocationHierarchyAssignmentsResponse
¶
Bases: BaseModel
Model for the complete location hierarchy assignments response.
LocationHierarchyReference
¶
Bases: BaseModel
Model for location hierarchy reference.
OrganizationAssignment
¶
Bases: BaseModel
Model for organization assignment by type.
OrganizationReference
¶
Bases: BaseModel
Model for organization reference in assignments.
OrganizationTypeReference
¶
Bases: BaseModel
Model for organization type reference.
organizations
¶
Organization
¶
Bases: BaseModel
Complete organization model based on actual Workday payload.
time_block
¶
TimeBlock
¶
Bases: BaseModel
Pydantic model for a Workday calculated time block record.
raw_data holds the full SOAP response dict for any extra fields.
parsers
¶
parse_benefits_and_roles
¶
Parse benefit enrollments, roles, and worker documents.
parse_compensation_data
¶
Parse the compensation details of the worker.
Extracts
- wage (float)
- compensation_effective_date (str)
- compensation_guidelines (package / grade / profile IDs)
- salary_and_hourly (list of elements)
- compensation_summary (nested summary)
- reason_references (mapping of reason type → ID)
parse_contact_data
¶
Parse the contact information (email, address, phone) of the worker.
parse_employment_data
¶
Parse employment-related details (position, hours, job profile).
parse_identification_data
¶
Parse identification details (national ID, license, custom IDs).
parse_location_data
¶
Parse the main location data from Workday response.
parse_management_chain_data
¶
Parse management chain data from Worker_Management_Chain_Data.
parse_organization_data
¶
Parse organization data from Workday SOAP response.
:param org_data: Raw organization data from Workday :return: Parsed Organization model
parse_payroll_and_tax_data
¶
Parse payroll and tax related data from Position_Data.
parse_personal_data
¶
Parse the personal information of the worker.
parse_position_management_chain_data
¶
Parse management chain data from Position_Management_Chains_Data. This is different from Worker_Management_Chain_Data and contains the actual management chain.
parse_time_block_data
¶
Parse the main time block data from Workday response.
parse_time_request_data
¶
Parse time request data from the SOAP response.
parse_worker_organization_data
¶
Parse worker organization information from worker data
parse_worker_status
¶
Parse worker status details (active, hire/termination dates, eligibility), asegurando no romper si algún _Reference es None.
location_hierarchy_assignments_parsers
¶
Parsers for Location Hierarchy Organization Assignments data.
parse_location_hierarchy_assignment
¶
Parse location hierarchy organization assignment data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
assignment_data
|
Dict[str, Any]
|
Raw assignment data from the API (already Location_Hierarchy_Organization_Assignments_Data) |
required |
Returns:
| Type | Description |
|---|---|
LocationHierarchyAssignment
|
Parsed LocationHierarchyAssignment object |
parse_location_hierarchy_assignments_data
¶
Main parser function for location hierarchy assignments data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
raw_data
|
Dict[str, Any]
|
Raw data from the API response |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dictionary with parsed assignments and metadata |
parse_location_hierarchy_assignments_response
¶
Parse the complete location hierarchy assignments response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
response_data
|
Dict[str, Any]
|
Raw response data from the API |
required |
Returns:
| Type | Description |
|---|---|
List[LocationHierarchyAssignment]
|
List of parsed LocationHierarchyAssignment objects |
parse_location_hierarchy_reference
¶
Parse location hierarchy reference data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reference_data
|
Dict[str, Any]
|
Raw location hierarchy reference data |
required |
Returns:
| Type | Description |
|---|---|
LocationHierarchyReference
|
Parsed LocationHierarchyReference object |
parse_organization_assignment
¶
Parse organization assignment by type data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
assignment_data
|
Dict[str, Any]
|
Raw organization assignment data |
required |
Returns:
| Type | Description |
|---|---|
OrganizationAssignment
|
Parsed OrganizationAssignment object |
parse_organization_reference
¶
Parse organization reference data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
org_data
|
Dict[str, Any]
|
Raw organization reference data |
required |
Returns:
| Type | Description |
|---|---|
OrganizationReference
|
Parsed OrganizationReference object |
parse_organization_type_reference
¶
Parse organization type reference data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
type_data
|
Dict[str, Any]
|
Raw organization type reference data |
required |
Returns:
| Type | Description |
|---|---|
OrganizationTypeReference
|
Parsed OrganizationTypeReference object |
parse_response_results
¶
Parse response results (pagination info).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
response_data
|
Dict[str, Any]
|
Raw response data from the API |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dictionary with pagination information |
organization_parsers
¶
parse_organization_data
¶
Parse organization data from Workday SOAP response.
:param org_data: Raw organization data from Workday :return: Parsed Organization model
parse_organizations_response
¶
Parse the complete organizations response from Workday.
:param response_data: Raw response data from Workday :return: List of parsed Organization models
worker_parsers
¶
parse_benefits_and_roles
¶
Parse benefit enrollments, roles, and worker documents.
parse_compensation_data
¶
Parse the compensation details of the worker.
Extracts
- wage (float)
- compensation_effective_date (str)
- compensation_guidelines (package / grade / profile IDs)
- salary_and_hourly (list of elements)
- compensation_summary (nested summary)
- reason_references (mapping of reason type → ID)
parse_contact_data
¶
Parse the contact information (email, address, phone) of the worker.
parse_employment_data
¶
Parse employment-related details (position, hours, job profile).
parse_identification_data
¶
Parse identification details (national ID, license, custom IDs).
parse_management_chain_data
¶
Parse management chain data from Worker_Management_Chain_Data.
parse_payroll_and_tax_data
¶
Parse payroll and tax related data from Position_Data.
parse_personal_data
¶
Parse the personal information of the worker.
parse_position_management_chain_data
¶
Parse management chain data from Position_Management_Chains_Data. This is different from Worker_Management_Chain_Data and contains the actual management chain.
parse_worker_organization_data
¶
Parse worker organization information from worker data
parse_worker_status
¶
Parse worker status details (active, hire/termination dates, eligibility), asegurando no romper si algún _Reference es None.
types
¶
LocationType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Locations operation.
execute
async
¶
Execute the Get_Locations operation and return a pandas DataFrame.
Supported parameters: - location_id: Specific location ID to fetch (uses Request_References) - location_name: Filter by location name (uses Request_Criteria) - location_type: Filter by location type - location_usage: Filter by location usage - inactive: Filter by inactive status (True/False)
get_location_by_id
async
¶
Convenience method to get a specific location by ID.
get_location_by_name
async
¶
Convenience method to get a specific location by name.
get_locations_by_type
async
¶
Convenience method to get locations by type.
OrganizationType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Organizations operation.
execute
async
¶
Execute the Get_Organizations operation and return a pandas DataFrame.
Supported parameters: - organization_id: Specific organization ID to fetch (uses Request_References) - organization_id_type: Type of organization ID (WID, Organization_Reference_ID, Cost_Center_Reference_ID, etc.) - organization_type: Filter by organization type (Company, Cost Center, Custom, Matrix, Pay Group, Region, Retiree, Supervisory, etc.) - include_inactive: Include inactive organizations (True/False) - enable_transaction_log_lite: Enable transaction log lite (True/False)
get_active_organizations
async
¶
Get only active organizations.
:return: DataFrame with active organizations data
get_all_organizations
async
¶
Get all organizations (active and optionally inactive).
:param include_inactive: Whether to include inactive organizations :return: DataFrame with all organizations data
get_companies
async
¶
Get only company organizations.
:return: DataFrame with company organizations data
get_cost_centers
async
¶
Get only cost center organizations.
:return: DataFrame with cost center organizations data
get_organization_by_cost_center_id
async
¶
Get a specific organization by Cost Center Reference ID.
:param cost_center_id: The organization Cost Center Reference ID to fetch :return: DataFrame with organization data
get_organization_by_id
async
¶
Get a specific organization by ID.
:param organization_id: The organization ID to fetch :param id_type: Type of ID (WID, Organization_Reference_ID, Cost_Center_Reference_ID, etc.) :return: DataFrame with organization data
get_organization_by_wid
async
¶
Get a specific organization by WID.
:param wid: The organization WID to fetch :return: DataFrame with organization data
get_organizations_by_type
async
¶
Get organizations filtered by type.
:param organization_type: Organization type (Company, Cost Center, Custom, Matrix, Pay Group, Region, Retiree, Supervisory, etc.) :return: DataFrame with organizations data
get_supervisory_organizations
async
¶
Get only supervisory organizations.
:return: DataFrame with supervisory organizations data
TimeBlockType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Calculated_Time_Blocks operation.
execute
async
¶
Execute the Get_Calculated_Time_Blocks operation and return a pandas DataFrame.
Supported parameters: - worker_id: Specific worker ID to fetch time blocks for - start_date: Start date for date range filter (YYYY-MM-DD) - end_date: End date for date range filter (YYYY-MM-DD) - time_block_id: Specific time block ID to fetch - status: Filter by status - supervisory_org: Filter by supervisory organization - include_deleted: Whether to include deleted time blocks (default: False)
get_time_blocks_by_date_range
async
¶
Convenience method to get time blocks for a date range.
get_time_blocks_by_worker
async
¶
Convenience method to get time blocks for a specific worker.
TimeRequestType
¶
Bases: WorkdayTypeBase
Handles Get_Time_Requests operation for Workday Time Tracking API.
get_time_request_by_id
async
¶
Get a specific time request by ID.
get_time_requests_by_date_range
async
¶
Get all time requests within a date range.
get_time_requests_by_organization
async
¶
Get time requests for a specific organization within an optional date range.
get_time_requests_by_worker
async
¶
Get time requests for a specific worker within an optional date range.
WorkerType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Workers operation, batching pages
so that no more than max_parallel requests run concurrently.
:param component: Component instance :param max_retries: Maximum retry attempts (default: 5 for connection resilience) :param retry_delay: Base delay between retries in seconds (default: 0.5 for exponential backoff)
execute
async
¶
Execute the Get_Workers operation and return a pandas DataFrame.
If worker_id is provided, fetches only that one; otherwise
fetches all pages in batches of at most max_parallel concurrent requests.
base
¶
WorkdayTypeBase
¶
Bases: ABC
Base class for Workday operation types.
Provides
- Default payload structure for all Workday operations.
- Generic pagination logic with retries and logging.
- Common SOAP response handling utilities.
:param component: Component instance (used for run, logger, metrics). :param max_retries: Maximum number of retry attempts per page on failure. :param retry_delay: Seconds to wait between retry attempts.
execute
abstractmethod
async
¶
Execute the specific operation logic. Must be implemented by subclasses.
location_hierarchy_assignments
¶
Get_Location_Hierarchy_Organization_Assignments operation handler.
This module handles the Get_Location_Hierarchy_Organization_Assignments operation which retrieves organization assignments for location hierarchies.
LocationHierarchyAssignmentsType
¶
Bases: WorkdayTypeBase
Handler for Get_Location_Hierarchy_Organization_Assignments operation.
Retrieves organization assignments for location hierarchies.
:param component: Component instance :param max_retries: Maximum retry attempts (default: 5 for connection resilience) :param retry_delay: Delay between retries in seconds (default: 2.0 for API rate limiting) :param kwargs: Additional parameters
execute
async
¶
Execute Get_Location_Hierarchy_Organization_Assignments operation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Additional parameters including: - location_hierarchy_ids: List of location hierarchy IDs to fetch - location_hierarchy_id_type: Type of ID (WID, Organization_Reference_ID) - as_of_effective_date: Date for effective data - as_of_entry_datetime: Date/time for entry data - page: Page number for pagination - count: Number of results per page |
{}
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pandas DataFrame containing the location hierarchy organization assignments |
get_all_assignments
async
¶
Get all location hierarchy organization assignments.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Additional parameters for filtering |
{}
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with all location hierarchy organization assignments |
get_assignments_by_location_hierarchy
async
¶
Get organization assignments for a specific location hierarchy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
location_hierarchy_id
|
str
|
The location hierarchy ID to fetch |
required |
id_type
|
str
|
Type of ID (WID, Organization_Reference_ID) |
'Organization_Reference_ID'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with organization assignments for the location hierarchy |
locations
¶
LocationType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Locations operation.
execute
async
¶
Execute the Get_Locations operation and return a pandas DataFrame.
Supported parameters: - location_id: Specific location ID to fetch (uses Request_References) - location_name: Filter by location name (uses Request_Criteria) - location_type: Filter by location type - location_usage: Filter by location usage - inactive: Filter by inactive status (True/False)
get_location_by_id
async
¶
Convenience method to get a specific location by ID.
get_location_by_name
async
¶
Convenience method to get a specific location by name.
get_locations_by_type
async
¶
Convenience method to get locations by type.
organization_single
¶
Get_Organization operation handler.
This module handles the Get_Organization operation which retrieves a specific organization by its ID (singular, not plural).
GetOrganization
¶
Bases: WorkdayTypeBase
Handler for Get_Organization operation.
Retrieves a specific organization by its ID.
execute
async
¶
Execute Get_Organization operation to retrieve a specific organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
The ID of the organization to retrieve |
required |
organization_id_type
|
str
|
The type of ID (Organization_Reference_ID, WID, etc.) |
'Organization_Reference_ID'
|
**kwargs
|
Additional parameters |
{}
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pandas DataFrame containing the organization data |
get_organization_by_custom_id
async
¶
Get organization by Custom_Organization_Reference_ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
custom_id
|
str
|
The Custom_Organization_Reference_ID |
required |
**kwargs
|
Additional parameters |
{}
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pandas DataFrame containing the organization data |
get_organization_by_reference_id
async
¶
Get organization by Organization_Reference_ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reference_id
|
str
|
The Organization_Reference_ID |
required |
**kwargs
|
Additional parameters |
{}
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pandas DataFrame containing the organization data |
get_organization_by_wid
async
¶
Get organization by WID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
wid
|
str
|
The WID of the organization |
required |
**kwargs
|
Additional parameters |
{}
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pandas DataFrame containing the organization data |
organizations
¶
OrganizationType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Organizations operation.
execute
async
¶
Execute the Get_Organizations operation and return a pandas DataFrame.
Supported parameters: - organization_id: Specific organization ID to fetch (uses Request_References) - organization_id_type: Type of organization ID (WID, Organization_Reference_ID, Cost_Center_Reference_ID, etc.) - organization_type: Filter by organization type (Company, Cost Center, Custom, Matrix, Pay Group, Region, Retiree, Supervisory, etc.) - include_inactive: Include inactive organizations (True/False) - enable_transaction_log_lite: Enable transaction log lite (True/False)
get_active_organizations
async
¶
Get only active organizations.
:return: DataFrame with active organizations data
get_all_organizations
async
¶
Get all organizations (active and optionally inactive).
:param include_inactive: Whether to include inactive organizations :return: DataFrame with all organizations data
get_companies
async
¶
Get only company organizations.
:return: DataFrame with company organizations data
get_cost_centers
async
¶
Get only cost center organizations.
:return: DataFrame with cost center organizations data
get_organization_by_cost_center_id
async
¶
Get a specific organization by Cost Center Reference ID.
:param cost_center_id: The organization Cost Center Reference ID to fetch :return: DataFrame with organization data
get_organization_by_id
async
¶
Get a specific organization by ID.
:param organization_id: The organization ID to fetch :param id_type: Type of ID (WID, Organization_Reference_ID, Cost_Center_Reference_ID, etc.) :return: DataFrame with organization data
get_organization_by_wid
async
¶
Get a specific organization by WID.
:param wid: The organization WID to fetch :return: DataFrame with organization data
get_organizations_by_type
async
¶
Get organizations filtered by type.
:param organization_type: Organization type (Company, Cost Center, Custom, Matrix, Pay Group, Region, Retiree, Supervisory, etc.) :return: DataFrame with organizations data
get_supervisory_organizations
async
¶
Get only supervisory organizations.
:return: DataFrame with supervisory organizations data
time_blocks
¶
TimeBlockType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Calculated_Time_Blocks operation.
execute
async
¶
Execute the Get_Calculated_Time_Blocks operation and return a pandas DataFrame.
Supported parameters: - worker_id: Specific worker ID to fetch time blocks for - start_date: Start date for date range filter (YYYY-MM-DD) - end_date: End date for date range filter (YYYY-MM-DD) - time_block_id: Specific time block ID to fetch - status: Filter by status - supervisory_org: Filter by supervisory organization - include_deleted: Whether to include deleted time blocks (default: False)
get_time_blocks_by_date_range
async
¶
Convenience method to get time blocks for a date range.
get_time_blocks_by_worker
async
¶
Convenience method to get time blocks for a specific worker.
time_requests
¶
TimeRequestType
¶
Bases: WorkdayTypeBase
Handles Get_Time_Requests operation for Workday Time Tracking API.
get_time_request_by_id
async
¶
Get a specific time request by ID.
get_time_requests_by_date_range
async
¶
Get all time requests within a date range.
get_time_requests_by_organization
async
¶
Get time requests for a specific organization within an optional date range.
get_time_requests_by_worker
async
¶
Get time requests for a specific worker within an optional date range.
workers
¶
WorkerType
¶
Bases: WorkdayTypeBase
Handler for the Workday Get_Workers operation, batching pages
so that no more than max_parallel requests run concurrently.
:param component: Component instance :param max_retries: Maximum retry attempts (default: 5 for connection resilience) :param retry_delay: Base delay between retries in seconds (default: 0.5 for exponential backoff)
execute
async
¶
Execute the Get_Workers operation and return a pandas DataFrame.
If worker_id is provided, fetches only that one; otherwise
fetches all pages in batches of at most max_parallel concurrent requests.
utils
¶
extract_by_type
¶
Given a list of {'_value_1':…, 'type':…} dicts (or a single dict),
return the _value_1 whose type matches desired_type, or None.
safe_serialize
¶
Serialize Decimal, list or dict into JSON-friendly string, or return empty string if None.
utils
¶
extract_by_type
¶
Given a list of {'_value_1':…, 'type':…} dicts (or a single dict),
return the _value_1 whose type matches desired_type, or None.
extract_nested
¶
Helper to extract nested data from a dict given a list of keys.
safe_serialize
¶
Serialize Decimal, list or dict into JSON-friendly string, or return empty string if None.
workday
¶
Workday
¶
Bases: SOAPClient, FlowComponent
Workday Component
Overview
The Workday class is a Flowtask component for the Workday SOAP API. It encapsulates all Workday-specific logic, including authentication, request/response handling, and data normalization.
Properties
type (str): Operation type to perform (e.g. 'get_workers', 'get_time_blocks') worker_id (str): Optional worker ID to fetch a specific worker use_storage (bool): Enable data storage functionality storage_path (str): Path where to store the data files
Returns:
| Type | Description |
|---|---|
|
Returns a pandas DataFrame with the requested data. |
Examples:
# Basic usage
Workday:
type: get_workers
worker_id: "72037046323885"
# With storage enabled
Workday:
type: get_workers
use_storage: true
storage_path: "/data/workday"
# Location hierarchy assignments with storage
Workday:
type: get_location_hierarchy_assignments
use_storage: true
storage_path: "/data/workday"
# Organizations with storage
Workday:
type: get_organizations
organization_type: "Cost_Center"
use_storage: true
storage_path: "/data/workday"