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/

Reply via email to