log.setLevel(org.apache.log4j.Level.DEBUG);
MutableIssue issue = issue;
CustomField cfQAContact = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("QA Contact");
def qacontact = issue.getCustomFieldValue(cfQAContact);
if(qacontact==null)
{
def currentReporter = issue.reporter;
issue.setCustomFieldValue(cfQAContact, currentReporter);
issue.store();
}
So, use UserUtil or UserManager to get the ApplicationUser using reporter's name or key. Using UserUtil for example, replace the updateValue with
cfQAContact.updateValue(null, issue, new ModifiedValue(cfQAContact, ComponentAccessor.getUserUtil().getUserByName(issue.getReporter().getName())),changeHolder)
or in your original script
issue.setCustomFieldValue(cfQAContact, ComponentAccessor.getUserUtil().getUserByName(issue.getReporter().getName()));
PS. In your original script you don't need to use the .store() if the post function is before the "Update change history..." step.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I suspect the issue.reporter return to you a user of type OfBizUser. But you want the Application User. You should use userManager to get the Application User, but before I continue could you tell me you JIRA version ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It shows below error
2016-03-21 05:55:38,655 http-bio-443-exec-18 ERROR bbehera 355x332593x1 s9is0g 10.22.160.111 /secure/QuickCreateIssue.jspa [scriptrunner.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: DESTDMSTR-37, actionId: 1, file: D:\Atlassian\Application Data\JIRA\scripts\Workflow Transition\NewGroovy1.groovy
java.lang.ClassCastException: com.atlassian.jira.crowd.embedded.ofbiz.OfBizUser cannot be cast to com.atlassian.jira.user.ApplicationUser
at com.atlassian.jira.issue.customfields.impl.UserCFType.getDbValueFromObject(UserCFType.java:79)
at com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType.createValue(AbstractSingleFieldType.java:161)
at com.atlassian.jira.issue.fields.CustomFieldImpl.createValue(CustomFieldImpl.java:833)
at com.atlassian.jira.issue.fields.CustomFieldImpl.updateValue(CustomFieldImpl.java:505)
at com.atlassian.jira.issue.fields.CustomFieldImpl.updateValue(CustomFieldImpl.java:487)
at com.atlassian.jira.issue.fields.OrderableField$updateValue.call(Unknown Source)
at NewGroovy1.run(NewGroovy1.groovy:29)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Then make sure that you call this function before the "Update change history..." step. If that is not successful, try the script below
import com.atlassian.jira.issue.ModifiedValue import com.atlassian.jira.issue.util.DefaultIssueChangeHolder import com.atlassian.jira.component.ComponentAccessor def customFieldManager = ComponentAccessor.getCustomFieldManager() def cfQAContact = customFieldManager.getCustomFieldObjects(issue).find {it.name == "QA Contact"} def qacontact = issue.getCustomFieldValue(cfQAContact) //issue.reporter should not be null if(!qacontact && issue.reporter) { def changeHolder = new DefaultIssueChangeHolder() cfQAContact.updateValue(null, issue, new ModifiedValue(cfQAContact, issue.reporter),changeHolder) }
Please let me know if this works for you.
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.
Hi Basudev,
Is this in a post function ?
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.