Identity Broker Forum

Welcome to the community forum for Identity Broker.

Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.

0
Answered

Using the Move tranformation in the Adapter to rename attribute name result in the error - the column EmployeeCode is not a pre-existing column in adapter Empower Person Adapter

Shane Lim 13 years ago updated by anonymous 8 years ago 16

Using the Move tranformation in the Adapter to rename attribute name result in the error - the column EmployeeCode is not a pre-existing column in adapter Empower Person Adapter.

Note: All the fields name for all the SQL tables at client site (ACG CEO) contains the underscore, "_" character.

The following Empower Adapter configuration result in the error

<AdapterEngine>
    <!-- Adapter configuration for Empower Person -->
    <AdapterEngineConfigurations>
        <!-- Adapter configuration for Empower Person consist of Person and Position Connectors -->
        <AdapterConfiguration BaseConnectorId="{862A68B4-377C-41b5-AFB9-2A705076285F}"
                            AdapterId="{706D4F9A-D291-43CB-9A24-3467DE6B588A}"
                            AdapterName="Empower Person Adapter" 
                            class="person" >
            <adapterEntityTransformationFactory name="ChainList">
                <!-- Renaming (mapping) the Person connector attributes for the Person connector -->
                <adapter name="Move" >
                    <columnMappings>
                        <columnMapping TargetAttribute="EmployeeCode" SourceAttribute="hr_empl_code" />
                        <columnMapping TargetAttribute="MonthNumb" SourceAttribute="hr_mnth_numb" />
                        <columnMapping TargetAttribute="StatusCode" SourceAttribute="hr_stus_code" />
                        <columnMapping TargetAttribute="StatusDate" SourceAttribute="hr_stus_date" />
                        <columnMapping TargetAttribute="StatusDati" SourceAttribute="hr_stus_dati" />
                        <columnMapping TargetAttribute="Surname" SourceAttribute="hr_empl_surn" />
                        <columnMapping TargetAttribute="GivenName" SourceAttribute="hr_empl_givn" />
                        <columnMapping TargetAttribute="EmployeeName" SourceAttribute="hr_empl_name" />
                        <columnMapping TargetAttribute="EmployeeTitle" SourceAttribute="hr_empl_title" />
                        <columnMapping TargetAttribute="EmailAddress" SourceAttribute="hr_email_adr" />
                        <columnMapping TargetAttribute="Mobile" SourceAttribute="hr_mobile_ph" />
                        <columnMapping TargetAttribute="PreferredName" SourceAttribute="hr_pref_name" />
                        <columnMapping TargetAttribute="NoneFlag" SourceAttribute="hr_none_flag" />
                    </columnMappings>
                </adapter>
            </adapterEntityTransformationFactory>
            <image>omitted-for-brevity</image>
        </AdapterConfiguration>
    </AdapterEngineConfigurations>
</AdapterEngine>

Identity Broker service cannot start, resulting in the error below

Log Name:      Application
Source:        The following error in Adapters occurred during start of the server: The column EmployeeCode is not a pre-existing column in adapter Empower Person Adapter (706d4f9a-d291-43cb-9a24-3467de6b588a).  Please check yo
Date:          2/17/2011 3:21:19 PM
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      w2k8r2x64-fim.fim.uns.com
Description:
Error occurred in module: Adapters

