Strange IMDD Issue

Hi Everyone,

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.

Regards,
Trent

Do you have any data entry controls on the window that represent columns from the fetched record?

Hi Jeff,

There is a browse on the window with 2 columns from this IMDD table.

Seems to me you have 2 possible places for the buffer changing.

  • Another Thread (Any form of access ) or do you have the Thread attribute on this table?

  • The browse moves/refreshes something and changes the buffer

Hi Sean,

  • The table has the ‘Threaded’ attribute enabled.

  • I’m guessing this is the issue.

For now I have added a second check into the button accepted embed to re-fetch the correct record.

Just waiting on the customer to confirm the issue is resolved.

It looks like the buffer was being changed by the browse on the window. The client has confirmed that everything is working perfectly today with the extra check added.

Thanks for you help Jeff and Sean.

Regards,
Trent

1 Like