Releases: jamessimone/apex-rollup
Releases · jamessimone/apex-rollup
Automate Build Pipeline & Rollup Control Updates
- Fixes #88 by automating build pipeline for package version creation, promotion, and replacement in README
- BREAKING CHANGE
RollupControl__mdt.MaxQueryRows__c
updated toRollupControl__mdt.MaxNumberOfQueries__c
- this field was improperly named as part of v1.1.2, to my chagrin. The concept for "Max Query Rows" was already encapsulated inRollupControl__mdt.MaxLookupRowsBeforeBatching__c
field - Fixed a bug reported by Katherine West where
RollupFullBatchRecalculator
would not properly reset field values when batching - this issue was exacerbated by the "Max Query Rows" updates, above; batching was happening way earlier than it should have because the limit thatRollup
was looking to was 100 instead of 3000 (the default forMaxLookupRowsBeforeBatching__c
- Some more tooling on how
RollupEvaluator
gets initialized/passed around withinRollup
itself, specifically in regards to the recursion detection released in #91
DLRS conversion script & recursion detection
- Recursion detection added to prevent updates that don't update fields used in rolling up from re-triggering the rollup async work. Not all code paths currently support early-exit for recursive updates - notably, Full Record Set-based rollups, Grandparent rollups, and/or Ultimate Parent (hierarchical) rollups
- additional test coverage for #87 - integration tests for trigger-based rollups added, including some interesting bugfixes for rollups where insert/update/delete (etc ...) all occur within the same Apex transaction
- README updates to fix documentation for #90 by adding information about
Concat Delimiter
field - @jongpie put together a great script to close #84 - DLRS rules can now be auto-converted to Rollup metadata 🎉! More information can be found in the
Setup
section of the Readme
Better support for after update flows, concat distinct bugfixes for delete
- Fixes #85 by properly supporting CONCAT_DISTINCT on delete
- Refactored recalculation app so that Order By field could be included
- Added ability to select CMDT
Rollup__mdt
in full recalculation app, piggybacking off of #79 - BREAKING CHANGE - base Rollup invocable action and bulk Rollup invocable action now require you to stipulate the SObject type for two different collection variables, though the new one ,
Prior records to rollup
, is strictly optional on anything other than after update record-triggered flows. Note - while the Flow engine would have you believe that your Flows are locked after upgrading (because thePrior records to rollup
collection variable type is both locked and required), if you keep your Flows in source control, you can still edit the XML and re-push the flow without having to recreate the Apex action(s):
<dataTypeMappings>
<typeName>T_oldRecordsToRollup</typeName>
<typeValue>REPLACE_THIS_WITH_YOUR_SOBJECT_API_NAME</typeValue>
</dataTypeMappings>
- Invocable / full recalculation app code routes now offer earlier validation for invalid rollups - like FIRST/LAST without an Order By field stipulated
Hierarchy Rollups & FIRST/LAST bugfixes
- added support for hierarchical (ultimate parent) rollups, either in conjunction with grandparent rollups or done separately. It's now possible to rollup values to the ultimate Parent Account, for example, and any other hierarchy-based or lookup field pointing to the same object
- fixes #80 by properly including Calc Item Where Clause in FIRST/LAST queries
- bugfix for currency/multi-decimal exclusions using zero in a Calc Item Where Clause - no longer have to use the exact decimal precision (
0.0
,0.00
,0.000
, etc) when filtering on zero - Further fixes for #80 reported by Katherine West - rollups should update lookup items if the current value would be excluded due to the calc item where clause, but the old item's value would not be excluded.
- Fixes #82 - with caveats about the need to extend the LWC to support all of the fields necessary - by enforcing validation rules for performFullRecalculation method in Rollup
CMDT Datatable for Recalculate Rollup App
- Fixes #75 by removing named export from recalculate rollup LWC, which breaks
event
targeting in Locker (thanks to @manuel-jasso & @ekashida for their support on this one) - Fixes #77 by updating rollup action picture to properly describe when to use INSERT / UPDATE
- Actual fix for #74 by removing all instances of DML on Opportunity object within unit tests
- Thanks to @jongpie for doing the fix for #78 - added CMDT-driven datatable to Recalculate Rollup app 🎉
- Fixed several bugs with
Calc Item Where Clause
where usage of the polymorphic Owner/Type fields on SObjects could break the filtering, particularly when the rollup was started from the parent object
Better Async Processing & Test Updates
Rollup Package Release
Concat Delimiter, Cross-Object Grandparent Rollups, Sorting on Concat
-
Grandparent rollups now support cross-object filtering
-
Polymorphic fields are supported with Evaluator
-
Fixes #2 by adding custom concat delimiter option to Rollup__mdt
-
Scope creep - add code coverage for different polymorphic field types, including the fix of a subtle bug in RollupEvaluator where Who.Type/What.Type wouldn't always get selected correctly from a parent-level object
-
Fixes #70 by instituting sorting for the final output of rollup concat operations
Adding additional code coverage
First/Last Order By Bugfix
- Fixes #63 by correctly querying for Order By First Last field when it's not already present