Eliminación definitiva de registros con Salesforce Flow

Eliminación definitiva de registros con Salesforce Flow

Última actualización el 22 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo eliminar registros de Salesforce utilizando Flow?

Objetivos:

Después de leer este blog, podrá:

  • Comprender la anotación @InvocableMethod
  • Más información sobre el método database.emptyRecycleBin
  • Configurar la acción de Apex para eliminar registros de forma permanente de Flow
  • Configurar el flujo de pantalla con el elemento Eliminar registro
  • Y mucho más

¿Qué es la eliminación completa?

La eliminación definitiva es la eliminación permanente de los registros especificados de la Papelera de reciclaje. Cuando los datos se eliminan de forma permanente, es casi imposible recuperarlos. Esto generalmente se logra a través de los métodos Database.EmptyRecycleBin .

Al vaciar los contenedores de reciclaje, tenga en cuenta las siguientes reglas y pautas:

  • Una vez que los registros se eliminan de la Papelera de reciclaje mediante esta llamada, se pueden consultar mediante queryAll() durante algún tiempo. Por lo general, este tiempo es de 24 horas, pero puede ser más corto o más largo.
  • Una vez que los registros se eliminan mediante la llamada Database.EmptyRecycleBin , no se pueden recuperar.

Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). En GoC están utilizando Salesforce Flow para optimizar los procesos de ventas. Warren tiene un requisito para eliminar clientes potenciales sin correo electrónico. Está construyendo un flujo de pantalla:

  1. Descubra todos los clientes potenciales sin correo electrónico
  2. Eliminar definitivamente tales clientes potenciales

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver con varias herramientas de automatización como Apex Trigger y otras, usaremos Salesforce Flow y llamaremos a un método de Apex . Para llamar a un método de Apex , agregue el elemento Acción a su Flujo de Salesforce y seleccione una clase de Apex con una anotación @InvocableMethod .

En este artículo, usaremos la llamada clase de base de datos EmptyRecycleBin . Con Database.EmptyRecycleBin es posible borrar los registros de Salesforce. El método EmptyRecycleBin() elimina los registros de la papelera de reciclaje inmediatamente. A partir del lanzamiento de Summer'23 , no es posible acceder directamente al método EmptyRecycleBin desde Flow, por eso estamos usando la clase Apex Invocable.

Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito comercial de Warren usando Screen Flow . Debemos:

  1. Cree una clase de Apex y una clase de prueba para eliminar registros de forma permanente de la Papelera de reciclaje.
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue un elemento Obtener registros para encontrar todos los clientes potenciales sin dirección de correo electrónico
    3. Agregue un elemento de decisión para verificar los clientes potenciales encontrados o no (del paso 2)
    4. Agregue el elemento Eliminar registros para eliminar clientes potenciales
    5. Agregar acción: llame a Empty RecycleBin Invocable Apex Class

Paso 1: Cree una clase de Apex y una clase de prueba

Ahora, tenemos que comprender una nueva anotación de Apex, es decir, @InvocableMethod . Esta anotación nos permite usar un método de Apex como algo que se puede llamar desde Flow y Apex. Los métodos invocables se llaman con la API REST y se usan para invocar un solo método de Apex. Los métodos invocables tienen valores de entrada y salida dinámicos y admiten llamadas de descripción.

La anotación InvocableVariable identifica una variable de clase utilizada como parámetro de entrada o salida para la acción invocable de un método InvocableMethod. Si crea su propia clase personalizada para usarla como entrada o salida de un método invocable, puede anotar variables de miembros de clase individuales para que estén disponibles para el método.

La anotación de variable invocable admite los modificadores que se muestran en este ejemplo.


@InvocableVariable(label='variableLabel' description='variableDescription' requerido=(verdadero | falso))

La clase EmptyRecycleBin contiene dos variables, una para eliminar un solo registro y otra para manejar la eliminación de varios registros. Siéntase libre de pasar el valor a una o ambas variables según sea necesario. Cree la siguiente clase en su organización.


clase pública EmptyRecycleBin { @InvocableMethod(label='Papelera de reciclaje vacía' description='Eliminar permanentemente los registros de la Papelera de reciclaje.' iconName='slds:estándar:record_delete' categoría = 'Acciones de Apex personalizadas') ejecución de vacío estático público (Lista <Solicitudes> lista de solicitudes) { List<SObject> recordstoDelete = New List<SObject>(); para (Solicitudes req: lista de solicitudes) { if(req.obj != null){ recordstoDelete.add(req.obj); } if(req.listofSObjects != null){ recordstoDelete.addAll(req.listofSObjects); } } if(registrosparaEliminar.tamaño()>0){ Database.emptyRecycleBin(registrosparaEliminar); } } Solicitudes de clases públicas{ @InvocableVariable (descripción ='Aceptar un registro de tipo SObject.' requerido=falso) objeto público SObject; @InvocableVariable (descripción ='Aceptar múltiples registros de un tipo SObject.' requerido=falso) public List<SObject> listofSObjects; }
}

