I have a strange issue to do with an IMDD table in C8 that is happening for one of my customers.
The code fetches a record from an IMDD table successfully, then posts a ‘Button Accepted’ event. Inside the ‘Button Accepted’ event the IMDD record is different than the one that was fetched a millisecond ago.
This is currently only happening on one of our customer’s PC’s. It happens randomly, as most of the time the record in the button accepted event will be the correct record that was fetched.
Here is the code:
(in a routine) clear(MPER1:Record) MPER1:Barcode = clip(LOC:Barcode) if access:PersonMem1.TryFetch(MPER1:KeyBarcode) debug('Error on access:PersonMem1.TryFetch(MPER1:KeyBarcode), errorcode('& errorcode() &') error('& error() &')') post(EVENT:Accepted,?ButtonPersonnelSignOut) ELSE debug('Found MPER1:SysID('& MPER1:SysID &') for Staff Sign-Out via barcode (2)') !>>> Here it shows the correctly fetched record. post(EVENT:Accepted,?ButtonContinue) !>>> Post accepted event to ?ButtonContinue end!If (in the accepted embed for '?ButtonContinue') ThisWindow.update() debug('Staff Selected: '& clip(MPER1:Name) &' ID('& MPER1:SysID &') Alert Method: '& MPER1:AlertMethod &' Mobile: '& clip(MPER1:MobileNo) &' Email: '& clip(MPER1:EmailAddress)) !<<< Here it shows a different MPER record than the record that was fetched.
Has anyone run into something like this before? Any ideas what could be causing this? The MPER1 table is being filled and updated by a different procedure on a different thread every 10 seconds. I’ve made sure this procedure doesn’t run while the above code is running so there are no conflicts.