There are many different ways in which we can modify the data to fit our needs. I will show a few of the most common ones I use in my customer projects, but every project has unique requirements and also a unique set of competences which will govern the options we choose.
When working with FIM, there are several places where data transformations can happen. They are as follows:
At the Connected Data Source using, for example, an advanced SQL view
During Import and Export using, for example, a custom Management Agent
At inbound and outbound synchronization using both declarative and non-declarative synchronization rules
In the FIM Service using workflows
Since we have the workflow engine in the FIM Service, you will find many examples of how to modify data using workflow activities. However, do keep in mind that using the synchronization engine will maintain data consistency in a way that is very hard to do using workflows.