UD100 table duplicating records sporadically since 2024.1.10 upgrade

We have a customization using UD100/UD100A tables that has been working fine for 1 year. We upgraded to 2024.1.10 at the end of August and since we are seeing duplicate records on UD100. This is sporadic – not happening to all users and then only happens sometimes to the same user. It is only duplicating the UD100 data and not the UD100A. It seems to duplicate at Save.

Sometimes it repeats the same sequential number (Request No/UD100.Key1) and all other data.

Sometimes it assigns a different sequential number (Request No/UD100.Key1) but all other data is repeated.

I have ruled out the method directive used to assign a sequential number for UD100.Key1 as I was using custom code and thought that might be the cause. I switched to using the GetNextSequence function provided by @klincecum and still saw the duplicates.

Has anyone else had a similar issue?

Not exactly this, but the Web UX uses Asynx calls and they don’t always disable multiple clicks. IE if you open a Dashboard nad hit refresh you can hit refresh again and again and again and all the calls will stack and process async

I am willing to bet this user is a happy clicker… try clicking the save button two or three times in a row (Quickly)

2 Likes

I wasn’t able to get it to duplicate by clicking Save fast multiple times but then I haven’t been able to replicate it at all. I have another IT person on our team that has been able to replicate it so will have them try.

This does happen to more than one users but the same users don’t see it every time…it is very strange. We have tried clearing cache which seemed to help for a brief time but then returned…maybe it really didn’t help since this is sporadic.

@josecgomez we did more testing today and the one individual got the first entry to duplicate and could not get any others after. I turned on the “Debug Tool” on the Kinetic menu and was able to get 3 different sets of duplicates but then other entries were just single and the duplicates were not in a row - the were spread throughout my testing. One thing I noticed in the Debug Tool was when a duplicate is created the following were shown twice…not really sure if this indicates anything or not :confused:

0 request ErpPostWithDataViewProcessing: Ice.BO.UD100Svc\Update
0 request ErpPostWithDataViewProcessing: Ice.BO.UD100Svc\Update
0 response received Ice.BO.UD100Svc\Update
0 response received Ice.BO.UD100Svc\Update

Should have added…the duplicates done today were not always when clicking Save more than once fast but some were. Doesn’t seem to be a pattern.

Yeha that indidcates that the Update call is being sent twice I suspect with the “new” (Row Mod A) both times.

1 Like

Any thoughts on how I figure out what is triggering the Update twice or is this an Epicor issue since it occurs when I click Save which is the standard save button in the Kinetic Layer? I was able to confirm via the Web Browser Developer Tools that when duplicates are created there are 2 updates and both have RowMod = A

Don’t you have a custom update? Are you certain you are only checking for added rows?

1 Like

I have a Method Directive on Ice.BO.UD100.Update that assigns the sequential number to Key1and it checks for adds (your custom code). I also have some Data Directives that set the other Key2-5 fields. Two of the DD’s check for both Adds & Updates but I removed the update check and still was able to get the dups so don’t think that is it.

We are noticing doubling clicking Save fast returns dups - sometimes with the same Request No and other times two different numbers.

We are also seeing that using an external mouse vs the touchpad on laptop acts differently. We are getting dups when using touch pad cursor to select Save with only one click. Most of our users have desktop computers so suspect the double clicking at Save may be more of the cause but still testing.

This is very frustrating as this has been in place for a year and we just started having issues with dups at the end of August with the 2024.1.10 upgrade.

1 Like

Ok, we just need to add a check in the code to see if it exists.

Something like…


if(Db.UD100.Any(x => x.Key1 == theVariable)) return; //Stop processing

@klincecum I am going need some guidance on adding this check as I tried multiple things today and am not getting anywhere. Below is the original code. Another thing we noticed today in our testing is we are using UD100.Character01 to put comments in and if we leave this blank we don’t get the duplicates at Save where if we enter text and then Save we get duplicates. Not sure why this makes a difference.

int lastRecord_ID = 0;
Ice.Tables.UD100 lastRecord = null;

try
{
    lastRecord = (from ud100Rows in Db.UD100
                    orderby ud100Rows.Key1 descending
                    select ud100Rows).First();
}
catch {};

if(lastRecord != null) lastRecord_ID = Convert.ToInt32(lastRecord.Key1);

foreach(var record in ds.UD100.Where(rec => rec.RowMod == "A"))
{
    lastRecord_ID++;
    
    int leadingZeros = 10;

    string fmt = new String('0', leadingZeros) + "#";
   
    record.Key1 = lastRecord_ID.ToString(fmt);
}

Not ideal, but is it possible to put a lockout timer on the submit button of 1000 ms or something? Not sure if that can even be done in App Studio…

Sorry @dgross, got distracted, I’ll see if I can come back later.

I came up with a solution that seems to be working so far :crossed_fingers: I added a Save button and disabled the standard Save tool. My new button is using the same EpBinding (TransView.SysSaveTool ) and Event (SysUpdate) as the standard Save tool so not sure why it resolved the duplicates.

2 Likes

Update: While adding a custom Save button resolved the duplicates, I now have an issue with another custom button on the menu used to send an email. Users now have to click the “Send Email” button twice where prior they only had to click once. Has anyone run into an issue with a custom button requiring users to click multiple times?

Got similar problems here with MFG-STK records (Job Receipt to Inventory) and STK-STK records (Inventory Transfer). It only happens to the one colleague working with Kinetic using a browser. All the others in that proces uses the classic client application and have no problems.

Another thread linked to this issue:
Job Reporting Duplication - Kinetic ERP - Epicor User Help Forum

Job Receipt to Inventory is very annoying as it creates inventory that can’t be undone. It writes the WIP costs in both records, where a manual ‘duplicate’ MFG to STK transaction will result in 1 record with all the WIP costs and the second will be without costs as there is nothing left.
Adjust inventory can be done, but will result in a financial stock variation. When the job is closed there will be a production variation which should be around the same value. Annoying.

When we figure out more i will let you know.