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
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
Customer support service by UserEcho
Please try LeftAttribute and RightAttribute instead of TargetAttribute and SourceAttribute.
If, according to
ACGCEO-9, the doco is out of date, please instead try swapping the columns over.The error would make sense if that is the mistake that has been made.
Shane,
Are you using Identity Broker service v3.0.5.6?
Hi Adam,
I had tried that as well and result in the following error (this is why I mentioned that the info is out of date)
Sorry, just read that, you are.
Sorry the previous error wasn't entirely correct, slightly misconfigured, but the cause of the error is the same, the TargetAttribute attribute is missing.
here is the error with the correct configuration:
Shane, I believe you have the attributes mixed around. Swap SourceAttribute and TargetAttribute. The SourceAttribute must be in the relationship connector.
Yes I am using Identity Broker Service 3.0.5.6
Hi Shane,
Swapping the SourceAttribute and TargetAttribute works.
It seems that my understanding of Source being the origin of data and Target being where I want to end up with is incorrect.
My apologies for causing this confusion.
Thank you.
Hi Adam,
Sorry, perhaps it's my English, I find the following definition on the SourceAttribute and TargetAttribute at IDB305:Column mapping configuration
is a bit unclear. Which attribute is for copying to and which attribute is to copy from?
I just want to confirm that the definition and the configuration is correct, not a mistake in the source code.
Thank you.
From the quick look at the source, I think the columns are around the wrong way.
Give that a try. Please let me know the results.
Thanks.
Thank you Adam for your answer.
Swapping the two attributes works for the Move transformation. However this is inconsistent with other transformation, such as the Relational and Relational.Compare.String transformation. By swapping these as well will result the error below.
Do you agree that there is inconsistency here? If yes I recommend that we fix it asap as it will likely continue create confusion. Or at the very least has a known issue tag to it.
This is the *Relational" transform configuration that works
This is the *Relational" transform configuration that failed (swapping the SourceAttribute and TargetAttribute)
with the following error
Log Name: Application
Source: The following error in Adapters occurred during start of the server: Unable to find source field FaxNumber
Date: 2/17/2011 5:24:13 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.EntitySchemaConfigurationException: Unable to find source field FaxNumber
at Unify.Framework.AttributeMapper.TransformSchema(IEntitySchema sourceValue, IEntitySchema relatedSchema)
at Unify.Framework.EntityDistinguishedNameRelationMapperValueAdapterFactoryBase.Transform(IEntitySchema sourceValue)
at Unify.Framework.EntityChainAdapterFactory.Transform(IEntitySchema sourceValue)
at Unify.Framework.EntityChainAdapterFactory.Transform(IEntitySchema sourceValue)
at Unify.Framework.EntityChainAdapterFactory.Transform(IEntitySchema sourceValue)
at Unify.Framework.Adapter.GetAdapterSchema()
at Unify.Framework.Adapter.get_Schema()
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.VisitT(IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Framework.Visitor.VisitT(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: Unable to find source field FaxNumber" />
<EventID Qualifiers="0">0</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2011-02-17T06:24:13.000000000Z" />
<EventRecordID>15410</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.EntitySchemaConfigurationException: Unable to find source field FaxNumber
at Unify.Framework.AttributeMapper.TransformSchema(IEntitySchema sourceValue, IEntitySchema relatedSchema)
at Unify.Framework.EntityDistinguishedNameRelationMapperValueAdapterFactoryBase.Transform(IEntitySchema sourceValue)
at Unify.Framework.EntityChainAdapterFactory.Transform(IEntitySchema sourceValue)
at Unify.Framework.EntityChainAdapterFactory.Transform(IEntitySchema sourceValue)
at Unify.Framework.EntityChainAdapterFactory.Transform(IEntitySchema sourceValue)
at Unify.Framework.Adapter.GetAdapterSchema()
at Unify.Framework.Adapter.get_Schema()
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.VisitT(IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Framework.Visitor.VisitT(IEnumerable`1 visitCollection, Action`1 visitor)
at Unify.Framework.AdapterEngine.Start()
at Unify.Framework.UnifyEngine.Start()</Data>
</EventData>
</Event>
OK - so are we happy to have this issue closed in terms of ACT Cath Ed. We will raise a new one against Identity Broker to be fixed in a new release and for the current documentation to be updated.
By swapping the SourceAttribute and TargetAttribute this allows the Identity Broker service to start successfully.
However, it should be noted that the swapping caused inconsistency in how these attribute are use with other transformation types.
I have noted that the documentation has been updated IDB305:Move attributes transformation
Thus now the documentation is correct, but the actually configuration is still need to be swapped between SourceAttribute and TargetAttribute until this issue is fixed,
IDB-47.Thank you.
Issue is resolved by swapping the SourceAttribute and TargetAttribute as a work-around.