Copy user property to custom field.

Andris Grinbergs
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.
July 23, 2014

How to copy assignee property to custom field of an issue in workflow transition?

1 answer

1 vote
Rina Nir (AC)
Solutions Partner
Solution Partners provide consulting, sales, and technical services on Atlassian products.
July 23, 2014

You can do this with scripting (Script Runner free plugin, Groovy), or with Kepler's SIL (http://confluence.kepler-rominfo.com/display/SIL/getUserProperty) which is another scripting langiage (probably simpler then Groovy). Is this an option for you?

I do not know a plug-in that provides it "out of the box".

Andris Grinbergs
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.
July 23, 2014

Thanx. Maybe you know code how to do it in Script Runner? Or point me to the documentation where I could dig that info?

Rina Nir (AC)
Solutions Partner
Solution Partners provide consulting, sales, and technical services on Atlassian products.
July 23, 2014

I do not have a code that does exactly this (ie get UserProperty and set it in a CustomField),

But, one of the trickiest things to note is the very specific scheme to follow to make sure that your update to the custom field is actually written into the DB and persisted. To acieve this you should follow a similair scheme to this:

MutableIssue myIssue = issue

		//Update hoursSummaryString
		CustomField hoursSummaryString=customFieldManager.getCustomFieldObjectByName(hoursSummaryStringFieldName)
		myIssue.setCustomFieldValue(hoursSummaryString, billingStr)
		Map<String, ModifiedValue> modifiedFields1 = myIssue.getModifiedFields()
	    FieldLayoutItem fieldLayoutItem1 =ComponentManager.getInstance().getFieldLayoutManager().getFieldLayout(myIssue).getFieldLayoutItem(hoursSummaryString)
		DefaultIssueChangeHolder issueChangeHolder1 = new DefaultIssueChangeHolder()
	    final ModifiedValue modifiedValue1 = (ModifiedValue) modifiedFields1.get(hoursSummaryString.getId())
	    hoursSummaryString.updateValue(fieldLayoutItem1, myIssue, modifiedValue1, issueChangeHolder1)

For the user property itself, you can have a look here:

https://answers.atlassian.com/questions/112783/script-how-to-get-value-of-user-property

Suggest an answer

Log in or Sign up to answer