2016-05-10 11 views
1

Ich ändere den benutzerdefinierten Feldnamen mit der REST API in JIRA. Es ändert den Namen des benutzerdefinierten Felds erfolgreich. Aber als ich versuchte, das benutzerdefinierte Feld in den Code zu bekommen, bekam ich null als Ergebnis.CustomFieldManager wird nicht das benutzerdefinierte Feld nach dem Ändern der benutzerdefinierten Feldnamen mit REST API in Jira

String modByWhomCustomFieldName = pluginConfigService.getMUFCustomFieldName(); 
    System.out.println("+++++++++++++++++++In flagCustomField() modByWhomCustomFieldName is:"+modByWhomCustomFieldName); 

    //CustomField modByWhomCustomField = cfManager.getCustomFieldObjectByName("Description Changed By"); 
    CustomField modByWhomCustomField = cfManager.getCustomFieldObjectByName(modByWhomCustomFieldName); 
    if(modByWhomCustomField != null) { 
     System.out.println("++++++++++++++ "+modByWhomCustomField.getDescription()); 
    } 

In den oben genannten tritt es nicht in die if conditon.

Herausgegeben von hier. Wenn der Benutzer die Beschreibung eines Problems änderte, zeige ich diesen Benutzer an. Dazu habe ich ein benutzerdefiniertes Feld vom Typ "UserCFType" erstellt. Es zeigt den Benutzer an, der die Beschreibung geändert hat. Für den Benutzer admin wird jedoch admin (admin) angezeigt. Ich will nur "admin" nur nicht "admin (admin)".

Object modByWhomCustomFieldOldValue = issue.getCustomFieldValue(modByWhomCustomField); 
     Object modByWhomCustomFieldNewValue = user; 
     System.out.println("+++++++++++++++++++In flagCustomField() current user is:"+modByWhomCustomFieldNewValue.toString()); 

     ModifiedValue<Object> modifVal2 = new ModifiedValue<>(modByWhomCustomFieldOldValue, modByWhomCustomFieldNewValue); 
     modByWhomCustomField.updateValue(null, issue, modifVal2, changeHolder); 

Das obige ist der Code dafür.

Antwort

0

versuchen, den Wert zu erhalten. Wenn Sie das Objekt customfield erhalten, erhalten Sie die CF selbst und nicht den Wert dieses benutzerdefinierten Felds bei einem Problem. Also, Sie das benutzerdefinierte Feld, und dann den Wert für ein bestimmtes Thema:

cfManager.getCustomFieldObjectByName(modByWhomCustomFieldName).getValue(yourIssue) 

** EDIT: Für den Namen Anzeige Problem, versuchen Sie das getDisplayName() Verfahren auf Benutzer-Objekt. Mit freundlichen Grüßen

+0

Immer noch die Nullzeiger Ausnahme – user2636874

+0

Ok. Hast du den CfManager deklariert? und sind Sie sicher, dass das Problem einen Wert für dieses benutzerdefinierte Feld aufweist? und der Name des customField ist genau der gleiche wie der richtige (Groß-/Kleinschreibung beachten)? – Oldskultxo

+0

Ja, ich habe den benutzerdefinierten Feldmanager deklariert und auch den Wert für dieses Feld ausgegeben. – user2636874