Ir al contenido

Modelo de Datos

flowchart TB
    PARENT["<b>Parent Record</b><br/>(Account, Case, etc.)<br/>───────────<br/>• Id<br/>• OwnerId<br/>• Name"]

    PARENT -->|"Record_Id__c<br/>(Text - composite key)"| OTM

    OTM["<b>ObjectTeamMember__c</b><br/>───────────<br/>• Record_Id__c<br/>• User_Id__c<br/>• Access_Level__c<br/>• Role__c<br/>• End_Date__c"]

    OTM -->|"User_Id__c"| USER

    USER["<b>User</b><br/>(Standard Object)<br/>───────────<br/>• Id<br/>• Name<br/>• Email"]

    OTM -->|"Triggers share<br/>record creation"| SHARE

    SHARE["<b>[Object]Share</b><br/>(AccountShare, CaseShare, etc.)<br/>───────────<br/>• ParentId<br/>• UserOrGroupId<br/>• AccessLevel<br/>• RowCause = 'Manual'"]
erDiagram
    PARENT_RECORD ||--o{ ObjectTeamMember__c : "Record_Id__c"
    User ||--o{ ObjectTeamMember__c : "User_Id__c"
    ObjectTeamMember__c ||--o| OBJECT_SHARE : "triggers creation"

    PARENT_RECORD {
        Id Id PK
        Id OwnerId
        String Name
    }

    ObjectTeamMember__c {
        Id Id PK
        Text Record_Id__c FK
        Lookup User_Id__c FK
        Picklist Access_Level__c
        Picklist Role__c
        Date End_Date__c
    }

    User {
        Id Id PK
        String Name
        String Email
    }

    OBJECT_SHARE {
        Id Id PK
        Id ParentId FK
        Id UserOrGroupId FK
        String AccessLevel
        String RowCause
    }

Almacena asignaciones de miembros del equipo que vinculan un usuario a un registro padre.

CampoTipoDescripción
Record_Id__cTextClave compuesta en formato ObjectName:RecordId
User_Id__cLookup(User)El usuario miembro del equipo
Access_Level__cPicklistRead Only, Read/Write
Role__cPicklistOwner, Manager, User
End_Date__cDateFecha de vencimiento opcional para acceso temporal

Configuración por objeto para uso compartido de equipo.

CampoTipoDescripción
Object_Api_Name__cTextNombre de API del objeto configurado
Object_Label__cTextEtiqueta de visualización para el objeto
Is_Active__cCheckboxSi el uso compartido de equipo está activo para este objeto

Configuración a nivel de aplicación almacenada como Custom Metadata.

CampoTipoDescripción
IsActive__cCheckboxInterruptor maestro para la aplicación
Cleanup_Batch_Size__cNumberTamaño de lote para trabajos de limpieza
Enable_Batch_Logging__cCheckboxHabilitar registro de depuración en trabajos por lotes
Enable_Expired_Member_Cleanup__cCheckboxHabilitar limpieza automática de miembros vencidos
flowchart LR
    MDT["<b>FlexiTeamShare_Config__mdt</b><br/>(Custom Metadata)<br/>───────────<br/>• IsActive__c<br/>• Cleanup_Batch_Size__c<br/>• Enable_Batch_Logging__c<br/>• Enable_Expired_Member_Cleanup__c"]

    MDT -->|"Configures behavior"| TSC

    TSC["<b>Team_Sharing_Config__c</b><br/>───────────<br/>• Object_Api_Name__c<br/>• Object_Label__c<br/>• Is_Active__c"]

    TSC -->|"Enables object"| PARENT["<b>Parent Objects</b><br/>(Account, Case, etc.)"]
flowchart TB
    PARENT["Parent Record<br/>(Account, Case, etc.)"]
    USER["User"]
    OTM["ObjectTeamMember__c"]
    SHARE["[Object]Share"]
    TSC["Team_Sharing_Config__c"]
    MDT["FlexiTeamShare_Config__mdt"]

    PARENT --> OTM
    USER --> OTM
    OTM --> SHARE
    MDT --> TSC
    TSC --> PARENT