As we migrate our classic customizations to Kinetic, I’m trying to force myself to use widgets instead of code. I figure they will likely weather upgrades better. That said, I have a really simple function that I cannot for the life of me figure out why it’s not writing back to the database. The function is intended to change the primary bin location for a part.
Using Postman, the function runs without error (nothing in the server event log either). I have verified that the PlantWhseDS dataset gets loaded correctly with the new bin location, but nothing seems to be written out to the database.
DB Access from Code is set to Read Write even though I’m just using widgets.
Can confirm. Just upgraded from 2024.2 to 2025.2 this weekend. Out of our 100+ functions, 1 of them broke when they added a parameter to JobEntrySvc.GetNewJobProd. It was a widget function.
I keep hearing people say that widget functions are more upgrade ready, but in reality they aren’t any better than a code function. Stick with a code function with some nice comments so people so the next guy can understand what you were thinking.
To answer your question, you are likely just missing setting the RowMod to “U”.
Um, your code is going to break here too if you’re missing a new parameter - widget or not. Reflection and direct file access is breaking in code now, but widgets don’t allow that behavior. I don’t think either camp can declare upgrades are smoother anymore.
I think what I’m trying to say is that is that there’s no way a widget function can upgrade on it’s own in most cases, so what’s the point? I’m going to have to fix my customizations when I upgrade anyway. There’s many more advantages to having a readable function.
And I still don’t understand why after so many years of “widgest are our future!” they don’t have a “refresh signature” button that adds or removes any changes without blowing away the settings you have and then let you be able to adjust from there instead of having to start from scratch. Some of the BO’s (like updateEXT) are a BEAST to set up, and you really don’t want to have to start over if one tiny thing changes.
For whenever someone get’s around to approving the idea, here’s the number for the new idea. (I can’t believe 1. that I even have to make an idea for something so obvious, and 2. that there isn’t one already out there). But anyways, it’s idea:
Do you think we’ll look back at the widget vs. code debate with a quaint smile when we won’t be using either because an AI agent will turn our business rules directly into code?
Firstly, I surely didn’t intend to cause a widget vs code debate. Everyone’s points are valid. Our world is not perfect.
I thought that too, but when I set the RowMod = “U”, the function fails to complete with a server error “Object reference not set to an instance of an object”. I’m likely missing something obvious there.
On that note, am I the only one that feels searching for Epicor related help via Google is yielding less useful information in favor of the AI Overview stuff?