IMAExtensibleCallExport::ExportEntry Method

The IMAExtensibleCallExport.ExportEntry(ModificationType, String[], CSEntry) method is called during an export run to write to the connected directory the attribute values of a CSEntry object that have changed.
This method is called for each CSEntry object with a changed attribute value only if the IMAExtensibleCallExport.BeginExport(String, String, String, ConfigParameterCollection, TypeDescriptionCollection) method does not throw an exception.
Implement this method in all types of call-based connected data source extensions. Although this method will not be called from an import-only connected data source extension, an error occurs if this method is not implemented in the extension. For an import-only connected data source extension, you can implement this method by throwing an EntryPointNotImplementedException exception.

Syntax

public void ExportEntry(
  ModificationType modificationType,
  String[] changedAttributes,
  CSEntry csentry
);
  Public Sub ExportEntry( _
    ByVal modificationType As ModificationType, _
    ByVal changedAttributes() As String, _
    ByVal csentry As CSEntry _
  )
  Implements IMAExtensibleCallExport.ExportEntry

Parameters

  • modificationType
    [in]

    The enumeration value that identifies the type of operation on the object that results in a change to the attribute values of the CSEntry object.

  • changedAttributes
    [in]

    An array of attribute names that specifies which attributes have been modified. Use this parameter to determine which attributes in the entry have been updated. Change only the attributes that are listed in this parameter. Changing an attribute value in this method that is not in the parameter list causes an exception.

  • csentry
    [in]

    The object that contains all the attributes and their values.

Return Value

This method does not return a value.

Exceptions

Exception type Condition
EntryExportException

The entry cannot be exported. When this exception is thrown by this method, the run continues and the WMI Provider returns the string completed-warnings.

This exception does not generate an event log entry.

EntryPointNotImplementedException

The rules extension does not implement this method. When this exception is thrown by this method, the run stops and the WMI Provider returns the string stopped-entry-point-not-implemented.

This exception does not generate an event log entry.

ExtensibleExtensionException

An unexpected error occurs in the extension. When this exception is thrown by this method, the run continues and the WMI Provider returns the string completed-warnings.

This exception generates an event log entry.

FatalEntryExportException

The entry cannot be exported and the export run should stop. When this exception is thrown by this method, the run stops and the WMI Provider returns the string stopped-entry-export-error.

This exception does not generate an event log entry.

InvalidOperationException

The call to Microsoft.MetadirectoryServices.Utils.FindMVEntries in the is not supported in this method.

ServerDownException

The connected directory extension cannot establish a connection to the connected directory. When this exception is thrown by this method, the run continues and the WMI Provider returns the string completed-export-errors.

This exception does not generate an event log entry.

UnexpectedDataException

The method received unexpected data. When this exception is thrown by this method, the run continues and the WMI Provider returns the string completed-export-errors.

This exception generates an event log entry.

Remarks

All the exceptions described in this topic stop a run. If the method throws an exception that is not described in this topic, the run continues. If the run stops, the WMI Provider returns the string stopped-extension-dll-exception and generates an event log entry.

All data in ILM 2007 FP1 uses the Unicode character set. If the connected data source that receives the exported data requires data in a different character set, use this method to convert the Unicode data to the character set that is required by your connected data source.

Use this method to write the values of the changed attributes to the connected data source. If the IMAExtensibleCallExport.BeginExport(String, String, String, ConfigParameterCollection, TypeDescriptionCollection) does not throw an exception, then this method is called for each CSEntry object in the connector space with new or changed attribute values. Look at the modificationType parameter value to determine the operation that caused the attribute value change.

Enumeration Description
ModificationType.Add The CSEntry object was added to the connector space. Write all the attribute values of the CSEntry object to the connected data source.
ModificationType.Replace The attribute values of the CSEntry object is in the connected data source and some of these values have changed. Get the list of attributes with values that have changed from the changedAttributes parameter. After creating this list, get the changed attribute values from the CSEntry object and write those new values the connected directory.
ModificationType.Delete The CSEntry object was deleted from the connector space. Delete the attribute values from the connected data source.

To determine if an attribute listed in the changedAttributes parameter is a multi-valued attribute, use the TypeDescriptionCollection class instead of the Attrib.DataType or the Attrib.IsMultivalued properties. Accessing these properties in this method throws an exception.

If this method does not throw an exception, the CSEntry object is marked as Awaiting Export Confirmation in the connector space. If the connected data source extension is Import and Export, export confirmation occurs when you run a synchronization profile to import the new attribute values to the connector space or when the attribute values are deleted from the connected data source. For an export-only connected data source extension, you have to confirm that the attribute values were written or deleted in the connected data source.

When you export data, it is important to index the attributes on the target server. This will significantly increase performance when you conduct object searches on that server.

The following CSEntry methods and properties are not available in this method. If you access these properties in this method an exception will be thrown.

The IMAExtensibleCallExport.EndExport() method is always called after IMAExtensibleCallExport.ExportEntry(ModificationType, String[], CSEntry) method except when an object enters an unknown state or a resource is called through unmanaged code during an export run.

Requirements

Product Microsoft Identity Integration Server 2003 SP1
Namespace Microsoft.MetadirectoryServices
Assembly Microsoft.MetadirectoryServices
.NET Framework .NET Framework 2.0

See Also

IMAExtensibleCallExport
Attrib.DataType
Attrib.IsMultivalued
CSEntry
CSEntry.CommitNewConnector
CSEntry.ConnectionChangeTime
CSEntry.ConnectionRule
CSEntry.ConnectionState
CSEntry.Deprovision
CSEntry.MA
ModificationType
TypeDescriptionCollection

Send comments about this topic to Microsoft

Build date: 2/16/2009