🗺️ Workday single instance integration maps
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
- Add a namespace
- Update XSLT
- 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>
-
I've also written a post about studio integration maps here: Workday Studio Maps ↩