Skip to main content
1 réponse
  1. 1 sept., 15:45

    Hi Monty, 

     

    This is a known DLRS behavior with multi-currency orgs, not a config mistake on your end. Since your rollup uses an aggregate SOQL query (SUM) under the hood, Salesforce's database engine automatically converts all child records' currency into the org's corporate currency before summing — even for records that already match the target field's currency — and this conversion step introduces rounding/precision loss. That's exactly why your rolled-up value comes out slightly lower than the actual OLI value, even with just one line item. 

     

    This is documented as a longstanding, open issue in the DLRS project itself (not something recent or specific to your setup) — it happens whenever the record's currency isn't the org's native/corporate currency, since the aggregate query silently converts before summing. 

     

    Practical options: 

    1. Check your org's dated exchange rates — if you're on Advanced Currency Management, small discrepancies often trace back to which exchange rate date DLRS's underlying query picks up versus what you expect. 

    2. If exact precision matters, consider switching this specific rollup to Rollup Helper (Passage Technology) instead — it explicitly markets better handling of currency-field rollups in multi-currency orgs, and even provides a one-click converter for existing DLRS rules. 

    3. As a workaround, you could roll up a plain Number field (not Currency type) representing the OLI amount in a fixed reference currency, sidestepping the currency-conversion-before-sum behavior entirely. 

     

    Reference:

    https://github.com/SFDO-Community/declarative-lookup-rollup-summaries/discussions/1101

     

     

    Worth checking if the gap matches your org's current corporate-currency exchange rate — that'll confirm this is exactly what's happening rather than something else.

0/9000