Several years ago I was learning about Enterprise Integration Patterns and I was introduced to Apache Camel. Apache Camel is an implementation of the Enterprise Integration Patterns, it provides a framework to take advantage of those patterns out of the box. As of today Apache Camel provides more than 300 components to connect to different applications/platforms like AWS, Salesforce, Pagerduty, Twitter, etc. Besides that, it supports more than 50 data formats and runs everywhere.
By other hand, Workday is the leading cloud based HCM solution, the platform provides different solutions to create custom integration with other systems. Among those solutions we have EIBs, Workday Studio, Reports as a Service, etc. Workday also implements several schemas and protocols to establish connections and extract information with all the security our data deserves.
So, in this article I will show how to pull information from Workday RAAS using the Apache Camel component. If you want to take a look to the source code for this article it is shared in Github.
For the purpose of this post I am using a GMS Workday tenant if you are familiar with Workday ecosystem you know all the information is fictitious and I am assuming that you are familiar with the security group and security domains configuration in Workday.
The first step is to create the custom report, I created a custom report using only three fields. The fields are Full Name, Business Title and Hire Date using the Indexed All Workers data source and I named it All Active Workers:
The second step was the configuration of the security for the Integration System User, the API Client for Integrations provides a cryptographic solution to the basic authentication and the Apache Camel Component can handle the bearer token refresh for you:
Third step share the custom report with your Integration system user or transfer the ownership:
Finally in just a couple of lines you can pull information from Workday RAAS using the Apache Camel component
The easier way to get the example working is clone the repository to you local machine and import the project into IntelliJ.
Thank you and please let me know if I can help !