UBAQ and usual business object methods functionality

Just kind of spitballing an idea here. I’ve long considered customizing some of our more common forms to consolidate the fields that we use to make it a little easier to see everything in one place. On Order Entry, for example, there are many automatic methods that fire when manipulating the data there. If I made a UBAQ that allowed a user to change, for example, quantity… would the method that fires when you update quantity still fire (ChangeSellingQtyMaster) when the UBAQ is saved or would it just be updating the quantity and that’s it?

Ultimately, this is information I’m trying to use to decide if a customization to the default Order Entry screen is better or if I should make a dashboard that shows all the basic order info only and then maybe customize that. Maybe Order Entry isn’t the best example but the Part Maintenance one is another I’d strongly consider customizing simply because there are like 400 controls that are scattered across dozens of tabs of which we only really use like 30 and could all be displayed in 1-2 tabs.

If you call the business object anywhere (DMT, UBAQ, etc), it’s going to fire the methods attached to it.
You can use DBContext to update the data directly using a UBAQ which would not call the methods since it’s going around the BO.

You can’t just jump to “Update” and have all of the methods called. You need to call the methods yourself in code to make them work. Generally you work through the UI and do trace to mimic what you do it the UI, which would include making those calls as you change the data.

Ideally, all of the checks would be done in one call, so that you didn’t have to call them all separately, but the backend wasn’t designed for “stateless” transactions, and assumes some prior work from these methods most of the time.

That being said, I believe the UpdateExt (which is what the UBAQ uses when you don’t code it yourself) is supposed to have those checks built in… but it’s not always the case. I haven’t trusted the epicor UBAQ in a long time.

Tracing is your friend.

When you finally understand the trace, 99% of the time you have your answer.

Some stuff can be skipped, some stuff can’t. You never know really until you understand the trace.

1 Like

Yeah I mean I understand that they exist and they need to be used. I was more trying to understand if the UpdateExt method did it automatically or if I needed to manually make it happen.

It sounds like UpdateExt is supposed to but is not reliable - so with that said, I think I’d take the approach of customizing the Order Entry and Part Maintenance forms with some kind of consolidated tab that displays everything we need in one place - since that already has the business logic built in when changing those fields within that form.

2 Likes

I’ve done that before. Just other controls bound to the same data.