Hi,
we're using Jira Server with Script Runner 6.15.0 and Backbone Issue Sync 4.1.5.
We have two custom fields whose values should be transferred to another Jira instance using "Backbone Issue Sync" depending on issue status.
My first idea was to create an additional Custom Field of the same type for each of these two fields, which is not displayed on any screen. These additional fields should be filled via Behaviour Script with the value of the corresponding displayed field (taking the Issue Status into account) and Backbone Issue Sync should transfer the values of these hidden fields. My script for the Date Picker field looks like this (a server side script on field "Offer valid thru" at the moment without considering the issue status):
import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def offerValidThruField = getFieldById("Offer valid thru" )
def offerValidThruJ4CField = customFieldManager.getCustomFieldObjectByName("Offer valid thru J4C" )
if ( offerValidThruField && offerValidThruJ4CField) {
def offerValidThruValue = offerValidThruField.getValue()
underlyingIssue.setCustomFieldValue(offerValidThruJ4CField , offerValidThruValue )
}
Unfortunately the additional field "Offer valid thru J4C" is not filled by this script with the value from "Offer valid thru". An additional problem I suppose: if the field would be filled by this script, then this would happen for example while the edit screen is still open. If the edit screen would be closed via Cancel, then "Offer valid thru J4C" probably would still ccontain the changed value. But I probably can't use the method field.setFormValue(), because the field is not displayed on the screen.
My other thought is to create these two additional fields as script fields, and define in the associated script that these fields get their values (if the issue status condition is met), from the associated displayed fields. However, since the two additional fields should never be displayed, the question is whether "Backbone Issue Sync" would also call the script to retrieve the values when synchronizing during its sync.
It would be really great if anyone has any tips.
Thanks in advance, best regards!
Frank
I'm Matthias from the Backbone team. I have to admit that I didn't work too much with Scriptrunner's behaviour functionality, but your script fields solution sounds good to me.
My understanding of the solution would be:
As a side remark: Backbone usually only synchronizes changes which are reported in the issue's history. We rely on that to determine which fields have actually been changed. Since a scripted field never appears in the history, we synchronize this always when some other field which is defined in the sync is getting changed, see also our docs.
Does this help? If you want to discuss your use case in private, you can also reach out to our support team via help@k15t.com.
Cheers,
Matthias.
Hi Matthias,
thank you very much for your answer. Unfortunately - for this matter - I am on vacation at the moment. I will come back to the office on 4.1. and will try this as soon as possible. I'll be back in touch to report on the success.
Best regards!
Frank
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Matthias,
we checked this last week. It works! So, thanks again for your help.
Best regards!
Frank
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.