Adds rule-based filtering for cloned records

Implements a mechanism to exclude child records from being cloned based on configurable formulas.

Introduces a Custom Metadata object to define exclusion rules, allowing administrators to specify formulas for different SObjects.

Updates the cloning service to evaluate these formulas and filter out records that meet the exclusion criteria.
This commit is contained in:
cgary committed 2025-04-21 16:39:07 -04:00
1 parent 81b24f298b
commit f34a61e653
67 files changed
+127 -26

No files matched your search

@@ -70,6 +70,7 @@ private class OpportunityCloneServiceTest {
}
}
insert oliTestLines;
testFutureMethod();
}
@isTest
@@ -106,10 +107,11 @@ private class OpportunityCloneServiceTest {
}
@isTest
static void CloneOpportunityWithChildren(){
Test.startTest();
Opportunity testOpp = [SELECT Id, Name FROM Opportunity LIMIT 1];
Map<String,String> testReplacements = new Map<String,String>();
testReplacements.put('Name',TestCloneUtility.GenerateRandomString(10));
Test.startTest();
Id testResult = OpportunityCloneService.CloneOpportunityWithChildren(testOpp.Id, testReplacements,
new List<String>{'OpportunityLineItems'});
@@ -117,4 +119,9 @@ private class OpportunityCloneServiceTest {
Test.stopTest();
}
@future
public static void testFutureMethod(){
//insert some Exlusion rules
Test.loadData(SmartCloneRecordExclusionRule__mdt.SObjectType, 'SmartClone_TestData');
}
}