Copie el código de GitHub o instálelo usando esta URL .

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   opción y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 2.2: Adición de elementos Obtener registros para encontrar clientes potenciales sin correo electrónico

El siguiente paso es usar el objeto Prospecto para encontrar los prospectos sin dirección de correo electrónico.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Prospecto de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Correo electrónico
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.EmptyString}
  6. Cuántos registros almacenar:
    1. Seleccionar todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .

Paso 2.3: uso del elemento de decisión para verificar la variable de recopilación de registros (del paso 2)

Ahora usaremos el elemento Decisión para comprobar la Variable de recopilación de registros del paso 2 para saber si devuelve el cliente potencial o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Leads}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    2. Haga clic en Listo .

Paso 2.4: Agregar acción: eliminar registros para eliminar clientes potenciales

El siguiente paso es eliminar los clientes potenciales que encontramos en el Paso 2.2 . Para ello utilizaremos el elemento Eliminar Registros .

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Eliminar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para Cómo encontrar registros para eliminar, seleccione Usar los ID almacenados en una variable de registro o una variable de colección de registros .
  4. Selecciona el   {!Get_Leads} de la lista desplegable.
  5. Haga clic en Listo.

Paso 2.5: Adición de una acción para llamar a una clase de Apex invocable

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Seleccione la clase de Apex invocable EmptyRecycleBin .
  3. Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Objeto para “listofSObjects” (Entrada) : Lead
    2. Objeto para "obj" (Entrada) : Plomo
  5. Almacenar valores de entrada
    1. listofSObjects : {!Get_Leads}
  6. Haga clic en Listo .

Al final, Warren's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, guarde el flujo.

Prueba de concepto

  1. Creé 201 clientes potenciales sin una dirección de correo electrónico para probar el flujo anterior.
  2. Ahora ejecute el flujo de pantalla y espere a que se complete el flujo.
  3. Vuelva a la Papelera de reciclaje para asegurarse de que los clientes potenciales se hayan eliminado definitivamente.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Seguir leyendo

Implemente la gamificación en su Salesforce

Última actualización el 22 de noviembre de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puedo usar la gamificación en Salesforce para impulsar las ventas? ¿Cuáles son las formas de automatizar la gamificación? Objetivos: después de leer esta publicación de blog, el lector podrá: Crear un flujo que publicará automáticamente un

La publicación Implemente la gamificación en su fuerza de ventas apareció primero en Automation Champion .

Seguir leyendo

Mostrar datos de registros en una tabla mediante DataTable

Última actualización el 9 de octubre de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo mostrar registros en una tabla usando la tabla de datos y procesar los registros seleccionados? Objetivos: después de leer este blog, podrá: Comprender cómo usar la tabla de datos Funciona con el elemento Obtener registros para obtener

La publicación Mostrar datos de registros en una tabla usando DataTable apareció primero en Automation Champion .

Seguir leyendo

Eliminar duplicados de variables de recopilación de registros en un flujo

Última actualización el 7 de junio de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo se eliminan los duplicados de las variables de colección de registros o las variables de colección en flujo sin escribir código? Objetivos: después de leer este blog, podrá: Comprender los diferentes operadores de flujo en el elemento de asignación Comprender

La publicación Eliminar duplicados de las variables de recopilación de registros en un flujo apareció primero en Automation Champion .

Seguir leyendo

Agregar miembro automáticamente al equipo de cuenta predeterminado del nuevo usuario

Última actualización el 2 de junio de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo puede agregar automáticamente un usuario específico al equipo de cuenta predeterminado del nuevo usuario? ¿Qué tan bueno sería si Salesforce agregara automáticamente un usuario (usuario especificado) al Equipo de cuenta predeterminado para cada nuevo usuario?

La publicación Agregar miembro automáticamente al equipo de cuenta predeterminado del nuevo usuario apareció primero en Automation Champion .

Seguir leyendo

Crear automáticamente un caso a partir de la palabra clave utilizada en Chatter

Última actualización el 2 de junio de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo puede crear automáticamente un caso a partir de una publicación de Chatter si incluye una palabra clave específica? Objetivos: después de leer este blog, podrá: Comprender qué son los tipos de metadatos personalizados y cuándo debe uno.

