I can't think of a simple way to describe this, so please bear with me. Views below are from 19.0 (though same thing happens in 18.0).

What's happening is that a timer that refreshes a grid in one view is messing with the current record in another view. I've attached 2 views that can be added to the sacred text to duplicate the issue. One is new (the grid that's refreshed by the timer) & the other is a modified Order.vw. Both have View_Latch_State = False

To see the issue:

Add the views to the OE workspace
Compile & run
Close Order.vw & open the OrderList.vw
Double-click on a row in the grid that is not the first row. This will open the selected Order in Order.vw (or open both views & find an order in Order.vw).
At the bottom of the Order view, you'll see a "Show Problem" button. Click it & after 5 seconds or so, an info box will show that the DD buffer & global buffer are now out of synch (DD value before & after is what's in the view, Global value after is what's in the grid in the other view).

The button does:

Code:
        Procedure OnClick
            Integer iOrdNumBefore iOrdNumAfter
            Integer iOrdNumBeforeGB iOrdNumAfterGB
            
            Get Field_Current_Value of OrderHea_DD Field OrderHea.Order_Number to iOrdNumBefore
            Move OrderHea.Order_Number to iOrdNumBeforeGB
            Sleep 5    //to make sure the timer in the other view has fired
            Send PumpMsgQueue of Desktop
            Get Field_Current_Value of OrderHea_DD Field OrderHea.Order_Number to iOrdNumAfter
            Move OrderHea.Order_Number to iOrdNumAfterGB
            Send Info_Box ("DD Before/After: " + String(iOrdNumBefore) + " " + String(iOrdNumAfter) + " GB Before/After: " + String(iOrdNumBeforeGB) + " " + String(iOrdNumAfterGB))
        End_Procedure
It's obviously something that happens when I send PumpMsgQueue (Send ProcessMessages has the same effect). Thing is I need the pump or process msg in my real world view because of what's going on there.

The "fix" I've come up with is to refind the record - but the whole thing doesn't seem right to me.

Any thoughts/ideas appreciated!

OrderList.vwOrder.vw