When I make a customization to an existing app for one particular purpose and then later need to make a customization for some entirely different purpose, I almost always create it as a second customization, and then enable both in the menu entry. The idea being: 1) don’t break the first customization, and 2) maintain modularity to more easily turn customizations on/off if something goes amiss or needs change.
So this brings me to the more general question about customization granularity, and I wanted to get the opinions of those more astute than me how they see implementing customizations now and over the lifetime of Kinetic. How many separate layers can we stack before we hit some limit or something breaks? Are there loading time or stability tradeoffs for loading 314 layers vs. 1?
Do y’all have any codified guidelines or hunches about how you’ll handle this?
I’m not more astute but do believe when two layers mod the same component the layer merge logic supposedly picks a winner by top down preceidence but it’s a bit of a black box. I’d think, abesent some clarity around this, you’d pretty quickly run up against some less than deterministic results.
I’ve personally ran into this with events. Especially for “popular” events. You might have one developer make a change to bring in some grid on a custom panel card and they hook up to an After GetByID or RowChange type event. Then a new guy comes in with a completely different customization but also needs to hook to that event. Only one layer will work. And it’s not fun to troubleshoot. I’m basically in the same boat as you asking “how should I be doing this” because it seems like you are darned if you do and darned if you don’t.
That’s a great example. AFAIK, it picks a winner at the component level for layout and sounds like trigger level for events, but who knows. Either way that’s not at all granular enough. we avoid muti-layer and merge in appstudio so we can know the results.
I’ve found that after 5 or six layers, the layout is absolutely destroyed, even in parts of the screen that were not touched or modified. So I end up making a final Merge layer that takes all the customizations and then I correct the layout issues and apply just that one layer. I know it’s going to be a mess when it comes time to update existing layers or add new ones…
That said, this experience is from 2024.2 and prior
I just ran into a similar experience, thankfully contained to our PILOT environment.
We have four preexisting layers on Order Entry: Ebiz, Internal Base Customizations, Global, and RingCentral.
I added two UD fields and a combo box well below the full-page break of the Global layer, in an area that appeared open in the published menu, and it completely destroyed the layout.
Troubleshooting has been less than ideal, but it has been eye-opening. You quickly find that customization and layer precedence have a very real impact.
I still haven’t fully wrapped my head around it all, so this post comes at a great time!