The following error occurred: 
Unify.Framework.AdapterColumnException: The column EmployeeCode is not a pre-existing column in adapter Empower Person Adapter (706d4f9a-d291-43cb-9a24-3467de6b588a).  Please check your configuration before continuing. Currently known fields: hr_empl_code, hr_mnth_numb, hr_stus_code, hr_stus_date, hr_stus_dati, hr_empl_surn, hr_empl_givn, hr_empl_name, hr_empl_title, hr_email_adr, hr_mobile_ph, hr_pref_name, hr_none_flag ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Unify.Framework.AdapterColumnSources.get_Item(GroupedNameValueCollectionKey column)
   --- End of inner exception stack trace ---
   at Unify.Framework.AdapterColumnSources.get_Item(GroupedNameValueCollectionKey column)
   at Unify.Framework.EntityMoveAttributesAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.AdapterEngine.CreateAdapter(IEntityPartitionUpdatableContextFactory entityEngineRepositoryFactory, IConnectorRepository connectorRepository, IAdapterEntityPartitionUpdatableContextFactory adapterEntityPartitionUpdatableContextFactory, IAdapterConfiguration adapterConfiguration)
   at Unify.Framework.AdapterEngine.<>c__DisplayClass2.<Start>b__0(IAdapterConfiguration adapterConfiguration)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`1 visitor)
   at Unify.Framework.AdapterEngine.Start()
   at Unify.Framework.UnifyEngine.Start()
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="The following error in Adapters occurred during start of the server: The column EmployeeCode is not a pre-existing column in adapter Empower Person Adapter (706d4f9a-d291-43cb-9a24-3467de6b588a).  Please check yo" />
    <EventID Qualifiers="0">0</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2011-02-17T04:21:19.000000000Z" />
    <EventRecordID>15380</EventRecordID>
    <Channel>Application</Channel>
    <Computer>w2k8r2x64-fim.fim.uns.com</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Error occurred in module: Adapters

The following error occurred: 
Unify.Framework.AdapterColumnException: The column EmployeeCode is not a pre-existing column in adapter Empower Person Adapter (706d4f9a-d291-43cb-9a24-3467de6b588a).  Please check your configuration before continuing. Currently known fields: hr_empl_code, hr_mnth_numb, hr_stus_code, hr_stus_date, hr_stus_dati, hr_empl_surn, hr_empl_givn, hr_empl_name, hr_empl_title, hr_email_adr, hr_mobile_ph, hr_pref_name, hr_none_flag ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Unify.Framework.AdapterColumnSources.get_Item(GroupedNameValueCollectionKey column)
   --- End of inner exception stack trace ---
   at Unify.Framework.AdapterColumnSources.get_Item(GroupedNameValueCollectionKey column)
   at Unify.Framework.EntityMoveAttributesAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation)
   at Unify.Framework.AdapterEngine.CreateAdapter(IEntityPartitionUpdatableContextFactory entityEngineRepositoryFactory, IConnectorRepository connectorRepository, IAdapterEntityPartitionUpdatableContextFactory adapterEntityPartitionUpdatableContextFactory, IAdapterConfiguration adapterConfiguration)
   at Unify.Framework.AdapterEngine.<>c__DisplayClass2.<Start>b__0(IAdapterConfiguration adapterConfiguration)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`1 visitor)
   at Unify.Framework.AdapterEngine.Start()
   at Unify.Framework.UnifyEngine.Start()</Data>
  </EventData>
</Event>

I believe I understood and have followed the configuration correctly at Move attributes transformation, although the columnMapping attribute listed is out of date.

  • The LeftAttribute should be SourceAttribute
  • The RightAttributeshould be TargetAttribute

    Could you please advise me what is causing the error above?

The Empower Connector and Adapter configuration is attached.

Thank you

0
Completed

Transformations should check their prerequisites

Matthew Clark 12 years ago updated by anonymous 8 years ago 11

The IsOperative transformation and a number of others need to check their prerequisites before being created, like the Time Offset transformation. In the case of IsOperative, it needs to check if there are any date fields present. If there aren't it presents a UI with nothing in its dropdowns.

The Relational String priority transformation doesn't enforce the values on the string priority drop down, and the multivalue union transformation doesn't enforce the left or right field drop downs.

0
Answered

Identity Broker Adapter transformation, IsOperative for Empower Organisation doesn't work due to EndColumn value is blank

Shane Lim 13 years ago updated by anonymous 8 years ago 11

In section 8.1.3 of the Technical Guide for Empower Organisation Adapter, the Identity Broker Adapter transformation, IsOperative for Empower Organisation doesn't work due to EndColumn value is blank.

All the organisation "Active" status are all "F" (false) when all should be "T" (true). This is because the attribute hr_upto_date specified as the EndColumn of the IsOperative transform is a whitespace/blank. Thus the time end time is invalid.

Peter, could you please advice on how to address this.

0
Fixed

Connectors sporadically go missing

Matthew Clark 12 years ago updated by anonymous 8 years ago 11

After configuring the Identity Broker console and performing normal use, configured connectors will sometimes go missing. This happens to individual connectors, and sometimes more than one at the same time.

