I'm trying to push identity data from D1IM.Person to an Oracle database table using the Synchronization Editor in D1IM 7.0.1. The Oracle table has an integer column (EOG_User_ID) that has a unique constraint while allowing NULLs. We do not store the value for, neither do we need to push a value for EOG_User_ID from D1IM. Hence, EOG_User_ID is left out of the mapping.
The issue is that when the sync runs, Dell sends the value for EOG_User_ID as the integer 0 instead of a NULL. With multiple identities pushed with the same 0 value, this violates the unique constraint in the database and the sync fails. This is the error I'm getting when I run the sync:
ErrorMessages = [2134003] Error executing a full projection! [1777018] Error executing workflow (Workforce Sync) of synchronization project (Workforce Synchronization Project). [1777124] Error executing projection step (Person - wf_worker Export) of projection configuration (Workforce Sync (ba74949b-35b4-46f2-abaf-d253ded407ce)). [1777219] Error executing projection step (Person - wf_worker Export)! [1777165] The value (0) of the key property (EOG_USER_ID@WF_DBA.WF_WORKER) of system object (Doe, John (xxxxxx)) is not unique! Another system object already has this value. at StdioProcessor.StdioProcessor._Execute(Job job) at VI.Projector.JobComponent.ProjectorComponent.Activate(String task) at VI.Projector.JobComponent.ProjectorComponent._FullProjection() ---- Start of Inner Exception ---- at VI.Projector.JobComponent.ProjectorComponent._FullProjection() at VI.Projector.Database.ProjectorExecutor.Project(ISession session, IProjectionConfiguration configuration, ProjectionOption options, ISystemObject adHocObject, CancellationToken cancellationToken) at VI.Projector.Projection.Extensions.Execute(IProjectorEngine engine, IProjectionConfiguration configuration, ProjectionOption options, ISystemObject adHocObject, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) ---- Start of Inner Exception ---- at VI.Projector.Projection.ProjectorEngine.<ExecuteAsync>d__4.MoveNext() ---- Start of Inner Exception ---- at VI.Projector.Projection.ProjectorEngine.<ExecuteAsync>d__4.MoveNext() ---- Start of Inner Exception ---- at VI.Projector.Projection.ProjectorEngine.<ExecuteAsync>d__4.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) --- End of stack trace from previous location where exception was thrown --- at VI.Projector.Projection.Internal.ProjectorEngineExecutionHelper.<ExecuteStepAsync>d__24.MoveNext() ---- Start of Inner Exception ---- at VI.Projector.Projection.Internal.ProjectorEngineExecutionHelper.<ExecuteStepAsync>d__24.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) --- End of stack trace from previous location where exception was thrown --- at VI.Projector.Projection.Internal.ProjectorEngineExecutionHelper.<_ProcessDifferenceSetAsync>d__a5.MoveNext() at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at VI.Projector.Projection.Internal.ProjectorEngineExecutionHelper.<_ReloadSystemObjectPartition>d__172.MoveNext()
How can I force a NULL to be sent for EOG_User_ID?
Thanks in advance,
Febin