Skip to content

Consulta de registros por lista de ID en el flujo

Última actualización el 8 de mayo de 2022 por Rakesh Gupta

Gran 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 está marcada como cerrada perdida?

Objetivos:

Después de leer esta publicación de blog, el lector podrá:

  • Comprender @InvocableMethod e InvocableVariable Anotación
  • Obtenga el tipo de sObject en el código Apex
  • Pase la lista de recordIds al vértice invocable
  • Llame a la clase de Apex invocable que toma una lista de ID
  • Eliminar registros de forma permanente mediante Apex
  • Llamar al método invocable desde el flujo

Arda Turan trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Ha recibido un requisito de la gerencia de que cada vez que se actualice una oportunidad con etapa cerrada perdida, haga lo siguiente:

  • Eliminar tareas abiertas en la oportunidad actual
  • Eliminar tareas abiertas de presupuestos relacionados

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

Si bien Record-Triggered Flow es muy flexible desde el primer momento , hay algunos casos de uso comercial que no se pueden lograr usándolo. Por ejemplo
  • El flujo activado por registro no admite la cláusula IN en el elemento get
  • El flujo activado por registros no nos permite eliminar registros de forma definitiva
  • y mucho más
Si bien el negocio anterior se puede resolver usando varias herramientas de automatización como Apex o Flow (agregando Obtener elemento dentro del bucle) , usaremos Record-Triggered Flow y llamaremos a un método de Apex invocable .

para llamar a un

Apex , agregue la acción Llamar a Apex a su proceso y seleccione una clase de Apex con una anotación de método @invocable . Significa que nos permiten extender el Flujo de Salesforce al escribir código Apex que cumple con ciertos criterios y luego invocar el Apex desde nuestros Flujos . Si la clase contiene una o más variables invocables , ingrese valores manualmente o valores de campo de referencia de un registro relacionado. La anotación @InvocableMethod admite operaciones masivas.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Arda mediante el flujo activado por registro . Debemos:
  1. Crear clase de Apex y clase de prueba
  2. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue una variable de colección de texto para almacenar los ID de registro
    3. Agregue un elemento de decisión para validar que la etapa de oportunidad es igual a cerrada perdida
    4. Agregue un elemento de asignación para agregar el ID de oportunidad a la variable de colección (creado en el paso 1.2)
    5. Agregue un elemento de obtener registros para encontrar las cotizaciones relacionadas
    6. Agregue un elemento de decisión para verificar si se encontraron cotizaciones o no
    7. Agregue un elemento de bucle para recuperar registros de la variable de colección de registros (desde el paso 1.5)
    8. Agregue un elemento de asignación para agregar quoteId a la variable de colección (Creado en el paso 1.2)
    9. Agregar acción: llame a una clase de Apex para eliminar las tareas abiertas para las identificaciones dadas

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

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Clases de Apex .
  3. Da clic en el botón Nuevo .
  4. Copie el código de GitHub y péguelo en su clase de Apex.
  5. Haga clic en Guardar.
Repita los pasos anteriores y haga clic en la clase de prueba. Puede obtener el código de mi repositorio de GitHub .
  • El método getSObjectType se usa para obtener un token sObject de una ID.
  • La papelera de reciclaje vacía se utiliza para eliminar registros de la papelera de reciclaje inmediatamente.

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 activado por registro opción, haga clic en Crear
    1. Objeto : Oportunidad
    2. Activar flujo de oportunidad cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2.2: agregue un texto de variable de colección para almacenar ID de registro

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para almacenar los ID de oportunidades o cotizaciones.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Variable
    2. Nombre de la API : varT_recordIds
    3. Tipo de datos : Texto
    4. Valor predeterminado: {!$GlobalConstant.EmptyString}
    5. Marque Permitir múltiples valores (colección)
    6. Comprobar disponible para entrada
    7. Comprobar disponible para la salida
  3. Haga clic en Listo .

Paso 2.3: uso del elemento de decisión para verificar si la oportunidad está cerrada, perdida o no

Ahora usaremos el elemento Decisión para verificar StageName y asegurarnos de que sea igual a Cerrado perdido.
  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 : {!$Record.StageName}
      2. Operador : Igual
      3. Valor : Cerrado Perdido

La razón por la que seleccionaríamos la casilla de verificación para la pregunta (Solo si el registro que activó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición) es para permitir que el flujo ejecute las acciones solo si el registro cumple los criterios ahora, pero los valores que tenía el registro inmediatamente antes de que se guardara no cumplían con los criterios. Esto significa que estas acciones no se ejecutarán cuando se realicen cambios irrelevantes.

Paso 2.4: agregar un elemento de asignación para asignar el Id. de oportunidad a la variable de colección

  1. En Flow Designer, debajo del nodo Cerrado perdido , haga clic en el ícono + y seleccione el elemento Asignación .
  2. Ingrese un nombre en la etiqueta , el nombre de la API se completará automáticamente.
  3. Establecer valores de variables
    1. Fila 1:
      1. Campo: {!varT_Ids}
      2. Operador: Agregar
      3. Valor: {!$Record.Id}
  4. Haga clic en Listo .

