locked
Enable delta imports in ECMA and delta import logic RRS feed

  • Question

  • Hi,

    How can I enable delta imports in my ECMA?

    I've added the flag to my capabilities, but when I connect to the DLL the MA doesn't recognize delta import capability, and neither does it let me create a delta import profile. Here's my capabilities code:

    public MACapabilities Capabilities
            {
                get
                {
                    MACapabilities myCapabilities = new MACapabilities();
                    myCapabilities.ExportType = MAExportType.AttributeUpdate;
                    myCapabilities.ConcurrentOperation = true;
                    myCapabilities.ObjectRename = false;
                    myCapabilities.DeleteAddAsReplace = true;
                    myCapabilities.DeltaImport = true; // Enable delta imports?
                    myCapabilities.DistinguishedNameStyle = MADistinguishedNameStyle.None;
                    myCapabilities.NoReferenceValuesInFirstExport = false;
                    myCapabilities.Normalizations = MANormalizations.None;
                    return myCapabilities;
                }
            }


    On the same topic, the logic I had in mind for handling delta imports would be to get a list of all the objects in the relevant external system and then iterate over each CSEntry object in the connector space to see if the object already exists (by comparing the anchor attribute). If it exists, skip it otherwise create a new CSEntry object. It still seems like a lot of work, specially to iterate through all the existing objects in both the external system and in the connector space, so is there any quicker way to do a delta import?

    Thanks a lot, and sorry for being a pest on your forums lately :)

    Thursday, June 13, 2013 4:45 PM

All replies

  • I can't help you with the question why Delta Import isn't available as an option, but I would like to offer some thoughts on your proposed MA design:

    1. To achieve the maximum benefits from Delta Import vs. Full Import, you would need to ensure that you don't pull all the data from the connected system in the first place; otherwise you're just duplicating FIM's built-in logic for Full Import (get all the data, compare to the current state), which is working against ECMA's architecture.
      How this is achieved or whether this can be achieved at all depends on the connected system. To give you an example: When connecting to an Active Directory installation, you can use the DirSync control to request only objects from the server that have changed since you last asked. Another data source might not offer a similar mechanism.
    2. As to the "iterate over each CSEntry object in the connector space to see if the object already exists (by comparing the anchor attribute). If it exists, skip it otherwise create a new CSEntry" part: if you implemented the import operation exactly this way, you would lose the ability to import changes in existing objects, as existing objects are skipped.

    Thursday, June 20, 2013 7:07 AM