Add mass copy fields feature (#80)

The new copyField method can copy field values in bulk from one domain to another related domain
This commit is contained in:
William Velzeboer
2026-01-27 14:25:16 +00:00
committed by GitHub
parent 09f0c2ef0d
commit 98c38f93b0
3 changed files with 165 additions and 19 deletions
@@ -734,17 +734,7 @@ public virtual class fflib_SObjects2
*/
@TestVisible
protected virtual Map<Id, Object> getFieldValueByIdField(SObjectField valueField, SObjectField keyField) {
Map<Id, Object> result = new Map<Id, Object>();
for (SObject record : getRecords())
{
if (record.get(keyField) == null) continue;
result.put(
(Id) record.get(keyField),
record.get(valueField)
);
}
return result;
return fflib_ArrayUtils.getValueById(this, valueField, keyField);
}
/**
@@ -1437,14 +1427,7 @@ public virtual class fflib_SObjects2
Schema.SObjectField sObjectFieldToUpdate,
Map<Id, Object> values)
{
for (SObject record : getRecords())
{
Id keyValue = (Id) record.get(sObjectIdFieldToCheck);
if (values?.containsKey(keyValue))
{
record.put(sObjectFieldToUpdate, values.get(keyValue));
}
}
fflib_ArrayUtils.setFieldValue(this, sObjectIdFieldToCheck, sObjectFieldToUpdate, values);
}
/**