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
Declined
Werner Deysel 1 month ago in Identity Broker for Workday • updated by Adam van Vliet (Product Manager) 7 days ago 5

Hi,


I recentley change my Password for the Workday Agent Account, and it keeps locking the Workday Account as excessive logins.

Is this something that was change recentley to Workday, i still rememer only changing it in 1 place and then it would not lock the account again, not sure if this might have changed, even left it for 24hr to propegate and it still locks the account.


I also notice that the Active Connections goes to about 12 then back to 2.


Here are the versions that i am Running.

Workday Connector

Identity Broker

5.0.0.5

V 5.0.4



Answer

Nothing has changed in the connector code. I'd recommend contacting our support as it sounds like Workday have broken something again - and at the very least would require some analysis of what's going on.

Thanks.

0
Answered
Werner Deysel 2 months ago in Identity Broker for Workday • updated by Adam van Vliet (Product Manager) 2 months ago 1

Hi,

i dont find much documentation on error codes for the Identity Broker, but this anchor modification is a new error that i see in the exporting errors.

Can someone explain to me what this is, and how to fix this?

Answer

Hi Werner,

This is currently documented at Anchor Modification and Handling Renames. It means that the solution is attempting to update the value of the key field for the connector - for a connector that doesn't support the operation. The fix is to stop attempting these operations.

Thanks.

0
Completed
Jeff Nelson 2 months ago in Identity Broker for Workday • updated by Adam van Vliet (Product Manager) 2 months ago 1

News has requested that UNIFY modify the code for IdB for Workday such that filtering on a user;s Top-Level Org uses the current date rather that the target user's Hire Date. Currently News are seeing users filtered that should not be filtered and the cause appears to be that when the hire date is used, the IdB returns the SupervisoryOrg level instead of the Top Org level for the user i.e. the returned result is:
 SupervisioryLevelOrganisation = SupervisioryOrg
 TopLevelOrganisation = SupervisioryOrg
Which results in the user being filtered

News-Ltd now have given approval for UNIFY to make to the requested code change and agree that (in the absence of advice from Theory of Mind), that they take full responsibility for the performance of the code and have agreed that the code change will be staged through a full regression test cycle in their UAT environment prior to migrating the code to Production.

Thanks Jeff.

0
Answered
Carol Wapshere 9 months ago in Identity Broker for Workday • updated by Adam van Vliet (Product Manager) 9 months ago 4

News have opened a support call - it looks like the Identity Broker Workday Employees connector is not importing any data, and may not have been importing for at least a couple of days. This is the error in the log where it says the import failed. The customer has also sent me the full log file.

