0
Fixed

Exporting or saving entities CONTACT_PHONE failed for Identity Broker for Aurion - Error: pecified item CONTACT_PHONE does not exist for function QUERY_TO_XML

Shane Lim 8 years ago in UNIFYBroker/Aurion • updated by anonymous 4 years ago 2

Configurating Identity Broker for Aurion write "ContactPhoneNo" back to Aurion system in Identity Broker configuration.
The configuration should be correct as there are times that I can perform update into Aurion system and other times I cannot.

Performed the following are the observation at various point of data flow:

1. In Aurion HR system the ContactPhoneNo = (09) 622 1123
2. Projected into Metaverse telephoneNumber = (09) 622 1123
3. Provisioned into AD MA cs telephoneNumber = (09) 622 1123
4. Exported to AD endpoint
5. Modified in AD endpoint telephoneNumber = (01) 111 1111 - change made in AD to flow back to Aurion
6. Imported into AD MA cs telephoneNumber = (01) 111 1111
7. Did a Full Sync
8. Updated Aurion MA cs ContactPhoneNo = (01) 111 1111
9. Exported Aurion MA
10. In IdB's Adapter entity search = ContactPhoneNo = (01) 111 1111
11. In IdB's Connector entity search = ContactPhoneNo = (01) 111 1111 - changed reflected in Identity Connector entity search as expected
12. In Aurion HR system Contact_Phone_Number = (09) 622 1123 - change did not update in Aurion system. In correct result

After several tried with failure the following error is found in the Identity Broker log file:

20101026,11:27:29,Save entities to connector failed.,Connector,Warning,"Save entities Count:1 to connector Aurion Person failed with reason Aurion API error -1: Specified item CONTACT_PHONE does not exist for function QUERY_TO_XML. Duration: 00:00:01.0585937
Error details:
Unify.Communicators.AurionApiCommunicatorException: Aurion API error -1: Specified item CONTACT_PHONE does not exist for function QUERY_TO_XML
at Unify.Communicators.AurionWebServiceApiCommunicator.RaiseExceptionOnErrorCondition(Decimal pStatus, String pMessage)
at Unify.Communicators.AurionWebServiceApiCommunicator.SetValue(String item, String value)
at Unify.Communicators.AurionApiFunctionBase.SetStringValue(String item, String value)
at Unify.Communicators.EmpUpdatePersAurionApiFunction.SetFunctionValues()
at Unify.Communicators.AurionApiFunctionBase.RunFunction()
at Unify.Communicators.AurionCommunicator.SaveEmployee(IAurionEmployee employee)
.
.
.

It could be that while Identity Broker is performing "getAllEntities" and I run "Export" profile in FIM may created a conflict or confusion with the Aurion API.

Here is Shane Day's thought on this error:

I've had another thought about this - the Aurion API only allows one concurrent transaction, therefore if you are attempting two transactions (a query, and an update) at once, the API gets confused. That's the source of that error.

I'm going to suggest that we put a mutex around operations with one Aurion instance to prevent this situation from occurring. It already cannot happen by two query requests as the connectors are all in the same connector group.

Affected Versions:
Fixed by Version:

Hi Adam,

Quick sanity check for my sake; Shane mentioned above this issue wouldn't occur on reads as they're in a connector group. As such a group isn't guaranteed in v4.0, I want to ensure this is safe regardless, and I expect it is - each connector factory creates its own communicator, each of which have their own session and therefore shouldn't conflict. The new connector lifecycle wouldn't have any effect on this, right?

Given the above information, I am happy to close this issue. You are correct in that groups are not enforced in the same way that demo configuration do. But if the different instances of the communicator stop any cross-talk, then it will be ok.