and more in a single search tool across platforms. Read the announcement here. |
11/29/2023 12:06 AM
Hi Team,
I am creating/updating users in Saviynt using user update form.
My requirement is when we update any user attribute in user update form mail should trigger to approver with updated attribute details.
I have attached the email template in user modification workflow in global configs.
How can we pass updated attribute details in email?
Below are the supported variables.
ServiceAccountOwnerMap = [:]
entitlements = []
accessapprovers = com.saviynt.ecm.workflow.Access_Approvers : 1678
jbpm_activity_name = User Update
allApproversComments = null
fullrowhtmltablerows =
listofallrolesinrequest = []
approvedEntitlementsOwners = []
entitlementshtmltablerowsv2 =
entitlementshtmltablerowsv3 =
ServiceAccountType =
requestlink = null/jbpmworkflowmanagement/showrequestdetails/User modififacation workflow.160117?reqid=854
allRejectorsComments = null
rolesApprovedOrRejected = []
rolename =
request_access = com.saviynt.ecm.workflow.Request_Access : 1060
users = stest70
allRejectors = []
requestid = 160117
rolemap = [:]
baseUrlForEmail = XX
assignee = smanager05
activityname = User Update
ServiceAccountFlag = false
request = com.saviynt.ecm.workflow.ARS_Requests : 854
exceptionCount = 0
fullhtmlassignedrows =
requestkey = 160117
rejectedEntitlementsOwners = []
roles = null
rejectedByMap = [:]
out = java.io.PrintWriter@17e5cba8
assigneemanager = admin
requesttype =
dynamicAttrsList = []
approvallink = null/jbpmworkflowmanagement/showrequestdetails/User modififacation workflow.160117
allrolesinrequest =
email =
endpoints = ()
entitlementshtmltablerows =
rolesshtmltablerows =
manager = smanager05
approvedByMap = [:]
entitlement_values = []
allApprovers = []
requestor = admin
accounts = []
user = stest70
curExecutionId = User modififacation workflow.160117
accessItems = [com.saviynt.ecm.workflow.Request_Access : 1060]
Any help would be appreciated.
12/01/2023 05:45 AM
Hi @SumathiSomala,
We are checking on your requirement and we will keep you posted.
12/01/2023 05:47 AM - edited 12/01/2023 05:47 AM
Hi @SumathiSomala,
I would like to direct your attention to a specific forum post that may provide the information you are seeking.
Solved: Require Approvals for certain attributes updated o... - Saviynt Forums - 2846
Please let us know if further details are needed on this.
12/02/2023 08:59 PM
Above mentioned is workflow and ask is for Email
12/01/2023 08:54 AM
@SumathiSomala : I believe it not possible to only detect modified attribute because as far as I know it captures all attributes available in modify request page even though others are not modified.
Can you share the output of below query:
select REQUEST_ACCESS_ATTRSKEY, REQUEST_ACCESS_KEY, ACCOUNTS_COLUMN, ATTRIBUTE_NAME from request_access_attrs where request_access_key=1060
12/02/2023 09:01 PM
${accessItems.collect{it.request_access_attrss.findAll{it.attributeName.toString().equalsIgnoreCase('Email Address')} .collect{it.attributeName.toString() + ': ' + it.attributeValue}.join('###')}.toString().replaceAll('\\[','').replaceAll('\\]','').replaceAll('\\,','')}
Here Email Address is Dynamic attribute name
12/02/2023 10:00 PM
Hi all, my ask is when any attribute is updated in user update form, Mail should trigger to approver , in body I have to pass only updated attribute.
12/03/2023 05:43 AM
In that case you can compare old value & new value if its different you can send over email
12/03/2023 06:00 AM
@rushikeshvartak Thanks for the response
Could you please share sample code to compare old and new values in email?
12/03/2023 08:28 AM - edited 12/03/2023 08:30 AM
New Value : ${accessItems.collect{it.request_access_attrss.findAll{it.attributeName.toString().equalsIgnoreCase('Email Address')} .collect{it.attributeName.toString() + ': ' + it.attributeValue}.join('###')}.toString().replaceAll('\\[','').replaceAll('\\]','').replaceAll('\\,','')}
old Value
${accessItems.collect{it.request_access_attrss.findAll{it.attributeName.toString().equalsIgnoreCase('Email Address')} .collect{it.attributeName.toString() + ': ' + it.attributeoldValue}.join('###')}.toString().replaceAll('\\[','').replaceAll('\\]','').replaceAll('\\,','')}
compare both