20161019,22:20:24,UNIFY Identity Broker,Connector,Warning,"Import all entities from connector failed.Import all entities from connector Workday Employee failed with reason Value cannot be null.
Parameter name: id. Duration: 01:33:15.1564315
Error details:
System.ArgumentNullException: Value cannot be null.
Parameter name: id
at Unify.Product.IdentityBroker.FilteredWorkerIdsCache.Contains(String id)
at Unify.Product.IdentityBroker.WorkdayWorkerConnector.FilterWorker(IWorkdayCommunicator communicator, FilteredWorkerIdsCache filteredWorkerIdsCache, HashSet`1 organisationFilters, String workerID, WorkdayWorker currentWorker, Action`1 rejectItemAction, ICollection`1 cacheFiltered, ICollection`1 emailFiltered, ICollection`1 hireDateMissingFiltered, ICollection`1 orgFiltered, ICollection`1 permanentFiltered)
at Unify.Product.IdentityBroker.WorkdayWorkerConnector.<GetWorkers>d__16.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.Collections.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__10`1.MoveNext()
at Unify.Framework.Collections.EnumerableExtensions.<ProduceAutoPages>d__7`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPool[T](IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
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__DisplayClass27_0.<Run>b__0()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal
20161019,22:20:24,UNIFY Identity Broker,Change detection engine,Error,"Change detection engine import all items failed.
Change detection engine import all items for connector Workday Employee failed with reason Value cannot be null.
Parameter name: id. Duration: 01:33:15.1714330
Error details:
System.ArgumentNullException: Value cannot be null.
Parameter name: id
at Unify.Product.IdentityBroker.FilteredWorkerIdsCache.Contains(String id)
at Unify.Product.IdentityBroker.WorkdayWorkerConnector.FilterWorker(IWorkdayCommunicator communicator, FilteredWorkerIdsCache filteredWorkerIdsCache, HashSet`1 organisationFilters, String workerID, WorkdayWorker currentWorker, Action`1 rejectItemAction, ICollection`1 cacheFiltered, ICollection`1 emailFiltered, ICollection`1 hireDateMissingFiltered, ICollection`1 orgFiltered, ICollection`1 permanentFiltered)
at Unify.Product.IdentityBroker.WorkdayWorkerConnector.<GetWorkers>d__16.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.Collections.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__10`1.MoveNext()
at Unify.Framework.Collections.EnumerableExtensions.<ProduceAutoPages>d__7`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPool[T](IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
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__DisplayClass27_0.<Run>b__0()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal
Answer

From analysis between the latest version and the version that presented the problem, it can be seen that there is a difference in the logic for filtered workers. An improvement had already been made to ensure that rescinded workers do not cause the filter logic to fail (as they tend to get imported partially populated).

0
Completed

We need to test this use case given the changes to how we use the contact object

Answer

Contact update split up to ensure that changes are 'nursed' into Workday.

0
Completed

Add Public field to the telephone number structure to ensure that the public/private status of a number is honoured

Answer

Done. Thanks.

0
Completed

Workday have confirmed that they cannot change their timezone in Workday to match the UTC timezone we use in our Import Changes requests. Given our client is located across 12 different timezones, this means that we miss a lot of the (utc-x) requests. Would it be possible to add a timezone offset to the Connector so that we can change this to match the Workday set timezones? This will allow for a consistent set of changes to be detected

Answer

Workaround added to the connector, the attribute is timezoneOffset using xml encoded timespan (see duration examples here for details on the value, e.g. -PT13H for offsetting 13 hours prior to UTC now).

0
Completed

Please look at adding the following fields to the WorkDay Connector:

  • Primary Business Address (Formatted_Address based of the primary="true" type="WORK"
  • Priimary Business Office Phone (Formatted_Phone based of the primary="true" type="WORK" usage descriptor="Telephone")
  • Primary Business Mobile Phone (Formatted_Phone based of the primary="true" type="WORK" usage descriptor="Mobile")
  • Primary Private Mobile Phone (Formatted_Phone based of the primary="true" type="HOME" usage descriptor="Mobile")
0
Completed
Adam van Vliet (Product Manager) 2 years ago in Identity Broker for Workday • updated 2 years ago 1

Add the ability to update non-primary work address. The type of address should be configurable if possible, otherwise hard-code to work address. It should be the non-primary address.

The rules in Workday will ensure that there is only one address that satisfies these conditions.

0
Fixed

The Workday Employee IdB connector fail with error: Import all entities
from connector Workday Employee failed with reason Value cannot be null.

The error in the log file is as follow:

Import all entities from connector failed.
Import all entities from connector Workday Employee failed with reason Value cannot be null.
Parameter name: value. Duration: 00:01:51.2800000
Error details:
System.ArgumentNullException: Value cannot be null.
Parameter name: value
at System.Xml.Linq.XAttribute..ctor(XName name, Object value)
at Unify.Product.IdentityBroker.OrganizationMembershipToXElementAdapter.Transform(WorkdayOrganizationMembership
sourceValue)
at
Unify.Product.IdentityBroker.MultiValueTypedAdapter`1.<Transform>b__0(TValue
v)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
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.Product.IdentityBroker.MultiValueStringAdapter.Transform(IEnumerable`1
sourceValue)
at
Unify.Product.IdentityBroker.WorkdayExtensions.SetValue[TEntity,TValue](IConnectorEntity
entity, IEntitySchema schema, HashSet`1 effectiveThroughOffsetFields, HashSet`1
subsequentFields, GroupedNameValueCollectionKey fieldName, TEntity baseEntity,
TEntity offsetEntity, TEntity subsequentEntity, Func`2 hasValue, Func`2
getValue)
at
Unify.Product.IdentityBroker.WorkdayWorkerToEntityAdapter.Transform(WorkdayWorker
sourceValue, WorkdayWorker offsetWorker, WorkdayWorker subsequentWorker)
at
Unify.Product.IdentityBroker.WorkdayWorkerConnector.<GetWorkers>d__c.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.Collections.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__19`1.MoveNext()
at
Unify.Framework.Collections.EnumerableExtensions.<ProduceAutoPages>d__a`1.MoveNext()
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) 

 

Change detection engine import all items failed.
Change detection engine import all items for connector Workday Employee failed
with reason Value cannot be null.
Parameter name: value. Duration: 00:01:51.3070000
Error details:
System.ArgumentNullException: Value cannot be null.
Parameter name: value
at System.Xml.Linq.XAttribute..ctor(XName name, Object value)
at
Unify.Product.IdentityBroker.OrganizationMembershipToXElementAdapter.Transform(WorkdayOrganizationMembership
sourceValue)
at Unify.Product.IdentityBroker.MultiValueTypedAdapter`1.<Transform>b__0(TValue
v)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
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.Product.IdentityBroker.MultiValueStringAdapter.Transform(IEnumerable`1
sourceValue)
at
Unify.Product.IdentityBroker.WorkdayExtensions.SetValue[TEntity,TValue](IConnectorEntity
entity, IEntitySchema schema, HashSet`1 effectiveThroughOffsetFields, HashSet`1
subsequentFields, GroupedNameValueCollectionKey fieldName, TEntity baseEntity,
TEntity offsetEntity, TEntity subsequentEntity, Func`2 hasValue, Func`2
getValue)
at Unify.Product.IdentityBroker.WorkdayWorkerToEntityAdapter.Transform(WorkdayWorker
sourceValue, WorkdayWorker offsetWorker, WorkdayWorker subsequentWorker)
at
Unify.Product.IdentityBroker.WorkdayWorkerConnector.<GetWorkers>d__c.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.Collections.ActionOnExceptionEnumerator`1.MoveNext()
at
Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__19`1.MoveNext()
at
Unify.Framework.Collections.EnumerableExtensions.<ProduceAutoPages>d__a`1.MoveNext()
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)