Account Attribute Transform Help

Hello all,

I have been asked to address an issue in our tenant where a user is in 2 HR sources. When the high priority HR source account is disabled then grab the attribute from the second HR source and populate it on the cube so that the down stream systems have correct data. The asked has been focused to Manger so that the approval from Service Now are flowing to the correct manager. Accounts for HR source 1 are deleted 30 days after the account goes disabled and this would be addressed at that time. I have been asked to solve for the 30 day period where the account is in limbo as the HR source 1 is still on the cube.

I tried to address this with a transform for the manger attribute on the primary source identity profile. When I applied the transform to a new attribute created for testing this transform I am getting error message. The message is not very clear and I reviewed the transform over multiple times and I am not seeing why I would be getting this error message.

Any ideas what I am doing wrong? I have validated sourceName and attributeName for each of the values.

Transform

{
    "id": "REMOVED",
    "name": "Calculate DualSource Manager",
    "type": "accountAttribute",
    "attributes": {
        "requiresPeriodicRefresh": "true",
        "WorkdayTerm": {
            "attributes": {
                "sourceName": "Workday Production Sandbox",
                "attributeName": "TERMINATED__c"
            },
            "type": "accountAttribute"
        },
        "SecZettaManager": {
            "attributes": {
                "sourceName": "SecZetta Assignments",
                "attributeName": "assignment_manager"
            },
            "type": "accountAttribute"
        },
        "WorkdayManager": {
            "attributes": {
                "sourceName": "Workday Production Sandbox",
                "attributeName": "Manager UserID__c"
            },
            "type": "accountAttribute"
        },
        "value": "#if($WorkdayTerm.equals(\"1\"))$SecZettaManager #{else}$WorkdayManager #end"
    },
    "internal": false
}

ERROR Message:

There was an exception while calculating the value for this attribute. Error during transformation for attribute: managerDualSource (Transform ID: Calculate DualSource Manager) Cause: Error running account attribute transform for attribute 'null' on identity 'null' :java.lang.IllegalStateException: Unable to query for applications id in the account attribute transform neither sourceId or sourceName specified.

Hi @mpotti
A high level suggestion could be , If you are using logical conditions , I suggest you to use Static transform as main transform , additionally I suggest you to use firstValid to counter any null value.

1 Like

Hi Mark,
Can you try the below transform which handles the null issue by using firstValid transform and handles the conditional check in static transform.

{
    "id": "REMOVED",
    "name": "Calculate DualSource Manager",
    "type": "static",
    "attributes": {
        "workdayTerm": {
            "attributes": {
                "values": [
                    {
                        "attributes": {
                            "attributeName": "TERMINATED__c",
                            "sourceName": "Workday Production Sandbox"
                        },
                        "type": "accountAttribute"
                    },
                    "none"
                ]
            },
            "type": "firstValid"
        },
        "secZettaManager": {
            "attributes": {
                "values": [
                    {
                        "attributes": {
                            "attributeName": "assignment_manager",
                            "sourceName": "SecZetta Assignments"
                        },
                        "type": "accountAttribute"
                    },
                    "none"
                ]
            },
            "type": "firstValid"
        },
        "workdayManager": {
            "attributes": {
                "ignoreErrors": "true",
                "values": [
                    {
                        "attributes": {
                            "attributeName": "Manager UserID__c",
                            "sourceName": "Workday Production Sandbox"
                        },
                        "type": "accountAttribute"
                    },
                    "none"
                ]
            },
            "type": "firstValid"
        },
        "value": "#if($workdayTerm.equals(\"1\"))$secZettaManager#{else}$workdayManager#end"
    },
    "internal": false
}

Thank you both!!! This appears to be working now.

I have run into another snag with this transform. I need to be able to call a rule in order to look up the ID for the manager. I need to do a look up on rule getReferenceIdentityAttribute in order to extrach EEID for manager so that it shows properly on cube.

Transform:

{
    "id": "REMOVED",
    "name": "Calculate DualSource Manager 2",
    "type": "static",
    "attributes": {
        "workdayTerm": {
            "attributes": {
                "values": [
                    {
                        "attributes": {
                            "attributeName": "TERMINATED__c",
                            "sourceName": "Workday Production Sandbox"
                        },
                        "type": "accountAttribute"
                    },
                    "none"
                ]
            },
            "type": "firstValid"
        },
        "secZettaManager": {
            "attributes": {
                "values": [
                    {
                        "attributes": {
                            "attributeName": "manager_email",
                            "sourceName": "SecZetta"
                        },
                        "type": "accountAttribute"
                    },
                    "none"
                ]
            },
            "type": "firstValid"
        },
        "secZettaManagerID": {
            "attributes": {
                "values": [
                    {
                        "attributes": {
                            "name": "Cloud Services Deployment Utility",
                            "operation": "getReferenceIdentityAttribute",
                            "uid": "manager",
                            "attributeName": "identificationNumber",
                            "input": {
                                "value": "$secZettaManager"
                            }
                        },
                        "type": "rule"
                    },
                    "none"
                ]
            },
            "type": "firstValid"
        },
        "workdayManager": {
            "attributes": {
                "ignoreErrors": "true",
                "values": [
                    {
                        "attributes": {
                            "attributeName": "Manager UserID__c",
                            "sourceName": "Workday Production Sandbox"
                        },
                        "type": "accountAttribute"
                    },
                    "none"
                ]
            },
            "type": "firstValid"
        },
        "value": "#if($workdayTerm.equals(\"1\"))$secZettaManagerID#{else}$workdayManager#end"
    },
    "internal": false
}

Screen Print of SecZetta Source Config:

Transform Referenced in Config:

{
    "id": "Removed",
    "name": "Transform - ManagerEmployeeNumber - SecZetta",
    "type": "rule",
    "attributes": {
        "name": "Cloud Services Deployment Utility",
        "operation": "getReferenceIdentityAttribute",
        "uid": "manager",
        "attributeName": "identificationNumber"
    },
    "internal": false
}

Output in Identity Profile:

{A341871A-FBE0-4BC0-ACE4-1FFEBC72AF8B}

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