1

I've written a timer job with C# that sets some user properties, including SPS-Department which is bound to a Term Set. Job works perfect on dev machine. On product machine it fails with exception:

Exception caught for user domain\user. Message: Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index. Stack: at System.Collections.ArrayList.get_Item(Int32 index) at Microsoft.Office.Server.UserProfiles.ProfileValueCollectionBase.AddTaxonomyTerm(Term term) at ADUpdater.Code.ColvirToUserProfileUpdater.UpdateUserProfilesFromColvir(String connectionString, String webAppUrl)

My code looks like this:

    ...
var prop = userProfile[PropertyConstants.SPSDepartment];
UserProfileConfigManager upcManager = new UserProfileConfigManager(serviceCtx);
ProfilePropertyManager propManager = upcManager.ProfilePropertyManager;
CorePropertyManager corePropertyManager = profileManager.GetCoreProperties();
CoreProperty property = corePropertyManager.GetPropertyByName(PropertyConstants.SPSDepartment);
TermSet ts = property.TermSet;
if (userDepGuid != Guid.Empty)
{
    prop.Clear();
    var newValue = ts.GetTerm(userDepGuid);
    prop.AddTaxonomyTerm(newValue);
}
...
userProfile.Commit();

userDepGuid is not null, newValue also is not null. I'm stuck. Some fresh ideas might be extremely helpful. Thank you in advance!

  • Does the profile of user exists? – Amit May 15 '15 at 11:34
  • @Amit yes is does – IDeveloper May 15 '15 at 11:43
  • Is it running under an account that has permission to modify the user's profile? – Eric Alexander May 15 '15 at 13:50
  • @EricAlexander yes it runs under farm admin account – IDeveloper May 17 '15 at 4:05
  • Is it an Open or Closed Term Set? – Matthew McDermott May 17 '15 at 11:45
0

replace prop.clear() with prop.Value=null;

if (userDepGuid != Guid.Empty)
    {
        //prop.Clear();
       prop.Value=null;
        var newValue = ts.GetTerm(userDepGuid);
        prop.AddTaxonomyTerm(newValue);
    }

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.