La publicación Creación automática de un caso a partir de la palabra clave utilizada en Chatter apareció primero en Automation Champion .

Seguir leyendo

Eliminación automática de un registro de grupos de Chatter

Última actualización el 19 de mayo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se elimina automáticamente un registro de los grupos de Chatter? Salesforce le permite agregar un registro a Grupos de Chatter, lo que significa que ahora puede colaborar y discutir los registros como un equipo en el grupo. Tú

La publicación Eliminar automáticamente un registro de los grupos de Chatter apareció primero en Automation Champion .

Seguir leyendo

Consulta de registros por lista de ID en el flujo

Última actualización el 8 de mayo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puede eliminar automáticamente las tareas abiertas relacionadas con la oportunidad y la(s) cotización(es) cuando una oportunidad se marca como cerrada perdida? Objetivos: después de leer esta publicación de blog, el lector podrá: Comprender @InvocableMethod e InvocableVariable Annotation

La publicación Query Records by List of Ids in Flow apareció primero en Automation Champion .

Seguir leyendo

¿Que dice? ¿Enviar una solicitud de aprobación de oportunidad a una cola? ¿En serio?

Última actualización el 18 de abril de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se envía una solicitud de oportunidad/cotización/aprobación de cuenta a una cola? Objetivos: Después de leer este blog, podrá: Comprender qué es una cola. Utilice filtros y condiciones para diseñar un proceso.

El post ¿Qué dices? ¿Enviar una solicitud de aprobación de oportunidad a una cola? ¿En serio? apareció por primera vez en Automation Champion .

Seguir leyendo

¡Elimine automáticamente la licencia del paquete administrado de un usuario desactivado!

Última actualización el 29 de marzo de 2022 por Rakesh GuptaSalesforce Flow es una forma fantástica de automatizar varios procesos comerciales. Le permite crear un flujo basado en ciertos criterios que establezca. El flujo de Salesforce puede hacer muchas cosas: crear un registro, actualizar registros, publicar en Chatter, enviar un correo electrónico, etc.

¡La licencia de paquete administrado posterior a la eliminación automática de un usuario desactivado! apareció por primera vez en Automation Champion .

Seguir leyendo

Agregar usuario de socio automáticamente al grupo público

Última actualización el 11 de marzo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se agregan automáticamente usuarios asociados a un grupo público? Esta es una continuación de mi último artículo Primeros pasos con Process Builder – Parte 56 (Creación automática de un grupo público para una cuenta nueva). En mi artículo anterior,

La publicación Agregar automáticamente un usuario de socio a un grupo público apareció por primera vez en Automation Champion .

Seguir leyendo

Primeros pasos con Salesforce Flow: parte 86 (¡Mejore la productividad con notificaciones push para escritorio o dispositivos móviles!)

Última actualización el 25 de enero de 2022 por Rakesh Gupta Quizás esté pensando, ¿por qué estoy tan entusiasmado con el lanzamiento reciente de Salesforce? Bueno, ¡déjame contarte las razones! Sin embargo, una de las razones que más destaca son las mejoras relacionadas con Process Builder: ¡oh, sí! lo tienes

La publicación Primeros pasos con Salesforce Flow: parte 86 (¡Mejore la productividad con notificaciones push en el escritorio o el móvil!) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 79 (Convenciones de nomenclatura de Salesforce Flow)

Última actualización el 9 de noviembre de 2021 por Rakesh Gupta Como programador declarativo, siempre desea crear flujos limpios donde los nombres deben ser apropiados para que a cualquier otro programador le resulte más fácil leer el flujo y comprenderlo. Ahora, esto puede parecerle insignificante, pero piense

La publicación Getting Started with Salesforce Flow – Part 79 (Convenciones de nomenclatura de Salesforce Flow) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 67 (¡Hurra! ¡Analizar una lista de selección múltiple ya no es un problema! ¡Uf!)

Gran idea o pregunta duradera: proporcione un asistente que le permita a su equipo de ventas internas y a los agentes de telemercadeo agregar clientes potenciales a varias campañas. Hace 6 años escribí un artículo (Agregar registro a varios grupos de Chatter – Análisis de campos de lista de selección de selección múltiple) para analizar la lista de selección de selección múltiple o el grupo de casillas de verificación en Salesforce Flow. No

La publicación Getting Started with Salesforce Flow – Part 67 (¡Hurra! ¡Analizar una lista de selección de selección múltiple ya no es un problema! ¡Uf!) Apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 66 (Dejar de seguir automáticamente registros según criterios)

