Hi there,
I have a jython script in post function to look up a user from custom field "Product Lead" and set the assignee to that user on a workflow transistion. It was working fine previously. But with recent upgrade of Jira it is not working. Any changes needs to be done on this script?
from com.atlassian.jira import ComponentManager
from com.atlassian.jira.util import ImportUtils
from com.atlassian.jira import ManagerFactory
from com.atlassian.jira.issue.customfields.manager import OptionsManager
issueManager = ComponentManager.getInstance().getIssueManager()
customFieldManager = ComponentManager.getInstance().getCustomFieldManager()
optionsManager = ComponentManager.getComponentInstanceOfType(OptionsManager)
# See if the Program Lead has a value and set the assignee to that value
productLead = customFieldManager.getCustomFieldObjectByName("Product Lead")
if productLead.hasValue(issue) :
issue.setAssignee(issue.getCustomFieldValue(productLead))
The error I get is on the last line " File "<string>", line 14, in <module> TypeError: setAssignee(): 1st arg can't be coerced to com.atlassian.crowd.embedded.api.User"
Thanks this has been completed using groovy.
Hi there,
New to Jython and New to the community
I have a similar Jython script in a post function that takes the value from a User Picker custom field "Approval Required By" and sets the user as "Assignee" however this is an old script and we upgrading to JIRA 7.4.3 I am coming across the following error
Error Message
root cause: Traceback (most recent call last): File "/opt/orion-jira/jss/jython/workflow/LegalSeekingApprovalPostFunction.py", line 24, in <module> issue.setAssignee(getNextApprover(approvers).getDirectoryUser()) TypeError: setAssignee(): 1st arg can't be coerced to com.atlassian.jira.user.ApplicationUser
from com.atlassian.jira.event.type import EventDispatchOption
import com.atlassian.jira.issue.Issue
componentManager = ComponentManager.getInstance()
commentManager = ComponentAccessor.getCommentManager()
customFieldManager = ComponentAccessor.getCustomFieldManager()
approversCustomField = customFieldManager.getCustomFieldObjectByName("Approval Required By")
approvers = issue.getCustomFieldValue(approversCustomField)
approvedByCustomField = customFieldManager.getCustomFieldObjectByName("Approved By")
approvedBy = issue.getCustomFieldValue(approvedByCustomField)
currentUser = getUser()
jiraAutomationUser = ComponentAccessor.getUserUtil().getUser('jira-automation')
if approvers is not None and len(approvers) > 0:
# For the first time when approvers list is created, i.e. when the approvers list is full and approvedBy list is empty, enter a comment so the list of approvers get notified.
if approvedBy is None:
commentManager.create(issue, jiraAutomationUser.getName(), "Your approval is required by the delegated authorities or has otherwise been requested. Please approve this ticket, if appropriate. Thanks.", True)
issue.setAssignee(getNextApprover(approvers).getDirectoryUser())
# Update issue before comment made so emails go to new assignee
issueManager.updateIssue(jiraAutomationUser, issue, EventDispatchOption.ISSUE_UPDATED, False)
Thanks in advance
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
issue.getCustomFieldValue(productLead) is a string. You need to convert the result of that value to com.atlassian.crowd.embedded.api.User first.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Could you please provide me the exact lines to be added to conver the result of that value to com.atlassian.crowd.embedded.api.User as I am new to jython script.
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.