I want to change the assignee of an issue based on a checkbox. if the value "Related" is check in the custom filed "Customer Related", I want the assignee to be change to some one else.
I tried to do the following:
import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.comments.CommentManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.jira.util.ImportUtils import com.atlassian.jira.user.util.UserManager import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.component.ComponentAccessor def issue = ComponentAccessor.getIssueManager().getIssueObject("ISSUE-1") def customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Customer Related"); def selectedValues = customField.getValue(issue)*.value if ("Related" in selectedValues) { userManager = (UserManager) ComponentAccessor.getUserManager() MutableIssue issue = issue User usera = userManager.getUser('Username'); issue.setAssignee(usera); issue.store() }
But it did not work, nothing happened.
Thanks alot!
There are couple of things needed to be corrected in your code.
Inshort, you can check this post:
Let me know if this works for you :)
Hi Sanjay,
Thanks for the replay.
I am new to groovy so I guess I will have alot of problems at first.
I do not understand how to implement the answer in this post to my problem.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Try these, i haven't checked in any environment, please excuse :
def customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Customer Related");
instead of this, try for getCustomFieldObject("customfield_xxxx")
where xxxx is the ID of the custom field
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Also, issue.getCustomFieldValue(customField) instead of customField.getValue(issue)*.value
Also
if (selectedValues*.value.contains("Related")) {
#Do your stuff
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Its still not working for me.
in getCustomFieldObject("customfield_xxxx") I should keep the "customfield" and just change the xxx right?
for example: customfield_1000
it could be a problem with this line?
def issue = ComponentAccessor.getIssueManager().getIssueObject("ISSUE-1")
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes, you are right
Issue issue =
If this doesn"t work then I can come up after checking this in an environment(i don't have right now)
Also I would say to log each step then you will come to know which is causing exact problem.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Also, there could be a problem with those two lines?
Issue issue =
And
MutableIssue issue = issue
(as they both have the same variable name)
I tried to run this by itself, and it worked, the assignee changed:
userManager = (UserManager) ComponegntAccessor.getUserManager() MutableIssue issue = issue User usera = userManager.getUser('Username'); issue.setAssignee(usera); issue.store()
So the problem is with the condition. Still cant figure what it is exactly.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.CustomFieldManager;
ComponentManager componentManager = ComponentManager.getInstance();
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager();
CustomField customer_Related= customFieldManager.getCustomFieldObject("customfield_xxx");
customer_Related_Value = issue.getCustomFieldValue(customer_Related)
if (customer_Related_Value*.value.contains("Related"))
{
User usera = userManager.getUser('Username');
issue.setAssignee(usera);
issue.store()
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Still nothing happends. There could be a problem with the post function order?
At this moment the script is runing right after "Creates the issue originally"
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.