Skip to content

This script will expose all workday webservice operations in Workday Public Webservices

License

Notifications You must be signed in to change notification settings

hikmat30ce/Workday-Webservices-Client

Repository files navigation

Workday Webservice client

This project will include clients for all the operations defined in Workday Public Webservices (WWS)

PyPI version Build Status

Installation

Run following comand to install:

pip install wwsclient

Usage

GetWorkers

from wwsclient.client import get_client
from wwsclient.service import get_method

tenant_host = 'https://wd2-impl-services1.workday.com'
tenant_id = 'tenantID'
webservice = 'Human_Resources'
version = 'v35.0'
username = 'Integration System User@tenantID'
password = 'Password'

# get client.py
client = get_client(tenant_host, tenant_id, webservice, version, username, password)
request = {
    "Request_Criteria": {
        "Transaction_Log_Criteria_Data": [{
            "Transaction_Date_Range_Data": {
                "Updated_From": "1970-01-01T00:00:00",
                "Updated_Through": "2021-03-01T14:55:00.000+05:00",
                "Effective_From": "2021-01-01T14:45:00.000+05:00",
                "Effective_Through": "2021-03-01T14:55:00.000+05:00"
            }
        },
            {
                "Transaction_Date_Range_Data": {
                    "Updated_From": "2021-01-01T14:45:00.000+05:00",
                    "Updated_Through": "2021-03-01T14:55:00.000+05:00",
                    "Effective_From": "1970-01-01T00:00:00",
                    "Effective_Through": "2021-03-01T14:55:00.000+05:00"
                }
            }
        ]
    },
    "Response_Group": {
        "Include_Reference": True,
        "Include_Personal_Information": True,
        "Include_Employment_Information": True
    }
}
xslt_code = '''<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wd="urn:com.workday/bsvc" exclude-result-prefixes="xs wd env" version="2.0"><xsl:output method="xml" indent="yes"></xsl:output><xsl:template match="env:Envelope/env:Body"><root><Total_Results><xsl:value-of select="*/wd:Response_Results/wd:Total_Results"/></Total_Results><Total_Pages><xsl:value-of select="*/wd:Response_Results/wd:Total_Pages"/></Total_Pages><Page_Results><xsl:value-of select="*/wd:Response_Results/wd:Page_Results"/></Page_Results><Page><xsl:value-of select="*/wd:Response_Results/wd:Page"/></Page><records><xsl:for-each select="*/wd:Response_Data/wd:Worker"><record><workday_id><xsl:value-of select="wd:Worker_Reference/wd:ID[@wd:type='WID']"/></workday_id><employee_id><xsl:value-of select="wd:Worker_Data/wd:Worker_ID"/></employee_id><formatted_name><xsl:value-of select="wd:Worker_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/@wd:Formatted_Name"/></formatted_name></record></xsl:for-each></records></root></xsl:template></xsl:stylesheet>'''
operation = "Get_Workers"
get_workers_result = get_method(client, request, xslt_code, operation, True)

Create_Position

from wwsclient.client import get_client
from wwsclient.service import crud_method

tenant_host = 'https://wd2-impl-services1.workday.com'
tenant_id = 'tenantID'
webservice = 'Recruiting'
version = 'v35.0'
username = 'Integration System User@tenantID'
password = 'Password'

# get client.py
client = get_client(tenant_host, tenant_id, webservice, version, username, password)
request = {
    "Business_Process_Parameters": {
        "Auto_Complete": True,
        "Run_Now": True
    },
    "Create_Position_Data": {
        "Supervisory_Organization_Reference": [{
            "ID": [{
                "type": "Organization_Reference_ID",
                "_value_1": "Human_Resources_supervisory"
            }]
        }],
        "Position_Data": {
            "Job_Posting_Title": "Technical Recruiter Python"
        },
        "Position_Group_Restrictions_Data": {
            "Availability_Date": "2019-10-20",
            "Earliest_Hire_Date": "2019-10-20"
        },
        "Edit_Assign_Organization_Sub_Process": {
            "Business_Sub_Process_Parameters": {
                "Auto_Complete": True
            },
            "Position_Organization_Assignments_Data": {
                "Company_Assignments_Reference": [{
                    "ID": [{
                        "type": "Company_Reference_ID",
                        "_value_1": "GMS_USA_company"
                    }]
                }],
                "Cost_Center_Assignments_Reference": [{
                    "ID": [{
                        "type": "Organization_Reference_ID",
                        "_value_1": "10000"
                    }]
                }],
                "Region_Assignments_Reference": [{
                    "ID": [{
                        "type": "Region_Reference_ID",
                        "_value_1": "USA_NE_Region"
                    }]
                }]
            }
        }

    }
}
operation = "Create_Position"
get_workers_result = crud_method(client, request, operation)

About

This script will expose all workday webservice operations in Workday Public Webservices

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages