Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

Getting Entvalukey:Null error in mapping Account to Entitlement - REST

Jaya
Regular Contributor II
Regular Contributor II

Please see below error messages for REST -

Error in Acct - Ent mapping-

Jaya_0-1697470910804.png

Error in importing entitlements-

Jaya_1-1697471211338.png

 

Only account import is successful, please suggest some solutions to import entitlement & to map them with imported accounts.

Response for call in acctEntParams(for now I just have written json for groupid(usergroup) mapping not for Roles- 

 
Spoiler
{
    "id"115299.0,
    "first""abc",
    "last""xyz",
    "email""abc",
    "isActive""false",
    "isAdmin""false",
    "groupid": [
        {
            "ID""bcab20d6-d5aa-4bcd-8395-04a6ef407f45",
            "name""Control Owner & Delegate (Limited User)"
        },
        {
            "ID""f1b5b383-52ab-419d-b229-4f6fef4348ce",
            "name""Incident Owner"
        }
    ],
    "role": [
        {
            "ID""266b96a9-bd52-4adf-a6d7-6c709aebf5a1",
            "name""Additional Access"
        },
        {
            "ID""f85b6a88-35fb-4c90-953b-b6f8d30bea50",
            "name""All Master Records - IM"
        }
    ],
    "ExternalReferenceID""xx"
}
 

ImportAcctEntjson-

Spoiler
{"accountParams":{"connection":"userAuth","processingType":"SequentialAndIterative","call":{"call1":{"callOrder":1,"listField":"data","keyField":"accountID","statusConfig": {
"active": "true",
"inactive": "false"
},"disableDeletedAccounts":true,"http":{"url":"https://xxx.com/users","httpMethod":"GET","httpContentType":"application/json","httpHeaders":{"API-Token":"xxx"}},"colsToPropsMap":{"accountID":"id~#~int","customproperty2":"last~#~char","customproperty1":"first~#~char","name":"email~#~char","status":"isActive~#~bool"}}}},
"entitlementParams":{"processingType":"SequentialAndIterative","entTypes":{"Usergroups":{"entTypeOrder":1,"call":{"call1":{"callOrder":1,"connection":"userAuth","listField":"data","keyField":"entitlementID","disableDeletedEntitlements":true,"http":{"url":"https://xxx.com/groups","httpMethod":"GET","httpContentType":"application/json","httpHeaders":{"API-Token":"xxx"}},"colsToPropsMap":{"entitlementID":"id~#~char","description":"description~#~char","entitlement_value":"name~#~char"}}}},"Roles":{"entTypeOrder":1,"call":{"call1":{"callOrder":1,"connection":"userAuth","listField":"data","keyField":"entitlementID","disableDeletedEntitlements":true,"http":{"url":"xxx.com/roles","httpMethod":"GET","httpContentType":"application/json","httpHeaders":{"API-Token":"xxx"}},"colsToPropsMap":{"entitlementID":"id~#~char","description":"description~#~char","entitlement_value":"name~#~char"}}}}}},
"acctEntParams":{"entTypes":{"Usergroups":{"call":{"call1":{"processingType":"httpAcctToEnt","connection":"userAuth","acctKeyField":"accountID","entKeyField":"entitlementID","acctIdPath":"id","entIdPath":"groupid.ID","http":{"url":"xxx.com/user/${id}","httpMethod":"GET","httpContentType":"application/json","httpHeaders":{"API-Token":"xxx"}}}}}}}}

 

Thanks
Jaya Karothia
13 REPLIES 13

sk
All-Star
All-Star

@Jaya : Can you please share the sample response for entitlements call?


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.

Jaya
Regular Contributor II
Regular Contributor II

Hi Saathvik,

PFB response for GET- Usergroups

{
    "data": [
        {
            "id"213096,
            "name""Administrator (Vendor Risk Management)",
            "description""Join this role to be given entire access to the entire Vendor Risk Management Application, related Object Types, and their workflows. All forms will display all possible fields, formulas, relationships, references, and actions. This role will also have access to archived Object Types,  \n\nMembership to this role should be temporary.\n\n",
            "numberOfUsers""0"
        },
        {
            "id"213097,
            "name""Incident Supervisor",
            "description""",
            "numberOfUsers""0"
        },
        {
            "id"213098,
            "name""Security Operations Supervisor",
            "description""",
            "numberOfUsers""0"
        }]}
Thanks
Jaya Karothia

@Jaya : Try below JSON

{
    "accountParams": {
        "connection": "userAuth",
        "processingType": "SequentialAndIterative",
        "call": {
            "call1": {
                "callOrder": 1,
                "listField": "data",
                "keyField": "accountID",
                "statusConfig": {
                    "active": "true",
                    "inactive": "false"
                },
                "disableDeletedAccounts": true,
                "http": {
                    "url": "https://xxx.com/users",
                    "httpMethod": "GET",
                    "httpContentType": "application/json",
                    "httpHeaders": {
                        "API-Token": "xxx"
                    }
                },
                "colsToPropsMap": {
                    "accountID": "id~#~int",
                    "customproperty2": "last~#~char",
                    "customproperty1": "first~#~char",
                    "name": "email~#~char",
                    "status": "isActive~#~bool"
                }
            }
        }
    },
    "entitlementParams": {
        "processingType": "SequentialAndIterative",
        "entTypes": {
            "Usergroups": {
                "entTypeOrder": 1,
                "call": {
                    "call1": {
                        "callOrder": 1,
                        "connection": "userAuth",
                        "listField": "data",
                        "keyField": "entitlementID",
                        "disableDeletedEntitlements": true,
                        "http": {
                            "url": "https://xxx.com/groups",
                            "httpMethod": "GET",
                            "httpContentType": "application/json",
                            "httpHeaders": {
                                "API-Token": "xxx"
                            }
                        },
                        "colsToPropsMap": {
                            "entitlementID": "id~#~char",
                            "description": "description~#~char",
                            "entitlement_value": "name~#~char"
                        }
                    }
                }
            },
            "Roles": {
                "entTypeOrder": 1,
                "call": {
                    "call1": {
                        "callOrder": 1,
                        "connection": "userAuth",
                        "listField": "data",
                        "keyField": "entitlementID",
                        "disableDeletedEntitlements": true,
                        "http": {
                            "url": "xxx.com/roles",
                            "httpMethod": "GET",
                            "httpContentType": "application/json",
                            "httpHeaders": {
                                "API-Token": "xxx"
                            }
                        },
                        "colsToPropsMap": {
                            "entitlementID": "id~#~char",
                            "description": "description~#~char",
                            "entitlement_value": "name~#~char"
                        }
                    }
                }
            }
        }
    },
    "acctEntParams": {
        "entTypes": {
            "Usergroups": {
                "call": {
                    "call1": {
                        "processingType": "httpAcctToEnt",
                        "connection": "userAuth",
                        "acctKeyField": "accountID",
                        "entKeyField": "entitlementID",
                        "listField": "",
                        "entIdPath": "groupid.ID",
                        "http": {
                            "url": "xxx.com/user/${id}",
                            "httpMethod": "GET",
                            "httpContentType": "application/json",
                            "httpHeaders": {
                                "API-Token": "xxx"
                            }
                        }
                    }
                }
            }
        }
    }
}

 


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.

Jaya
Regular Contributor II
Regular Contributor II

Hi Saathvik,

We are still getting same error . PFB screenshot.

Jaya_0-1698232819077.png

 

Thanks
Jaya Karothia

flucas
Saviynt Employee
Saviynt Employee

Hi Saathvik, could you maybe help Jaya further below? They are still facing same issue. Thanks in advance!

 

nimitdave
Saviynt Employee
Saviynt Employee

@Jaya , lets start with entitlements import. Use {"showLogs" = true} in configjson to check the response for the roles call and see if all the roles have id and name populated. From error it looks like some values in response do not have name or id is null/empty.

Jaya
Regular Contributor II
Regular Contributor II

H Nimit,

I have added suggested config Json code in the connection & could see entitlement import is successful.

Jaya_0-1699527298809.png

After this when we enter in acctEntParams mapping , I am getting the entitlement value tagged to the user in response-

Jaya_1-1699527805952.png

But after this it still says Entvalukey:Null

Jaya_2-1699527857363.png

 

 

Thanks
Jaya Karothia

nimitdave
Saviynt Employee
Saviynt Employee

@Jaya , did you try with below in acctentmapping for usergroups?

"listField": "groupid",
"entIdPath": "ID",

Jaya
Regular Contributor II
Regular Contributor II

Yesssss Its working now with these changes.

Thank you so much for your help Namit.

 

Thanks
Jaya Karothia

Jaya
Regular Contributor II
Regular Contributor II

@nimitdave 

Need help with one more thing-

In disable account call - body should be in below format as suggested by application team - 

{

"email":"string"

}

And I am passing http parameters as below, In logs it shows error - email must be present but I could see API call is able to pick email ID, so what could be the issue.

Do I have to include double quotes? Please help.

"httpParams":"{\"email\":\"${account.name}\"}"

Jaya_0-1699627365932.png

In postman it is successful -

Jaya_1-1699627678279.png

 

 

Thanks
Jaya Karothia

sk
All-Star
All-Star

@Jaya : Can you replace your http method to this and try

"httpMethod": "DELETEWITHBODY"

 


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.

Jaya
Regular Contributor II
Regular Contributor II

Superb...It worked. Thankyou Saathvik.

 

Thanks
Jaya Karothia

Great can you please mark it as solution so that it helps others as well.


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.