Contact Free trial Login

Use Workday in Anypoint Studio

You can use this connector in Anypoint Studio by adding it as a dependency in your Mule application.

Install the Connector

  1. In Studio, create a Mule Project.

  2. Click the Exchange (X) icon in the Studio task bar.

  3. In Exchange, click Login and supply your Anypoint Platform username and password.

  4. In Exchange, select All assets and search for "Workday".

  5. Select Workday, click Add to project.

  6. Follow the prompts to install the connector.

Alternatively you can install using the pom.xml file:

In Studio, add the connector as a dependency in the pom.xml file:

<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-workday-connector</artifactId>
  <version>RELEASE</version>
  <classifier>mule-plugin</classifier>
</dependency>

Studio converts RELEASE to the latest version.

Configure in Studio

  1. Drag the connector to the canvas.

  2. Configure the global element for the connector.

    Field Description

    Username

    Enter the username to log in with.

    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 Workday’s cloud servers. Default value: impl-cc.workday.com.

    Custom Transport

    Connection Idle Timeout and Response Timeout, and set up a proxy connection.

To validate connectivity using the Test Connection button, the Workday connector uses an Identity_Management WSDL service with the Get_Workday_Account_Signons_Request operation. Ensure that your service account has permissions to operate on that service. If not, use of Test Connection fails. You must also set the 'Transport Configuration' to 'Default http dispatcher provider'. Using the 'Bean Reference' causes an HTTP 500 Internal Server Error from Workday.

Use Case: Studio

Get Workday Account Signons

Create a Mule flow to get account signons in your Workday instance.

flow example
  1. Create a new Mule Application on your Studio and select an HTTP Listener as an input source in the new flow.

  2. Add a new HTTP Listener to the global element:

    1. Specify the Host and Port parameters with the following values:

      Parameter Value

      Host

      0.0.0.0

      Port

      8081

    2. Click Save.

  3. Assign your new Global configuration to your HTTP Listener.

  4. Fill in HTTP Listener path with /get-signons value.

  5. In your Mule Palette select Workday and then select Identity management component (drag to the canvas).

  6. Configure the Workday connector global element with its environment values under General tab.

  7. Under operation select Get_Workday_Account_Signons.

  8. Add a transform message before the connector and add an output like this:

    %dw 2.0
    output application/xml
    ns ns0 urn:com.workday/bsvc
    ---
    {
    	ns0#Get_Workday_Account_Signons_Request: {
    		ns0#Request_Criteria: {
    			ns0#User_Name: ""
    		},
    		ns0#Response_Filter: {
    			ns0#Page: 1,
    			ns0#Count: 1
    		}
    	}
    }
  9. Fill the User_Name field with your username account value.

  10. Save and run the project as a Mule Application.

  11. To test the app, navigate to http://127.0.0.1:8081/get-signons

Increase Timeout in Studio

Depending on connectivity conditions while using Studio, there can be a timeout while obtaining metadata from the Workday connector.

Symptoms

There can be two types of errors for this condition:

org.mule.runtime.api.exception.MuleRuntimeException: Error while retrieving soap client id [Absence_Management]
  org.mule.runtime.api.exception.MuleRuntimeException: Error while retrieving soap client id [Absence_Management]
  Caused by: java.util.concurrent.ExecutionException:
  org.mule.wsdl.parser.exception.WsdlParsingException: Error processing
  WSDL file [https://wd3-impl-services1.workday.com/ccx/service/deakin_amu1/Absence_Management/v29.1?wsdl]:
  Unable to locate document at 'https://wd3-impl-services1.workday.com/ccx/service/deakin_amu1/Absence_Management/v29.1?wsdl&#39;.

Or:

org.mule.tooling.client.api.exception.TimeoutException: Mule Agent REST service timed out
  org.mule.tooling.client.api.exception.TimeoutException: Mule Agent REST service timed out
  javax.ws.rs.ProcessingException: java.net.SocketTimeoutException: Read timed out
  	at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:244)
  	at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:245)
  	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:671)
  	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:668)
  	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
  	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
  	at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
  	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
  	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:668)
	...

Solution

When one of these conditions occurs, increase the values for Default Connection Timeout and Default Read Timeout in Studio at Preferences > Anypoint Studio > Tooling. Double the values, apply, and restart Studio.

Use Case: XML

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:workday="http://www.mulesoft.org/schema/mule/workday"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/workday
	http://www.mulesoft.org/schema/mule/workday/current/mule-workday.xsd
	http://www.mulesoft.org/schema/mule/ee/core
	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
	<workday:config-version-32-config name="Workday_Config_version_32"
	  doc:name="Workday Config version 32" >
		<workday:basic-authentication-api-v32-connection
		  username="" password="" tenantName="" />
	</workday:config-version-32-config>
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>
	<flow name="get-signons" >
		<http:listener doc:name="/get-signons"
		  config-ref="HTTP_Listener_config"
		  path="/get-signons"/>
		<ee:transform doc:name="Transform Message"  >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 urn:com.workday/bsvc
---
{
	ns0#Get_Workday_Account_Signons_Request: {
		ns0#Request_Criteria: {
			ns0#User_Name: ""
		},
		ns0#Response_Filter: {
			ns0#Page: 1,
			ns0#Count: 1
		}
	}
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<workday:identity-management operation="Get_Workday_Account_Signons"
		  doc:name="Identity management" config-ref="Workday_Config_version_32"/>
		<logger level="INFO" doc:name="Logger" message="#[payload]"/>
	</flow>
</mule>

We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.