Ir al contenido

Modelo de Uso Compartido

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
  • OWD: Private
  • Mecanismo de uso compartido: Uso compartido personalizado mediante ObjectTeamMember__Share
  • RowCause: ManualAccess__c

Cuando se agrega un miembro del equipo, el sistema crea un registro ObjectTeamMember__Share para que el miembro del equipo pueda ver su propio registro de membresía de equipo.

  • OWD: Public Read Only
  • Todos los usuarios pueden leer la configuración (necesario para la renderización del componente)
  • Solo los administradores pueden modificar las configuraciones
  • Requisito: Los objetos deben tener OWD Private o Public Read Only
  • Mecanismo de uso compartido: Mediante tablas estándar [Object]Share (por ejemplo, AccountShare, CaseShare)
  • RowCause: Manual

Cuando se agrega un miembro del equipo con un nivel de acceso, se mapea al acceso del registro compartido de Salesforce:

ObjectTeamMember__c Access_Level__c[Object]Share AccessLevelDescripción
Read OnlyReadEl miembro del equipo puede ver el registro
Read/WriteEditEl miembro del equipo puede ver y editar el registro

Cuando se agrega un miembro del equipo:

  1. Se inserta el registro ObjectTeamMember__c
  2. Se dispara el trigger y se encola ShareRecordQueueable
  3. Queueable crea dos registros compartidos:
    • Parent share: Registro [Object]Share que otorga al usuario acceso al registro padre
    • Team member share: Registro ObjectTeamMember__Share que otorga al usuario visibilidad de su membresía de equipo

Cuando cambia el nivel de acceso de un miembro del equipo:

  1. Se actualiza el registro ObjectTeamMember__c
  2. Se dispara el trigger y se encola ShareRecordQueueable
  3. Queueable elimina el uso compartido antiguo y crea uno nuevo con el nivel de acceso actualizado

Cuando se elimina un miembro del equipo:

  1. Se elimina el registro ObjectTeamMember__c
  2. Se dispara el trigger y se encola ShareRecordQueueable
  3. Queueable elimina ambos registros compartidos (padre y miembro del equipo)

Cuando se alterna una configuración de uso compartido:

  • Desactivado: SharingRecalculationBatch elimina todos los registros compartidos para ese objeto
  • Reactivado: SharingRecalculationBatch recrea registros compartidos para todos los miembros del equipo existentes
ObjetoTabla Share
AccountAccountShare
ContactContactShare
CaseCaseShare
LeadLeadShare
OpportunityOpportunityShare
CampaignCampaignShare
OrderOrderShare

Los objetos personalizados siguen el patrón: ObjectName__cObjectName__Share

El sistema usa una lista blanca codificada para objetos estándar y deriva el nombre de la tabla share para objetos personalizados automáticamente.

  • Salesforce Enterprise Edition o superior (para soporte del modelo de uso compartido)
  • Los objetos deben tener OWD Private o Public Read Only para beneficiarse del uso compartido
  • Los usuarios necesitan el Permission Set apropiado asignado
  • Los usuarios necesitan acceso al objeto base (por ejemplo, acceso de lectura de Account para usar equipos de Account)