Hi All,
I would like to copy the value of 'Logged' field to a custom field every time the issue gets updated, I was able to collect this groovy class which i have placed as a 'Custom listener' thru Script-runner plugin, but it is failing to copy the value. Can someone please correct me?
import com.atlassian.jira.event.issue.IssueEvent;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue
public class LoggedFieldDuplicate
{
@EventListener
public void listenForIssueEvent(IssueEvent issueEvent)
{
if (issueEvent.getEventTypeId().equals(EventType.ISSUE_WORKLOG_DELETED_ID) || issueEvent.getEventTypeId().equals(EventType.ISSUE_WORKLOG_UPDATED_ID) || issueEvent.getEventTypeId().equals(EventType.ISSUE_WORKLOGGED_ID))
{
Issue issue = issueEvent.getIssue();
log.debug "Logged Time: ${issue.getTimeSpent()} "
def tgtField = customFieldManager.getCustomFieldObjects(issue).find {it.name == "Actual Fix time coding"}
def changeHolder = new DefaultIssueChangeHolder();
tgtField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(tgtField), issue.getTimeSpent()),changeHolder);
}
}
}