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

Associate account cp as entitlement

Jyoti1
Regular Contributor
Regular Contributor

Hi All

 

I am importing accounts  and entitlements are coming as accounts attributes-

Jyoti1_0-1688631436091.png

I have to associate functionalRole and SecurityRole as entitlement. Is this feasible. I tried this but this is not working

 

"Functional Roles1": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://test.highradius.com/api/iam/v1/users/allusers/list",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "user",
"entKeyField": "customproperty6",
"entIdPath": "id",
"acctKeyField": "accountID"
}
}
}

10 REPLIES 10

nimitdave
Saviynt Employee
Saviynt Employee

Yes, you need to acctToEntMapping  as processing types. The https://docs.saviyntcloud.com/bundle/REST-v55x/page/Content/Developers-Handbook.htm will help you.

Jyoti1
Regular Contributor
Regular Contributor

I checked here but it is not working.

Can you please share the ImportJSON?


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

Jyoti1
Regular Contributor
Regular Contributor

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty2",
"activeStatus": ["true"],
"deleteLinks": false,
"accountThresholdValue": 1000,
"correlateInactiveAccounts": true,
"inactivateAccountsNotInFile": false
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://cloud2-sbox-irapi.highradius.com/api/iam/v1/users/allusers/list",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json",
"startRecord": "0"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "user",
"keyField": "accountID",
"statusConfig": {
"active": "true",
"inactive": "false"
},
"colsToPropsMap": {
"accountID": "userName~#~char",
"name": "userName~#~char",
"customproperty1": "email~#~char",
"status": "active~#~char",
"customproperty2": "active~#~char",
"customproperty3": "firstName~#~char",
"customproperty4": "lastName~#~char",
"customproperty5": "securityRole~#~char",
"customproperty6": "functionalRole~#~char",
"customproperty7": "defaultMenu~#~char",
"customproperty8": "loginType~#~char",
"customproperty9":"lastLoggedTime~#~char"
},
"pagination": {
"offset": {
"batchSize": 500,
"totalCountPath": "headers.x-totalCount"
}
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Functional Roles1": {
"entTypeOrder": 0,
"entTypeLabels": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://cloud2-sbox-irapi.highradius.com/api/iam/v1/users/roles/functional/list",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "roles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "shortName~#~char",
"entitlement_value": "shortName~#~char",
"description ": "longName~#~char",
"customproperty2": "longName~#~char",
"customproperty3": "createUser:~#~char",
"customproperty4": "createTime:~#~date",
"customproperty5": "index~#~char"
},
"pagination": {
"offset": {
"offsetParam": "startRecord",
"batchParam": "limit",
"batchSize": 500,
"totalCountPath": "x-totalcount"
}
},
"disableDeletedEntitlements": true
}
}
},
"Security Roles1": {
"entTypeOrder": 1,
"entTypeLabels": {},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://cloud2-sbox-irapi.highradius.com/api/iam/v1/users/roles/list",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "roles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "shortName~#~char",
"entitlement_value": "shortName~#~char",
"description ": "longName~#~char",
"customproperty2": "longName~#~char",
"customproperty3": "createUser:~#~char",
"customproperty4": "createTime:~#~date",
"customproperty5": "index~#~char",
"customproperty6": "defaultMenu~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "limit",
"batchSize": 500,
"totalCountPath": "x-totalCount"
}
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"connection": "userAuth",
"entTypes": {
"Security Roles1": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://cloud2-sbox-irapi.highradius.com/api/iam/v1/users/allusers/list",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "user",
"entKeyField": "customproperty5",
"entIdPath": "id",
"acctKeyField": "accountID"
}
}
},
"Functional Roles1": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://cloud2-sbox-irapi.highradius.com/api/iam/v1/users/allusers/list",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "user",
"entKeyField": "customproperty6",
"entIdPath": "id",
"acctKeyField": "accountID"
}
}
}
}
}
}

Jyoti1
Regular Contributor
Regular Contributor

Hi sk

can you help on this

nimitdave
Saviynt Employee
Saviynt Employee

