Loading
CRM Analytics
Modificar el flujo de datos basándose en la seguridad a nivel de filas.

Modificar el flujo de datos basándose en la seguridad a nivel de filas.

Ahora es el momento de modificar el archivo de definición de flujo de datos para tener en cuenta el predicado.

Ediciones necesarias

Disponible en Salesforce Classic y Lightning Experience.
Disponible con CRM Analytics, que está disponible por un coste adicional en Enterprise Edition, Performance Edition y Unlimited Edition. Está disponible además en Developer Edition.

En este escenario tiene que realizar cambios en el flujo de datos basándose en el predicado.

  • Agregue una columna en el conjunto de datos que almacene una lista separada por comas de los Id. de funciones de todos los principales de cada propietario de oportunidad. Cuando definió el predicado en el paso anterior, hizo referencia temporalmente a esta columna como “ParentRoleIDs”. Para agregar la columna, rediseña el flujo de datos como se muestra en el siguiente diagrama:
    El diagrama muestra cómo cargar los datos a partir de los objetos Oportunidad, Usuario y Función de usuario en el conjunto de datos OppRoles.

    El nuevo diseño de flujo de datos contiene los siguientes cambios:

    • Extrae los Id. de funciones del objeto UserRole.
    • Utilice la transformación Flatten para generar una columna que almacena una lista separada por comas de los Id. de funciones de todos los principales de cada usuario. Cuando determinó el predicado en el paso anterior, hizo referencia temporalmente a esta columna como “ParentRoleIDs”.
    • Vincule la nueva columna al conjunto de datos OppRoles.
  • Agregue el predicado a la transformación Register que registra el conjunto de datos OppRoles.

El flujo de datos se modifica como se muestra a continuación.

{    
   "Extract_Opportunity": {        
      "action": "sfdcDigest",        
      "parameters": {            
         "object": "Opportunity",            
         "fields": [                
            { "name": "Id" },                
            { "name": "Name" },                
            { "name": "Amount" },                
            { "name": "StageName" },                
            { "name": "AccountId" },                
            { "name": "OwnerId" }            
         ]        
      }    
   },    
   "Extract_User": {          
      "action": "sfdcDigest",          
      "parameters": {              
         "object": "User",              
         "fields": [                  
            { "name": "Id" },                  
            { "name": "Username" },                  
            { "name": "LastName" },                  
            { "name": "FirstName" },                  
            { "name": "Name" },                  
            { "name": "CompanyName" },                  
            { "name": "Division" },                  
            { "name": "Department" },                  
            { "name": "Title" },                  
            { "name": "Alias" },                  
            { "name": "CommunityNickname" },                  
            { "name": "UserType" },                  
            { "name": "UserRoleId" }                  
         ]          
      }    
   },    
   "Extract_UserRole": {          
      "action": "sfdcDigest",          
      "parameters": {              
         "object": "UserRole",              
         "fields": [                  
            { "name": "Id" },                  
            { "name": "ParentRoleId" },                  
            { "name": "RollupDescription" },                  
            { "name": "OpportunityAccessForAccountOwner" },                  
            { "name": "CaseAccessForAccountOwner" },                  
            { "name": "ContactAccessForAccountOwner" },                  
            { "name": "ForecastUserId" },                  
            { "name": "MayForecastManagerShare" },                  
            { "name": "LastModifiedDate" },                  
            { "name": "LastModifiedById" },                  
            { "name": "SystemModstamp" },                  
            { "name": "DeveloperName" },                  
            { "name": "PortalAccountId" },                  
            { "name": "PortalType" },                  
            { "name": "PortalAccountOwnerId" }            
         ]        
      }    
   },    
   "Flatten_UserRole": {        
      "action": "flatten",        
      "parameters": {            
         "multi_field": "Roles",            
         "parent_field": "ParentRoleId",            
         "path_field": "RolePath",            
         "self_field": "Id",            
         "source": "Extract_UserRole"        
      }    
   },    
   "Augment_User_FlattenUserRole": {        
      "action": "augment",        
      "parameters": {            
         "left": "Extract_User",            
         "left_key": [                
            "UserRoleId"            
         ],            
         "relationship": "Role",            
         "right": "Flatten_UserRole",            
         "right_key": [                
            "Id"            
         ],            
         "right_select": [                
            "Roles",                
            "RolePath"            
         ]        
      }    
   },    
   "Augment_Opportunity_UserWithRoles": {        
      "action": "augment",        
      "parameters": {            
         "left": "Extract_Opportunity",            
         "left_key": [            
            "OwnerId"            
         ],             
         "right": "Augment_User_FlattenUserRole",            
         "relationship": "Owner",            
         "right_select": [                
            "Name",                
            "Role.Roles",                
            "Role.RolePath"            
         ],            
         "right_key": [                
            "Id"            
         ]        
      }    
   },         
   "Register": {        
      "action": "sfdcRegister",        
      "parameters": {            
         "alias": "OppRoles",            
         "name": "OppRoles",            
         "source": "Augment_Opportunity_UserWithRoles",            
         "rowLevelSecurityFilter": "'Owner.Role.Roles' == \"$User.UserRoleId\" || 'OwnerId' == \"$User.Id\""        
      }    
   }
}
Nota
Nota En este ejemplo, el conjunto de datos tiene columnas Owner.Role.Roles y OwnerId. Un usuario puede ver los valores de estas columnas de todos los registros a los que tienen acceso.
 
Cargando
Salesforce Help | Article