👉 Entender cómo resolver el mismo caso de uso empresarial utilizando Process Builder y Salesforce Flow . Consulte este artículo Introducción a Process Builder – Parte 16 (Creación de una lógica personalizada para compartir registros) .
Gran idea o pregunta duradera:
- Compartir registros automáticamente sin compartir reglas o jerarquía de roles
- Uso de Apex Managed Sharing de forma declarativa
Objetivos:
Después de leer esta publicación de blog, el lector podrá:
- Cree una automatización declarativa para compartir un registro automáticamente
- Comparta un registro sin compartir reglas o jerarquía de roles
- Cree un flujo activado por registro para insertar una fila en la tabla para compartir
Brenda David trabaja como administradora de sistemas en Universal Containers (UC). Actualmente, se encuentra trabajando en un proyecto que está implementando la gestión de auditoría de Activos. Para esto, ha creado una Auditoría de objetos personalizados ( OWD : – privado) y algunos campos personalizados como se muestra en la siguiente captura de pantalla:
El requisito comercial :
- Tan pronto como se complete el campo Auditor__c (Buscar en objeto de usuario ), comparta automáticamente el registro de auditoría (Otorgar acceso de edición ) con el auditor.
Enfoque de campeón de automatización (I-do):
Salesforce le permite controlar el acceso a los datos en muchos niveles diferentes (nivel de objeto, nivel de registro y nivel de campo). Nos centraremos en los métodos para controlar el acceso a los datos a nivel de registro.
En la mayoría de los escenarios, puede usar configuraciones de uso compartido listas para usar para otorgar acceso a los registros, pero hay algunos casos de uso en los que debe escribir una regla de uso compartido administrado de Apex para compartir los registros con usuarios o grupos.
El uso compartido administrado de Apex le permite utilizar el código Apex para crear configuraciones de uso compartido sofisticadas y dinámicas que de otro modo no serían posibles. En este artículo, utilizaremos el flujo activado por registro posterior a la grabación para resolver los requisitos comerciales. Consulte este artículo para comprender por qué estamos usando el flujo activado por registro posterior al guardado para este escenario.
Antes de continuar, asegúrese de comprender la tabla para compartir en Salesforce . Todos los objetos que tienen una configuración de uso compartido predeterminada de Privado o Público de solo lectura . Estos objetos también tienen un objeto Compartir relacionado que es similar a una lista de control de acceso (ACL) que se encuentra en otras plataformas.
Todos los objetos compartidos para objetos personalizados se denominan CustomObject__Share , donde CustomObject__c es el nombre del objeto personalizado relacionado. Un objeto compartido incluye registros que admiten los tres tipos de uso compartido (uso compartido administrado de Force.com , uso compartido administrado por usuarios y uso compartido administrado de Apex ).
El objeto Compartir contiene los siguientes campos:
Nombre del campo | Detalles |
Identificación de los padres | La identificación del registro que se comparte. Este campo no se puede actualizar. |
UserOrGroupId | La identificación del usuario al que le está otorgando acceso. |
Nivel de acceso | El nivel de acceso que se le ha otorgado al usuario o grupo especificado. |
RowCause (también conocido como Sharing Reasons) | El motivo por el que se concede acceso al usuario o grupo. |
Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso a un alto nivel. Por favor, dedique unos minutos a revisar el siguiente diagrama de flujo y entiéndalo.
Práctica guiada (lo hacemos):
Hay 3 pasos para resolver los requisitos comerciales de Brenda mediante el flujo activado por registro después de guardar . Debemos:
- Crea un objeto personalizado con campos
- Crear motivo de intercambio de ápice
- Flujo de la fuerza de ventas
- Definir propiedades de flujo para flujo activado por registro
- Cree una variable de registro (varR_AuditShare) para almacenar Audit__Share
- Agregue un elemento de decisión para verificar si el auditor está poblado o no
- Agregar un elemento de asignación para completar la variable de registro (varR_AuditShare)
- Agregue un elemento de creación de registros para compartir el registro de auditoría con el auditor
Paso 1: crear campos y una auditoría de objetos personalizados
- Haga clic en Configuración .
- En el Administrador de objetos, haga clic en Crear | Objeto personalizado .
- Ahora cree una auditoría de objetos personalizados y campos como se muestra en la captura de pantalla a continuación:
- Haga clic en Guardar .
Paso 2: Cree un motivo para compartir Apex
Primero, crearemos un motivo para compartir Apex . Cada motivo de uso compartido de Apex tiene una etiqueta y un nombre . El valor de Etiqueta se muestra en la columna Razón cuando se visualiza el uso compartido de un registro en la interfaz de usuario. Esto permite a los usuarios y administradores comprender el origen del intercambio.
- Haga clic en Configuración .
- En el Administrador de objetos, escriba Auditoría .
- Seleccione Motivos para compartir Apex y luego haga clic en Nuevo .
- Ingrese la Etiqueta del motivo y presione la tecla Tab. Se completará el Nombre del motivo.
- Haga clic en Guardar.
Paso 3.1: Flujo de Salesforce – Definir propiedades de flujo
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos y luego haga clic en Nuevo flujo .
- Seleccione el flujo activado por registro y haga clic en Siguiente y configure el flujo de la siguiente manera:
- ¿Cómo quieres empezar a construir ? Freeform
- Objeto : Auditoría
- Activar el flujo cuando : se crea o actualiza un registro
- Establecer criterios de entrada
- Requisitos de condición: Ninguno
- Optimice el flujo para : acciones y registros relacionados
- Haz clic en Listo .
Paso 3.2: Flujo de Salesforce: cree una variable de registro para almacenar Audit__Share
- En Caja de herramientas , seleccione Administrador, luego haga clic en Nuevo recurso para almacenar el detalle de mapeo audit__share.
- Ingrese la siguiente información:
- Tipo de recurso : variable
- Nombre de API : varR_AuditShare
- Tipo de datos : registro
- Objeto : Audit__Share
- Verificar disponible para entrada
- Verificar disponible para salida
- Haz clic en Listo .
Paso 3.3: Flujo de Salesforce: uso del elemento de decisión para verificar si el campo Auditor está lleno o no
Ahora usaremos el elemento Decisión para verificar el Auditor__c del objeto Auditoría para encontrar si está poblado por el usuario o no.
- En Caja de herramientas , seleccione Elemento .
- Arrastre y suelte el elemento Decisión en el diseñador de flujo.
- Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1 :
- Recurso: {! $ Record.Auditor__c}
- Operador: es nulo
- Valor: {! $ GlobalConstant.False}
- Agregue campo
- Fila 2:
- Recurso: {! $ Record.Auditor__c}
- Operador: se cambia
- Valor: {! $ GlobalConstant.True}
- Fila 1 :
- Haz clic en Listo .
Paso 3.4: Flujo de Salesforce: agregar un elemento de asignación para completar Audit__Share Record Variable
El siguiente paso es completar la variable de registro Audit__share para compartir el registro de auditoría con Auditor.
- En Caja de herramientas , seleccione Asignación . Arrastre y suelte Tarea en el lienzo.
- Ingrese la siguiente información :
- Ingrese la etiqueta, el nombre de la API se completará automáticamente.
- Fila 1:
- Campo : {! VarR_AuditShare.AccessLevel}
- Operador : Igual que
- Valor : Editar
- Haga clic en Agregar fila
- Fila 2:
- Campo : {! VarR_AuditShare. Identificación de los padres}
- Operador : Igual que
- Valor : {! $ Record.Id}
- Haga clic en Agregar fila
- Fila 3:
- Campo : {! VarR_AuditShare. UserOrGroupId}
- Operador : Igual que
- Valor : {! $ Record.Auditor__c}
- Haga clic en Agregar fila
- Fila 4:
- Campo : {! VarR_AuditShare. RowCause}
- Operador : Igual que
- Valor : Share_record_with_Auditor__c
- Haz clic en Listo .
Paso 3.5: Flujo de Salesforce: agregar un elemento Crear registros para compartir el registro de auditoría con el auditor
- En Caja de herramientas , seleccione Elemento .
- Arrastre y suelte el elemento Crear registros en el diseñador de flujo.
- Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
- Para cuántos registros crear, seleccione uno.
- Colección de registros de mapas : {! VarR_AuditShare}
- Haz clic en Listo .
Al final, el flujo de Brenda se verá como la siguiente captura de pantalla (activé el diseño automático ) para este flujo:
Una vez que todo se vea bien, realice los pasos a continuación:
- Haga clic en Guardar .
- Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
- Haga clic en Mostrar avanzado .
- Versión de API para ejecutar el flujo : 53
- Etiqueta de la entrevista : compartir registro con el auditor {! $ Flow.CurrentDateTime}
- Haga clic en Guardar .
¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar.
Prueba de concepto
A partir de ahora, cuando un usuario empresarial crea un registro de auditoría con un auditor, Salesforce Flow se activará automáticamente y compartirá el registro de auditoría con el auditor. Tendrá que hacer algunas de estas pruebas en su organización.
- Cu rrently, la auditoría para Dell PowerEdge Servidores Torre FY21 no tiene un auditor, como se muestra en la siguiente captura de pantalla:
- Ahora actualice el registro de auditoría con el auditor válido:
- Para verificar el resultado, haga clic en el botón compartir , se abrirá un detalle como se muestra en la siguiente captura de pantalla:
Práctica independiente (tú lo haces):
- En una organización de sandbox o de desarrollo / Trailhead, cree un objeto personalizado rápido con una búsqueda del registro de oportunidad
- Incluir una búsqueda de usuario
- Cree una regla para compartir como se describe anteriormente
Evaluación formativa:
¡Quiero saber de ti!
¿Qué aprendió de esta publicación, es relevante para usted y cómo modificará los conceptos enseñados en la publicación para sus propios procesos comerciales?
Haz una publicación y etiquétame en Twitter @automationchamp usando #AutomationChampionFlow.
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2021/09/30/getting-started-with-salesforce-flow-part-70-creating-custom-record-sharing-logic/