Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Workday Writeback of 'Other IDs'

wmcclun
New Contributor
New Contributor

We have a requirement, where we write back a single value to a Workday element called 'Other IDs'.  We cannot perform a 'Replace_All', as there are other data values populated in the 'Other IDs' field.  We are simply trying to replace a single data value.  For example, the field in Workday may have...

Network_ID
Employee_Discount_ID
Some_Other_ID

We need to replace only the entry for Network_ID.  Has anyone performed this function, and can provide some guidance?  Thanks.

6 REPLIES 6

rushikeshvartak
All-Star
All-Star
  • Is it multi value and you have to replace one of them ?
  • Does it works form postman / provide screenshot how it works

Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

  • Is it multi value and you have to replace one of them ? - That is correct.
  • Does it works form postman / provide screenshot how it works - Great question.  I don't have the logic to make it work from Postman.  In fact, our Saviynt deployment partner asked me to submit this forum post, as they too were struggling with finding sample code to accomplish this requirement.

If somehow you figure out postman then i can suggest something from saviynt end


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

stalluri
Valued Contributor
Valued Contributor

@wmcclun 

curl --location --request PATCH 'https://your-workday-instance.com/ccx/service/custom/v42.1/Worker/{WorkerID}' \
--header 'Authorization: XXXXXXX' \
--header 'Content-Type: application/json' \
--data-raw '{
"XXXXXXXXX_IDs": [
{
"Reference_ID_Type": "Network_ID",
"Reference_ID": "NewNetworkIDValue"
}
]
}'


Best Regards,
Sam Talluri
If you find this a helpful response, kindly consider selecting Accept As Solution and clicking on the kudos button.

I was able to get a little bit more information from our Workday team, but they don't have examples, either.  Here's what was sent by the WD team.


the 2 api calls: Get_Change_Other_IDs and Change_Other_IDs.


Steps to replace RACF ID for worker:

1) Retrieve Custom_Identifier_Reference_ID for the employee's RACF ID. This can be done via Get_Change_Other_IDs_Request

2) Use this value in the <wd:Custom_ID_Shared_Reference> section of the Change Other IDs request, and ensure Replace All is set to False.

Here’s a step-by-step outline of how to approach this:

Step-by-Step Process:

  1. Retrieve Current "Other IDs":

    • First, you need to retrieve all the custom identifiers (like Network_ID, Employee_Discount_ID, etc.) for the worker using the Get_Change_Other_IDs_Request API.
    • The response will contain a list of all the "Other IDs" associated with the worker.
    • Example SOAP Request for Get_Change_Other_IDs_Request:
       
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wd="urn:com.workday/bsvc"> <soapenv:Header/> <soapenv:Body> <wd:Get_Change_Other_IDs_Request> <wd:Request_References> <wd:Worker_Reference> <wd:ID>Employee_ID</wd:ID> <!-- Replace with the worker's ID --> </wd:Worker_Reference> </wd:Request_References> </wd:Get_Change_Other_IDs_Request> </soapenv:Body> </soapenv:Envelope>
    • Look for the Custom_Identifier_Reference_ID of the Network_ID in the response. This ID will be used in the update request.
  2. Prepare the Update (Change Other IDs) Request:

    • After retrieving the Custom_Identifier_Reference_ID for the Network_ID, use this in the Change_Other_IDs request.
    • Ensure that the Replace_All flag is set to False so that only the specific identifier is updated, without replacing all other values.

    Example SOAP request to update the Network_ID:

     
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wd="urn:com.workday/bsvc"> <soapenv:Header/> <soapenv:Body> <wd:Change_Other_IDs_Request> <wd:Business_Process_Parameters> <wd:Auto_Complete>true</wd:Auto_Complete> </wd:Business_Process_Parameters> <wd:Worker_Reference> <wd:ID>Employee_ID</wd:ID> <!-- Replace with the worker's ID --> </wd:Worker_Reference> <wd:Worker_Change_Other_IDs_Data> <wd:Replace_All>false</wd:Replace_All> <wd:Other_ID_Changes> <wd:Custom_ID_Shared_Reference> <wd:ID>Custom_Identifier_Reference_ID</wd:ID> <!-- Replace with the retrieved ID for Network_ID --> </wd:Custom_ID_Shared_Reference> <wd:ID>New_Network_ID_Value</wd:ID> <!-- Replace with the new Network_ID value --> </wd:Other_ID_Changes> </wd:Worker_Change_Other_IDs_Data> </wd:Change_Other_IDs_Request> </soapenv:Body> </soapenv:Envelope>

    In this request:

    • Replace Employee_ID with the actual employee ID.
    • Replace Custom_Identifier_Reference_ID with the value you retrieved in step 1 for the Network_ID.
    • Set New_Network_ID_Value to the new value you want to update.

Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.