Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,461,683
Community Members
 
Community Events
176
Community Groups

Structure not syncing when live updating

I have a Behavior in scriptrunner where if a custom field was unchecked, then another custom field gets cleared.

But when I uncheck the custom field on the Structure, it still shows the other custom field as filled out and not cleared. Only when I go on the issue view and make the edits, it works properly, but it still doesn't reflect in structure unless I hit refresh.

How can I get Structure to sync properly so that I can update manually any issue and it runs the behaviors I had set?

2 answers

1 accepted

1 vote
Answer accepted

Hello @Diana Gorv ,

David from ALM Works here.

The scenario you describe sound similar to the one discussed in this thread.  It contains some steps that may help in addition to the recap below.

To recap:

Structure relies on Jira's EventManager updates to refresh data.
Please check if the updates you expect to see in Structure are being displayed in the Issue's History Tab.
You should be able to see a "made changes" entry if you open the Issue and look at the History tab under the Activity section of the page.

If there's no update on the Issue History, our suggestion is to change the script to use either one of these options:

  • initiate issue event manually using IssueEventManager
  • use IssueManager.updateIssue() with corresponding event dispatch option to update the field.

If you do see the events in the issue history, it may be best to work directly with our support team. You can initiate a ticket by emailing support@almworks.com or through our portal support.almworks.com.

Best,
David

Hi @David Niro _Tempo_ thank you for the quick response back.

I checked the issue's History Tab and I was able to see my activity captured the changes perfectly. The script works fine on the issue view level, and when I edit on the issue, it reflects on the Structure after a few seconds.

But only when I try manually editing on the Structure, the script doesn't seem to run. And when I check the issue's history tab after a manual edit on Structure, I saw that the custom field I unchecked was captured, but it didn't clear the other custom field and the history tab showed no activity.

I did research about a Structure Dark Feature ability that can force a structure to reindex whenever there's a change, but I rather not go that route if it means a possibility of messing up our entire instance. For now, it's not so much a major hinderance on our process, but rather a minor annoyance. We've been doing a workaround by either bulk editing or opening a new window tab and edit on the issue view. 

But it would be nice if there was a possible fix. I'll send an email ticket.

Like Dave Rosenlund _Tempo_ likes this

Hello @Diana Gorv

You are very welcome!  Thank you for the additional details!!!

To recap:

When updating your field on the Jira issue details view:

  • The script runs and clears the second field
  • You see both events (update of first field and clearing of second field) in the history
  • You see both fields update in Structure

When updating your field from Structure:

  • You see the first field is updated in Structure
  • The second field does not get updated in Structure
  • In the history, you do not see the first field was updated
  • the second field remains populated

I just want to be 100% sure I have the scenario correct.   If so, you are on the right path with the dark feature for indexing.  The second of the two options is less heavy though I still understand the hesitancy.

Best,
David

Like Dave Rosenlund _Tempo_ likes this

Yes, everything was correct except when updating my field from Structure:

  • In the history, I do see the first field was updated
  • but the second field remains populated, and no history was updated
Like Dave Rosenlund _Tempo_ likes this

@Diana Gorv 

Thank you for clarifying that for me!  If the event is being recorded in the issue history when changing the field in Structure, I would expect the corresponding action to take place.

In other words, I think something else is going on here.

Would you mind creating a support ticket via email support@almworks.com or through our customer portal support.almworks.com?

We will want to review the logs and discuss the script being used.

Best,
David

Like Dave Rosenlund _Tempo_ likes this

Hi @David Niro _Tempo_ 

I emailed the support team a ticket. I reference back to this question for them to review. But I'll share the code I used here for future reference:

Code below used in Behaviors for field Custom A server-side script. No conditions added. Switches set to Optional, Writable, and Shown:

import com.onresolve.jira.groovy.user.FormField

 

def customA = getFieldByName(“Custom Field A”)

def customB = getFieldbyName(“Custom Field B”)

def customAValue = customA.getValue()

 

if (customA.getValue() == “Yes”){

   customB.setHidden(false)

   customB.setRequired(false)

 

}else {

   customB.setHidden(true)

   customB.setRequired(false)

   customB.setFormValue(null)

}

 

Thanks!

Like Dave Rosenlund _Tempo_ likes this

Hello @Diana Gorv ,

Thank you for creating the support ticket and for the details on the script you are using.

I was looking into next steps and researching Behaviours a bit more and found the following information on the Adaptavist knowledge base:

Screens

Behaviours function on the Create Issue, Update/Edit Issue, Assign Issue, and Workflow Transition screens.

On the View Issue screen, trying to edit a field with a behaviour will launch the edit issue screen, instead of the normal inline editor.

Behaviours will not work on the Move Issue screen. They also do not work for any bulk issue operations or any issue edits that bypass the UI such as the REST API and other ScriptRunner scripts.

It seems that Behaviours are tied to the UI and do not work in any areas that bypass that UI (Structure being one of these).
There are a couple of options that may be worth looking into. 

The first would be to use a Listener instead of Behaviours.
The second would be to require this change be made on the issue detail screen.  If you want to see Field A and Field B in the structure, you can make them uneditable by adding them as a Formula Column rather than Field Column.
You would just add a formula column and then type the name of the field.  It will show the value, but will not allow editing.
We also have dev task in our backlog related to this topic.  If there are any changes / a better solution, I will be sure to let you know.
Please let me know if this helps.

Best Regards,
David
Like Dave Rosenlund _Tempo_ likes this

@Hi @David Niro _Tempo_ 

This makes a lot of sense! I was wondering if Listeners was the solution and not Behaviors. I will give this a try. I truly appreciate your help!

Like # people like this

@Diana Gorv you are very welcome!!

Like Dave Rosenlund _Tempo_ likes this
0 votes

Hi, @Diana Gorv. Welcome to the community! That sounds strange, indeed.

I'll share your post with some people I know who are much smarter than me about such things.  Stay tuned.

-dave 

Suggest an answer

Log in or Sign up to answer
TAGS

Atlassian Community Events