Monday, November 16, 2009

The Missing ILM Extension

While recently browsing the Microsoft.Metadirectory services namespace for ILM I discovered a new extension that I had not seen before. In addition to the 6 that I was familiar with:
  • IMAExtensibleCallExport
  • IMAExtensibleFileExport
  • IMAExtensibleFileImport
  • IMAPasswordManagement
  • IMASynchronization
  • IMVSynchronization

There was a 7th that I had never hear of, the IMACalloutExtension. Curious, I began to investigate. The Extension implements the following methods:

public void BeginExportToCd(string connectTo, string user, string domain, string password)
{
}

public void EndExportToCd()
{
}

public void BeforeExportEntryToCd(string deltaEntryXml, string[] changedAttributes)
{
}

public void AfterExportEntryToCd(byte[] origAnchor, string origDN, string origDeltaEntryXml, byte[] newAnchor, string newDN, string failedDeltaEntryXml, string errorMessage)
{
}

The only documentation that I could find was within the interface definition itself. It appears that this extension was to be implemented using a new Management Agent of type "Callout" (or something similar) and gives the developer the ability to take action both before and after each entry export action, which could be extremely helpful. I haven't been able to find a roadmap for this feature, but it appears to be something we can look forward to in the future!

1 comment:

Henke said...

Hi Rebecca!
I've actually had a deeper look into this already and it's implemented by the Functionlibrary.dll for the sync rule functions that I'm fighting for getting.
Unfortunately the FunctionLibrary.dll is still hardcoded into the product so we can't use this extension point yet but please join my struggle for custom sync rule functions unless you haven't done so yet...
https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=491513&SiteID=433
http://idmcrisis.com/post/2009/09/20/The-need-for-custom-sync-rule-functions.aspx

Henrik Nilsson
http://www.idmcrisis.com