I'm trying to edit a few custom fields on a custiom issue type. I have an array of keys for issues, I've queried for the issues, now how in the world do modify the values of the custom fields I'm targeting?
I'm a complete newbe here, so please be gentile :)
Thanks,
Ryan
Hi Ryan, here's a simplified example:
//get custom field
FieldManager fieldManager = ComponentManager.getInstance().getFieldManager();
String field = "customfield_10000";
CustomField myCustomField = fieldManager.getCustomField(field);
//read value
Object val = myCustomField.getCustomFieldType().getValueFromIssue(myCustomField, issue);
String customFieldValue = val == null ? "" : val.toString();
//write data to custom field
ArrayList<String> customFieldNewContent = new ArrayList<String>();
customFieldNewContent.add("new value");
this.persister.updateValues(fieldStart, issue.getId(), PersistenceFieldType.TYPE_LIMITED_TEXT, customFieldNewContent);
Good luck!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oh! one more thing, what is the persister reference...
I don't see a type declaration, and I didnt have any luck looking for Persisters...
this.persister.updateValues(fieldStart, issue.getId(), PersistenceFieldType.TYPE_LIMITED_TEXT, customFieldNewContent);
thanks again :)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Mea culpa, you need to add the persister to your constructor, here's a snippet from my code:
public class IssueUpdatedListener implements InitializingBean, DisposableBean {
private static final Logger log = LoggerFactory.getLogger(IssueUpdatedListener.class);
private final EventPublisher eventPublisher;
private final CustomFieldValuePersister persister;
/**
* Constructor.
* @param eventPublisher injected {@code EventPublisher} implementation.
*/
public IssueUpdatedListener(EventPublisher eventPublisher,CustomFieldValuePersister persister) {
this.eventPublisher = eventPublisher;
this.persister = persister; // <==== this is what you need
}
Also, be sure to have the following imports:
import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister; import com.atlassian.jira.issue.customfields.persistence.PersistenceFieldType; import com.atlassian.jira.issue.fields.CustomField; import com.atlassian.jira.issue.fields.FieldManager;
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
And what is fieldStart? It doesn't have any declaration as well.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For those who are searching for answer that is up to date in 2017.
Answer is HERE.
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.