Skip to content

Releases: jamessimone/apex-rollup

Automate Build Pipeline & Rollup Control Updates

04 May 21:05
361e899
Compare
Choose a tag to compare
  • Fixes #88 by automating build pipeline for package version creation, promotion, and replacement in README
  • BREAKING CHANGE RollupControl__mdt.MaxQueryRows__c updated to RollupControl__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 in RollupControl__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 that Rollup was looking to was 100 instead of 3000 (the default for MaxLookupRowsBeforeBatching__c
  • Some more tooling on how RollupEvaluator gets initialized/passed around within Rollup itself, specifically in regards to the recursion detection released in #91

DLRS conversion script & recursion detection

02 May 21:43
89e90bb
Compare
Choose a tag to compare
  • 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

26 Apr 14:04
2448d6b
Compare
Choose a tag to compare
  • 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 the Prior 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

21 Apr 14:00
f311cae
Compare
Choose a tag to compare
  • 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

16 Apr 19:57
0117d8b
Compare
Choose a tag to compare
  • 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

10 Apr 23:59
Compare
Choose a tag to compare
  • Fixes #74 by migrating away from the use of the Opportunity object in almost all of the RollupTests tests
  • Fixes #69 by alternating between async contexts (when necessary), and not re-queueing / re-batching when already async unless necessary due to limits

Rollup Package Release

09 Apr 11:35
2ce58ed
Compare
Choose a tag to compare
  • Fixes #72 by creating rollup package
  • Fixes #71 by always correctly including query fields from Calc Item Where Clause

Concat Delimiter, Cross-Object Grandparent Rollups, Sorting on Concat

09 Apr 00:55
15323f4
Compare
Choose a tag to compare
  • 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

03 Apr 03:06
Compare
Choose a tag to compare
  • Moving SOQL test for RollupCalculator (from #64) over to appropriate test class, started increasing test coverage
  • Finished adding code coverage for rollup/tests/RollupCalculatorTests.cls
  • Added additional code coverage for RollupEvaluator with #66

First/Last Order By Bugfix

02 Apr 04:12
0fbf574
Compare
Choose a tag to compare
  • Fixes #63 by correctly querying for Order By First Last field when it's not already present