Gran idea o pregunta duradera: ¿Desea dejar de seguir automáticamente los registros cuando los registros cumplen con criterios específicos? Como sabe, los usuarios pueden seguir y dejar de seguir registros haciendo clic en el icono Seguir en la página de detalles del registro. Sin embargo, los usuarios pueden automatizar el proceso Seguir / Dejar de seguir, según algunos criterios, ya sea por

La publicación Getting Started with Salesforce Flow – Part 66 (Auto Unfollow Records Based on Criteria) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 65 (Registro de seguimiento automático basado en criterios)

Gran idea o pregunta duradera: ¿Cómo pueden los usuarios seguir automáticamente los registros cuando los registros cumplen con criterios específicos? Dentro de Salesforce, los usuarios pueden seguir y dejar de seguir registros haciendo clic en el icono Seguir en la página de detalles del registro. Si quieres… Sigue leyendo

La publicación Getting Started with Salesforce Flow – Part 65 (Registro de seguimiento automático basado en criterios) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 39 (Notificación de fuera de la oficina para publicación de Chatter)

Última actualización el 4 de enero de 2021 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo configurar un mensaje de fuera de la oficina para una publicación de charla? Los mensajes Fuera de la oficina son respuestas automáticas de correo electrónico que se envían a colegas, clientes y clientes … Continuar leyendo

La publicación Introducción a Salesforce Flow – Parte 39 (Notificación de fuera de la oficina para la publicación de Chatter) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 37 (Eliminación automática de seguidores de una oportunidad cerrada)

Última actualización el 4 de enero de 2021 por Rakesh Gupta Para comprender cómo resolver un caso de uso empresarial similar utilizando Process Builder. Consulte este artículo Introducción a Process Builder – Parte 29 (Eliminación automática de seguidores de las preguntas con las mejores respuestas). Grande … Sigue leyendo

La publicación Getting Started with Salesforce Flow – Part 37 (Eliminar seguidores automáticamente de una oportunidad cerrada) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 28 (¿Tiene un componente de carga de archivos y otros detalles en una sola pantalla? ¿En serio? ¡Guau!)

Última actualización el 26 de diciembre de 2020 por Rakesh Gupta Gran idea o pregunta duradera: si se lo pregunta, ¡sepa que no está solo! A menudo recibo este tipo de solicitudes por correo electrónico, como un comentario en mi sitio web o,… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 28 (¿Tiene un componente de carga de archivos y otros detalles en una sola pantalla? ¿En serio? ¡Guau!) Apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 32 (Programar publicaciones de Chatter)

Última actualización el 30 de diciembre de 2020 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo permite que sus usuarios programen previamente las publicaciones de Chatter? Chatter es una excelente manera de impulsar la colaboración en su organización. Puede publicar el estado,… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 32 (Preschedule Chatter Posts) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 40 (Correo electrónico a cliente potencial con la ayuda de Salesforce Flow)

Última actualización el 30 de diciembre de 2020 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo utilizar el flujo y configurar el correo electrónico a cliente potencial en Salesforce? Salesforce Flow es una característica poderosa proporcionada por Salesforce para minimizar el código en su… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 40 (Email to Lead with the Help of Salesforce Flow) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 43 (Enrutamiento de aprobación dinámica en Salesforce)

Última actualización el 7 de enero de 2021 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo se configura el enrutamiento de aprobación dinámico? En Salesforce, un usuario puede utilizar un proceso de aprobación para obtener la aprobación de los gerentes o una autoridad superior. Procesos de aprobación… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 43 (Dynamic Approval Routing en Salesforce) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 50 (Dar la bienvenida a nuevos usuarios de forma predeterminada – ¡Sígalos automáticamente en Chatter!)

Gran idea o pregunta duradera: ¡Una cálida bienvenida contribuye en gran medida a solidificar la cultura de una empresa! Si es así, ¿por qué no proporcionar a los usuarios existentes la posibilidad de seguir automáticamente a los nuevos usuarios en conversaciones? Chatter es una excelente manera de impulsar la colaboración … Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 50 (Bienvenido nuevos usuarios de forma predeterminada – ¡Sígalos automáticamente en Chatter!) Apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 62 (Asignar automáticamente o quitar conjunto de permisos a varios usuarios)

Última actualización el 27 de abril de 2021 por Rakesh Gupta Gran idea o pregunta duradera: los conjuntos de permisos son útiles para proporcionar un conjunto particular de funcionalidades a un usuario además de los permisos proporcionados por su perfil. Por ejemplo, puede… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 62 (Auto Assign or Remove Permission Set to Multiple Users) apareció primero en Automation Champion .

Seguir leyendo