We are currently are using 2.1.7 of syncope and used to work on 2.1.6 untill June 2020
We currently have two resources R1 and R2 which are pointing to one particular external system S1 where we create a new identifier specific to that system associated with a User , lets call that X. The User record already has another unique identifier attribute that already exists from other systems and we can call that as Y, which would be one of the inputs among other inputs used while creating i. On the mapping for R1 where we call a particualr end point of S1 rest end point, we provided mapping for some attributes of User which we need during creation of X but since X does not have a valid value until create call completes, we could not use X as the remoteky in the mapping ( syncope was throwing errors if we use X as remotekey and a value is not present for it), hence we used Y as the remote key ( which is also one of the inputs needed during creation of X) and specified X as the attribute in "Schema to hold values for identifiers generated upon Create by the external Identity Store". R2 points to the same system S1 as well but calls a different REST end point of S1 since it needs different set of inputs and has different purpose, and we specify mapping for X along with other attributes and made X as the remote key since X would be created already by R1 prior. What we are seeing is that When we are doing a pull action for User record on a completely different Resource R3 which points to a different system S2 and when the User record is being pulled Syncope is performing following tasks 1) Create is being called for R1 resource where syncope is passing values as specified in the mapping where it passes value Y to Create Script and Create script retruns value X created on the external system 2) Search Script for R1 is getting invoked immediately after where syncope is passing value of X but with attribute name of Y for search ( which wasnt what we were expecting) . Since search script was expecting X value it tries to use it in the manner in which X would be used and hence fails to find a proper record in system S1 and returns empty results 3) Syncope continues to call Search on script R2 with null value for Y which again is puzzling because R1 already created Y and returned it Is this expected behavior? shouldn't syncope pass the value of X with attribute X to the search script in step2, why is it doing other way around? Any suggestions on how to solve this issue -- Sent from: http://syncope-user.1051894.n5.nabble.com/
