Apex sharing vs Standard Sharing - Which is better?
I need to know what are the advantages of the Apex records sharing compared to the standard record sharing with sharing rules? When to use Apex records sharing over the standard record sharing?
Apex sharing vs Standard SharingThe advantage of Apex sharing is that you can calculate sharing conditions that otherwise cannot be done by standard and criteria-based sharing rules. For example, you could base sharing on a web service call, a separate business logic sharing table, standard or custom fields, etc. For the majority of use cases, the various sharing systems in Salesforce should be sufficient. You have Role-Based Sharing, Rule-Based Sharing, Criteria-Based Sharing, Territory-Based Sharing, Team Member Sharing, and Implicit Sharing. Some or all of these can be used in most ordinary situations. You should only use Apex sharing if no standard sharing configuration covers your business use case. The documentation includes an example whereby the "hiring managers" and "recruiters" are given access to Job records so that they can see the details of the person being hired. This is not something you could accomplish using just standard share functionality, so using Apex Managed Sharing allows these shares to be created. There's actually very little use for Apex Managed Sharing, but you should be aware of its capabilities in case you ever need it.