I am looking for an option to map servicenow group owners directly from REST api call. I am using entOwnerMappings field in entitlmentparams of importaccountentjson.
PFA the response.txt which shows how the response looks. In the json response manager.value holds the the value of the owner of that group (this value is sys_id). Currenlty I have populated the sys_id value manually in customproperty65 of that owner in saviynt and mapped that value in entitlement value cp2. You can see that as below
Currently after running entitlement import, I am seeing the above user becoming owner for those entitlements. I have attached the importaccountentjson and the logs. I dont see any error on logs.
Solved! Go to Solution.
Since the owner information is part of the GET group API, please add the acctEntMappingInfoColumnFromEnt in colsToPropsMap to store the owner information and the processingType entToAcctMapping in acctEntParams to map the owners to their entitlement values.
Please note that users must be imported in order to be mapped as owners, and if the users are imported from a connector/source other than the REST connector- the UserSource should be specified in the ImportAccountEntitlementJSON. The UserSourcekey information will be available in the user's table.
Please find the attached document containing a sample ImportAccountEntitlementJSON for this use case.
Rajesh - whats the source of "users" data in Saviynt - is it coming from ServiceNow / LDAP or any other system? If its ServiceNow and you have configured "ImportUserJSON" in REST connector then you dont need to use "userSourceList" for sure. Please share source system name.
Use following query to get all user sources and put them in global settings
select distinct USERSOURCE, count(*) from users group by username
OR use this which will automatically cover all options
Servicenow team had generated scripted api's instead of out of the box rest api's. So I believe mapping entitlment owner will be easy.
However, I am still not seeing entitlement owners getting mapped. I am attaching postman output for entitlement recon, logs and importaccountentjson.
To summarize, the owner I need to map for each entitlement is coming in "manager" parameter (you can see that in attached postman response. In saviynt that value is stored as systemusername for each user in users table.
Can you let me know what mistake I am doing.
Analyzing the attached JSON and response, I observed the below
* Result is mentioned again in listField of entOwnerMappings and the processing type.
Use the below sample:
* acctEntMappingInfoColumnFromEnt attribute is specified in the colsToPropsMap of entitlementParams.
* The processing type "entToAcctMapping" is not present in acctEntParams.
In case you require additional details,The sample JSON for this scenario is available in the REST Connector guide under Developers Handbook->Importing Entitlement Owners
Also, please verify that the users are present in the users table and since the keyField is mapped to systemusername, ensure that the response(manager attribute) matches the same value.
You should make following changes :
1) Add "acctEntMappingInfoColumnFromEnt" inside "colsToPropsMap" for Group entType as shown below
"entitlementID": "Sys ID~#~char",
2) Keep "listField" as blank as you have owner data at results level only
3) Inside "acctEntParams" configuration, have another call "call2"
Note: systemusername must match with "manager" field in your json and must be present in your users dump in Saviynt.
Gaurav and Vedanth,
Thanks for your response. I am able to map entitlement owner now, only change I had done is changed owner field "systemusername to "systemUserName" looks like the attribute is case sensitive (PFA the updated json).
However I do have following questions and want to know if it is possible.
Please let me know if above things are possible OOTB with the REST connector.
1. Setting the owner rank is currently not supported via REST. You will need to use CSV upload in order to update the owner ranks.
2. Unfortunately the removal of Previous owner is also not supported but you can certainly log this requirement to our Ideas portal. https://ideas.saviynt.com
For now, we can achieve this via the Schema connector. You can use the delete query to remove the old owner from the entitlement.
Hi @SB , On the similar lines but instead of systermusername , the manager.value is sys_id from SNOW in the Entitlement API response. Is it still possible to correlate the owner to an entitlement without manually populating sys_id of each user in the users table(Customproperty)? sys_id can be populated in the accounts customproperty during accounts import. Can we map the owner using accounts customproperty(sys_id)?