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.
Import after Export in Async Mode for GoogleApps - Use Delta Import Profile?
Hi Adam
I have seen that when in async mode and if import-after-export is enabled , it uses full import profile.
Is there any advantage to that? Or if delta import exists (sharedcontacts) that should be used (and hopefully for users in future) which can make it faster to then do Delta Import into FIM?
Just a query I had and your thoughts on it
Upgraded transformations not editable
When saving a Relation.Group.dn transformation (which has/should have upgraded from IDB40:Multivalue Relationship Distinguished Name Generator to IDB41:Group), the following error appears in the logs:
Request to update a selected transformation in a selected adapter. Request to update the bbb7ffdf-d50d-4e2d-a78f-e56eb009eef3 transformation in the ba1a8cf9-e7af-42dd-b53f-34c0ca938221 adapter errored with message: Transformation of type Relation.Group.dn is not known by the adapter engine. Verify it has been added correctly to the list of known transformation generators.. Duration: 00:00:00.0156002 Error details: System.ArgumentException: Transformation of type Relation.Group.dn is not known by the adapter engine. Verify it has been added correctly to the list of known transformation generators. at Unify.Product.IdentityBroker.AdapterEngine.<>c__DisplayClass7c.<UpdateTransformation>b__7b() at Unify.Product.IdentityBroker.AdapterEngine.<>c__DisplayClassd9.<ConfigurationChange>b__d8() at Unify.Framework.ExtensionMethods.WaitOnMutex(Mutex mutex, Action work) at Unify.Product.IdentityBroker.AdapterEngine.UpdateTransformation(Guid adapterId, IAdapterEntityTransformationConfiguration transformationConfiguration) at Unify.Product.IdentityBroker.AdapterEngineNotifierDecorator.UpdateTransformation(Guid adapterId, IAdapterEntityTransformationConfiguration transformationConfiguration) at Unify.Product.IdentityBroker.AdapterEngineAccessor.UpdateTransformation(Guid adapterId, IAdapterEntityTransformationConfiguration transformationConfiguration) at Unify.Product.IdentityBroker.IdentityServiceCollector.UpdateTransformation(Guid adapterId, AdapterEntityTransformationConfiguration configuration) at SyncInvokeUpdateTransformation(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
It looks like the upgrade is capable of reading, but is not using the new name when saving.
GoogleApps errors not showing in FIM
GoogleApps export errors not showing in FIM
In the error logs
20150829,17:27:09,UNIFY Identity Broker,Google Agent,Error,"Unify.IdentityBroker.Communicator.Google: System.Exception: A Google API exception was thrown for call Users.Aliases.Insert with message ""Google.Apis.Requests.RequestError Invalid Input: alias_email [400] Errors [ Message[Invalid Input: alias_email] Location[ - ] Reason[invalid] Domain[global] ] "". See inner exception for details. Processing continued: True. ---> Google.GoogleApiException: Google.Apis.Requests.RequestError Invalid Input: alias_email [400] Errors [ Message[Invalid Input: alias_email] Location[ - ] Reason[invalid] Domain[global] ] at Google.Apis.Requests.ClientServiceRequest`1.Execute() at Unify.Product.IdentityBroker.GoogleAgent.BackoffRetry[TResult](String logEvent, Boolean primaryCall, Func`1 request, TResult& result, Int32 retries) --- End of inner exception stack trace --- at Unify.Product.IdentityBroker.GoogleAgent.<>c__DisplayClassb6`1.<BackoffRetry>b__ae() at Unify.Product.IdentityBroker.GoogleAgent.ThrowIfPrimaryCall(Boolean primaryCall, Action throwException)",Normal 20150829,17:27:09,UNIFY Identity Broker,Connector,Information,"Update entities to connector completed. Update entities [Count:1] to connector gappsUserConnector reported 1 entities saved. Duration: 00:00:03.8803880",Normal 20150829,17:27:10,UNIFY Identity Broker,Connector,Information,"Request to update entity to connector. Request to update entities [Count:1] to connector gappsUserConnector.",Normal 20150829,17:27:13,UNIFY Identity Broker,Google Agent,Error,"Unify.IdentityBroker.Communicator.Google: System.Exception: A Google API exception was thrown for call Users.Aliases.Insert with message ""Google.Apis.Requests.RequestError Invalid Input: alias_email [400] Errors [ Message[Invalid Input: alias_email] Location[ - ] Reason[invalid] Domain[global] ] "". See inner exception for details. Processing continued: True. ---> Google.GoogleApiException: Google.Apis.Requests.RequestError Invalid Input: alias_email [400] Errors [ Message[Invalid Input: alias_email] Location[ - ] Reason[invalid] Domain[global] ] at Google.Apis.Requests.ClientServiceRequest`1.Execute() at Unify.Product.IdentityBroker.GoogleAgent.BackoffRetry[TResult](String logEvent, Boolean primaryCall, Func`1 request, TResult& result, Int32 retries) --- End of inner exception stack trace --- at Unify.Product.IdentityBroker.GoogleAgent.<>c__DisplayClassb6`1.<BackoffRetry>b__ae() at Unify.Product.IdentityBroker.GoogleAgent.ThrowIfPrimaryCall(Boolean primaryCall, Action throwException)",Normal 20150829,17:27:13,UNIFY Identity Broker,Connector,Information,"Update entities to connector completed.
In FIM Export
On Import no error of "exported-changes-not-reimported"
Extensions setting
Connector is in Sync mode
Leads me to believe it can be perhaps missing other error messages as well
image-2015-08-30-03-31-18-304.png
image-2015-08-30-03-31-42-382.png
image-2015-08-30-03-32-49-175.png
image-2015-08-30-03-33-51-037.png
sapAgent GUI Does not remember password
Everytime we edit the sapAgent it does not remember the password nor does it show the ****** in it
We have to feed it in every time.
Does not happen with other Agents
Can this be fixed please.
Could not find endpoint element
The following exception was displayed when attempting schema discovery for my WSS list connector:
Could not find endpoint element with name 'BasicHttpBinding_ISharePoint2010UserProfileService' and contract 'OrganizationProfileManager.ISharePoint2010OrganisationProfileService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this name could be found in the client element.
This is after seeing a similar error, locating QDET-213 (I could not find any config instructions on https://unifysolutions.jira.com/wiki/display/IDBSP40/Microsoft+SharePoint+List+Connector) and adding the following sections to the Unify.Service.Connect.exe.config file:
<binding name="BasicHttpBinding_ISharePoint2010UserProfileService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="10:00:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="204003200" maxBufferPoolSize="524288" maxReceivedMessageSize="204003200" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="65536000" maxArrayLength="65536000" maxBytesPerRead="65536000" maxNameTableCharCount="65536000" /> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> <binding name="BasicHttpBinding_ISharePoint2010OrganisationProfileService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="10:00:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="204003200" maxBufferPoolSize="524288" maxReceivedMessageSize="204003200" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="65536000" maxArrayLength="65536000" maxBytesPerRead="65536000" maxNameTableCharCount="65536000" /> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISharePoint2010UserProfileService" contract="UserProfileManager.ISharePoint2010UserProfileService" name="BasicHttpBinding_ISharePoint2010UserProfileService" /> <endpoint binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISharePoint2010OrganisationProfileService" contract="OrganizationProfileManager.ISharePoint2010OrganisationProfileService" name="BasicHttpBinding_ISharePoint2010OrganisationProfileService" /> </client>
Note the wording in the error text - specifically that the element name it claims is missing*UserProfileService* but the contract contains OrganisationProfileService. When I tried modifying the above config to reflect this I still got an error - so I am thinking there may be a build issue?
System.InvalidOperationException thrown by PowerShell connector during full import
I have several functioning PowerShell connectors which support both full and polling methods, all of which are working without error. However, the
following exception is being thrown for one of the PowerShell connectors only (SF Position):
Connector Processing page 3 for connector SF Position failed with reason The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before the connection can be used to execute SQL statements.. Duration: 00:31:23.4557884. Error details: System.InvalidOperationException: The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before the connection can be used to execute SQL statements. at System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource`1 completion, Int32 startRpc, Int32 startParam) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) at System.Data.Linq.SqlClient.SqlProvider.CompiledQuery.Execute(IProvider provider, Object[] arguments) at System.Data.Linq.CommonDataServices.DeferredSourceFactory`1.ExecuteKeyQuery(Object[] keyValues) at System.Data.Linq.CommonDataServices.DeferredSourceFactory`1.Execute(Object instance) at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source) at System.Data.Linq.EntityRef`1.get_Entity() at Unify.Product.IdentityBroker.Repository.EntityLinqQueryConverterUtilitiesBase`4.SetEntityValue(IGrouping`2 dataValue, IValueCollection`2 entity) at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor) at Unify.Product.IdentityBroker.Repository.EntityLinqQueryConverterUtilitiesBase`4.DataToBusinessConverter(TSourceEntity entityToConvert) at Unify.Product.IdentityBroker.Repository.KnownEntityLinqQueryConverterUtilitiesBase`4.DataToBusinessConverter(TSourceEntity entityToConvert) at Unify.Product.IdentityBroker.Repository.EntityLinqQueryConverterUtilitiesBase`4.MapEntityToBusiness(TSourceEntity entity) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at Unify.Framework.Data.LinqWhereQuery`5.GetEnumerator() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32& index, Int32 entitiesProcessedSoFar, IEntityChangesReportGenerator`2 reportGenerator) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c__DisplayClass3.<PerformChangeDetection>b__0(IEnumerable`1 page) at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate()",Normal 20150119,00:29:13,UNIFY Identity Broker,Change detection engine,Error,"Change detection engine import all items failed. Change detection engine import all items for connector SF Position failed with reason An error occurred while evaluating a task on a worker thread. See the inner exception details for information.. Duration: 00:33:52.0953947 Error details: Unify.Framework.EvaluatorVisitorException: An error occurred while evaluating a task on a worker thread. See the inner exception details for information. ---> System.InvalidOperationException: The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before the connection can be used to execute SQL statements. at System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource`1 completion, Int32 startRpc, Int32 startParam) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) at System.Data.Linq.SqlClient.SqlProvider.CompiledQuery.Execute(IProvider provider, Object[] arguments) at System.Data.Linq.CommonDataServices.DeferredSourceFactory`1.ExecuteKeyQuery(Object[] keyValues) at System.Data.Linq.CommonDataServices.DeferredSourceFactory`1.Execute(Object instance) at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source) at System.Data.Linq.EntityRef`1.get_Entity() at Unify.Product.IdentityBroker.Repository.EntityLinqQueryConverterUtilitiesBase`4.SetEntityValue(IGrouping`2 dataValue, IValueCollection`2 entity) at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor) at Unify.Product.IdentityBroker.Repository.EntityLinqQueryConverterUtilitiesBase`4.DataToBusinessConverter(TSourceEntity entityToConvert) at Unify.Product.IdentityBroker.Repository.KnownEntityLinqQueryConverterUtilitiesBase`4.DataToBusinessConverter(TSourceEntity entityToConvert) at Unify.Product.IdentityBroker.Repository.EntityLinqQueryConverterUtilitiesBase`4.MapEntityToBusiness(TSourceEntity entity) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at Unify.Framework.Data.LinqWhereQuery`5.GetEnumerator() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32& index, Int32 entitiesProcessedSoFar, IEntityChangesReportGenerator`2 reportGenerator) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c__DisplayClass3.<PerformChangeDetection>b__0(IEnumerable`1 page) at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate() --- End of inner exception stack trace --- at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.CheckForException() at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.WaitForAvailableThread() at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit() at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities) at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.ImportAllChangeProcess() at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.RunBase() at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run() at Unify.Product.IdentityBroker.ConnectorJobExecutor.<>c__DisplayClass29.<Run>b__27() at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal
The "Import All" details from the web console show as follows:
Total Entities: 0 Started: 19/Jan/2015 10:55:21 Completed: 19/Jan/2015 11:29:13 Duration: 00:33:52.0953947 -------------------------------------------------------------------------------- Indicates that this last run errored. Change detection engine import all items for connector SF Position failed with reason An error occurred while evaluating a task on a worker thread. See the inner exception details for information.. Duration: 00:33:52.0953947 -------------------------------------------------------------------------------- Warning raised: 19/Jan/2015 10:56:22 Warning Some items failed schema validation - refer to the logs for more information
UnifyLog20150119.csv
Incorrect Error Message on Schema Validation
On setting the RecordId attribute to a validator of any type other than "long", the below error message occurs. This field should be of type 'long', with the error messages suggestion of 'guid' being incorrect (and it will validate as an error if attempted).
Service cannot be started. Unify.Framework.UnifyServerInitializeException: SharePoint 2010 Organization Profile connector requires a single key of RecordId, which is expected to be of type Guid. ---> Unify.Communicators.SharePointConfigurationException: SharePoint 2010 Organization Profile connector requires a single key of RecordId, which is expected to be of type Guid. at Unify.Connectors.SharePoint2010OrganizationProfileConnector..ctor(Guid connectorId, IEntitySchema schema, String name, IConnectorGroup connectorGroup, IConnectorEntityPartitionContextFactory contextFactory, IGenericWCFCredentialsCommunicatorInformation communicatorInformation, Int32 pageSize, Int32 maxItemsInObjectGraph, Boolean replaceWideAmpersands) at Unify.Connectors.SharePoint2010OrganizationProfileConnectorFactory.CreateConnector(XElement communicatorElement, IGenericWCFCredentialsCommunicatorInformation communicatorInformation, Guid connectorId, IEntitySchema schema, String name, IConnectorGroup connectorGroup, IConnectorEntityPartitionContextFacto...
The below for example will trigger the error.
<entitySchema> <field name="UserProfileGUID" validator="guid" /> <field name="AccountName" validator="dn" /> <field name="RecordId" validator="string" key="true" readonly="true" /> <field name="DisplayName" validator="string" /> <field name="PreferredName" validator="string" required="True" /> <field name="Members" validator="dn.multi" /> <field name="ParentRecordId" validator="long" /> </entitySchema>
correct value documented at https://unifysolutions.jira.com/wiki/display/IDBSP305/Microsoft+SharePoint+2010+Organization+Profile+Connector
Field names in employee connector will cause problems with Identity Broker v3.0
Identity Broker v3.0 introduced new restrictions on field names at the adapter level.
Suggested improvement for Identity Broker for SAP HCM v3.0.0 is adding another layer of interpretation for the employee connector allowing more human readable field names, and avoiding the use of InfoType:Field*SubType - where * is a special character. This will avoid high usage of transformations at the adapter level.
Read Table Connector optional fields
The Read Table connector makes all fields returned from SAP mandatory in the schema, which is difficult to configure due to the vast number of fields, and is also wasteful within the solution set. Please make all fields other than the primary key optional.
Communicator test tool enhancements - ability to create connector configurations.
Add ability to create connector configurations from the SAP Communicator test tool.
Customer support service by UserEcho