Skip to content

Commit

Permalink
v1.6.28 - Summer '24 release (#600)
Browse files Browse the repository at this point in the history
* Fixes an issue reported by aesthetics where the namespaced sfdx-project.json wasn't getting updated with the version name properly
* Upgrades API version to 61.0 for Summer '24
* Adds RollupGrouping__mdt.RollupOperation__c so that grouped rollups can override the operation prior to applying the calculated values to the final parent field
* Adds where clause to cache key for grandparent rollups
  • Loading branch information
jamessimone committed Jun 20, 2024
1 parent da030d4 commit a2770f3
Show file tree
Hide file tree
Showing 97 changed files with 290 additions and 113 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ As well, don't miss [the Wiki](../../wiki), which includes even more info for co

## Deployment & Setup

<a href="https://login.salesforce.com/packaging/installPackage.apexp?p0=04t6g000008ObL7AAK">
<a href="https://login.salesforce.com/packaging/installPackage.apexp?p0=04t6g000008ObN8AAK">
<img alt="Deploy to Salesforce"
src="./media/deploy-package-to-prod.png">
</a>

<a href="https://test.salesforce.com/packaging/installPackage.apexp?p0=04t6g000008ObL7AAK">
<a href="https://test.salesforce.com/packaging/installPackage.apexp?p0=04t6g000008ObN8AAK">
<img alt="Deploy to Salesforce Sandbox"
src="./media/deploy-package-to-sandbox.png">
</a>
Expand Down
2 changes: 1 addition & 1 deletion extra-tests/classes/CustomMetadataDrivenTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/InvocableDrivenTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupCalcItemSorterTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
18 changes: 18 additions & 0 deletions extra-tests/classes/RollupCalculatorTests.cls
Original file line number Diff line number Diff line change
Expand Up @@ -2208,6 +2208,24 @@ private class RollupCalculatorTests {
Assert.areEqual(7.5, calc.getReturnValue());
}

@IsTest
static void valuesCalculatorUpdatesOperationCorrectly() {
RollupCalculator calc = getCalculator(
0,
Rollup.Op.SUM,
Opportunity.Amount,
Account.AnnualRevenue,
new Rollup__mdt(),
'0011g00003VDGbF002',
Opportunity.AccountId
);

RollupCalculator.ValueRollupCalculator outerCalc = new RollupCalculator.ValueRollupCalculator(calc, new List<Object>{ 2, 3 });
outerCalc.setOperation(Rollup.Op.MAX);

Assert.areEqual(3, outerCalc.getReturnValue());
}

private class RollupCalcEmptyMock extends RollupCalculator {
}

