Master vs. non-Master methods: which way is Epicor going?

I’ve often complained that method directives need to be duplicated on Master and non-Master versions of BO methods because the UI typically calls one while DMT calls the other. I was familiar with E10 and now I’m working in E11/Kinetic and no longer have access to E10 for comparison. But if I’m remembering correctly, the E11 UI seems to be calling Master methods more than the E10 UI did. Is this something that Epicor has talked about? Is there a plan to move everything to Master?

It’s still a bit of a minefield. For example, I wanted to implement similar behavior when a part number is changed in Quote Entry and Order Entry. Changing the part number in Order Entry calls ChangePartNumMaster; I’m pretty sure it used to call ChangePartNum. But changing the part number in Quote Entry calls ChangePartNumMaster, ChangePartNum, and Update.

All Master methods call Update in the end, they just add more validation and reduce overhead. So you should only have to put your BPM in the Update method.

That may be true of MasterUpdate and Update. But I tested whether SalesOrder.ChangePartNumMaster internally calls ChangePartNum by creating a BPM on ChangePartNum that just displays a message when called. It appears it is not called.

I think it’s also not true for APChkGrp methods. The UpdateMaster() does not call Update() when I check a custom checkbox - it only fires Update(). But when I add/subtract invoices it calls UpdateMaster().

I think it might still have more to do with the single vs many idea. in ApChkGrp, the header is a single record, but when working with the invoices in that group, they are many.

For OrderEntry.ChangePartNumberMaster is “replacing” ChangePartNum in the UI

Not sure what you mean by “replacing”, unless you just mean the UI called ChangePartNum before and at some point they changed it to call ChangePartNumMaster instead. This is the kind of thing I’m asking about, and it’s not the only change like it that I’ve noticed. Is this part of a plan to standardize everything to call Master methods? Because that would be great news for writing and maintaining method directives.

Correct