I’ve been reading developer end to end but eventually failed to resolve such a use case:
→ UPDATE call on webService has only the variables that were recently changed on identity in its plan.
Hence, if there is a firstname change, $plan.firstname$ will have exist, but $plan.lastname$ is null, even though it is populated on the identity.
Target system on the other hand requires to insert all attributes, unless it will clean the ones missing.
Bottom line: Update call has only nativeIdentity and modified attributes included (or some responses from -1 parents if needed)
Could you please advise: How can I input into webServices Update body identity attributes (such as lastname) ?
Can be either by:
http update operation code
connector rule for WebService (I haven’t found a class nor object that would get me identity attribute.
Call end source api and get rest of the attributes (apart from firstname) and use those. You will still need to write rule here because if you are syncing 5 different attributes , not all of them would sync at same time so if firstname is coming from plan because it was changed, you need to make sure you are picking firstname from plan and not from the response you got from end system.
Overall you need to pick attributes from plan first and rest of the attributes from end system.
You can use combination of chaining and before operation rule to achieve this.
You can use before provisioning rule and add rest of the attributes which are not changed under arguments and read those arguments in before operation rule and put them in body.
These are 2 options you have. I have created some ideas relevant to this problem and you can upvote them if you like.
I have researched option 1 already in the flow as presented on attached picture, but there is no IF/ELSEIF capability to compare whether to push attribute from the plan or use target system one.
As per option 2, I cannot find the class for this, tried identity.getStringAttribute(“firstname”) on connector rule, but it is always null, so such object is not present even when I import it
For option 1 you will have to use before operation rule in your update end point. There would be one end point which will get attributes from end source(this can be done in rule also if you want/ I see “GetObject” in your screenshot). Before operation rule will handle this conditional logic.
For option 2, as I mentioned earlier, you do not get it from identity but from plan. Ideally plan would not have rest of the attributes so you will have to add using before provisioning rule.