Expand Down
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupCalculatorTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupCurrencyInfoTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupDateLiteralTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupEvaluatorTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupFinalizerTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupFlowFullRecalcTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupFlowTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupFullRecalcTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
7 changes: 5 additions & 2 deletions extra-tests/classes/RollupIntegrationTests.cls
Original file line number Diff line number Diff line change
Expand Up @@ -1758,8 +1758,11 @@ private class RollupIntegrationTests {
Account acc = [SELECT Id, Phone, OwnerId FROM Account];
Assert.areEqual('9999999999', acc.Phone, 'Test has started under the wrong conditions!');
String winningPhone = '5555555555';
insert new List<Contact>{new Contact(LastName = 'Second child object', Phone = winningPhone, OwnerId = acc.OwnerId), new Contact(LastName = 'Losing child', Phone = '333', OwnerId = acc.OwnerId)};
RollupGrouping__mdt parentGrouping = new RollupGrouping__mdt(Id = RollupTestUtils.createId(RollupGrouping__mdt.SObjectType));
insert new List<Contact>{
new Contact(LastName = 'Second child object', Phone = winningPhone, OwnerId = acc.OwnerId),
new Contact(LastName = 'Losing child', Phone = '333', OwnerId = acc.OwnerId)
};
RollupGrouping__mdt parentGrouping = new RollupGrouping__mdt(Id = RollupTestUtils.createId(RollupGrouping__mdt.SObjectType), RollupOperation__c = 'MAX');

Rollup.onlyUseMockMetadata = true;
Rollup.rollupMetadata = new List<Rollup__mdt>{
Expand Down
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupIntegrationTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupLimitsTest.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupLoggerTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupMultiCurrencyTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupQueryBuilderTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupRecursionItemTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupRepositoryTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupSObjectUpdaterTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupTestUtils.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
46 changes: 46 additions & 0 deletions extra-tests/classes/RollupTests.cls
Original file line number Diff line number Diff line change
Expand Up @@ -3086,4 +3086,50 @@ private class RollupTests {

Assert.areEqual('no-op', rollupResponse);
}

@IsTest
static void rollupGroupingOperationOccursIndependentlyOfDownstreamRollups() {
Account acc = [SELECT Id, Phone FROM Account];
acc.AnnualRevenue = 2; // should match count of contacts, below, to begin with
RollupAsyncProcessor.stubParentRecords = new List<SObject>{ acc };

Opportunity opp = new Opportunity(CloseDate = System.today(), Amount = 3, AccountId = acc.Id, StageName = '1', Name = 'Winning Record');
insert opp;
insert new List<SObject>{ new Contact(LastName = '1', AccountId = acc.Id), new Contact(LastName = '2', AccountId = acc.Id) };
Rollup.onlyUseMockMetadata = true;
RollupGrouping__mdt parentGrouping = new RollupGrouping__mdt(Id = RollupTestUtils.createId(RollupGrouping__mdt.SObjectType), RollupOperation__c = 'MAX');
Rollup.rollupMetadata = new List<Rollup__mdt>{
new Rollup__mdt(
CalcItem__c = 'Contact',
LookupFieldOnCalcItem__c = 'AccountId',
RollupFieldOnCalcItem__c = 'Id',
LookupObject__c = 'Account',
LookupFieldOnLookupObject__c = 'Id',
RollupFieldOnLookupObject__c = 'AnnualRevenue',
RollupOperation__c = 'COUNT',
RollupGrouping__r = parentGrouping
),
new Rollup__mdt(
CalcItem__c = 'Opportunity',
LookupFieldOnCalcItem__c = 'AccountId',
RollupFieldOnCalcItem__c = 'Amount',
LookupObject__c = 'Account',
LookupFieldOnLookupObject__c = 'Id',
RollupFieldOnLookupObject__c = 'AnnualRevenue',
RollupOperation__c = 'SUM',
RollupGrouping__r = parentGrouping
)
};

Test.startTest();
Rollup.apexContext = TriggerOperation.AFTER_UPDATE;
Rollup.shouldRun = true;
Rollup.records = new List<Opportunity>{ opp };
Rollup.oldRecordsMap = new Map<Id, Opportunity>{ opp.Id => new Opportunity(Id = opp.Id, Amount = 1, AccountId = acc.Id) };
Rollup.runFromTrigger();
Test.stopTest();

acc = [SELECT AnnualRevenue FROM Account WHERE Id = :acc.Id];
Assert.areEqual(opp.Amount, acc.AnnualRevenue);
}
}
2 changes: 1 addition & 1 deletion extra-tests/classes/RollupTests.cls-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
</inputParameters>
<storeOutputAutomatically>true</storeOutputAutomatically>
</actionCalls>
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<assignments>
<name>Add_Records_To_Collections</name>
<label>Add Records To Collections</label>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@
</inputParameters>
<storeOutputAutomatically>true</storeOutputAutomatically>
</actionCalls>
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<assignments>
<name>Add_case_and_prior_case_to_collections</name>
<label>Add case and prior case to collections</label>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
</inputParameters>
<storeOutputAutomatically>true</storeOutputAutomatically>
</actionCalls>
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<assignments>
<name>Add_to_collections</name>
<label>Add to collections</label>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
<storeOutputAutomatically>true</storeOutputAutomatically>
<versionSegment>1</versionSegment>
</actionCalls>
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<assignments>
<name>Add_deleted_record_to_collection</name>
<label>Add deleted record to collection</label>
Expand Down
2 changes: 1 addition & 1 deletion extra-tests/triggers/AccountTrigger.trigger-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8' ?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexTrigger>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8' ?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexTrigger>
2 changes: 1 addition & 1 deletion extra-tests/triggers/ApplicationTrigger.trigger-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8' ?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexTrigger>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8' ?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexTrigger>
2 changes: 1 addition & 1 deletion extra-tests/triggers/RollupChildTrigger.trigger-meta.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8' ?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexTrigger>
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apex-rollup",
"version": "1.6.27",
"version": "1.6.28",
"description": "Fast, configurable, elastically scaling custom rollup solution. Apex Invocable action, one-liner Apex trigger/CMDT-driven logic, and scheduled Apex-ready.",
"repository": {
"type": "git",
Expand Down Expand Up @@ -58,4 +58,4 @@
"test:apex": "sh ./scripts/runLocalTests.sh",
"test:lwc": "sfdx-lwc-jest --coverage --skipApiVersionCheck"
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<apiVersion>61.0</apiVersion>
<status>Active</status>
</ApexClass>
Loading

0 comments on commit a2770f3

Please sign in to comment.