extension-attribute-not-present where i run delta sync
Hello, I have an "extension-attribute-not-present" error when i run my delta Synchronization. I give you my metaverse rules extension : using System; using Microsoft.MetadirectoryServices; namespace Mms_Metaverse { /// <summary> /// Summary description for MVExtensionObject. /// </summary> public class MVExtensionObject : IMVSynchronization { public MVExtensionObject() { // // TODO: Add constructor logic here // } void IMVSynchronization.Initialize () { // // TODO: Add initialization logic here // } void IMVSynchronization.Terminate () { // // TODO: Add termination logic here // } void IMVSynchronization.Provision (MVEntry mventry) { if (mventry.ObjectType.Equals("person") && mventry["displayName"].IsPresent) { provisionToAD(mventry); } else { throw new EntryPointNotImplementedException(); } // // TODO: Remove this throw statement if you implement this method // // throw new EntryPointNotImplementedException(); } bool IMVSynchronization.ShouldDeleteFromMV (CSEntry csentry, MVEntry mventry) { // // TODO: Add MV deletion logic here // throw new EntryPointNotImplementedException(); } public void provisionToAD(MVEntry mventry) { ConnectedMA MA; int Connectors = 0; CSEntry csentry; ReferenceValue DN; MA = mventry.ConnectedMAs["ADMA"]; Connectors = MA.Connectors.Count; DN = MA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("OU=Users,DC=company,DC=com"); // DN = MA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("OU=ResourceForestUsers,DC=resource,DC=fabrikam,DC=net"); if (0 == Connectors) { csentry = MA.Connectors.StartNewConnector("user"); csentry.DN = DN; csentry.CommitNewConnector(); } if (1 == Connectors) { } } } } my call stack information : Microsoft.MetadirectoryServices.AttributeNotPresentException: Attribute "cn" is not present. at Microsoft.MetadirectoryServices.Impl.AttributeImpl.get_Value() at Mms_Metaverse.MVExtensionObject.provisionToAD(MVEntry mventry) in C:\Users\Administrator\Desktop\MVE\MVE_AD_FIM.cs:line 71 at Mms_Metaverse.MVExtensionObject.Microsoft.MetadirectoryServices.IMVSynchronization.Provision(MVEntry mventry) in C:\Users\Administrator\Desktop\MVE\MVE_AD_FIM.cs:line 36 I had another problem before that. Without Metaverse Rules Extension, my export always have : "ma-extenstion-error" and "cd-existing-object" Thanks.
May 17th, 2011 11:31am

Normally that one is because you have referenced an attribute in your code without first checking if it exists with IsPresent. Have you compiled your code in debug mode? That will then give you a detailed stack trace showing exactly which line is causing the error.http://www.wapshere.com/missmiis
Free Windows Admin Tool Kit Click here and download it now
May 17th, 2011 12:05pm

Pretty sure Carol is right, and this is probably the offending line: DN = MA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("OU=Users,DC=company,DC=com"); You should test for the presence fo the 'cn' attribute the same way you (or the sample code ;-) are doing it higher up in your code using the .IsPresent method.CraigMartin Edgile, Inc. http://identitytrench.com
May 17th, 2011 2:45pm

I try to test the presence for the "cn" attribute with the IsPresent. void IMVSynchronization.Provision (MVEntry mventry) { if (mventry.ObjectType.Equals("person") && mventry["displayName"].IsPresent && mventry["cn"].IsPresent) { provisionToAD(mventry); } else { throw new EntryPointNotImplementedException(); } } Now I have 114 errors and 6 metaversaire retry errors. All have the "extension-entry-point-not-implemented" error... :/
Free Windows Admin Tool Kit Click here and download it now
May 18th, 2011 4:13am

you should remove the "else" branch, because you only need to provision person object type. it would be more elegant to put a switch statement switch(mventry.ObjectType) { case "person": if(mventry["displayName"].IsPresent && mventry["cn"].IsPresent) { provisionToAD(mventry); } ..... break; }
May 18th, 2011 4:42am

Amer Almotloq, I replace my code with yours and now it seem good. But I still have the errors : "cd-existing-object" and "ma-extension-error" when I run the ADMA export profile. It do that even if I disable the metaverse rules extension. I have an another question. If my metaverse rules extension is good, my AD have to provisioning itself when I create a user from FIM portal without I need to run profiles manually ?
Free Windows Admin Tool Kit Click here and download it now
May 18th, 2011 5:07am

the cd-existing error mean that the user you provisioned is already exists on the AD, you need to make sure that your join rules are correct and you are including all the OUs that contain the users from AD 1. disable provisioning 2. import the users from all datasources 3. run synch to join the users 4. enable provisioning the ma-extension error when exporting, check the details of the error maybe you are sending incorrect format for some values you can consider FIM portal database as normal external data source to the FIM synch engine, nothing special about it in term of profile export/import/synch you can automate the run profiles using scripts like vbs or powershell, then u can schedule the script using windows schedule tools
May 18th, 2011 6:39am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics