Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Describir un proceso de negocio que puede automatizarse empleando un proceso y un flujo.
- Definir qué es una variable de flujo.
- Crear un flujo que itera en un grupo de registros.
- Crear un proceso que inicia un flujo.
Cuando Process Builder no es suficiente
Process Builder no está diseñado para adaptarse a todos los casos de uso posibles, por lo que podría descubrir que puede automatizar partes de su proceso de negocio, pero no todas. Por ejemplo, Process Builder no puede:
- Publicar en noticias en tiempo real de una comunidad.
- Enviar un registro relacionado para su aprobación.
- Eliminar registros.
- Crear muchos registros y asociarlos entre sí.
- Realizar lógicas complejas.
¡Pero hay buenas noticias! No tiene que volver a crear toda la automatización en otra herramienta. Configure la función más compleja en un flujo y luego agregue una acción de flujo a su proceso. Si un flujo no puede hacer lo que necesita, usted o su desarrollador pueden redactar Apex para ello. A continuación agregue una acción de Apex a su proceso.
Duplicar registros con secundarios
Se le pidió crear automáticamente oportunidades de renovación cuando una oportunidad es Cerrada ganada. La renovación debe ser un duplicado de la oportunidad original. Podemos duplicar registros en Process Builder, pero también debemos duplicar los productos y asociarlos con la oportunidad de renovación.
En Process Builder, no puede obtener el Id. del registro creado y utilizarlo en otra parte. Afortunadamente, puede hacer eso en un flujo. Solo tiene que crear un flujo que duplique la oportunidad y sus productos y crear un proceso que llame al flujo cuando una oportunidad es Cerrada ganada.
Más allá de lo básico
En la última unidad, platicamos acerca de flujos que guían los usuarios por un proceso de negocio con pantallas. Los llamamos flujos de pantalla. También puede crear flujo iniciados automáticamente, que se ejecutan en segundo plano como un proceso. La diferencia principal es que los flujos iniciados automáticamente no pueden tener pantallas, lo que requiere la interacción del usuario. Como no tienen pantallas, puede llamar los flujos iniciados automáticamente desde temas de apoyo como procesos y clases de Apex.
Crear un proceso
En el proceso Oportunidades cerradas ganadas, agregue un nodo de criterios denominado Cerrada ganada con esta condición de filtro.
Campo | Valor |
---|---|
Oportunidad > Etapa | Cerrada ganada |
No podemos configurar las acciones en Process Builder, así que guardemos y cambiemos a Flow Builder.
Crear un flujo
Estamos creando un flujo que:
- Duplica una oportunidad.
- Duplica productos de oportunidad.
- Asocia los productos duplicados con la oportunidad duplicada.
Para ello, el flujo necesita algunos datos del proceso: la oportunidad original y sus productos de oportunidad.
La variables de flujo se presentan en cuatro tipos.
Tipo | Puede almacenar... | Ejemplo |
---|---|---|
Variable | Un valor único | “Hello World”, true, 6 |
Variable de colección | Múltiples valores del mismo tipo de datos | [1, 2, 3, 5, 8, 13] |
Variable de registro | Un conjunto de valores de campo para un registro único | Puntuaje, Id. y Nombre para una cuenta |
Variable de colección de registros | Un conjunto de valores de campo para múltiples registros del mismo tipo de objeto | Puntuaje, Id. y Nombre para múltiples cuentas |
Para almacenar la oportunidad y sus productos de oportunidad, creamos una variable de registro y una variable de colección de registros. Más adelante, cuando agregamos el flujo como una acción en el proceso, pasamos datos a estas variables, por lo que deben permitir ingreso.
- Desde el Gestor en Caja de herramientas, haga clic en Nuevo recurso y establezca estos valores.
Campo Valor Tipo de recurso Variable Nombre de API opportunity Tipo de datos Registro Objeto Opportunity Disponible para ingreso Seleccionado - Haga clic en Listo.
- Haga clic en Nuevo recurso y establezca estos valores.
Campo Valor Tipo de recurso Variable Nombre de API oppProducts_Original Tipo de datos Registro Permitir varios valores (colección) Seleccionado Objeto Producto de oportunidad Disponible para ingreso Seleccionado - Haga clic en Listo.
Duplicar la oportunidad
- Desde Elementos en la Caja de herramientas, arrastre un elemento Asignación al lienzo.
- En Etiqueta, asígnele el nombre Actualizar campos de oportunidad.
- Defina la etapa como Prospección.
- Para Variable, seleccione .
- Para Operador, seleccione Es igual a.
- Para Valor, seleccione .
- Defina Fecha de cierre como 90 días a partir de hoy.
- Haga clic en Agregar asignación.
- Para Variable, seleccione .
- Para Operador, seleccione Es igual a.
- Para Valor, seleccione Nuevo recurso y establezca estos valores.
Campo Valor Tipo de recurso Fórmula Nombre de API ninetyDays Tipo de datos Fecha
- En Fórmula, deje Insertar un recurso… en blanco e ingrese HOY() + 90 en el cuadro de texto.
- Haga clic en Listo.
- En Valor en la segunda fila, seleccione .
- Haga clic en Listo.
- Para crear la oportunidad, arrastre un elemento Crear registros al lienzo y establezca estos valores.
Campo Valor Etiqueta Duplicar una oportunidad Variable de registro VARIABLES DE REGISTRO > opportunity - Haga clic en Listo.
- Haga clic en el nodo de la parte inferior de Inicio y arrástrelo a Actualizar campos de oportunidad.
- Haga clic en el nodo en la parte inferior de Actualizar campos de oportunidad y arrástrelo a Duplicar oportunidad.
Cuando se crea la oportunidad, el campo de Id. en esa variable ({!opportunity.Id}) se rellena con el Id. del nuevo registro. Hacemos referencia ese valor más adelante para asociar los nuevos productos con la oportunidad de renovación.
Duplicar los productos de oportunidad
Cuando se llama al flujo por el proceso, la variable {!oppProducts_Original} incluye campos de los productos de oportunidad originales. Antes de duplicar esos productos, debemos asociarlos con la oportunidad de renovación en vez de la oportunidad original y establecer el precio total para cada producto como nulo. (Los productos de oportunidad no pueden tener un precio unitario y un precio total.)
La única forma de actualizar elementos en una colección es iterar en la colección con un bucle. Un bucle indica al flujo que procese cada elemento en la colección uno por uno, ejecutando la misma lógica en cada elemento hasta que se procese la colección completa.
Cada producto de oportunidad en nuestra colección de registros {!oppProducts_Original} debe asociarse con la oportunidad de renovación, y el precio total establecerse en nulo.
Cada vez que itera el bucle, la variable de buclerepresenta un elemento en la colección. Cuando se inicia un bucle, el primer elemento en la variable de colección se copia en la variable de bucle. Al término de una iteración, la variable de bucle se sustituye con los valores del siguiente elemento. Y así sucesivamente hasta que no se deje ningún elemento en la colección.
En el bucle, actualizamos Id. de oportunidad y Precio total de cada elemento y luego agregamos el elemento a una nueva variable de colección. Tras el bucle, utilizamos la nueva variable de colección para crear los productos de oportunidad.
- Arrastre un elemento Bucle en el lienzo y establezca estos valores.
- En Etiqueta, asígnele el nombre Iterar en productos.
- Para Variable de colección, seleccione .
Esta opción indica al bucle en qué colección iterar al asignar elementos a la variable de bucle.
- Para Variable de bucle, seleccione Nuevo recurso y establezca estos valores.
Campo Valor Tipo de recurso Variable Nombre de API oppProduct_loop Tipo de datos Registro Objeto Producto de oportunidad
- Haga clic en Listo.
- Establezca la Variable de bucle en .
- Haga clic en Listo.
- Conecte la oportunidad duplicada con el bucle.
- Establezca el Id. de oportunidad de la variable de bucle y el Id. de la nueva oportunidad y su precio total como nulo.
- Arrastre un elemento Asignación al lienzo.
- En Etiqueta, asígnele el nombre Actualizar producto de oportunidad.
- En Establecer valores de variables, configure estas asignaciones. Haga clic en Agregar asignación para agregar una segunda línea.
Variable Operador Valor VARIABLES DE REGISTRO > oppProduct_loop > OpportunityId Igual a VARIABLES DE REGISTRO > opportunity > Id VARIABLES DE REGISTRO > oppProduct_loop > TotalPrice Igual a Dejar en blanco - Haga clic en Listo.
- Conecte el bucle a Actualizar producto de oportunidad. Aparece la ventana Seleccionar conector de bucle.
- Verifique que para cada elemento de la colección está seleccionada en el campo Conector de bucle y haga clic en Listo.
- Agregue la variable de bucle actualizada a una nueva variable de colección de registro.
- Arrastre otro elemento Asignación al lienzo.
- En Etiqueta, asígnele el nombre Agregar a nueva colección.
- Para Variable, seleccione Nuevo recurso y cree una nueva variable de recurso con estos valores.
Campo Valor Tipo de recurso Variable Nombre de API oppProducts_new Tipo de datos Registro Objeto Producto de oportunidad Permitir varios valores (colección) Seleccionado - Haga clic en Listo.
- Para Variable, seleccione .
- Para Operador, seleccione agregar.
- Para Valor, seleccione .
- Haga clic en Listo.
- Conecte Actualizar producto de oportunidad a Agregar a nueva colección. Luego conecte Agregar a nueva colección al bucle.
- Para duplicar los productos de oportunidad, arrastre un elemento Crear registros al lienzo y establezca estos valores.
Campo Valor Etiqueta Duplicar productos Cuántos registros crear Seleccione Múltiples Variable de colección de registros VARIABLES DE COLECCIÓN DE REGISTROS > oppProducts_new - Haga clic en Listo.
- Conecte el bucle a Duplicar productos.
Finalizar el flujo
- Haga clic en Guardar.
- Guarde el flujo y denomínelo Oportunidad de renovación. Asegúrese de que Tipo está establecido en Flujo iniciado automáticamente.
- Haga clic en Guardar.
Cierre Flow Builder y active el flujo de modo que pueda hacer referencia a él en Process Builder.
Finalizar el proceso
- Abra el proceso Oportunidades cerradas ganadas.
- En el grupo de criterios Cerrada ganada, agregue una acción inmediata donde el tipo es Flujos y el nombre es Crear renovación.
- Para Flujo, seleccione Oportunidad de renovación.
- Bajo Establecer variables de flujo, agregue dos filas, establezca estos valores y luego haga clic en Guardar.
Variable Tipo Valor opportunity Referencia a un campo Seleccionar el registro de oportunidad que inició el proceso oppProducts_original Referencia a un campo Opportunity > OpportunityLineItems Cuando una oportunidad es Cerrada ganada, siempre se debe crear la renovación. Pero debemos asegurarnos de que los contratos de borrador y las tareas de seguimiento se crean si la oportunidad se considera también de valor elevado. - Arrastre el nodo de criterios Cerrada ganada sobre Cerrada ganada y Alto valor.
- Para el grupo de criterios Cerrada ganada, haga clic en DETENER.
- Seleccione Evaluar los siguientes criterios y, a continuación, haga clic en Guardar.
- Para comenzar a utilizar el proceso, actívelo.