Best practices for validation in a customization

I see there are validation events for the controls but I don’t see were to set the validation rules. Is it best to validate on the control, on the epiDataView, or in a BPM?

Is there a built it way to show validation errors/feedback on the UI?

Well using the provided Validating event does not seem to be the way to go - does not seem to do anything when I set args.Cancel to true.

How do you all approach validation in a customization?

Using row rules gets me visual results - but does not prevent saving the data…

What are you trying to do?

Apply various validation rules to inputs on a customization, in this case a number range and a accuracy limit. Give visual feedback to user on validation without popping up a message box, but do not allow them to save invalid values.

Example: Numeric input. Min value of 24, max value of 120, only lets you select values between 24 and 120 that are multiples of 0.0625

Example 2: Numeric input for a dimensional tolerance. The min and max values may depend on the values in another input. For example, the tolerance may have a min value of .0625 if the length is less than 60, but if the length is over 60 the tolerance may have a minimum of 0.125

you could just check the proposed value input against your rules and then reset the field if it doesn’t match.

I could, I was just surprised that there wasn’t a more “proper” way to do it. If I do that I can’t think of a non-obtrusive way to let the user know that they need to change the value.

I think that’s a clean and accepted way to do so. You don’t have to show a msg box, but that’s a simple way to instruct the user.

I haven’t said anything because I don’t know what is “proper” either, apart from having seen it said that UI code is for convenience and feedback, and server code such as BPMs for failsafe security.

But we have tended to fall back on a belt-and-braces approach where we use the control events to guide the user, since we’ve found them fairly bulletproof, backed up by BPMs preventing wrong data in case anything slips through in ways we didn’t think of. All being well, those never need to fire and annoy the user after they thought everything was OK. I’ve found the dataviews harder to control, personally.

1 Like

Ok, I will probably use that method and just put the validation message in the status bar at the bottom.

FWIW, you’re on the right track Evan. When Epicor talks about the future with Kinetic, it’s more than just technology. There are three components to Kinetic: Kinetic Design, the Kinetic Framework, and Kinetic Applications. At the top of the this are UX design principles, which speaks to your statement. Like so many ERP companies (and people like ourselves), we slam as much we can on a form and expect users to, well, use it. Kinetic UX is Epicor’s directive into a better user experience. This is listed first for a reason. It becomes the guideline for everything called “Epicor Kinetic”, whether it is from Epicor or third party providers. The way to get there is the Kinetic Framework, which is the “sdk.” Any application that conforms to the Kinetic Design principles is considered a Kinetic Application.

I imagine it will be possible to use other tools and conform to the UX design but it looks like Angular + Kendo controls are the things people might want to look into if they’re interested. Some info here and I expect we’ll hear more during Insights 2019.


Is there anyway to start learning how to use this Kenetic framework or is it still in the teaser phase?

Unfortunately, it’s only open to Epicor employees and third party providers. The framework is listed on NodeJs and GitHub but it appears to be locked down now. There are others on this list who may have some access.

Mark W.

@Mark_Wonsil, in this older post, you’ve managed to provide more info on Kinetic than I’ve been able to find anywhere (I’m not afforded the the oppt’y to attend Insights).

Since the Kinetic term is regularly tossed around, I’ve tried to proactively find out what it is and what it means to us admins down here in the trenches. There seems to be scant info on this topic apart from grand concepts and visions of the future of computing. Even my CAM cannot find anything clarifying on this new ‘breakthrough’.

Do you know of a document, white paper, or back side of a napkin that describes this concept and what it means in ‘implementation terms’? What will it mean when my VP of Sales decides she wants to see the Contact Name field in the upper left hand corner instead of the right on a Quote screen? What will it mean to me, as an admin, as I ready my customizations for 10.2.500 or 10.3?

For those of us who maintain the software, apply updates and fixes, and create customizations, is there anything in existence that describes what “Kinetic” is all about - minus the lofty and nebulous terminology?

Hi Andrew,

Users on 10.2.400 have had a sneak peak of Kinetic: Epicor Data Discovery, Kinetic MES, and the Kinetic Scheduling Board were the first peeks at what we can expect in a Kinetic experience. The first batch of cloud users will be upgrading to 10.2.500 and the expectation is to see more Kinetic screens. As far as I know, the ability to customize Kinetic screens is not here yet. .500? .600? :man_shrugging:

The “back of the envelope” description might be web page leveraging Angular (to bind fields) and REST for data access. But I look at Kinetic like I would look at Google’s Material Design or Microsoft’s Fluent Design. These things ARE lofty and nebulous things that give the coder a canvas to build upon. You can use any tools really. Angular could be replaced with Blazer for example because at its heart, it’s not a technology but guidelines to building more usable software.

1 Like

Hmmm, interesting. Thanks Mark.
I assume that the technologies you’ve described will operate at a level beyond the interest of us admins and generalists. I am not a coder, I just play one with Epicor.

My needs are typically adding the occasional GetByID("PartNum) method, or populating the occasional epiUltraCombo.

Are we talking about the eventual retirement of these things (and BOs as we know them)? Or, as it sounds, this Kinetic ‘thing’ is some sort of new canvas of web technologies upon which we will still place familiar controls and use familiar methods?

From what I’m reading and learning (which is very limited right now), this will be a replacement of Infragistics to Telerik Kendo UI. This is also good as it leverages web technologies which makes it more client-agnostic.


There is no reason a new design language has to change any of the back-end functionality.

Customizations and other client/UI features will be changing since they are switching to a new UI framework, but I think you will have ample time to see what Kentic is all about before. The preview they have given us shows that both UI systems can exist concurrently without any technical issues. (Though its an odd experience)

Its like a car getting a new style body and dashboard, but still has the same engine and transmission.


Very interesting indeed - So this DOES impact the non-certified generalist admin types - like me. New controls with new capabilities, features, etc… new learning curve.

Thanks all for the primer. I suspect we will have ample time to adopt/adapt. And if the move from 9 to 10 is an indicator, Epicor provides pretty solid tools for the migration.

I also suspect that there are a lot of folks with similar questions that just haven’t asked yet. Hopefully they’ll find your comments which have certainly helped me understand this ‘thing’ that’s coming. Thanks again!

1 Like