The following examples show how to merge the value of the
samAccountName and mailNickName attributes from
multiple Forefront Identity Manager Synchronization Service (FIM
Synchronization Service) database (metaverse) connector space
objects of the same management agent to the same MVEntry object.
If the multi-valued attribute exists, the connector space attribute
values are merged into the samAccountName and
mailNickName attributes of the metaverse object.
Note: |
If your management agents link multiple connector space objects
to the same metaverse object, you must explicitly assign values
from the connector space object attributes to the metaverse object
attributes, such as the samAccountName and
mailNickName attributes in the following example. |
Before you use this rule extension, you must modify the
metaverse attribute flow precedence rules in the Metaverse
Design window so that it allows manual precedence rules to be
applied to this attribute.
Visual Basic |
Copy Code |
Public Sub MapAttributesForImport(ByVal FlowRuleName As String, _
ByVal csentry As CSEntry, _
ByVal mventry As MVEntry) _
Implements IMASynchronization.MapAttributesForImport
Select Case FlowRuleName
Case "IAF_samAccountName"
Merge(csentry, mventry, "samAccountName", "samAccountName")
Case "IAF_mailNickName"
Merge(csentry, mventry, "mailNickName", "mailNickName")
Case Else
' TODO: Remove the following statement and add your code here.
Throw New EntryPointNotImplementedException
End Select
End Sub
Public Sub Merge(ByVal csentry As CSEntry, ByRef mventry As MVEntry, _
ByVal csattr As String, ByVal mvattr As String)
If csentry(csattr).IsPresent And csentry(csattr).IsMultivalued = True Then
If Not csentry(csattr).Values.Count = 0 Then
mventry(mvattr).Values.Add(csentry(csattr).Values)
End If
End If
End Sub
|
C# |
Copy Code |
void IMASynchronization.MapAttributesForImport( string FlowRuleName,
CSEntry csentry,
MVEntry mventry)
{
switch (FlowRuleName)
{
case "IAF_samAccountName" :
Merge(csentry, ref mventry, "samAccountName", "samAccountName");
break;
case "IAF_mailNickName" :
Merge(csentry, ref mventry, "mailNickName", "mailNickName");
break;
default :
throw new EntryPointNotImplementedException();
}
}
void Merge(CSEntry csentry, ref MVEntry mventry, string csattr, string mvattr)
{
if (csentry[csattr].IsPresent && true == csentry[csattr].IsMultivalued)
{
mventry[mvattr].Values.Add(csentry[csattr].Value);
}
}
|
See Also