FIM 2010: Filter objects on export
Source reference
Originally posted at FIM2010: Filter objects on export @ IS4U Blog
Introduction
FIM allows you to filter objects on import through filters in the connector configuration. The same functionality is not available for export. There are two methods available to provision a selected set of objects to a target system through synchronization rules. This article briefly describes these two mechanisms as well as a third using provisioning code.
Synchronization Rules
Synchronization rules allow codeless provisioning. It also allows you control over the population of objects you want to create in a certain target system.
Triplet
The first way of doing this is by defining a set of objects, a synchronization rule, a workflow that adds the synchronization rule to an object and a Management Policy Rule (MPR) that binds them together. In the set definition you can define filters. You can select a limited population of objects by configuring the correct filter on the set.
http://wimbeck.be/wp-content/uploads/2015/02/SyncRule.png
Scoping filter
The second method defines the filter directly on the synchronization rule, so you do not need a set, workflow and MPR. You simply define the conditions the target population needs to satisfy before they can be provisioned to the target system.
http://wimbeck.be/wp-content/uploads/2015/02/SyncRule2.png
http://wimbeck.be/wp-content/uploads/2015/02/SyncRule3.png
Coded provisioning
Coded provisioning allows for very complex provisioning and it is also the only option on projects where you use only the Synchronization Engine. What follows is only a portion of a more complex provisioning strategy:
- Define an XML structure.
- For each connector that requires filtering on export, define the filters in XML.
- Make sure to use the same name for all connector configuration files and save them in their respective MaData folders.
- In the provisioning code, load all configuration files.
- For each object you consider for provisioning, check the filter.
Sample configuration file
|
Sample source code
Following code is on itself not functional, but you get an idea of how the complete implementation can look like:
|
|