-
-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
v1.2.0 - Grand(and greater)parent rollups (#57)
* Deprecated `RollupControl__mdt.MaxLookupRowsForQueueable__c` in favor of `RollupControl__mdt.MaxParentRowsUpdatedAtOnce__c`. Previously an exception was being thrown if there were too many parent records getting updated, but we can just chunk the updates. Started investigating why MaximumRollupRetries__c is not being used. Current status - fixing `shouldDeferUpdateWhenMaxParentRowsLessThanCurrentUpdateRows()` test * got tests back to green after `MaxParentRowsUpdatedAtOnce__c` addition * begin refactor toward usage of `QueryWrapper` object to prevent string overflow for full recalculation query string * Added parent recalc integration test with custom fields * Actually make use of `stackCount` variable * First pass at fixing `RollupRelationshipFieldFinder` to actually traverse up the object chain to retrieve the ultimate parent records. * Major cleanup of `RollupRelationshipFinder` and tests, added in ability to determine if the ultimate parent of a record has changed * Updating test/build script to properly take into account test command not exiting process * Further progress on #46 - start of work to wire `RollupRelationshipFieldFinder` to larger Rollup framework * Added further sanity tests for `RollupRelationshipFieldFinder` validating that it uses the where clause effectively (may still need more testing here), and that a singular parent tied to multiple children is tracked correctly * Got rid of flow and flow test now that patch 230.12.2 has hit and fixed the reflection issue with flow engine and SObject collections * Started wiring up `Rollup` to `RollupRelationshipFieldFinder`, added `Rollup__mdt.GrandparentRelationshipFieldPath__c` * First passing integration test for #46. still some cleanup/tweaks to do related to re-queueing and avoiding duplicate queries * Cleaning up grandparent rollups, bulk optimization for grandparent rollups, updated Readme documentation, bumped medium version, replaced local variables where they were shadowing class variables * Added passthrough / grandparent functionality to each invocable. Proper encapsulation for `traversal.isFinished` * Nearing completion - added `traversal.getOldUltimateParent()` method so that grandparent items can eventually compare whether or not the old value changed during reparenting; it will also be necessary to test that this works on the non-reparenting route * Got reparenting for grandparent rollups working! * Fixing cached testing metadata issue, updated folder directory in `extra-tests` to put triggers at top level * Updating comments * Parent-initiated grandparent rollups now working, with the caveat that these have to conform to the SOQL max object jumps of 5 * Final updates for #46 - fixed recommencement bug with `RollupRelationshipFieldFinder`, and added test proving it works * Updating readme with parent-initiated great-grandparent rollup note * Excellent feedback from @jongpie - made `Traversal` constructor private, added better clarity surrounding when `RollupRelationshipFieldFinder` uses the simple out of lookup ids changing for reparenting, reverted an unnecessary change from null to empty string in `RollupTests`, and removed the unnecessary `System` namespace prefix from the Formula method in `RollupEvaluatorTests` * Fixing last of the feedback from @jongpie - if intermediate parents are legitimately updated, Rollup now properly recalculates grandparent rollups * Fixed `README` typo, added comment explaining non-idiomatic CDC behavior * Prettier formatting
- Loading branch information
1 parent
f1b984c
commit 0cd4f62
Showing
29 changed files
with
1,486 additions
and
319 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.