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
Completed

Import after Export in Async Mode for GoogleApps - Use Delta Import Profile?

Monash 9 years ago in UNIFYBroker/Google Apps updated by anonymous 9 years ago 1

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

0
Fixed

Upgraded transformations not editable

Adam van Vliet 10 years ago updated by anonymous 9 years ago 1

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.

0
Answered

GoogleApps errors not showing in FIM

Monash 9 years ago in UNIFYBroker/Google Apps updated by anonymous 9 years ago 1

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
0
Answered

sapAgent GUI Does not remember password

Monash 9 years ago updated by anonymous 9 years ago 1

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.

0
Answered

Could not find endpoint element

Bob Bradley 10 years ago in UNIFYBroker/Microsoft SharePoint updated by anonymous 9 years ago 5

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?

0
Declined

System.InvalidOperationException thrown by PowerShell connector during full import

Bob Bradley 10 years ago in PowerShell connector updated by anonymous 9 years ago 1

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
0
Fixed

Incorrect Error Message on Schema Validation

Richard Courtenay 13 years ago in UNIFYBroker/Microsoft SharePoint updated by anonymous 9 years ago 6

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

0
Completed

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.

0
Completed

Read Table Connector optional fields

Peter Wass 14 years ago in UNIFYBroker/SAP ERP Human Capital Management updated by anonymous 9 years ago 5

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.

0
Completed

Communicator test tool enhancements - ability to create connector configurations.

Add ability to create connector configurations from the SAP Communicator test tool.