IdentityIQ Attribute Mapping "Null Value"

Which IIQ version are you inquiring about?

Version 8.2

Share all details related to your problem, including any error messages you may have received.

Hi,

I’ve an application where we update identity attributes to IdentityIQ, the application is of type JDBC, and attributes Mapping are read-only types, what happens is that when an attribute on the source becomes null, is not mapped to destination and the “old value” is kept, any configuration to “force” the update to “” when the attribute is missing from the source (I say missing because in the log in the attributes mapping I can check that it’s missing the attribute that is null), keep in mind that we don’t want to change the SQL that runs on the source to obtain the information, because is a SP with lot’s of logic, and is maintaned by another team.

Tks,

Best Regards,

Hi Paolo,
Can you paste screenshot or code of the attribute definition?
I see generaly to reasons why something like that might happen

  1. There is another rule in the source rules list for this attribute which is keeping the old value (this is btw quite common approach in a lot of projects to put this kind of rule on the end of the list of rules to avoid clearing of the attribute).
  2. Do you have any customization rule in the app definition? This is second reason what can happen - if customization rule is taking the last value and adding it to the result object. That would be good if you can also provide if there are any customization rules for this JDBC app.

Hi,

  1. There isn’t, and I want to clear the attribute, it’s null on the source
  2. Yes I have, but in this case is different, what occurs is that in the source since the field/column is null is not instanciated, and so I keep the old vaue on identityiq side, that was first filled when the source had an value. Maybe in this rule I can do some kind of if null then value=“”

I was expecting identityiq to deal with “null values” on attribute mapping and spread them across, the problem is if it’s null it simple “don’t appear”

I would build a BuildMap or Customization rule for the application to check if the attribute is not provided (thus is NULL) and add the attribute with an empty string.

The customization rule is the simplest to work with. A snippet (untested) for this would be:

if (object.getString("attribute") == null) {
  object.setAttribute("attribute","");
}
return object

Here the attribute is the attribute which might become null/

– Remold

1 Like

Hi,

tks, I will make this change and test to check if it’s ok.

Hello Paulo, did the customisation rule work for your use case. Just to be clear you want an empty string “” for any null value attribute value coming in from the database right? I hope the logic which Remold has shared works for you. its pretty straight forward and the best way to deal with these use cases - " if data coming in is x then in SP make it y"

Paulo,

Just seeing this. The correct OOTB behavior is that if the source attribute disappears, the identity attribute should be nulled out. Hard to believe that it’s not doing that. Normally we have to force the old value to retain.

One way to troubleshoot this is to replace the direct attribute source with an application rule that reads that value from the link and return that value, with null checking and log.debug statements that would show you the value it’s getting and also indicate that the rule is being called. That’s how I troubleshoot issues like this.

Remold’s suggestion is good but I would suggest log.debug statements to indicate the logic paths that are being taken. Are you familiar with log4j logging in SailPoint?

Just to clarify the source attribute does not disappears, this is based on a SQL Statement so what happens is that column had a value before and now comes with “null value”, if I look at the logs in debug level I can see in the XML Attributes for the column with null are “ommited”, so it appears that is the “default behaviour” at least in the version I am, Remold suggestion works, of course it would be better to had an option to “force update to empty string” when null values…

Regards,

Paulo Torrinha

Hi @PTCGD,

I am glad the workaround works. NULL is always a special thinghy and requires additional work :frowning:

Can you mark the post with the answer as the solution, so future readers are directly pointed at the correct post? Thanks!

– Remold

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.