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.