When a user updates a different row field, the “Indication” is displayed correctly for the first row/field using the declared on-change functionality. However, if the user modifies the same row field twice consecutively, the update and indication results are not displayed/refreshed correctly on the second attempt.
I explored a similar use case recently in a repeating grid. I observed that relying only on declared on change can lead to inconsistent behavior, especially when the same row is edited multiple times.
What worked more reliably for me was shifting the approach to a comparison-based design:
maintaining original values for each row
comparing current vs original values
deriving the indication (Updated / No Change) using Declare Expressions
This ensures that the result is recalculated every time based on state rather than relying purely on event triggers.
For UI consistency, a lightweight form refresh using pyRefreshData can still be used, but the core logic is handled through comparison.
what version of Pega are you using? In ‘25, Pega released Embedded Data tables support Views or Actions, which gives you more flexibility to do things in post/pre processing if the row was edited. You can even configure a separate action for edit, which would give you the ability to tailor the logic on edit (avoiding create)