AFX SOAP Connector tutorial : WorkDay
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
This is a quick example for how to build a new SOAP/Web Services connector from scratch. We use WorkDay as an example.
Step-by-step guide
Step by step:
- Get the WSDL
- Import WSDL in SoapUI (get the free version from https://www.soapui.org/downloads/soapui.html )
- Create Mock Service
- Create AFX Connector using modified WSDL
- Create a few capabilities
- Test capabilities using SoapUI Mock Service
1- Get the WSDL for the Service. For Workday, you can get them here for Hire_Employee:
https://community.workday.com/custom/developer/API/Staffing/v25.2/Hire_Employee.html
Import the WSDL in SoapUI:
Then right click on new Soap Project in tree, and select Create New Mock Service:
Then you can rename the Mock Service so it matches the real WorkDay service name, and change the path too:
Then you can modify the Mock Responses to include static text:
To save time, you can import my project attached WorkDay-Staffing-soapui-project.xml
You can start the Mock Service, and Test it within SoapUI first:
Then you will create a new AFX connector. First you need to edit WSDL so the location matches your Mock Service location="http://Staffing:8088/Staffing" :
Then you can copy the file to /home/oracle/ftp. Also add this line to /etc/hosts on your Via L&G server(I am using NAT and 192.168.1.0 for VMware WS):
192.168.1.1 Staffing
Then create the new AFX SOAP Connector, and point to your modified WSDL:
Then configure the Create Account capability using the Hire_Employee Request as an example:
You can import my connector here with 3 Capabilities(Create/Delete Account and Add Account to Role): ConnectorPackage-WorkDay-Test.zip
Now you can test capabilities, e.g. Create Account:
You can check that the request made it into SoapUI, and see the Response:
You can also check AFX logs to see that the Response was returned:
Now you can add more tags to Requests in capabities for the connector. If you are using this against a real Workday instance, some attributes/tags may be mandatory or required by the customer. You can use the SoapUI Requests and copy more tags/sections or the whole Soap Request itself.
Here are the 3 capabilities for my connector:
Create Account:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bsvc="urn:com.workday/bsvc">
<soapenv:Header/>
<soapenv:Body>
<bsvc:Hire_Employee_Request xmlns:bsvc="urn:com.workday/bsvc" bsvc:version="string">
<bsvc:Hire_Employee_Data>
<bsvc:Applicant_Reference bsvc:Descriptor="string">
<!-- 1 or more repetitions: -->
<bsvc:ID bsvc:type="WID">${Account}</bsvc:ID>
</bsvc:Applicant_Reference>
<bsvc:Organization_Reference bsvc:Descriptor="string">
<bsvc:ID bsvc:type="WID">${Account}</bsvc:ID>
</bsvc:Organization_Reference>
<bsvc:Create_Workday_Account_Data>
<bsvc:User_Name>${Account}</bsvc:User_Name>
<bsvc:Account_Disabled>true</bsvc:Account_Disabled>
<bsvc:Password>${Password}</bsvc:Password>
</bsvc:Create_Workday_Account_Data>
<bsvc:Hire_Employee_Data>
<bsvc:Applicant_Data>
<bsvc:Legal_Name_Data>
<bsvc:Name_Detail_Data bsvc:Formatted_Name="?" bsvc:Reporting_Name="?">
<bsvc:First_Name>${FirstName}</bsvc:First_Name>
<!--Optional:-->
<bsvc:Middle_Name${MiddleName}></bsvc:Middle_Name>
<!--Optional:-->
<bsvc:Last_Name>${LastName}</bsvc:Last_Name>
</bsvc:Name_Detail_Data>
</bsvc:Legal_Name_Data>
<bsvc:Hire_Employee_Data>
</bsvc:Hire_Employee_Data>
</bsvc:Hire_Employee_Request>
</soapenv:Body>
</soapenv:Envelope>
--------------------------
Delete Account:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bsvc="urn:com.workday/bsvc">
<soapenv:Header/>
<soapenv:Body>
<bsvc:Terminate_Employee_Request bsvc:version="?">
<bsvc:Business_Process_Parameters>
<bsvc:Comment_Data>
<bsvc:Worker_Reference bsvc:Descriptor="?">
<!--Zero or more repetitions:-->
<bsvc:ID bsvc:type="?">${Account}</bsvc:ID>
</bsvc:Worker_Reference>
</bsvc:Comment_Data>
</bsvc:Business_Process_Parameters>
</bsvc:Terminate_Employee_Request>
-------------------
Add Role to Account:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bsvc="urn:com.workday/bsvc">
<soapenv:Header/>
<soapenv:Body>
<bsvc:Assign_Roles_Request bsvc:version="?">
<bsvc:Business_Process_Parameters>
<bsvc:Comment_Data>
<bsvc:Worker_Reference bsvc:Descriptor="?">
<bsvc:ID bsvc:type="?">${Account}</bsvc:ID>
</bsvc:Worker_Reference>
</bsvc:Comment_Data>
</bsvc:Business_Process_Parameters>
<bsvc:Assign_Roles_Event_Data>
<bsvc:Event_Target_Assignee_Reference bsvc:Descriptor="?">
<bsvc:ID bsvc:type="?">${Account}</bsvc:ID>
</bsvc:Event_Target_Assignee_Reference>
<bsvc:Assign_Roles_Role_Assignment_Data>
<bsvc:Assignable_Role_Reference bsvc:Descriptor="?">
<bsvc:ID bsvc:type="?">${Role}</bsvc:ID>
</bsvc:Assignable_Role_Reference>
</bsvc:Assign_Roles_Role_Assignment_Data>
</bsvc:Assign_Roles_Event_Data>
</bsvc:Assign_Roles_Request>
</soapenv:Body>
</soapenv:Envelope>
- Tags:
- AFX
- Aveksa
- blog
- blog post
- Identity G&L
- Identity Governance & Lifecycle
- IG&L
- IGL
- Integration
- lifecycle and governance
- Product Blog
- Product Blog Post
- RSA Identity
- RSA Identity G&L
- RSA Identity Governance & Lifecycle
- RSA Identity Governance and Lifecycle
- RSA IGL
- soap
- tech huddle
- Tip
- Tips
- Tips & Tricks
- Tips and Tricks
- Trick
- Tricks
- via
- Webcast
- webinar
- workday
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.