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

REST Entitlements Importing issue

IAM_99
Regular Contributor II
Regular Contributor II

Hi,

We are importing entitlements

Postman response (attached full response )

~~~~~~~~~~~~~~~~~

IAM_99_1-1678340641324.png

 

Importentjosn

~~~~~~~~~~~~~~~~~~~~~~~

 

"entitlementParams": {
"processingType": "SequentialAndIterative",
"entTypes": {
"Entitlements13": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"connection": "userAuth",
"listField": "users",
"keyField": "entitlementID",
"http": {
"url": "https://xxxxxxxxxx/api/v1/users",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"httpContentType": "application/json"
},
"colsToPropsMap": {
"entitlementID": "#CONST#${String data1 = response.product_roles.product_id; String data2 = response.product_roles.role; ret = data1 + \"_\" + data2; return ret}~#~char",
"entitlement_value": "#CONST#${String data1 = response.product_roles.product_name; String data2 = response.product_roles.role_description; ret = data1 + \"_\" + data2; return ret}~#~char",
"customproperty1": "product_roles.product_id~#~char",
"customproperty2": "product_roles.role~#~char",
"customproperty3": "product_roles.product_name~#~char",
"customproperty4": "product_roles.role_description~#~char"
},
"pagination": {
"page": {
"pageSizeParam": "per_page",
"pageSize": 20,
"pageRecordCount": "20",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.pagination.total_records",
"firstPageNumber": 1
}
}
}
}
}
}
},

 

Imported Entitlements like below 

~~~~~~~~~~~~~~~~~~

IAM_99_0-1678340532990.png

 

If we try  below - it picks first object only - created 2 entitlements ( above postman response screen)

product_roles[0].product_id

 

IAM_99_2-1678341222314.png

 

 

Can you let me know what is the correct syntax get all entitlements properly like above ?

 

 

8 REPLIES 8

IAM_99
Regular Contributor II
Regular Contributor II
 

SB
Saviynt Employee
Saviynt Employee

Can you check if there is a separate url to get the list of all entitlements as a consolidation. I can see from the screenshot that it is the users api. 


Regards,
Sahil

IAM_99
Regular Contributor II
Regular Contributor II

We have api for Products only  , for rolse we dont have seperate api

SB
Saviynt Employee
Saviynt Employee

Does the Product api call include the information of all available roles in the application? Can you also confirm the target application you are trying to integrate with.


Regards,
Sahil

IAM_99
Regular Contributor II
Regular Contributor II

no ,product api will only have association with products only.

its called 'Aha' (aha.io)

SB
Saviynt Employee
Saviynt Employee

What I understand is the url for users is also the one that will get us the list of all entitlements(roles) that need to imported. For this you can refer to the example of http under Processing Types section in the REST Guide and construct the json accordingly.

https://docs.saviyntcloud.com/bundle/REST-v2020x/page/Content/Developers-Handbook.htm


Regards,
Sahil

IAM_99
Regular Contributor II
Regular Contributor II

Thanks for the response,

we have tried all processing types like http, acctToEntMapping etc , it was creating entitlements(with combining 2 attributes) and accounts but not associations.

trying to achieve like below

IAM_99_0-1678792179127.png

 

importJSON

~~~~~~~~~~~~~~~~

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxx-xxxxx-xxxx/api/v1/users",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"httpContentType": "application/json"
},
"listField": "users",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "id~#~char",
"name": "email~#~char",
"displayName": "name~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"pagination": {
"page": {
"pageSizeParam": "per_page",
"pageSize": 50,
"pageRecordCount": "50",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.pagination.total_records",
"firstPageNumber": 1
}
}
}
},
"acctEntMappings": {
"Entitlements19": {
"listPath": "users.product_roles",
"idPath": "#CONST#${String data1 = response.product_id; String data2 = response.role; ret = data1 + \"_\" + data2; return ret}~#~char",
"keyField": "entitlementID"
}
}
},
"entitlementParams": {
"processingType": "SequentialAndIterative",
"entTypes": {
"Entitlements19": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"connection": "userAuth",
"listField": "users",
"keyField": "entitlementID",
"http": {
"url": "https://xxxxx-xxxxx-xxxx/api/v1/users",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"httpContentType": "application/json"
},
"colsToPropsMap": {
"entitlementID": "#CONST#${String data1 = response.product_roles[0].product_id; String data2 = response.product_roles[0].role; ret = data1 + \"_\" + data2; return ret}~#~char",
"entitlement_value": "#CONST#${String data1 = response.product_roles[0].product_name; String data2 = response.product_roles[0].role_description; ret = data1 + \"_\" + data2; return ret}~#~char",
"customproperty1": "product_roles[0].product_id~#~char",
"customproperty2": "product_roles[0].role~#~char",
"customproperty3": "product_roles[0].product_name~#~char",
"customproperty4": "product_roles[0].role_description~#~char",
"customproperty5": "product_roles[0].role_description~#~char"
},
"pagination": {
"page": {
"pageSizeParam": "per_page",
"pageSize": 20,
"pageRecordCount": "20",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.pagination.total_records",
"firstPageNumber": 1
}
}
}
}
}
}
},
"acctEntParams": {
"connection": "userAuth",
"successResponses": {
"statusCode": [200, 201, 202, 203, 204, 205]
},
"unsuccessResponses": null,
"entTypes": {
"Entitlements19": {
"call": {
"call1": {
"processingType": "acctToEntMapping"
}
}
}
},
"http": {
"url": "https://xxxxx-xxxxx-xxxx/api/v1/users",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"httpContentType": "application/json"
},
"listField": "users",
"entKeyField": "entitlementID",
"acctIdPath": "id",
"acctKeyField": "accountID"
}
}

SB
Saviynt Employee
Saviynt Employee

The import with concatenation is currently not supported. The entitlements will get imported but the mapping will not work. If this is needed, you can log it as an enhancement in the ideas portal. https://ideas.saviynt.com


Regards,
Sahil