07/24/2023 11:44 PM
Hi Team,
User in above screenshot has 2 roles assigned. These roles are loaded manually in saviynt as there is no separate API available for it. Now when we run import job, it fetches the data also gets group memberships in CP31 but we don't see it in associated entitlements tabs. Please find json below:
Solved! Go to Solution.
07/25/2023 12:03 AM - edited 07/25/2023 12:09 AM
Hi @reshma_sonawane ,
Can you change listPath as "roles" and idPath as blank, as below:
07/25/2023 02:18 AM
Hi @pmahalle ,
Thanks. Tried this but it din't work.
07/25/2023 12:08 AM - edited 07/25/2023 12:08 AM
Hi @reshma_sonawane , please keep the idPath blank. and keep the listPath as roles under acctEntMappings
07/25/2023 02:25 AM
Hi,
Tried with this but no luck.
Thanks,
07/25/2023 12:18 AM
Hello @reshma_sonawane,
Please try with the below json, seem acctentmapping need to be modified,
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"deleteLinks": true,
"accountThresholdValue": 30,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"call": {
"call1": {
"http": {
"url": "xxxxxxx",
"httpHeaders": {
"Cookie": "${access_token}"
},
"httpContentType": "application/x-www-form-urlencoded",
"httpMethod": "GET"
},
"listField": "",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "id~#~char",
"name":"loginName~#~char",
"customproperty1": "firstName~#~char",
"customproperty2": "lastName~#~char",
"customproperty3": "city~#~char",
"customproperty4": "emailAddress~#~char",
"status": "disabled~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"statusConfig": {
"active": "false",
"inactive": "true"
},
"disableDeletedAccounts": true
}
},
"acctEntMappings": {
"Roles": {
"listPath": "roles",
"idPath": "",
"keyField": "entitlementID"
}
}
},
"entitlementParams":{
},
"acctEntParams" : {
"processingType": "acctToEntMapping"
}
}
Thanks,
07/25/2023 06:10 AM
Hello @reshma_sonawane,
Can you please provide the postman response?
Thanks,
07/25/2023
08:02 AM
- last edited on
07/26/2023
03:21 AM
by
Sunil
07/25/2023 10:50 AM - edited 07/25/2023 10:52 AM
Hello @reshma_sonawane
Since the roles are in array format, You can import the roles into customproperty 29 and use a custom query to transform into the ideal customproperty31 and then run access import. The three jobs account Import, custom query to update cp31, Access import can be sequenced in Trigger chain job.
Sample custom query you can test for one of the accounts by hardcoding the accountkey-
update accounts a set a.customproperty31=concat('{"Applications":{"entIds":["',replace(replace(replace(a.customproperty30,'[',''),']',''),', ','","'),'"],"keyField":"entitlement_value"}}') where a.endpointkey=97 and a.accountkey=<XXX> limit 3;
Cp 31 post running the custom query job to update the account
{"Roles":{"entIds":["IEHP PCS All","P-Reporting""IEHP Buyer",],"keyField":"entitlement_value"}}
NOTE: The entitlements should already be present in the endpoint with the entitlement value exactly as above.
Use below
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"deleteLinks": true,
"accountThresholdValue": 30,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"call": {
"call1": {
"http": {
"url": "xxxxxxx",
"httpHeaders": {
"Cookie": "${access_token}"
},
"httpContentType": "application/x-www-form-urlencoded",
"httpMethod": "GET"
},
"listField": "",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "id~#~char",
"name": "loginName~#~char",
"customproperty1": "firstName~#~char",
"customproperty2": "lastName~#~char",
"customproperty3": "city~#~char",
"customproperty4": "emailAddress~#~char",
"status": "disabled~#~char",
"customproperty30": "roles~#~char"
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"statusConfig": {
"active": "false",
"inactive": "true"
},
"disableDeletedAccounts": true
}
},
"acctEntMappings": {
"Roles": {}
}
},
"entitlementParams": { "connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Roles": {}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}
07/25/2023 09:25 PM
Thanks for your response.
We are getting roles mapping in CP31 as required after execution of account import. We are seeing issue where it is not reflecting in associated entitlements tab for the respective account.
07/25/2023 10:11 PM
@reshma_sonawane please share the sample value stored in customproperty31
07/26/2023 01:58 AM
{"Roles":{"entIds":["IEHP PCS All","P-Reporting","IEHP Buyer","IEHP View All","P-Requestor"],"keyField":"entitlementID"}}
07/26/2023 02:21 AM
Hi @reshma_sonawane thanks for sharing the info. The acctEntMappings should be something like below:
07/25/2023 10:23 PM
Hello @reshma_sonawane,
Please try the below json,
----JSON-----
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty11",
"activeStatus": [
"false"
],
"deleteLinks": true,
"accountThresholdValue": 30,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"call": {
"call1": {
"http": {
"url": "xxxxxxx",
"httpHeaders": {
"Cookie": "${access_token}"
},
"httpContentType": "application/x-www-form-urlencoded",
"httpMethod": "GET"
},
"listField": "",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "id~#~char",
"name": "loginName~#~char",
"customproperty1": "firstName~#~char",
"customproperty2": "lastName~#~char",
"customproperty3": "city~#~char",
"customproperty4": "emailAddress~#~char",
"customproperty11": "disabled~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"Roles": {
"listPath": "roles",
"idPath": "",
"keyField": "entitlementID"
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Roles": {}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}
-------------------------------------
07/26/2023 01:59 AM
Tied this but it did not work.
Thanks,
Reshma
07/26/2023 02:28 AM
Please confirm if you are running both accounts and access import?
if yes, please share the debug logs for both runs.
Thank you
Vedanth B.K
07/27/2023 11:36 PM - edited 07/27/2023 11:37 PM
Thanks @sudeshjaiswal @Vedanth_BK @shreyascn for your inputs. It worked with json shared by @sudeshjaiswal and after running access import job.