Click HERE to see how Saviynt Intelligence is transforming the industry. |
08/19/2024 09:58 AM
Hi experts,
We are using the same API to get the membership details for two different Entitlement Types. The problem is that we see only one Entitlement type membership data in Saviynt, not both.
For Example the below response we are trying to get both job_id and user_role_id membership details.
JOSN code:
"acctEntParams": {
"connection": "acctAuth",
"entTypes": {
"JobAdmin": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "job_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
},
"UserRoles": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "user_role_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
}
}
}
Let me know what I'm missing.
Regards,
Gopi.
08/19/2024 10:04 AM
"listField": "",
"entIdPath": "job_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
08/19/2024 11:38 PM
08/19/2024 11:43 PM
Change "entIdPath": "job_id",
in your json
08/20/2024 10:09 AM
the mapping is already done in the code that I shared one is mapped with Job_ID, and the other one is with User_Role_ID. Problem is that we see inconsistency when we run recon.
08/20/2024 10:24 AM
08/20/2024 10:31 AM
inconsistency is that recon bringing only one Entitlement type membership either JobAdmin or userRoles.
{
"globalSettings": {
"dateFormat": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
},
"accountParams": {
"connection": "acctAuth",
"createUsers": false,
"processingType": "SequentialAndIterative",
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"disableDeletedAccounts": true,
"http": {
"url": "https://abc.io/v1/users?page=1&per_page=10",
"httpMethod": "GET",
"httpHeaders": {
"contentType": "application/json",
"Authorization": "${access_token}",
"Accept": "application/json"
}
},
"listField": "",
"keyField": "accountID",
"statusConfig": {
"active": "false",
"inactive": "true"
},
"colsToPropsMap": {
"accountID": "id~#~char",
"name": "#CONST#${(response.primary_email_address=='')?response.id:response.primary_email_address}~#~char",
"status": "disabled~#~char",
"displayName": "name~#~char",
"CREATED_ON": "created_at~#~date",
"updatedate": "updated_at~#~date",
"accounttype": "AccessLevel~#~char",
"customproperty1": "first_name~#~char",
"customproperty2": "last_name~#~char",
"customproperty3": "id~#~char",
"customproperty4": "employee_id~#~char",
"customproperty5": "site_admin~#~char",
"customproperty6": "disabled~#~char",
"customproperty7": "offices.name~#~listAsString",
"customproperty8": "offices.id~#~listAsString",
"customproperty9": "departments.name~#~listAsString",
"customproperty10": "departments.id~#~listAsString"
},
"pagination": {
"nextUrl": {
"nextUrlPath": "${if(headers?.link?.contains ('next')){headers?.link?.split(',')[0]?.replace('<', '')?.replace('>; rel=\"next\"','')?. trim()} else {null}}"
}
},
"unsuccessResponses": {
"statusCode": [
400,
403,
401,
404,
409,
405,
500
]
}
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"JobAdmin": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://abc.io/v1/jobs?page=1&per_page=500",
"httpHeaders": {
"contentType": "application/json",
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"displayname":"name~#~char",
"customproperty1": "id~#~char",
"customproperty2": "notes~#~char",
"customproperty3":"created_at~#~date",
"customproperty4":"updated_at~#~date",
"customproperty5":"confidential~#~char"
},
"disableDeletedEntitlements": true
}
}
},
"UserRoles": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://abc.io/v1/user_roles",
"httpHeaders": {
"contentType": "application/json",
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"displayname":"name~#~char",
"customproperty1": "id~#~char",
"customproperty2": "type~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"connection": "acctAuth",
"entTypes": {
"JobAdmin": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "job_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
},
"UserRoles": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "user_role_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
}
}
}
}
08/20/2024 10:37 AM
change "processingType": "httpAcctToEnt", to SequentialAndIterative
08/20/2024 10:53 AM
hi @rushikeshvartak ,
after changing from "processingType": "httpAcctToEnt", to SequentialAndIterative I don't see membership details it totally got removed, previously when I kept httpAcctToEnt at least it brings one entitlement type membership.
08/28/2024 07:11 AM
Any thoughts on this issue? Is Saviynt to expecting unique value for group Membership when it come to REST connector.
Regards,
Gopi.
08/28/2024 07:18 AM
Prepare json from scratch and validate
https://docs.saviyntcloud.com/bundle/Dev-Handbook-REST-v24x/page/Content/Developers-Handbook.htm