Data combining from two files and weired issue in FIM 2010 RRS feed

  • Question

  • Experts,

    Following is the scenrio:-
    User File

    Object type 'person' in metaverse and fim service should have all attribute:
    Object Type - Person
    Attributes - empid,firstname,lastname,deptnumber,depatmentname,companyname

    To implement this:-
    I created Inbound rule for User File. Relation ship criteria as accountname=empid and selected 'create resource in FIM'

    Again created Inbound rule for DeptFile. Relationship criteria as deptnumber=deptnumber and not selected 'create resource in FIM'.

    Well the Inbound rule for User File is working fine but Inbound rule for DeptFile is not updating depatmentname and companyname in 'Person' object.

    Also intemittently I see following error:-

    The synchronization rules have changed.

    In order to apply this change to all imported objects, you must run full synchronization or full import and full synchronization.

    Do you want to continue with the selected run profile?

    Any Ideas where I am going wrong?


    Thursday, April 17, 2014 9:24 AM

All replies

  • Hello,

    depatmentname and companyname on 'Person' object will not be automatically update. You need to do Extended rule to achieve that.

    And if I understand, you have two MA: one for Person and the other one for Department? So you will need to use FindMVEntries() to get your department object for the depatmentnumber on your person objects

    and the message you see is not an error but a warning: FIM Sync invite you to run a full run profile to apply your new import flow.



    Thursday, April 17, 2014 1:00 PM
  • Thanks Sylvain!

    Situation is happening as you mentioned.

    When I import data from department file, person object gets updated if it find only one record matching however most of time there is a single department for many users. In this case new department row just remain as disconnector.

    Is there any way to resolve this without coding? I am using FIM 2010 R2 SP1.



    Thursday, April 17, 2014 1:39 PM
  • If you don't want to write code in FIM, perhaps you could combine the files using powershell before importing it to FIM, that way you only need one MA.

    #Import user csv file
    $userlist = import-csv "C:\temp\users.txt" -Delimiter ":"
    #Import department csv file
    $departmentlist = import-csv "C:\temp\departments.txt" -Delimiter ":"
    #Create a hashtable of departments
    $departmenttable = @{}
    foreach ($department in $departmentlist){
    #Create hashtable of companies
    $companytable = @{}
    foreach ($company in $departmentlist){
    #Map userobjects to departmentnames and write to file
    $tofile = New-Object System.IO.StreamWriter("C:\temp\result.txt")
    foreach ($user in $userlist){
    $tofile.writeline($user.empid + ":" + $user.firstname + ":" + $user.lastname + ":" + $user.deptnumber + ":" +  $departmenttable.item($user.deptnumber) + ":" + $companytable.item($user.deptnumber))

    --- Jesper Lönnqvist, Identity Architect

    Friday, April 18, 2014 8:36 AM
  • You cannot do this update directly in the Sync Engine as it will not update cross-object. You could bring all departments into the FIM Service and have some workflows in there update all persons. This would mostly require some custom workflows. I have some workflows on CodePlex that could assist you in doing this - have a look at these -

    Deeper explanation of this would require a longer time, though.

    Another option is of course to replace the File MA's with a PowerShell MA (either mine or Microsoft) and do the combining in the import scripts for this MA. This approach may be simpler if you know PowerShell.

    Regards, Soren Granfeldt
    blog is at | facebook | twitter at!/MrGranfeldt

    Wednesday, May 7, 2014 9:46 AM