MIM 2016 SP1, 4.4.1642.0 (also tested on 4.4.1749.0)
I have developed an ECMA2 connector to interface with a data source via a REST API, in order to update a small number of attributes; there is no provisioning to the data source. The connector exports changes successfully, but
does not report failures to the UI. In order to force an error at the UI, I amended the PutExportEntries() method as shown below, to always return a failure, however, no failure appears in the UI, the UI just looks like the export completed successfully. Can
anyone provide any guidance as to what might be amiss?
In addition, I am seeing event 6309 in the Application log with the following text:
The server encountered an unexpected error while performing an operation for a management agent.
"Object reference not set to an instance of an object.
at Microsoft.MetadirectoryServices.Impl.ScriptHost.InvokeExtMA_ExportEntries(UInt32* rgomodt, UInt32* rgcpcszChangedAttributes, UInt16*** prgpcszChangedAttributes, _GUID* rgguidEntry, _OCTET* rgoctCSImage, _OCTET* rgoctChanges, Int32* rgErrorCodes,
UInt16** rgpszErrorName, UInt16** rgpszErrorDetail, UInt32 cBatchSize, UInt32 dwFlagsCapabilities, _OCTET* rgoctConfirmingImportDeltaImages, Int32 passThru)
InnerException=>
none
"
PutExportEntries method:
public PutExportEntriesResults PutExportEntries(IList<CSEntryChange> csentries)
{
log("PutExportEntries-Start");
PutExportEntriesResults exportEntriesResults = new PutExportEntriesResults();
foreach (CSEntryChange csentry in csentries)
{
// Force an error to the UI
exportEntriesResults.CSEntryChangeResults.Add(CSEntryChangeResult.Create(csentry.Identifier
, csentry.AttributeChanges
, MAExportError.ExportErrorCustomContinueRun
, "custom-error"
, "Custom error message."));
continue;
//rest of export code below but unreachable
}
log("PutExportEntries-End");
return exportEntriesResults;
}