powershell_module_workdayapi
powershell_module_workdayapi copied to clipboard
Powershell script module for working with the Workday API, using raw XML.
DEPRICATED: Workday SOAP API Powershell Script Module
Sorry, this project has been depricated.
Description
Provides simple methods for accessing the Workday SOAP API.
This simple Powershell Module has been written to fulfill my employer's Workday automation needs. I see this as a prototype, while I experiment with the best way to expose the complexities of the Workday API in a Powershell-y way. Thinking that the community might find it helpful and may even wish to comment or contribute, I have hosted the source on GitHub (https://github.com/treestryder/powershell_module_workdayapi).
Features
- Easy command-line use, after setting default configuration options and securely saving them to the current user's profile.
- Get Worker information for one or all workers.
- Get / Set / Update Worker email.
- Get / Set / Update Worker phone.
- Upload Worker Photos.
- Upload Worker Documents.
- Run reports.
- Trigger Integrations and retreive their status.
- Submit arbitrary API calls.
- A sample script to push A.D. changes to Workday (samples/Push_AD_to_Workday.ps1).
Examples
Set-WorkdayCredential
Set-WorkdayEndpoint -Endpoint Staffing -Uri 'https://SERVICE.workday.com/ccx/service/TENANT/Staffing/v26.0'
Set-WorkdayEndpoint -Endpoint Human_Resources -Uri 'https://SERVICE.workday.com/ccx/service/TENANT/Human_Resources/v26.0'
Set-WorkdayEndpoint -Endpoint Integrations -Uri 'https://SERVICE.workday.com/ccx/service/TENANT/Integrations/v26.0'
Save-WorkdayConfiguration
Set-WorkdayWorkerPhone -WorkerId 123 -WorkerType Employee_ID -Number '+1 (234) 987-6543'
Get-WorkdayWorkerPhone -WorkerId 123 -WorkerType Employee_ID | Format-Table
UsageType DeviceType Number Extension Primary Public
--------- ---------- ------ --------- ------- ------
Home Landline 1 (234) 567-8910 False False
Work Landline 1 (234) 987-6543 True False
$response = Invoke-WorkdayRequest -Request '<bsvc:Server_Timestamp_Get xmlns:bsvc="urn:com.workday/bsvc" />' -Uri https://SERVICE.workday.com/ccx/service/TENANT/Human_Resources/v26.0
$response.Xml.Server_TimeStamp
wd version Server_Timestamp_Data
-- ------- ---------------------
urn:com.workday/bsvc v25.1 2015-12-02T12:18:30.841-08:00
Get-Command -Module WorkdayApi | sort Name | Get-Help | Format-Table Name, Synopsis -AutoSize
Name Synopsis
---- --------
Export-WorkdayDocument Exports Workday Documents.
Get-WorkdayDate Gets the current time and date from Workday.
Get-WorkdayEndpoint Gets the default Uri value for all or a particular Endpoint.
Get-WorkdayIntegrationEvent Retrieves the status of a Workday Integration.
Get-WorkdayReport Returns the XML result from any Workday report, based on its URI.
Get-WorkdayWorker Gets Worker information as Workday XML.
Get-WorkdayWorkerDocument Gets Workday Worker Documents.
Get-WorkdayWorkerEmail Returns a Worker's email addresses.
Get-WorkdayWorkerPhone Returns a Worker's phone numbers.
Get-WorkdayWorkerPhoto Returns a worker's photo.
Invoke-WorkdayRequest Sends XML requests to Workday API, with proper authentication and receives XML response.
Remove-WorkdayConfiguration Removes Workday configuration file from the current user's Profile.
Save-WorkdayConfiguration Saves default Workday configuration to a file in the current users Profile.
Set-WorkdayCredential Sets the default Workday API credentials.
Set-WorkdayEndpoint Sets the default Uri value for a particular Endpoint.
Set-WorkdayWorkerDocument Uploads a document to a Worker's records in Workday.
Set-WorkdayWorkerEmail Sets a Worker's email in Workday.
Set-WorkdayWorkerPhone Sets a Worker's phone number in Workday.
Set-WorkdayWorkerPhoto Uploads an image file to Workday and set it as a Worker's photo.
Start-WorkdayIntegration Starts a Workday Integration.
Update-WorkdayWorkerEmail Updates a Worker's email in Workday, only if it is different.
Update-WorkdayWorkerPhone Updates a Worker's phone number in Workday, only if it is different.
Installation
The only dependency is Powershell version 4.
This module has been published to the Powershell Gallery at https://www.powershellgallery.com/packages/WorkdayApi/ .
To install run the following Powershell command:
Install-Module -Name WorkdayApi
Fine Print
Please use with caution. This module could cause baldness, could warp time and space, could kill your puppy or, could do nothing at all. I am sharing what I am using as a starting point for a community developed solution.
Any and all contributions are more than welcome and appreciated.