Setting description of customfield using Jira api doesnt actually reflect on UI until Jira is restarted

Nazia Tarannum
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 9, 2014

Setting the description of a custom field using the Jira API doesn't actually reflect the new value on the UI until Jira is restarted.

{code}

ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Field Name").setDescription("This is description of field");

{code}

4 answers

0 votes
Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 25, 2014

I use this Groovy script (using Script Runner) to update the field description for all field configs. Maybe this is helpful for you.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.exception.DataAccessException
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.fields.layout.field.*

cfName = 'My Customfield'
cfDesc = ''

FieldLayoutManager fieldLayoutManager = ComponentAccessor.getFieldLayoutManager()
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()

// get all existing FieldLayouts
List<FieldLayoutScheme>	fieldLayoutSchemes =  fieldLayoutManager.getFieldLayoutSchemes()
List<Long> fieldLayoutIds = []
fieldLayoutSchemes.each{ fieldLayoutScheme ->
    Collection<FieldLayoutSchemeEntity> fieldLayoutSchemeEntities = fieldLayoutScheme.getEntities()
    fieldLayoutSchemeEntities.each{ fieldLayoutSchemeEntitiy ->
        fieldLayoutIds << fieldLayoutSchemeEntitiy.getFieldLayoutId()
    }
}
fieldLayoutIds = fieldLayoutIds.unique()
List<FieldLayout> fieldLayouts = fieldLayoutIds.collect{Long fieldLayoutId -> fieldLayoutManager.getFieldLayout(fieldLayoutId as Long)}

// get custom field
CustomField cfObj = customFieldManager.getCustomFieldObjectByName(cfName)

// change description
fieldLayouts.each{fieldLayout ->
    FieldLayoutItem fieldLayoutItem = fieldLayout.getFieldLayoutItem(cfObj)
    if (fieldLayoutItem) {
        try {
            if (!fieldLayout.isDefault()) {
                efl = fieldLayoutManager.getEditableFieldLayout(fieldLayoutItem.getFieldLayout().getId())
                efl.setDescription(fieldLayoutItem, cfDesc)
                fieldLayoutManager.storeEditableFieldLayout(efl)
            } else {
                efdl = fieldLayoutManager.getEditableDefaultFieldLayout()
                efdl.setDescription(fieldLayoutItem, cfDesc)
                fieldLayoutManager.storeEditableDefaultFieldLayout(efdl)
            }
        }
        catch (DataAccessException e) {
            log.error "$e"
        }
    }
}
fieldLayoutManager.refresh()

0 votes
Nazia Tarannum
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 24, 2014

no, it doesnt work,

someone pls help.

0 votes
Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 11, 2014

For the custom field descriptions displayed in an issue the FieldLayoutManager stores the description. The description isn't automatically updated in the field layouts. Try

ComponentAccessor.getFieldLayoutManager().refresh()

after updating the description.

Nazia Tarannum
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 24, 2014

no, it doesnt work,

someone pls help.

0 votes
SuhailM February 9, 2014

Try this-

String customFieldOldValue = customField.getValue(currentIssue);

ModifiedValue modifiedValue = new ModifiedValue(customFieldOldValue, newValue);
customField.updateValue(customFieldLayoutItem, currentIssue, modifiedValue, issueChangeHolder);

Nazia Tarannum
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 9, 2014

But you are talking about setting customfield value.

And am talking about setting customfield description not value.

Please read my question carefully.

Suggest an answer

Log in or Sign up to answer