How to get a custom field values from parameters in JIRA

Michał Gawlik August 10, 2014

I created new Custom Field and in the implementation of any methods

validateFromParams() or getSingularObjectFromString()

I would like to get the values of the other custom fields,

but the values which are just typed in the forms and not taken directly from the database

like example below:

IssueManager issueManager = ComponentManager.getInstance().getIssueManager();

CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager();

Issue issue = issueManager.getIssueObject("JIRA-123");

So I have a list of all the custom fields:

List<CustomField> customFields = customFieldManager.getCustomFieldObjects();
for (CustomField element : customFields) {
	System.out.println(
		element.getFieldName() + "\n" + element.getId() + "\n"
		+ "VALUE: " + element.getGenericValue() + "\n" 
		+ "============================="
	);
}

but I cannot see the method for getting value (getGenericValue() doesn't return it).

Do you know any solutions for it?

Michal

4 answers

1 accepted

1 vote
Answer accepted
Krzysztof Skoropada [Deviniti]
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.
September 18, 2014

Hi, 

You have to pass other customfield's value as a part of your custom customfield value. How you can do that?

Use javascript to put other cf value in hidden text input with name:

name="customFieldId.id:1"

then in your CF in method getValueFromCustomFieldParams you can extract this value like here:

relevantParams.getValuesForKey(1)

Hope it was helpful.

Cheers,

0 votes
Michał Gawlik September 21, 2014

Hi Krzysztof,

This is exactly what I was looking for. I guess, when we edit issue via REST, we cannot get other field values to validate dependent fields. Am I right?

Michal

0 votes
Tuncay Senturk
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 11, 2014

Hmm, I see the problem, sorry for my prior answer.

Since the value is not persisted, it lives on client side and I do not think there may be any solution without javascript. I can suggest workflow validators but as you mentioned you can only use it on transitions, not in edit, inline edit or such modes.

Sorry, but I have no idea :(

Tuncay

0 votes
Tuncay Senturk
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 11, 2014

Hi,

As far as I understand your question, you need to

issue.getCustomFieldValue(element)

Tuncay

Michał Gawlik August 11, 2014

Thanks Tuncay,

I already tried it, but the value is taken from the database directly, but I need value from the just edited form. Moreover when you click "Create Issue" button, enter some values and press Save, you don't have Issue ID yet in the validateFromParams() method.

I goal is to make field "B" required only when field "A" is not empty. I don't want to do this using JS, because I want this validation for the following: edit, quick edit, inline edit, bulk change, REST API and also for the all transitions. The condition can be hardcoded in the Java code, I am okay with it.

Michal

Suggest an answer

Log in or Sign up to answer