Tranforms: how to make attribute updated value be refreshed - i dont see it -periodic refresh is not showing the changes dynamically or any correction needs to be done on this transform?

@jesvin90 , @colin_mckibben

Based on level attribute value transform should manipulate and reflect new amount from table. let say a user level was 9 then amount should be “0” and when their is any update on user level lets be 11 then approval limit should should “50000” - dynamic value. How can i achieve this refresh and periodic refresh is only by evening and not instantaneous ?

{
“id”: “8123”-32423-34534,
“name”: " expense approval limit”,
“type”: “lookup”,
“attributes”: {
“input”: {
“type”: “firstValid”,
“attributes”: {
“values”: [
{
“attributes”: {
“name”: “level”
},
“type”: “identityAttribute”
},
“noLevelSet”
]
}
},
“table”: {
“1”: “0”,
“2”: “0”,
“3”: “0”,
“4”: “0”,
“5”: “0”,
“6”: “0”,
“7”: “0”,
“8”: “0”,
“9”: “0”,
“10”: “20000”,
“11”: “50000”,
“12”: “100000”,
“13”: “200000”,
“14”: “200000”,
“15”: “2500000”,
“noLevelSet”: “0”,
“default”: “0”
}

    "requiresPeriodicRefresh": "true"
},
"internal": false

}

Change the logic based on the type “accountAttribute” and it should change immediately when you aggregated.

1 Like

Yes, assuming there is a modification on the aggregation for the source attribute.

Doing a periodic refresh should update at least once a day if you have to use the Identity attribute

using Account Attributes in your transforms is definitely the best practice unless there’s a solid reason to use an Identity Attribute, so I’m with @nandambk here.

also, for what it’s worth, you don’t need to specify all those 0 cases in the table, since that’s the default. you can simplify your transform to this:

{
    "name": "expense approval limit",
    "type": "lookup",
    "attributes": {
        "input": {
            "type": "firstValid",
            "attributes": {
                "values": [
                    {
                        "attributes": {
                            "sourceName": "sourceName",
                            "attributeName": "level"
                        },
                        "type": "accountAttribute"
                    },
                    "noLevelSet"
                ]
            }
        },
        "table": {
            "10": "20000",
            "11": "50000",
            "12": "100000",
            "13": "200000",
            "14": "200000",
            "15": "2500000",
            "default": "0"
        },
        "requiresPeriodicRefresh": "true"
    },
    "internal": false
}
1 Like

Hey @osmanmohammed
I don’t think you can defer refresh to a later point in time like that, so if that’s something you want, you may have to go for an alternative solution.

Your transform in this post seems to have some syntax errors, and as others have already specified, you should be avoiding the use of identity attribute transform in another identity attribute transform (if this is for one). @sup3rmark has an optimized and well written version of your transform which you could use, but again, it will refresh instantly on identity attribute refresh triggers, like the scheduled one from SailPoint or any manual identity profile refreshes.

If you cannot switch to account attributes for a reason and the identity attribute you’re using already has a transform, consider a reference transform to get the value instead of the identity attribute directly. That way the execution order will be predefined.

1 Like

Thanks alot, it looks a definite correction to my transform.
let me test this.

it worked.
Thank you so much @sup3rmark & @sushant1.

2 Likes

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