Recalculate quotation totals after modification by BPM

Hi everyone,

I’m working on a BPM that updates the unit price of each QuoteDtl line.
Specifically, for every line I update the following fields:

quoteDtl.DocExpUnitPrice = priceWithIncrease;
quoteQty.DocUnitPrice = priceWithIncrease;

The issue is that the Quote totals are not updated correctly after these modifications.

The unit price changes, but the header totals and extended totals remain unchanged.

I’ve tried calling the REST method:

Erp.BO.QuoteSvc/CalculateQuoteDtlUnitPrice

However, even sending the full QuoteDtl dataset with RowMod = "U", the service does not seem to recalculate the totals as expected.

Before I continue down the wrong path, I’d like to ask:

:white_check_mark: Is there an official or recommended way to force Epicor to recalculate Quote totals after modifying QuoteDtl line prices in a BPM?

  • Is there another BO method I should call?
  • Is there a specific field that must be cleared or set to trigger recalculation?
  • Should I avoid setting certain calculated fields manually?
  • Is there a way to trigger the same recalculation the UI performs when editing prices manually?

Any guidance or examples would be greatly appreciated.

Thanks in advance!

Try sending the ds after that call to Update.

1 Like

Also make sure to trace the UI to double check if any “helper” methods are called before Update.

1 Like

It seems difficult to replicate the flow, because the native view passes both the before-change and after-change datasets inside the same QuoteDtl.
When I try to obtain the before and after QuoteDtl using GetByID, it appears that Epicor returns the records with a different signature, which causes the error indicating that another user has modified the data.

This looks more complex than originally expected.