The Anypoint Connector for Workday is a closed source Enterprise connector that provides a connection between Workday and third party software. It implements the Workday v28.0 API modules, and interfaces with the Human Capital Management, Financial Management, Student, and System web services. The Workday connector is a SOAP-based connector developed with Anypoint Connector DevKit 3.9.0.
Read this user guide to understand how to set up and configure a basic flow using the connector. Track feature additions, compatibility, limitations, and API version updates with each release of the connector using the Workday Connector Release Notes. Review the connector operations and functionality using the Technical Reference alongside the demo applications or the Workday Services documentation.
MuleSoft maintains this connector under the Select support policy.
Migration Guide: Workday Connector 6.0 and above Migration Guide
About Prerequisites
To use this connector, you need:
-
A Workday instance with the necessary permissions
-
A set of valid credentials, including username, password, tenant name, and host name (optional). The service endpoints are automatically generated based on the credentials.
-
A MuleSoft Enterprise License
This document assumes that you are familiar with Mule, Anypoint Connectors, and Anypoint Studio Essentials. To increase your familiarity with Studio, consider completing one or more Basic Studio Tutorials. This page assumes you understand Mule Concepts, Elements in a Mule Flow, and Global Elements.
Here you can find implementation examples within the context of the Anypoint Studio graphical user interface, and also configuration details for doing the same in the XML Editor.
About Compatibility
Workday WSDL connector is compatible with:
Application/Service | Version |
---|---|
Mule Runtime |
EE 3.7.0 or later |
Anypoint Studio |
5.2 or later |
Workday API |
v28.0 |
Java |
JDK 7 |
To Install the Workday Connector
You can install a connector in Anypoint Studio using the instructions in Installing a Connector from Anypoint Exchange. However, to use the Workday connector in a production environment, you must have an Enterprise license to use Mule. Contact the MuleSoft Sales Team to obtain either of these. Read more about Installing an Enterprise License.
To Upgrade from an Older Version
-
Uninstall the previous Workday Connector.
-
Install the Workday connector as described in the previous section.
-
Make sure you have updated the Maven dependencies correctly:
Connector Version From To Version until 4.0.1
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-workday</artifactId>
<groupId>org.mule.modules</groupId>
<artifactId>workday-connector</artifactId>
Versions 4.0.1 to 6.0 or above
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-workday-<wd_module_name></artifactId>
<groupId>org.mule.modules</groupId>
<artifactId>workday-connector</artifactId>
-
It is important to update the flows to:
-
Update the existing data mappings
-
Replace the old Workday connector with the newer connector
-
Replace the phased out or deprecated operations
-
-
Make the following changes to the namespace:
From To Namespace:
xmlns:wd-staffing="http://www.mulesoft.org/schema/mule/wd-staffing"
Schema Location:
http://www.mulesoft.org/schema/mule/wd-staffing
http://www.mulesoft.org/schema/mule/wd-staffing/2.0/mule-wd-<wd_module_name>.xsdNamespace:
xmlns:wd-connector="http://www.mulesoft.org/schema/mule/wd-connector"
Schema Location:
http://www.mulesoft.org/schema/mule/wd-connector
http://www.mulesoft.org/schema/mule/wd-connector/current/mule-wd-connector.xsd
To Create a New Project
To use the Workday connector 8.2 in a Mule application project:
-
Create a new Mule project. File > New > Mule Project.
-
Enter a name for your new project and leave the remaining options with their default values.
-
If you plan to use Git, select Create a .gitignore file for the project with default ignores for Studio Projects, and then click Next.
-
Click Finish to create the project.
-
Search for
http
and drag the HTTP connector to the canvas. Click the green plus symbol next to the Connector Configuration field. Accept all default settings and click OK. -
Search for
workday
and drag the Workday connector to the canvas. Click the green plus symbol next to the Connector Configuration field and choose either Basic Configuration or Advanced Configuration.
Basic Configuration
The Basic configuration enables access to basic authentication of username and password.
Field | Description |
---|---|
Name |
Enter a name for the configuration to reference it later |
Username |
Enter the username to log in to Workday. |
Password |
Enter the corresponding password. |
Tenant Name |
Enter the Workday Tenant ID. It usually has the suffix "pt_1" appended to it, such as "acme_pt1". |
Host Name |
Enter the host name of one of the Workday Cloud Servers. By default, the connector sets the host name to |
Test Connectivity |
Click the down-arrow to select a Workday table to test access for. Possible values are: Absence_Management (Default), Academic_Advising, Academic_Foundation, Admissions, Benefits_Administration, Campus_Engagement, Cash_Management, Compensation, Compensation_Review, Dynamic_Document_Generation, External_Integrations, Financial_Aid, Financial_Management, Human_Resources, Identity_Management, Integrations, Inventory, Notification, Payroll, Payroll_CAN, Payroll_FRA, Payroll_GBR, Payroll_Interface, Performance_Management, Professional_Services_Automation, Recruiting, Resource_Management, Revenue_Management, Settlement_Services, Staffing, Student_Finance, Student_Records, Student_Recruiting, Talent, Tenant_Data_Translation, Time_Tracking, and Workforce_Planning. |
Test Connection |
Ensure your Workday access credentials work correctly to their server. |
Notes:
-
In the Global Element Properties image, the placeholder values refer to a configuration file in the
src
folder of your project. See Configuring Properties. Either enter your credentials in the global configuration properties, or reference a configuration file containing these values. -
For simpler maintenance and better re-usability of your project, Mule recommends that you use a configuration file. Keeping these values in a separate file is useful if you need to deploy to different environments, such as production, development, and QA, where your access credentials differ. See Deploying to Multiple Environments for instructions on how to manage this.
Advanced Configuration
The advanced configuration supports a user-defined HTTP Request Configuration that lets you adjust both the Connection Idle Timeout and Response Timeout, and set up a proxy connection.
Advanced fields:
Field | Description |
---|---|
Name |
Enter a name of the configuration to reference it later. |
Requester Config |
Enter an HTTP Requester configuration. |
Username |
Enter the username to log in to Workday. |
Password |
Enter the corresponding password. |
Tenant Name |
Enter the Workday Tenant ID. It is usually appended with pt_1, such as "acme_pt1". |
Host Name |
Enter the host name of one of the Workday Cloud Servers. By default, the connector sets the host name to |
Test Connectivity |
Click the down-arrow to select a Workday table to test access for. Possible values are: Absence_Management (Default), Academic_Advising, Academic_Foundation, Admissions, Benefits_Administration, Campus_Engagement, Cash_Management, Compensation, Compensation_Review, Dynamic_Document_Generation, External_Integrations, Financial_Aid, Financial_Management, Human_Resources, Identity_Management, Integrations, Inventory, Notification, Payroll, Payroll_CAN, Payroll_FRA, Payroll_GBR, Payroll_Interface, Performance_Management, Professional_Services_Automation, Recruiting, Resource_Management, Revenue_Management, Settlement_Services, Staffing, Student_Finance, Student_Records, Student_Recruiting, Talent, Tenant_Data_Translation, Time_Tracking, and Workforce_Planning. |
Test Connection |
Ensure your Workday access credentials work correctly to their server. |
Keep the Pooling Profile and the Reconnection tabs with their default entries.
To Configure from the XML Code
Ensure you have included the following namespace in your configuration file:
xmlns:wd-connector="http://www.mulesoft.org/schema/mule/wd-connector"
Create a global Workday configuration outside and above your flows using the following global configuration code:
<wd-connector:config name="Workday_Connector__Configuration" username="${workday.username}" password="${workday.password}" tenantName="${workday.tenantname}" doc:name="Workday Connector: Configuration"/>
Using the Connector
The Workday connector is an operation-based connector, which means that when you add the connector to your flow, you need to select a Workday service and an operation for the connector to perform. The Workday connector supports the following Workday APIs: Human Resource, Financials, Student, and System.
Adding Workday Connector 8.0 to a Flow
-
Create a new Mule project in Anypoint Studio.
-
Drag the Workday Connector onto the canvas, then select it to open the properties editor.
-
Configure the connector’s parameters:
Field Description Display Name
Enter a unique label for the connector in your application.
Connector Configuration
Select a global Workday connector configuration from the dropdown or add a new one by clicking the green plus sign.
Operation
Invoke
Service
Select a Workday service, such as Financial Management.
Operation
Select an operation to perform in the service, such as Put_Fund.
-
Click the blank space on the canvas to save your configurations.
Example: Add a Fund to Financial Management
-
Create a Mule project in your Anypoint Studio.
-
Drag an HTTP Listener into the canvas, then select it to open the properties editor console.
-
In General Settings, click the green plus sign next to the Connector Configuration field.
-
Configure the HTTP parameters for Port 8081 and Host 0.0.0.0.
-
Add a Set Payload transformer after the HTTP connector, and set the value to:
`#[['FundName':' I.M.F' , 'FundTypeID' : ' FUND_TYPE-6-3']]"`
-
Drag the Workday Connector 8.0 into the flow.
-
Click the green plus sign next to the Connector Configuration field and select Workday: Basic as the "global type"
-
Configure the Workday global element, using credentials stored in a properties file, for example
src/main/resources/credentials.properties
:For more information on setting credentials inside a properties file, see Properties Files.
-
Back in the properties editor of the connector, configure the remaining parameters:
Field Description Display Name
Enter a unique label for the connector in your application.
Connector Configuration
Select a global Workday connector 8.0 element from the dropdown.
Operation
Invoke
Service
Select a Workday service, such as Financial Management.
Operation
Select an operation to perform in the service, such as Put_Fund
-
Drag a Transform Message component into the flow before the Workday Connector. This component includes a DataWeave code editor you can use to define mappings between two components of your flow.
-
Click the Transform Message component and modify the DataWeave content so it matches the code below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
%dw 1.0 %output application/xml %namespace ns0 urn:com.workday/bsvc --- { ns0#Put_Fund_Request @(ns0#Add_Only: true , ns0#version: "v28.0"): { ns0#Fund_Data: { ns0#Fund_Name: payload.FundName, ns0#Fund_Type_Reference: { ns0#ID @(ns0#type: "Fund_Type_ID"): payload.FundTypeID } } } }
-
Save and run the project as a Mule Application. Then enter http://0.0.0.0:8081 in your browser and wait for the result. You should receive an XML response that looks like:
1 2 3 4 5 6
<wd:Put_Fund_Response xmlns:wd="urn:com.workday/bsvc" wd:version="v28.0"> <wd:Fund_Reference wd:Descriptor="I.M.F"> <wd:ID wd:type="WID">THE_WID_ID_NUMBER</wd:ID> <wd:ID wd:type="Fund_ID">FUND-6-399</wd:ID> </wd:Fund_Reference> </wd:Put_Fund_Response>
To Configure the Example Using XML
For this code to work in Anypoint Studio, you must provide the credentials for the Workday instance. You can either replace the variables with their values in the code, or you can add the credentials into the file named mule-app.properties
in the src/main/app
folder to provide the values for each variable, or as below, using a file called credentials.properties
stored at src/main/resources
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:context="http://www.springframework.org/schema/context"
xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw"
xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:wd-connector="http://www.mulesoft.org/schema/mule/wd-connector" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-current.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/wd-connector http://www.mulesoft.org/schema/mule/wd-connector/current/mule-wd-connector.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<context:property-placeholder location="credentials.properties"/>
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<wd-connector:config name="Workday_Connector_Configuration" username="${workday.username}" password="${workday.password}" tenantName="${workday.tenantname}" doc:name="Workday Connector: Configuration"/>
<flow name="demoFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
<set-payload value="#[['FundName':' I.M.F' , 'FundTypeID' : ' FUND_TYPE-6-3']]" doc:name="Set Payload"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/xml
%namespace ns0 urn:com.workday/bsvc
---
{
ns0#Put_Fund_Request @(ns0#Add_Only: true , ns0#version: "v28.0"): {
ns0#Fund_Data: {
ns0#Fund_Name: payload.FundName,
ns0#Fund_Type_Reference: {
ns0#ID @(ns0#type: "Fund_Type_ID"): payload.FundTypeID
}
}
}
}]]></dw:set-payload>
</dw:transform-message>
<wd-connector:invoke config-ref="Workday_Connector_Configuration" type="Financial_Management||Put_Fund" doc:name="Workday Connector"/>
</flow>
</mule>
See Also
-
To view the latest changes to the Workday connector, read the Workday Connector Release Notes
-
Learn more about working with Anypoint Connectors.
-
For more information on Workday v28.0 API, refer to the Workday API documentation.
-
Workday v28.0 Release Notes (Requires Workday Community login)