Modelo de Compartilhamento
Arquitetura de Compartilhamento
Seção intitulada “Arquitetura de Compartilhamento”flowchart TB
subgraph SHARING["SHARING ARCHITECTURE"]
subgraph OTM["ObjectTeamMember__c"]
OTM1["OWD: Private"]
OTM2["Sharing: Custom via ObjectTeamMember__Share"]
OTM3["RowCause: ManualAccess__c"]
end
subgraph TSC["Team_Sharing_Config__c"]
TSC1["OWD: Public Read Only"]
TSC2["All users can read, admins modify"]
end
subgraph PARENT["Parent Objects<br/>(Account, Case, etc.)"]
P1["Requires: Private or Public Read Only OWD"]
P2["Sharing: Via [Object]Share"]
P3["RowCause: Manual"]
end
end
Como o Compartilhamento Funciona
Seção intitulada “Como o Compartilhamento Funciona”ObjectTeamMember__c
Seção intitulada “ObjectTeamMember__c”- OWD: Private
- Mecanismo de compartilhamento: Compartilhamento personalizado via
ObjectTeamMember__Share - RowCause:
ManualAccess__c
Quando um membro da equipe é adicionado, o sistema cria um registro ObjectTeamMember__Share para que o membro da equipe possa ver seu próprio registro de associação de equipe.
Team_Sharing_Config__c
Seção intitulada “Team_Sharing_Config__c”- OWD: Public Read Only
- Todos os usuários podem ler a configuração (necessário para renderização do componente)
- Apenas administradores podem modificar configurações
Objetos Pai
Seção intitulada “Objetos Pai”- Requisito: Objetos devem ter OWD Private ou Public Read Only
- Mecanismo de compartilhamento: Via tabelas
[Object]Sharepadrão (ex:AccountShare,CaseShare) - RowCause: Manual
Mapeamento de Nível de Acesso
Seção intitulada “Mapeamento de Nível de Acesso”Quando um membro da equipe é adicionado com um nível de acesso, ele mapeia para o acesso do registro de compartilhamento do Salesforce:
| ObjectTeamMember__c Access_Level__c | [Object]Share AccessLevel | Descrição |
|---|---|---|
| Read Only | Read | Membro da equipe pode visualizar o registro |
| Read/Write | Edit | Membro da equipe pode visualizar e editar o registro |
Ciclo de Vida do Registro de Compartilhamento
Seção intitulada “Ciclo de Vida do Registro de Compartilhamento”Criando Compartilhamentos
Seção intitulada “Criando Compartilhamentos”Quando um membro da equipe é adicionado:
- Registro
ObjectTeamMember__cé inserido - Trigger dispara e enfileira
ShareRecordQueueable - Queueable cria dois registros de compartilhamento:
- Parent share: Registro
[Object]Sharedando ao usuário acesso ao registro pai - Team member share: Registro
ObjectTeamMember__Sharedando ao usuário visibilidade de sua associação de equipe
- Parent share: Registro
Atualizando Compartilhamentos
Seção intitulada “Atualizando Compartilhamentos”Quando o nível de acesso de um membro da equipe muda:
- Registro
ObjectTeamMember__cé atualizado - Trigger dispara e enfileira
ShareRecordQueueable - Queueable exclui o compartilhamento antigo e cria um novo com nível de acesso atualizado
Excluindo Compartilhamentos
Seção intitulada “Excluindo Compartilhamentos”Quando um membro da equipe é removido:
- Registro
ObjectTeamMember__cé excluído - Trigger dispara e enfileira
ShareRecordQueueable - Queueable exclui ambos os registros de compartilhamento (pai e membro da equipe)
Recálculo em Massa
Seção intitulada “Recálculo em Massa”Quando uma configuração de compartilhamento é alternada:
- Desativada:
SharingRecalculationBatchremove todos os registros de compartilhamento para esse objeto - Reativada:
SharingRecalculationBatchrecria registros de compartilhamento para todos os membros da equipe existentes
Objetos Share Suportados
Seção intitulada “Objetos Share Suportados”Objetos Padrão
Seção intitulada “Objetos Padrão”| Objeto | Tabela Share |
|---|---|
| Account | AccountShare |
| Contact | ContactShare |
| Case | CaseShare |
| Lead | LeadShare |
| Opportunity | OpportunityShare |
| Campaign | CampaignShare |
| Order | OrderShare |
Objetos Personalizados
Seção intitulada “Objetos Personalizados”Objetos personalizados seguem o padrão: ObjectName__c → ObjectName__Share
O sistema usa uma whitelist codificada para objetos padrão e deriva o nome da tabela share para objetos personalizados automaticamente.
Requisitos de Implantação
Seção intitulada “Requisitos de Implantação”Requisitos da Org
Seção intitulada “Requisitos da Org”- Salesforce Enterprise Edition ou superior (para suporte ao modelo de compartilhamento)
- Objetos devem ter OWD Private ou Public Read Only para se beneficiar do compartilhamento
Requisitos do Usuário
Seção intitulada “Requisitos do Usuário”- Usuários precisam de permission set apropriado atribuído
- Usuários precisam de acesso ao objeto base (ex: acesso de leitura Account para usar equipes Account)