Please try below once:

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty2",
"activeStatus": [
"true"
],
"deleteLinks": false,
"accountThresholdValue": 1000,
"correlateInactiveAccounts": true,
"inactivateAccountsNotInFile": false
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://cloud2-sbox-irapi.highradius.com/api/iam/v1/users/allusers/list",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json",
"startRecord": "0"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "user",
"keyField": "accountID",
"statusConfig": {
"active": "true",
"inactive": "false"
},
"colsToPropsMap": {
"accountID": "userName~#~char",
"name": "userName~#~char",
"customproperty1": "email~#~char",
"status": "active~#~char",
"customproperty2": "active~#~char",
"customproperty3": "firstName~#~char",
"customproperty4": "lastName~#~char",
"customproperty5": "securityRole~#~char",
"customproperty6": "functionalRole~#~char",
"customproperty7": "defaultMenu~#~char",
"customproperty8": "loginType~#~char",
"customproperty9": "lastLoggedTime~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"pagination": {
"offset": {
"batchSize": 500,
"totalCountPath": "headers.x-totalCount"
}
}
}
},
"acctEntMappings": {
"FunctionalRole": {
"importAsEntitlement": true,
"listPath": "",
"idPath": "functionalRole",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "functionalRole~#~char",
"entitlement_value": "functionalRole~#~char"
}
},
"SecurityRole": {
"importAsEntitlement": true,
"listPath": "",
"idPath": "securityRole",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "securityRole~#~char",
"entitlement_value": "securityRole~#~char"
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"FunctionalRole": {
"entTypeOrder": 0
},
"SecurityRole": {
"entTypeOrder": 1
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}

Jyoti1
Regular Contributor
Regular Contributor

Hi Nimit

This is not working-

but i see cp31 like this

{"SecurityRole":{"entIds":["Kraft EU - View Only role"],"keyField":"entitlementID"},"FunctionalRole":{"entIds":["View Only role"],"keyField":"entitlementID"}}

 

logs-

 

visioningService - Inside importAccountsFull:persistEntObjects, pptTypeSep : ~#~\n","stream":"stdout","time":"2023-07-12T10:35:51.58605292Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,586 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - INFO: Entitlement_value is null, record not saved.\n","stream":"stdout","time":"2023-07-12T10:35:51.586334314Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,588 [quartzScheduler_Worker-3] DEBUG services.ImportUtilityService - EntitlementType 'FunctionalRole' for Endpoint 'HighRadius' found with EntitlementTypekey - 555\n","stream":"stdout","time":"2023-07-12T10:35:51.588616338Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,589 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - Time Taken to populateEntitlementMapByConfig : 0.001\n","stream":"stdout","time":"2023-07-12T10:35:51.589959796Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,589 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - Inside importAccountsFull:persistEntObjects, pptTypeSep : ~#~\n","stream":"stdout","time":"2023-07-12T10:35:51.589971219Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,590 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - INFO: Entitlement_value is null, record not saved.\n","stream":"stdout","time":"2023-07-12T10:35:51.590250932Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,601 [quartzScheduler_Worker-3] DEBUG services.ImportUtilityService - EntitlementType 'SecurityRole' for Endpoint 'HighRadius' found with EntitlementTypekey - 556\n","stream":"stdout","time":"2023-07-12T10:35:51.601418607Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,602 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - Time Taken to populateEntitlementMapByConfig : 0.001\n","stream":"stdout","time":"2023-07-12T10:35:51.602723673Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,602 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - Inside importAccountsFull:persistEntObjects, pptTypeSep : ~#~\n","stream":"stdout","time":"2023-07-12T10:35:51.602742113Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,602 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - INFO: Entitlement_value is null, record not saved.\n","stream":"stdout","time":"2023-07-12T10:35:51.603047317Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,605 [quartzScheduler_Worker-3] DEBUG services.ImportUtilityService - EntitlementType 'FunctionalRole' for Endpoint 'HighRadius' found with EntitlementTypekey - 555\n","stream":"stdout","time":"2023-07-12T10:35:51.605424811Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,606 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - Time Taken to populateEntitlementMapByConfig : 0.001\n","stream":"stdout","time":"2023-07-12T10:35:51.606743859Z"}
 
2023-07-12T16:05:52+05:30-ecm-worker-{"log":"2023-07-12 10:35:51,606 [quartzScheduler_Worker-3] DEBUG rest.RestProvisioningService - Inside importAccountsFull:persistEntObjects, pptTypeSep : ~#~\n","stream":"stdout","time":"2023-07-12T10:35:51.606780461Z"}

nimitdave
Saviynt Employee
Saviynt Employee

Please check now , a change in acctentmapping

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty2",
"activeStatus": [
"true"
],
"deleteLinks": false,
"accountThresholdValue": 1000,
"correlateInactiveAccounts": true,
"inactivateAccountsNotInFile": false
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://cloud2-sbox-irapi.highradius.com/api/iam/v1/users/allusers/list",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json",
"startRecord": "0"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "user",
"keyField": "accountID",
"statusConfig": {
"active": "true",
"inactive": "false"
},
"colsToPropsMap": {
"accountID": "userName~#~char",
"name": "userName~#~char",
"customproperty1": "email~#~char",
"status": "active~#~char",
"customproperty2": "active~#~char",
"customproperty3": "firstName~#~char",
"customproperty4": "lastName~#~char",
"customproperty5": "securityRole~#~char",
"customproperty6": "functionalRole~#~char",
"customproperty7": "defaultMenu~#~char",
"customproperty8": "loginType~#~char",
"customproperty9": "lastLoggedTime~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"pagination": {
"offset": {
"batchSize": 500,
"totalCountPath": "headers.x-totalCount"
}
}
}
},
"acctEntMappings": {
"FunctionalRole": {
"importAsEntitlement": true,
"listPath": "",
"idPath": "functionalRole",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "entitlementID~#~char",
"entitlement_value": "entitlementID~#~char"
}
},
"SecurityRole": {
"importAsEntitlement": true,
"listPath": "",
"idPath": "securityRole",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "entitlementID~#~char",
"entitlement_value": "entitlementID~#~char"
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"FunctionalRole": {
"entTypeOrder": 0
},
"SecurityRole": {
"entTypeOrder": 1
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}

Jyoti1
Regular Contributor
Regular Contributor

mapping is not working but cp31 populated {"SecurityRole":{"entIds":["Kraft EU - View Only role"],"keyField":"entitlementID"},"FunctionalRole":{"entIds":["View Only role"],"keyField":"entitlementID"}}

nimitdave
Saviynt Employee
Saviynt Employee

Are you also running access import or only account import. CP31 get populated in account import but actual mapping happens while access import and then cp31 data is cleared out.