Stephen Gilmore

🗺️ Workday single instance integration maps

Workday November 29th, 2023 2 minute read.

There's been a few times this year where I've s-t-r-u-g-g-l-e-d to lookup a map value in a Workday document transformation1 integration where the internal value is a Workday object reference and the external value is text.

Usually I try many variations of something like snippet below. Basically trying to come up with a bunch of different ways to pass a reference ID value into the map and get back out an external value.

<loc etv:map="locLookup">
  <xsl:value-of select="peci:Location_ID">
</loc>

Turns out, the answer is Use the Workday ID (WID). And also namespace is important.

So here's how I actually made it work

  1. Add a namespace
  2. Update XSLT
  3. Run

Namespace

Add xmlns:w="urn:com.workday/bsvc" to the top of the document. We're using w to avoid conflicts with any existing wd namespaces that might exist.

XSLT

We need to create our own ID element matching the urn:com.workday/bsvc namespace for Workday to match to the internal object.

<loc etv:map="locLookup">
  <w:ID w:type="WID">
    <xsl:value-of select="peci:Location_ID"/>
  </w:ID>
</TJANSTESTALLE>

Result

In the doc transform, we get something like:

<loc etv:map="workplace">
   <w:ID w:type="WID">930d54fad5c01043b0dce30196ed0000</w:ID>
</loc>

And after Workday processes the XML, it should return back the external value

<loc>Ext_Loc_001</loc>


  1. I've also written a post about studio integration maps here: Workday Studio Maps