JOB_FAMILY Filyer in Workday Source configuration

Hi Team,

I have configured the filter below in my Workday source to look at accounts with only the JOB_FAMILY of TEST_FAMILY. The aggregation is successful but pulls in none of the test accounts I have with this job family. Any thoughts on what may be amiss?

[
  {
    "op": "replace",
    "path": "/connectorAttributes/filterString",
    "value": "( JOB_FAMILY != \"TEST_FAMILY\" )"
  }
]

Hi Mavin,

If I am understanding correctly, it seems it’s expected that none of the accounts with JOB_FAMILY as TEST_FAMILY will be aggregated because the operator used is Not Equals (!=). If you want to aggregate only TEST_FAMILY accounts, you can use Equals (==) operator.

[
  {
    "op": "replace",
    "path": "/connectorAttributes/filterString",
    "value": "( JOB_FAMILY == \"TEST_FAMILY\" )"
  }
]

Sorry if I have misunderstood the situation.

This link might be useful for Account aggregation filtering - IdentityNow Account Filtering during Account Aggregation - Compass (sailpoint.com)

Hi Shailee,

Thanks for chiming in. Yes you are tracking with the use case I described. I have the same understanding that the ‘!=’ does not return the Job Family listed in the filter…it returns no accounts. However - when I use the ‘==’ it returns all the accounts - instead of the accounts I want to filter. It appears to do the opposite. Perhaps it’s not represented correctly in the target system maybe?

Hi Marvin,

I am not sure if this would work, but worth trying :

Instead of filterString, can you try account.filterString

[
  {
    "op": "replace",
    "path": "/connectorAttributes/account.filterString",
    "value": "( JOB_FAMILY == \"TEST_FAMILY\" )"
  }
]

Hi Shailee,

I was able to get the desired result with the filter below. Notice I added Negation (!) at the beginning of the value for it to filter the accounts I wanted it to aggregate. The condition passed.

This is a bit puzzling and opposite of the documentation below.

Usually a negation would work if the we see the Inner Condition: plaintext JOB_FAMILY != "TEST_JOB_FAMILY"

However, to make it work for me I had to do the opposite of the inner condition and make the Inner condition "== or true See below.

[
  {
    "op": "replace",
    "path": "/connectorAttributes/filterString",
    "value": "!(JOB_FAMILY == \"TEST_FAMILY\" )"
  }
]

Needless to say - it took a little grinding to get to this discovery and it works exactly like I need it to. Thanks for the assist. You pointed me in the right direction my friend.

Hi Mavin,

Yes its strange that != is not working but !(==) does the work.

Glad that you could figure it out! Thanks for sharing the solution also.

Thanks,
Shailee