2016-09-14 26 views
0

Hallo wir verwenden Jira und werten gerade das Plugin "Scriptrunner for Jira" von Adaptavist aus.Benutzerdefinierten Feldwert mit einem benutzerdefinierten "Scriptrunner for Jira" Listener aktualisieren

Ich möchte einen benutzerdefinierten Listener erstellen, der einfach den Wert eines benutzerdefinierten Felds aktualisiert. Der Feldtyp ist ein Standard-Textfeld, nichts Besonderes.

In Bezug auf die Dokumentation des Plug-in und verschiedener Web-Suche, kam ich mit dem folgenden Code auf:

import com.atlassian.jira.issue.CustomFieldManager 
import com.atlassian.jira.issue.Issue 
import com.atlassian.jira.component.ComponentAccessor 
import com.atlassian.jira.issue.MutableIssue 

def issue = event.issue as Issue 
MutableIssue issueToUpdate = (MutableIssue) issue; 
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager(); 
def cf = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'My CustomField'} 
issueToUpdate.setCustomFieldValue(cf, "myvalue"); 

Der Validator über allem hier nicht beschweren und das Skript scheint ohne Fehler ausgeführt werden. Das Problem besteht darin, dass der Wert des benutzerdefinierten Felds einfach nicht aktualisiert wird. Vielleicht haben einige von euch das fehlende Stück.

Jede Zeile scheint benötigt zu werden, da sich der Validator sonst beschwert. Vielen Dank im Voraus für Ihre Hilfe.

Antwort

4

Ich habe gerade eine Antwort von Adaptavist, die endlich funktioniert. Bitte finden Sie den Arbeitscode unten:

import com.atlassian.jira.issue.Issue 
import com.atlassian.jira.issue.ModifiedValue 
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder 
import com.atlassian.jira.component.ComponentAccessor 

def issue = event.issue as Issue 
def customFieldManager = ComponentAccessor.getCustomFieldManager() 
def tgtField = customFieldManager.getCustomFieldObjects(event.issue).find {it.name == "My CustomField"} 
def changeHolder = new DefaultIssueChangeHolder() 
tgtField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(tgtField), "myvalue"),changeHolder) 
+0

Ich habe diese Methode verwendet und es funktioniert gut. Prost Kevin! –

Verwandte Themen