This is a question I’m seeing asked again and again and again – so I thought I’d get some content out there that explains how Talent is customised. This is intended to be an overview – and I’m assuming a degree of knowledge about the Dynamics suite in general, and the broader Microsoft stack (including the Common Data Service). It’s probably not a post for the complete beginner.
Before we say anything else – there’s one crucial thing you need to understand:
Talent is offered as a multi-tenant, software as a service solution.
This is a completely different model to how the other cloud based bits of Dynamics are operated, and it means one fundamental thing – you cannot get direct access to the code base, or to the data.
Which isn’t to say that customisations aren’t possible, there are ways and means and they are expanding all the time (I’ll come back to that later). But we have to use different mechanisms to the ones we’re used to with, say, Finance and Operations.
Ok. So what options are available for extending Talent?
Since we don’t have direct access to the Talent database, all extensions have to go via the CDS. Yes, you read that right. As of October 2018 Talent is now live on CDS for Apps (previously known as CDS 2.0), and a number of key entities are being synced by Talent into the CDS environment that is spun up when you initially deploy Talent via LCS. You don’t have to do anything to make that sync happen, it’s automagical.
The challenge currently is that the list of entities being synced from Talent into CDS isn’t exhaustive, and it won’t be for a while yet. So you can’t assume that just because a piece of data exists in Talent, that you can use it to create an extension. Most of the obvious ones (workers, jobs, positions, legal entities) are there to some extent though. For me when dealing with customers and prospects it’s a case of being cautious and not making promises about anything being possible.
Let’s say I don’t like the compensation options in Talent. They’re too complex for my needs and all I want is a basic table to show rate of pay, currency, annual vs monthly. (My first response to this would be stop being lazy and go and learn how to use compensation. It’s actually not that difficult and can be implemented with a very easy broad setup). I can’t create a new table directly in the Talent database, but what I can do is create a new CDS entity that contains the fields I need, create a PowerApp to populate those fields, and then embed to PowerApp somewhere within Talent. If I need more sophisticated functionality I can look at LogicApps etc, but that’s the principle.
If the fields I need to interact with are not yet in CDS, there’s a fallback option. The DMF feature in Talent is the same as the DMF feature in FinOps, so it’s possible to set a scheduled export of data into an Azure SQL database. This then opens up more options for interacting with that data, but it needs to be approached with care.
That’s the basics. Post your questions below and I’ll help if I can.