The next major release is here! There are a few big enhancements coming in this version:
Cross-object sharing rules (Lite, Enterprise and Unlimited)
This is a big one! FormulaShare allows information from related objects to determine sharing, and we've boosted this ability in a big way.
It's now possible to share based on a field in an object connected through a series of lookups to the shared object.
This opens up huge possibilities in orgs with extensive data models - see the end of synchronising fields from one object to another just for the purposes of sharing.
FormulaShare will allow for up to 5 levels of consecutive parent or child relationships, and these can be followed by up to 5 relationships in the opposite direction meaning the controlling record can be up to 10 relationships away.
Any related object sharing configured before upgrading will be converted to cross-object rules. These rules will use the new cross-object rules engine, which addresses some scalability issues and limitations which previously affected related object sharing.
As well meaning FormulaShare can now address more complex sharing requirements, this allows a simpler approach to share based on information in parent records. Until now, doing this would have meant setting up a formula field on the shared record. Now a related rule can be used instead and a formula field isn't necessarily needed. As well as being a little neater, avoiding a formula means we aren't contributing to the limit of total formula relationships on the object.
More details and considerations around cross-object rules are available in the Cross-Object Rules section of the help guide.
Targeted Calculation Jobs (Enterprise and Unlimited)
In response to several feature requests, we've added a powerful new mechanism for assessing sharing which is especially suitable in orgs with large volumes of data in shared objects.
Targeted Calculation Jobs allow defining a schedule of recalculation jobs which target specific records of a shared object, and allow you to ensure that records which meet criteria you define are assessed as often as needed.
This is especially useful in scenarios where:
- A shared object has a large number of records (typically 100s 1000s or more), and you know reassessment of sharing for some records isn't required on a frequent basis
- You'd like to provide near-real-time assessment of sharing for certain subsets of records in scenarios which aren't covered by trigger functionality (see Rule Types and Assessment for more information on circumstances this might apply to)
- You'd like to reduce resources used for batch processing in your org as much as possible
You can configure which objects should be assessed using Targeted Calculation Jobs and which continue to be processed by the full recalculation batch (which processes every record in the object on a schedule, typically daily).
One or more Targeted Calculation Job can be set up per object, and jobs will filter to assess records in the object where a selected checkbox formula field is set to true:
Further information on capabilities and setup is covered in the Targeted Calculation Jobs section of the help guide.
Sharing to Manager Groups and Queues (Enterprise and Unlimited)
Sharing rules based on Manager Groups are now supported!
These rules use the "Manager" lookup on the User record, and allow sharing either up or down the manager hierarchy:
The "Managers of Users" option shares to all managers above the user, and "Users and Manager Subordinates" option shares to reports of this user, as well as the user themselves.
Both types of rules work by referencing a field which is populated with a lookup to the user which the manager group should be based on. Note that to see these options, you'll need to enable Manager Groups in the Sharing Settings setup menu:
And if you're using Queues on standard or custom objects, it's also possible to share to these directly using the Public Groups and Queues option:
This type of sharing works in a very similar way to Public Group sharing - either the name or record id of the Queue can be added to the specified formula or text field.
Manager group sharing considerations are covered in the Sharing to Manager Groups section of the help guide.
Monitor rules and sharing usage (Lite, Enterprise and Unlimited)
FormulaShare now includes a Setup menu, which indicates how many standard and cross-object rules have been configured, and shows the number of share records created in the current year:
In versions of FormulaShare where usage is limited, this will indicate contributions towards limits:
An overview of this page is provided in the Utilisation and Limits section of the help guide
Assess recursion by record (Enterprise and Unlimited)
Until now, if called multiple times in a single transaction, FormulaShare would only process sharing assessment for the first call for each object to avoid unnecessary processing in scenarios where FormulaShare is called multiple times for the same record.
There are some circumstances though where sharing assessment is needed multiple times for the same object. Examples include circumstances where different records of an object are created or updated at different times in a transaction.
FormulaShare will continue to prevent recursion, but will assess this on a more granular level:
- Assessment for a record will be allowed provided the record with this ID hasn't previously been assessed in the same transaction
- Assessment for records which haven't yet been inserted (i.e. new records) will always be allowed
In addition, in FormulaShare Enterprise an object setting "Allow Recursive Assessment" has been introduced which allows the strategy for recursive assessment to be defined by object:
This setting makes it possible to allow recursive reassessment a specified number of times for the same record within a single transaction.
Information around the Allow Recursive Assessment option is provided in the Object Settings section of the help guide.
Increased coverage of standard objects (Lite, Enterprise and Unlimited)
Until recently, attempting to evaluate rules for some standard objects would lead to errors, so sharing of these objects wasn't possible. Examples include the Work Order object and others from the Field Service Lightning data model, as well as some objects used in Salesforce CPQ. This issue is addressed in the latest package and sharing of these objects is now possible.