I am trying to dynamically set the recipient addresses based on the settings of a custom field ('Notification List', checkbox collection contains a list of department)
In the condition & configuration section, I have a
if ('Engineering' in cfValues['Notification List']*.value) { recipients = recipients + ",addr1@host.com" } if ('Purchasing' in cfValues['Notification List']*.value) { recipients = recipients + ",addr2@host.com" } mail.setTo(recipients)
So far so good, and working as expected
However, I'd like to pull from another custom field (ProjMgr) for one of the conditions
if ('Project Management' in cfValues['Notification List']*.value) { pm = com.atlassian.jira.component.ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("ProjMgr") pmValue = issue.getCustomFieldValue(pm) recipients = recipients + "," + pmValue }
ProjMgr is User Picker type. In this case, I got the user id in pmvalue. How can I find the user's email address to construct the recipients list?
pmValue in your emample above should actually be an ApplicationUser object (assuming JIRA 7).
So the email address would be
pmValue.emailAddress
Maybe you try the following:
ger().getCustomFieldObjectByName("ProjMgr")
... pmValue = issue.getCustomFieldValue(pm) if (pmValue != null && !((String) pmVavlue).isEmpty()) { def user = ComponentAccessor.getUserManager().getUserByKey((String) pmValue); def mail = user.getEmailAddress() } .....
https://docs.atlassian.com/jira/7.1.7/com/atlassian/jira/component/ComponentAccessor.html
https://docs.atlassian.com/jira/7.1.7/com/atlassian/jira/user/util/UserManager.html
https://docs.atlassian.com/jira/7.1.7/com/atlassian/jira/user/ApplicationUser.html
Hope this helps!
Cheers,
Julian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Julian.
I got this error "Cannot invoke method getEmailAddress() on null object" when I tried to preview my codes.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What does: "(String) pmValue " produce? Add some logging for that variable.
Basically no user can be found with that key.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
pmValue returns "jackson.loong(jackson.loong)"
and
user returns null
I ended up using the following codes segment and seems to work
if ('Project Management' in cfValues['Notification List']*.value) { def pm = customFieldManager.getCustomFieldObjectByName("ProjMgr") if (pm != null) { def pmValue = issue.getCustomFieldValue(pm) if (pmValue != null && !((String) pmValue).isEmpty()) { def mailbox = ((ApplicationUser) pmValue).getEmailAddress() recipients = recipients + "," + mailbox } } }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.