Microsoft Identity Integration Server 2003 Developer Reference

IMAExtensibleCallExport.ExportEntry

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.

[C#]
public abstract void ExportEntry(
  ModificationType modificationType,
  String[] changedAttributes,
  CSEntry csentry
);
[Visual Basic .NET]
Public MustOverride 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 Values

This method has no return values.

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.

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 MIIS 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 the 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 exporting 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 Service Pack 1
Namespace: Defined in Microsoft.MetadirectoryServices.
Assembly: Requires Microsoft.MetadirectoryServices (in Microsoft.MetadirectoryServices.dll).
.NET Framework: Requires .NET Framework 1.1.

See Also

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