Updating UD Fields in Updatable BAQ, Bypassing BO

Hello EPIUSERS!

I want to start with saying I appreciate all the information I have found here. Now that the sappy stuff is out of the way…

What would be the simplest way to update UD Fields in an Updatable Dashboard without tripping the business logic, as I do not want said update firing the BPMs associated with the BO? The UD fields are strictly notes/dates that are not tied into any other logic.

I have played around with Advanced BPM Update only and editing the #BASE Processing autogenerated code in BPM Directives Configuration. It seems I am close with the second option having copied the #BASE code to a different custom code block in the Base Processing Update Method, while disabling the original #BASE code, but was wondering if there was not a simpler way.

Blake

How many BPMs would you need to go around? Did you know that you can put a condition on a BPM that checks which program you are doing the update from? you could prohibit/allow your regular BPMs to run based on if it is your dashboard.

Also: Normally UBAQs run an UpdateEXT process which simply calls the regular UPDATE process… example, if you are updating Parts, the Part.UpdateEXT is called, which will run Part.Update, triggering all BPMs that are in Part.Update. THEN any Data directives will also be triggered which are hard to keep from happening.

Hey Tim,

Thanks for the response. Unfortunately the answer to how many BPMs we would need to go around is too many :rofl: We have a lot of BPMs on the SalesOrder.Update method and various OrderXXX tables. So I do not know if placing a check on the CallContextClient fields would be a viable option for the all of the method/data directives.

Another thought was to create a web form/C# form that would update the fields directly since they are not tied to any Business Logic, but was wondering if there was a simple way to do via UBAQ as we would like to keep within Epicor if possible.

Blake

the only way I know to avoid triggering the SalesOrder.Update is to write directly to the table avoiding the UpdateEXT process… this requires new codeset in the UBAQ, but is possible. You can use the UBAQ to gather the data, and then use advanced coding to skip all the normal functionality.

1 Like

Thanks Tim. I ended up using your suggestion and removed the UpdateExt call used in the BASE UBAQ.Update method, replacing with a linq query to the DB table and updating the UD field with the SetUDField Method.

Sorry, can shared the step or where i can get the sample or guidance? Having same issue need to update the UD Fields in ShipHead but hit error on the earliest apply date blocking.