Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Entitlement isn't pushed while creating a user (Coupa)

Iabdelmoneim
New Contributor
New Contributor

Dear Team,

We have the below setup while raising a request for new user for Coupa 

Screenshot 2024-10-03 at 23.20.01.png

Screenshot 2024-10-03 at 23.21.06.png

Screenshot 2024-10-03 at 23.21.51.png

So you get to select multiple entitlements while raising create user and one of them is Account Group and for this specific one so it can be passed and reflected to coupa if we add to CREATE account json the following syntax  

",\"account-security-type\":\"2\",\"account-groups\": [{\"name\": \"\"} and in the name of the account  groups
 
we need to select the name of the entitlement that was selected in the request, I have tried with multiple ways but still doesn't work.  I just need for example if user selects ECCO Sko A/S 0100 so it will pass as this so I need to know how can I take this value. 
 
Below are entitlements types we have and setup. 
 
Screenshot 2024-10-03 at 23.26.02.png
 
Please find the below current JSON 
 
{
"accountIdPath": "call1.message.id",
"responseColsToPropsMap": {
"name": "call1.message.login~#~char",
"status": "call1.message.active~#~char",
"customproperty1": "call1.message.email~#~char",
"customproperty2": "call1.message.firstname~#~char",
"customproperty3": "call1.message.lastname~#~char",
"customproperty4": "call1.message.mention-name~#~char",
"customproperty5": "call1.message.active~#~char",
"customproperty7": "call1.message.active~#~char",
"customproperty14": "call1.message.created-at~#~char",
"customproperty15": "call1.message.sso-identifier~#~char",
"employeeid": "call1.message.employee-number~#~char",
"customproperty17": "call1.message.expense-user~#~char",
"customproperty18": "call1.message.sourcing-user~#~char",
"customproperty19": "call1.message.inventory-user~#~char",
"customproperty20": "call1.message.contracts-user~#~char",
"customproperty21": "call1.message.analytics-user~#~char",
"customproperty22": "call1.message.aic-user~#~char",
"customproperty23": "call1.message.spend-guard-user~#~char",
"customproperty24": "call1.message.ccw-user~#~char",
"customproperty25": "call1.message.clm-advanced-user~#~char",
"customproperty26": "call1.message.supply-chain-user~#~char",
"customproperty27": "call1.message.default-currency.code~#~char",
"customproperty28": "call1.message.default-address.street1~#~char",
"customproperty29": "call1.message.default-address.city~#~char",
"customproperty30": "call1.message.default-address.country.name~#~char",
"customproperty31": "call1.message.STORE#ACC#ENT#MAPPINGINFO~#~char",
"customproperty32": "call1.message.default-account.code~#~char",
"customproperty33": "call1.message.account-groups.name~#~char",
"costcenter": "call1.message.cost-center~#~char"
},
"call": [
{
"name": "call1",
"connection": "acctAuth",
"url": "https://domain-test.coupahost.com/api/users",
"httpMethod": "POST",
"httpParams": "{\"login\":\"${user.email}\",\"sso-identifier\":\"${user.email}\",\"authentication-method\":\"SAML\",\"email\":\"${user.email}\",\"firstname\":\"${user.firstname}\",\"lastname\":\"${user.lastname}\",\"fullname\":\"${user.displayname}\",\"default-address\":{\"country\":{\"code\":\"${user.country}\"},\"city\":\"${user.city}\",\"street1\":\"${user.street}\",\"postal-code\":\"${user.customproperty31 != null ? user.customproperty31 : 'null'}\"},\"default-account\":{\"segment-1\":\"${user.orgunitid}\",\"segment-2\":\"${user.costcenter}\",\"segment-6\":\"${user.orgunitid}\",\"account-type\":{\"name\":\"${user.orgunitid}\"}},\"default-currency\":{\"code\":\"${user.country=='DK' ? 'DKK' : user.country=='PL' ? 'PLN' : 'EUR'}\",\"id\":\"${user.country=='DK' ? '39' : user.country=='PL' ? '119' : ''}\"},\"employee-number\":\"${user.employeeid}\",\"cost-center\":\"${user.costcenter}\",\"account-security-type\":\"2\",\"account-groups\":[{\"name\":\"${requestAccessAttributes.get('Account Group')}\"}]}",
"httpHeaders": {
"accessToken": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"successResponses": {
"statusCode": [200, 201]
}
}
]
}
 
Please we need urgent advice since is already live and we need to fix this asap.
 
Thank you!
 

 

13 REPLIES 13

NM
Honored Contributor II
Honored Contributor II

Hi @Iabdelmoneim entitlement values are exposed in created account json.

As a workaround you can create an dynamic attribute listing the entitlement values and whichever user selects pass the same.

Iabdelmoneim
New Contributor
New Contributor

Hi,

 

Thank you for your response!

 

and what are the best values to pass in my DA in my case so it can reflect on that account group

 

Screenshot 2024-10-04 at 09.17.01.png

Screenshot 2024-10-04 at 09.17.39.png

 

Thank you in advance!

NM
Honored Contributor II
Honored Contributor II

@Iabdelmoneim okay so request type will be account

Attribute type will be single select SQL

Value you will write a query which will pick all the entitlement from entitlement type (account group)

You can refer saviynt doc for DA creation as well.

Iabdelmoneim
New Contributor
New Contributor

Can you please suggest a query ?

NM
Honored Contributor II
Honored Contributor II

@Iabdelmoneim 

Select ev.entitlement_value from entitlement_values ev where ev.entitlementtype=(account group entitlementtype)

Sample query.

Iabdelmoneim
New Contributor
New Contributor

Hi,

I used as you mentioned and I am getting the below error while raising a request 

Configuration error found with attribute : Account_Group. Please contact your administrator.
Close

Screenshot 2024-10-04 at 09.48.55.png

Screenshot 2024-10-04 at 09.49.04.png

 query: Select ev.entitlement_value from entitlement_values ev where ev.entitlementtype=(account group)

and JSON 

 

{
"accountIdPath": "call1.message.id",
"responseColsToPropsMap": {
"name": "call1.message.login~#~char",
"status": "call1.message.active~#~char",
"customproperty1": "call1.message.email~#~char",
"customproperty2": "call1.message.firstname~#~char",
"customproperty3": "call1.message.lastname~#~char",
"customproperty4": "call1.message.mention-name~#~char",
"customproperty5": "call1.message.active~#~char",
"customproperty7": "call1.message.active~#~char",
"customproperty14": "call1.message.created-at~#~char",
"customproperty15": "call1.message.sso-identifier~#~char",
"employeeid": "call1.message.employee-number~#~char",
"customproperty17": "call1.message.expense-user~#~char",
"customproperty18": "call1.message.sourcing-user~#~char",
"customproperty19": "call1.message.inventory-user~#~char",
"customproperty20": "call1.message.contracts-user~#~char",
"customproperty21": "call1.message.analytics-user~#~char",
"customproperty22": "call1.message.aic-user~#~char",
"customproperty23": "call1.message.spend-guard-user~#~char",
"customproperty24": "call1.message.ccw-user~#~char",
"customproperty25": "call1.message.clm-advanced-user~#~char",
"customproperty26": "call1.message.supply-chain-user~#~char",
"customproperty27": "call1.message.default-currency.code~#~char",
"customproperty28": "call1.message.default-address.street1~#~char",
"customproperty29": "call1.message.default-address.city~#~char",
"customproperty30": "call1.message.default-address.country.name~#~char",
"customproperty31": "call1.message.STORE#ACC#ENT#MAPPINGINFO~#~char",
"customproperty32": "call1.message.default-account.code~#~char",
"customproperty33": "call1.message.account-groups.name~#~char",
"costcenter": "call1.message.cost-center~#~char"
},
"call": [
{
"name": "call1",
"connection": "acctAuth",
"url": "https://-test.coupahost.com/api/users",
"httpMethod": "POST",
"httpParams": "{\"login\":\"${user.email}\",\"sso-identifier\":\"${user.email}\",\"authentication-method\":\"SAML\",\"email\":\"${user.email}\",\"firstname\":\"${user.firstname}\",\"lastname\":\"${user.lastname}\",\"fullname\":\"${user.displayname}\",\"default-address\":{\"country\":{\"code\":\"${user.country}\"},\"city\":\"${user.city}\",\"street1\":\"${user.street}\",\"postal-code\":\"${user.customproperty31 != null ? user.customproperty31 : 'null'}\"},\"default-account\":{\"segment-1\":\"${user.orgunitid}\",\"segment-2\":\"${user.costcenter}\",\"segment-6\":\"${user.orgunitid}\",\"account-type\":{\"name\":\"${user.orgunitid}\"}},\"default-currency\":{\"code\":\"${user.country=='DK' ? 'DKK' : user.country=='PL' ? 'PLN' : 'EUR'}\",\"id\":\"${user.country=='DK' ? '39' : user.country=='PL' ? '119' : ''}\"},\"employee-number\":\"${user.employeeid}\",\"cost-center\":\"${user.costcenter}\",\"account-security-type\":\"2\",\"account-groups\":[{\"name\":\"${requestAccessAttributes.get('Account Group')}\"}]}",
"httpHeaders": {
"accessToken": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"successResponses": {
"statusCode": [200, 201]
}
}
]
}

So i passed it as this ",\"account-groups\":[{\"name\":\"${requestAccessAttributes.get('Account Group')}\"}]}",

so if you can advise !

Thanks

NM
Honored Contributor II
Honored Contributor II

@Iabdelmoneim use below query

Select ev.entitlement_value as ID from entitlement_values ev where ev.entitlementtype in (add account group entitlement type query here)

 

Iabdelmoneim
New Contributor
New Contributor

Select ev.entitlement_value as ID from entitlement_values ev where ev.entitlementtype in (select entitlementname from ENTITLEMENT_VALUES WHERE entitlementtype = "Account Group")

I used the above but still getting below 

Configuration error found with attribute : Account_Group. Please contact your administrator.
Close

NM
Honored Contributor II
Honored Contributor II

@Iabdelmoneim you are using the same entitlement_values table use entitlement type table 

Iabdelmoneim
New Contributor
New Contributor

Select ev.entitlement_value as ID from entitlement_values ev where ev.entitlementtype in (select ENTITLEMENTNAME, DISPLAYNAME from entitlement_types WHERE DISPLAYNAME = "Account Group") I used this and still getting 

Configuration error found with attribute : Account_Group. Please contact your administrator.
Close

NM
Honored Contributor II
Honored Contributor II

@Iabdelmoneim try this query 

Select ev.entitlement_value as ID from entitlement_values ev where ev.entitlementtypekey in (select entitlementtypekey, from entitlement_types WHERE DISPLAYNAME = 'Account Group')

Iabdelmoneim
New Contributor
New Contributor

Dear,

 

I am still getting 

Configuration error found with attribute : Account_Group. Please contact your administrator.
Close
 
So please if you can advise 
 
Thanks!

Your attribute have underscore.

",\"account-groups\":[{\"name\":\"${requestAccessAttributes.get('Account_Group')}\"}]}",


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.