Search code examples
apiintegrationworkday-api

Edit worker additional data using Workday API


I'd like to edit custom employee data in Workday using their API but the actual custom data format is not specified in the documentation. Also, I was not able to find a way to retrieve additional worker data. Google doesn't find any examples of using their API for this (Edit_Worker_Additional_Data function).


Solution

  • This is how the SOAP request would look like, including all optional parameters.

    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope
        xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <env:Body>
            <wd:Edit_Worker_Additional_Data_Request
                xmlns:wd="urn:com.workday/bsvc"
                wd:version="v28.0">
                <wd:Business_Process_Parameters>
                    <wd:Auto_Complete>true</wd:Auto_Complete>
                    <wd:Run_Now>true</wd:Run_Now>
                    <wd:Comment_Data>
                        <wd:Comment>abcdef</wd:Comment>
                        <wd:Worker_Reference>
                            <wd:ID wd:type="Contingent_Worker_ID">abcdef</wd:ID>
                        </wd:Worker_Reference>
                    </wd:Comment_Data>
                </wd:Business_Process_Parameters>
    
                <wd:Worker_Custom_Object_Data>
                    <wd:Effective_Date>2017-07-20</wd:Effective_Date>
                    <wd:Worker_Reference>
                        <wd:ID wd:type="Contingent_Worker_ID">abcdef</wd:ID>
                    </wd:Worker_Reference>
                    <wd:Business_Object_Additional_Data></wd:Business_Object_Additional_Data>
                </wd:Worker_Custom_Object_Data>
            </wd:Edit_Worker_Additional_Data_Request>
        </env:Body>
    </env:Envelope>
    

    You have to define the Custom Object (or Additional Data) elements within

    <wd:Business_Object_Additional_Data></wd:Business_Object_Additional_Data>
    

    If your Custom Object is defined as "TestObject" for example, you would need both the Object and Field Reference IDs, and it would look like this:

    <wd:Business_Object_Additional_Data>
              <cus:TestObject>
                  <cus:TestObjectField>Value</cus:TestObjectField>
              </cus:TestObject>
    </wd:Business_Object_Additional_Data>