Paso 2.5: agregue un elemento Obtener registro para encontrar las cotizaciones relacionadas

El siguiente paso es utilizar el   Obtenga el elemento Registros para encontrar las cotizaciones relacionadas.
  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener elemento.
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Cotización de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo: ID de oportunidad
      2. Operador: Igual
      3. Valor: {!$Record.Id}
  6. Cuántos registros almacenar:
    1. seleccione Todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos
  8. Haga clic en Listo .

Paso 2.6: uso del elemento de decisión para verificar si se encontraron cotizaciones o no

Ahora, usará el elemento Decisión para verificar si el elemento Decisión anterior devuelve registros de cotización 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_Quotes}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.7: agregue un elemento de bucle para recuperar registros de la variable de recopilación de registros

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Bucle .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para Variable de colección, seleccione {!Get_Quotes} .
  4. Para especificar la dirección para iterar sobre la colección   seleccione la opción Del primer elemento al último elemento.
  5. Haga clic en Listo .

Paso 2.8: agregar un elemento de asignación para asignar el Id. de cotización a la variable de colección

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Asignación .
  2. Ingrese un nombre en la etiqueta , el nombre de la API se completará automáticamente.
  3. Establecer valores de variables
    1. Fila 1:
      1. Campo: {!varT_Ids}
      2. Operador: Agregar
      3. Valor: {!Loop_through.Id}
  4. Haga clic en Listo .

Paso 2.9: Agregar acción: llamar a una clase de Apex

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione la clase apex DeleteOpenTasks en el menú desplegable
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Campo : ID de registro
    2. Valor : {!varT_Ids}
  5. Haga clic en Listo .

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

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 55
  5. Etiqueta de entrevista : Consulta de registros por lista de Id. en el flujo {!$Flow.CurrentDateTime}
  6. 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, si un usuario comercial actualiza la Etapa de oportunidad a Cerrada perdida, Record-Trigger eliminará automáticamente todas las tareas abiertas de Oportunidad y cotizaciones relacionadas.

  1. Actualmente, hay dos Cotizaciones adjuntas al Letrero de Oportunidad West Mountain. Cada uno de ellos tiene una tarea abierta , como se muestra en la siguiente captura de pantalla:
  2. Ahora, actualizamos la Etapa de Oportunidad   a Cerrado Perdido .
  3. Vuelva a la Oportunidad y   Cotizar la lista relacionada con la actividad disponible en el detallado   página.

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/05/08/query-records-by-list-of-ids-in-flow-3/

Últimas novedades 
de EGA Futura
1954
Desde hace más de 25 años potenciamos a las Empresas de Iberoamérica
🎬 Video de EGA Futura » Conceptos de Seguridad (EGA Futura ERP / Salesforce)

🎬 Video de EGA Futura » Conceptos de Seguridad (EGA Futura ERP / Salesforce)

🎬 Video de Juan Manuel Garrido » Claves para tu Productividad diaria 🙌✅

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Conceptos básicos con EGA Futura Windows

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Configuración de EGA Futura Windows

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Funcionamiento con EGA Futura Windows

🎬 Video de EGA Futura » Configuración de la Plataforma EGA Futura

🎬 Video de EGA Futura » Configuración de usuario en EGA Futura

🎬 Video de EGA Futura » Como automatizar la publicación en Redes Sociales?

🎬 Video de Juan Manuel Garrido » Cómo restaurar la configuración de fábrica de EGA Futura Windows sin perder la información

🎬 Video de Juan Manuel Garrido » Factura electrónica: Prueba de Factura Electronica previa a la activacion

🎬 Video de EGA Futura » Como se registran los Beneficios de cada Empleado en la base de datos de EGA Futura

🎬 Video de EGA Futura » EGA Futura Time Clock » Reloj de Control horario y asistencia

🎬 Video de EGA Futura » Como registrar Observaciones en un Empleado dentro de EGA Futura People?

🎬 Video de EGA Futura » Cómo registrar la Educación de cada Empleado en EGA Futura People?

🎬 Video de EGA Futura » Como hacer la Desvinculación de un Empleado? (Offboarding)

🎬 Video de EGA Futura » Como registrar Habilidades o Skills de empleados dentro de EGA Futura

🎬 Video de EGA Futura » Como hacer el Onboarding o Proceso de Incorporación de un Empleado?

🎬 Video de EGA Futura » Cómo administrar Turno de trabajo dentro de EGA Futura

🎬 Video de EGA Futura » Que es un Ticket interno dentro de la Plataforma EGA Futura

🎬 Video de EGA Futura » Que son los Entrenamientos de Empleado en EGA Futura people?

🎬 Video de EGA Futura » Qué son los Epics dentro de EGA Futura

🎬 Video de EGA Futura » Qué es EGA Futura People?

🎬 Video de EGA Futura » EGA Futura People » Asistencias

🎬 Video de EGA Futura » Soporte EGA Futura » Software de Gestión Windows vs Software de Gestión Nube 🤩

🎬 Video de EGA Futura » ツ Comparando un Objeto con un Fichero

Consulta de registros por lista de ID en el flujo
Consulta de registros por lista de ID en el flujo