142 Commits
Author SHA1 Message Date
94129a9791 Override getRecordsWithNotBlankFieldValues for non-String fields (#90)
* Override getRecordsWithNotBlankFieldValues in fflib_SObjects2

The base fflib_SObjects implementation casts every value to String, which
throws a TypeException on Date/Datetime/Number/Lookup fields. This override
generalises the check to "any non-null value, and for Strings also non-blank"
so the helper works for every field type.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Update fflib_SObjects2.cls

Rename method to getRecordsWithNonBlankFieldValues

* Update fflib_SObjects2Test.cls

Rename method to getRecordsWithNonBlankFieldValues

* Update fflib_SObjects2.cls

Rename variable

Co-authored-by: Robin Weymans <robin.weymans@mylighthouse.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: William Velzeboer <6429417+wimvelzeboer@users.noreply.github.com>
2026-08-05 09:23:06 +01:00
William Velzeboerandgithub-actions 9716a88489 Generic Selector class (#86)
* Generic Selector class

usage
```
List<SObject> records =
    fflib_SObjectsSelector.newElevatedInstance(
            Schema.Account.SObjectType,
            new List<SObjectType>{ Schema.Account.Id, Schema.Account.Name }
    )
        .selectById(idSet);
```

* New package version 0.9.0-1-feature/genericSelector created

---------

Co-authored-by: github-actions <github-actions@github.com>
2026-04-13 15:45:27 +01:00
William Velzeboer 3e89f74910 Upgrade API to 66.0 (#85)
* Upgrade API to 66.0

Upgrade API version of all components to Spring '26 release

* New package version 0.8.0-1-apiUpgrade created
2026-03-31 12:44:39 +01:00
wim af6cef47f3 Fix build issues 2026-03-26 14:36:00 +00:00
William Velzeboer 98c38f93b0 Add mass copy fields feature (#80)
The new copyField method can copy field values in bulk from one domain to another related domain
2026-01-27 14:25:16 +00:00
William Velzeboer 09f0c2ef0d Add overloads for decimal values in getRecords and getRecordsNotIn (#77)
* Add overloads for decimal values in getRecords and getRecordsNotIn

* updated readme file

* Add compatibility for multiselect picklists for the `getRecords` method
2026-01-22 11:47:51 +00:00
William Velzeboer e986a25180 Add replaceKey method to fflib_ArrayUtils (#76) 2026-01-22 10:21:29 +00:00
William Velzeboer 2051e8f381 Change fflib_SObjects2 to fflib_ISObjects2 for getParentFieldById methods (#75) 2026-01-20 12:00:40 +00:00
William Velzeboer 5c14faa02e Add getParentFieldById methods to fflib_SObjects2 (#73)
This method can fetch deeply related data which is distributed over multiple related domains
2026-01-20 10:42:08 +00:00
William Velzeboer 82e84354d5 Add getBooleanFieldByIdField method to fflib_SObjects2 (#72) 2026-01-19 10:52:04 +00:00
William Velzeboer babc2081f6 Add method overload for fflib_ArrayUtils.mergeMaps (#71)
Adds compatibility with Boolean values
2026-01-19 10:11:46 +00:00
William Velzeboer 57a9c3f503 Add method overload for fflib_ArrayUtils.replaceValues (#70)
Adds compatibility with Boolean values
2026-01-19 09:57:46 +00:00
William Velzeboer 2fe75d9bd1 Bump API version to 65.0 (#69)
* Bump API version to 65.0

* Add public to abstract method
2026-01-16 16:40:49 +00:00
William Velzeboer 85d35c9abb Add two method overloads for fflib_ArrayUtils.replaceValues to add co… (#68)
* Add two method overloads for fflib_ArrayUtils.replaceValues to add compatibility with Decimal and String values

* Fix failing test
2026-01-16 16:12:41 +00:00
William Velzeboer 414145791d Add domain method getRecordsContaining (#67) 2025-12-05 17:03:18 +00:00
William Velzeboer 72b586f8a1 Add fflib_Formula.cls that can evaluate multiple instances of FormulaEval.FormulaInstance (#66) 2025-10-28 12:33:09 +00:00
William Velzeboer 73682a1ffa Add getChangedFields to triggerContext (#65) 2025-01-27 13:04:22 +00:00
Wim Velzeboer 5bb4c0f1ad Fix failing test in populated org 2024-07-30 11:18:30 +01:00
Wim Velzeboer 47702c194a Remove incorrect automatic code styling 2024-04-10 10:40:04 +01:00
Wim Velzeboer 273e47f0db Add method overload for getIdFieldValues to omit null values 2024-04-10 10:28:59 +01:00
Wim Velzeboer 64559fdbe5 Revert "Add method overload for getIdFieldValues to omit null values"
This reverts commit 003446ac97.
2024-04-10 10:10:09 +01:00
Wim Velzeboer 003446ac97 Add method overload for getIdFieldValues to omit null values 2024-04-10 09:50:31 +01:00
Wim Velzeboer 6586ed6bb2 Add domain method getIdFieldsByStringField 2024-04-05 11:36:08 +01:00
William Velzeboer c5eedd383b Merge branch 'main' into feature/TriggerBypass 2024-03-01 20:17:54 +00:00
Wim Velzeboer cc6de320e0 Add bypass to TriggerHandler 2024-03-01 19:08:06 +00:00
Wim Velzeboer 880999cba1 Add bypass to TriggerHandler 2024-03-01 19:06:16 +00:00
William Velzeboer 4384700cc2 Merge pull request #61 from wimvelzeboer/feature/TriggerBypass
Add bypass to TriggerHandler
2024-03-01 18:53:23 +00:00
Wim Velzeboer 3ac1dfac88 Add bypass to TriggerHandler 2024-03-01 18:48:23 +00:00
Wim Velzeboer fd49c0b66d Add WITH SYSTEM_MODE to fflib_AppBindingsSelector class
This should avoid the requirement of adding read permission to the custom medata object. Particular for external users
2024-02-26 13:57:26 +00:00
Wim Velzeboer 604f9a5399 Add WITH SYSTEM_MODE to fflib_AppBindingsSelector class
This should avoid the requirement of adding read permission to the custom medata object. Particular for external users
2024-02-22 20:15:45 +00:00
William Velzeboer 5f6062a61d Revert "Update fflib_LogEventStoreListenerTest.cls" 2024-02-05 21:28:38 +00:00
William Velzeboer a35e0d658c Update fflib_LogEventStoreListenerTest.cls 2024-02-05 17:12:37 +00:00
Wim Velzeboer 52fbc6da06 Run TriggerAction Selector in System Mode 2024-02-01 13:12:01 +00:00
Wim Velzeboer 97e825d068 Add stripInaccessibleFields method to the domain. 2024-01-19 11:48:44 +00:00
Wim Velzeboer 4ccaf7afb1 Increase code coverage 2023-12-07 12:52:23 +00:00
Wim Velzeboer fbed669ab8 Increase code coverage 2023-12-07 09:53:39 +00:00
Wim Velzeboer 4310d8b4eb Make username more unique 2023-10-02 12:04:04 +01:00
wim d114fecf4f Remove Sharing Mode from Dynamic Application Factories
Sharing mode is no longer required as SOQL queries can now run in USER_MODE or SYSTEM_MODE.
2023-09-11 21:21:53 +01:00
wim 4390f83aef Remove Sharing Mode from Dynamic Application Factories
Sharing mode is no longer required as SOQL queries can now run in USER_MODE or SYSTEM_MODE.
2023-09-11 17:18:53 +01:00
wim 671cac07b3 Remove Sharing Mode from Dynamic Application Factories
Sharing mode is no longer required as SOQL queries can now run in USER_MODE or SYSTEM_MODE.
2023-09-11 17:16:45 +01:00
wim a0fc1bd10d Improve performance of Dynamic Application Factories
Also added a method overload to provide a Package Name.
Useful for DX based second generation packages. Now each package can have their own bindings.
2023-09-01 15:39:25 +01:00
William Velzeboer b658e6226b Merge pull request #50 from wimvelzeboer/feature/uuid
Add Uuid and HttpException. Logger now includes Uuid's
2023-08-01 14:00:20 +01:00
WimVelzeboer 752573c3cd Add Uuid and HttpException. Logger now includes Uuid's
Signed-off-by: WimVelzeboer <william@velzeboer.nl>
2023-08-01 12:19:18 +01:00
WimVelzeboer 1b03239c6d Refactor of getChildIdsById and getGrandParentIdById of fflib_SObject2
The methods are no longer depended on the domain method getRelatedFieldByDomainType, which could only relate a relationship with a single field. This change will allow to build the map with the correct fields when there are multiple relationships to the related SObjectType.

 for example if an SObject has two relations to Account; BillingAccountId and AccountId, then we can now specify in the method parameters which relationship should be taken.

Signed-off-by: WimVelzeboer <william@velzeboer.nl>
2023-04-27 11:27:45 +01:00
WimVelzeboer a4753d1db1 Add getChildIdsById to fflib_SObjects2
To retrieve a map of related ids from (grand-)child relationships

Signed-off-by: WimVelzeboer <william@velzeboer.nl>
2023-04-20 16:21:00 +01:00
WimVelzeboer 3d9e8fae8a Add getDecimalById to fflib_SObjects2
Signed-off-by: WimVelzeboer <william@velzeboer.nl>
2023-04-13 11:10:45 +01:00
WimVelzeboer 59a2ea576a Upgrade to API 57.0
Including refactor to System.Asset class

Signed-off-by: WimVelzeboer <william@velzeboer.nl>
2023-04-13 10:42:53 +01:00
wim f3d5ebef96 Add method overload for adding multiple read-only fields at once. 2022-09-23 15:38:57 +02:00
WimVelzeboer 4aef8f34f9 Add methods to fflib_Ids
Signed-off-by: WimVelzeboer <wimvelzeboer@protonmail.com>
2022-06-22 13:01:53 +01:00
WimVelzeboer 0b4d878382 Add domain method to map the record Id to a grand-grand-...-parent record Id 2022-05-25 12:22:48 +01:00