I have been facing an issue for quite some time now and I think it might possibly be a system bug, as I really have found only ways to walk around the issue but not solve it. The problem is that in a perspective view I have a few labels bound to properties and set up to execute transforms - either a script transform or a simple date transform. The problem is that when you open the view, the transforms do not execute at all. I have tried changing the scripts to completely negate the value and just say "Hello world", but it does not work until you refresh the whole page, which usually messes up other views as well. I have tried changing the bindings, adding refresh commands in the page startup script, completely change out the bindings but to no avail, only newly added labels seem to work.
As I have found that newly added labels seem to execute the transforms it seems to have resolved the issue, but I fear this may just happen again and maybe this is a bug in the ignition system.
Any comments and thoughts are appreciated as to why this is happening.
The bindings execute either at page start-up or on a value change trigger. As transforms are applied to bindings so they will only trigger if the binding itself is being triggered. So one good case, is to have a custom property set to expression:
This will result in a value change every 5 secs. This property is in turn bound to a label, which has a transform applied. This will give a very definite proof that bindings are being triggered but not the transforms attached to them.
This will also help in isolating the problem as you have a valid concern that issue might happen again as adding new labels is not a proper solution.
Examples of the bindings I have used (note that I use the exact same bindings in other views of the same session and it works perfectly fine, even new labels on the same view work perfectly fine, just a few labels are stuck on not working):
How do you know your
try: clause isn't catching something, preventing your value from updating? Add logging to the
except: clause. Consider using a double except clause to catch both jython and java exceptions. (Some tips.)
I can imagine a race populating user information while a session is populating. Without a backtrace, you won't have anything to report to IA support.
As I mentioned in the post - I have tried completely taking out everything and writing, that value = "Hello world" return value, which works in the designer, but not on the web
you should not format the date in the binding, since the formated value (without minutes/seconds) will probably not change a lot
are you sure the view params are changing?
Not really sure what you mean by "the formatted value will probably not change a lot", as this value does change drastically depending on what task has been selected.
About the view parameters - yes, they do change as they should, as I mentioned, I added new labels or markdowns, copied over the same bindings and formats and they work just fine. The labels themselves show the correct value that is pulled from the DB, just doesn't format.