This was thought to have been caused by IDB-454 as the logs appeared around the same time, but will need to be confirmed. See https://unifysolutions.jira.com/browse/IDB-454?focusedCommentId=29123&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-29123


Log Excerpt.txt
0
Completed

Decouple adapter import from entity transformations

Adam van Vliet 13 years ago updated by anonymous 8 years ago 17

The adapter transformation process should be decoupled from the adapter import.

Allow the adapter to be configured to allow for both modes - default to decoupled mode.

The benefits would be:

  • The appearance of faster imports into the identity management solution.
  • Searches on the adapter space would not have to wait for transformations.
  • Transformations could be performed as needed.

Tasks:

  • Add methods to adapter to perform transform only.
  • Create a job that can be added to the adapter configuration that runs the transformation after:
    • The base connector has performed an import.
    • A specified connector has performed an import.
    • A change is due in the changes register.
    • As per a schedule - regular timings.

IDB-151.png
0
Fixed

Foreign key constraint violation when attempting delta import into FIM

Matthew Clark 12 years ago updated by anonymous 8 years ago 7

In order to attempt 3.1.8 of the regression test, I did the following:

  • CSV connector with 2 entries
  • Full import into FIM
  • Added new user, updated existing user, deleted old user
  • Change detection shows 3 changes in adapter statistics, entries present in the changes table
  • Delta import into FIM to confirm changes

The following error was thrown:

The extensible extension returned an unsupported error.
The stack trace is:

"System.ServiceModel.FaultException`1System.ServiceModel.ExceptionDetail: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_ObjectClass_Partition". The conflict occurred in database "Unify.IdentityBroker", table "dbo.Partition", column 'PartitionId'.
The statement has been terminated. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.Data.SqlClient.SqlException: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_ObjectClass_Partition". The conflict occurred in database "Unify.IdentityBroker", table "dbo.Partition", column 'PartitionId'.
The statement has been terminated.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(...).Forefront Identity Manager 4.0.3594.2"

Subsequent delta imports also throw this error, so fortunately the changes are not being cleared following the error of the first attempt.

0
Fixed

Attempting to delete transformation base generator or multipart inner component gets a "Sequence contains no elements" message

Matthew Clark 12 years ago updated by anonymous 8 years ago 4

When all DN components are deleted, the DN generator defaults to either the Schema Key or the Entity Id generator (depending on the schema key). When you attempt to delete this one in a transformation, you receive a "Sequence contains no elements" message in the temp data message. This has no operational impact other than this message appearing in this case.

However, this also occurs when attempting to delete a component from a multipart component results in the same error, and this does affect configuration. You can work around this currently by deleting the multipart completely and recreating it.

0
Fixed

MultiValue Union transformation functions menu errors with "Object reference not set to an instance of an object."

Tony Sheehy 12 years ago updated by anonymous 8 years ago 4

Functions menu for the MultiValue Union transformation errors with:

System.NullReferenceException: Object reference not set to an instance of an object.
at Unify.Connect.Web.AdapterController.EditTransformationOnStep(Guid id, Guid transformationId) in c:\workspaces\IdentityBroker\Source\Studio\Unify.Connect.Web\Controllers\AdapterController.cs:line 1294
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
0
Completed

IdB Service new install should not overwrite config files

Carol Wapshere 11 years ago updated by anonymous 9 years ago 2

When installing a new version of IdB - if it finds config files in the Extensibility folder could it not overwrite them please? I thought this is how it worked before, but have just lost my config installing 3.0.8.

0
Completed

New log level throttling configuration option for Identity Broker

Bob Bradley 13 years ago updated by anonymous 8 years ago 5

As is possible for Event Broker, it would be a significant improvement for an IdB operator to be able to set the logging level - in Windows Event Log terms this would equate to the following (from none to full logging):

None - Information - Warning - Error - Critical - Verbose

While there is no capability to wind the IdB logging level up and down, it would be expected that 1000s of events will be generated daily, even when no exceptions are being thrown. Regardless of the method chosen for logging, this is a deployment issue because it uses up resources unnecessarily and makes speedy identification of non-informational logs more difficult. This is especially true when logging to the Windows Event logs.