Ejecutar un flujo dentro de un flujo
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Minimizar el trabajo con el elemento de flujo secundario.
- Crear un flujo que se ejecute en otro flujo.
- Configurar variables de un flujo al que se hace referencia para volver a pasar datos al flujo principal.
El poder de la pereza
Créase o no, una de las cualidades más importantes que puede tener un administrador es la pereza.
Sí, ¡leyó bien! Si tiene que hacer un cambio en su Salesforce org que afecte a cuatro flujos distintos, ¿preferiría actualizar los cuatro flujos o solo uno? Parece magia, pero usted también puede superar obstáculos, como el trabajo innecesario, gracias al poder de la pereza.
Por ejemplo, la organización de Flo tiene cuatro flujos que publican el mismo mensaje en Chatter. Cada vez que algo cambia en esa publicación de Chatter, ella actualiza el elemento duplicado en los cuatro flujos. Flo se estremece al pensar en hacer tanto trabajo duplicado. Afortunadamente, existe otro elemento, uno que todavía no hemos usado: el elemento Subflow (Flujo secundario).
Cuando se usa el elemento de flujo secundario en un flujo (el flujo principal), se puede hacer referencia a otro flujo (el flujo secundario) para ejecutarlo dentro del flujo actual (principal). La idea de hacer cambios solo en un flujo y no en los cuatro entusiasma mucho a Flo. Además, con menos flujos, son menos las posibilidades de que algo se pase por alto o se configure de forma incorrecta.
Flo le pide que cree un flujo por separado para la publicación de Chatter. Planea reemplazar los elementos duplicados en cuatro flujos distintos mediante el uso del flujo secundario nuevo en su lugar. Luego, si cambia algo relacionado con la publicación de Chatter, Flo puede actualizar el flujo secundario único en vez de actualizar los cuatro flujos por separado.
Variables de entrada y salida
Las variables de un flujo secundario son especiales. ¿Ha notado las opciones de configuración Available for input (Disponible para entrada) y Available for output (Disponible para salida) cuando crea variables? Esas opciones permiten que las variables lleven la entrada desde el flujo principal hasta el flujo secundario y la salida desde el flujo secundario hasta el flujo principal nuevamente.
¿Pero por qué enviar datos hacia un flujo secundario y desde este? En el ejemplo de Flo, el flujo secundario publica en Chatter en el registro desencadenante del flujo principal, por lo tanto, el flujo secundario necesita la Id. de ese registro desencadenante. Un flujo secundario no puede acceder al registro desencadenante en el flujo principal, por lo tanto, el flujo principal tiene que enviarlo al flujo secundario. Y si el flujo principal tiene que saber la Id. de la publicación de Chatter creada por el flujo secundario, este último tiene que enviar esa Id. de regreso al flujo principal.
Debe definir las variables como disponibles para entrada o salida en el flujo secundario.
- Para recibir datos de un flujo principal, el flujo secundario necesita una variable que esté disponible para entrada.
- Para enviar datos de vuelta al flujo principal cuando el flujo secundario finaliza, este último necesita una variable que esté disponible para salida.
- Si no necesita enviar datos en ninguna dirección, no necesita ninguna variable de entrada o salida.
Crear un elemento de flujo secundario
Para ejecutar un flujo en otro flujo, primero debe crear los flujos principal y secundario. Luego, debe agregar un elemento de flujo secundario al flujo principal.
Crear el flujo secundario
- Cree un flujo y seleccione el tipo Autolaunched Flow (Flujo iniciado automáticamente).
- Cree una variable de texto:
- API Name (Nombre de API):
userMentionID
- Available for input (Disponible para entrada): marcada
- Cree otra variable de texto:
- API Name (Nombre de API):
postTargetID
- Available for input (Disponible para entrada): marcada
- Cree una variable de texto más:
- API Name (Nombre de API):
chatterPostID
- Available for output (Disponible para salida): marcada
- Cree una plantilla de texto:
- API Name (Nombre de API):
chatterBody
- Cuerpo:
@[{!userMentionID}], please review this record.
(@[{!userMentionID}], revise este registro). - En el editor de cuerpo, cambie “View as Rich Text” (Ver como texto enriquecido) a “View as Plain Text” (Ver como texto sin formato).
- Agregue un elemento de acción:
- Action (Acción): Post to Chatter (Publicar en Chatter)
- Label (Etiqueta):
Chatter Mention Post
(Publicación de menciones en Chatter) - API Name (Nombre de API):
Chatter_Mention_Post
- Message (Mensaje): chatterBody
- Target Name or ID (Nombre o Id. de destino): postTargetID
- En Show advanced options (Mostrar opciones avanzadas), seleccione Manually assign variables (Asignar variables manualmente).
- Feed Item ID (Id. de elemento de noticias en tiempo real): chatterPostID
- Guarde el flujo. En Flow Label (Etiqueta de flujo), introduzca
Post to Chatter
(Publicar en Chatter).
- Active el flujo.
Crear el flujo principal con un elemento de flujo secundario
- Cree un flujo desencadenado por registro:
- Object (Objeto): Case (Caso)
- Trigger the Flow When (Active el flujo cuando): A record is created or updated (Se crea o se actualiza un registro)
- Condition Requirements (Requisitos de condición): All Conditions Are Met (AND) (Se cumplen todas las condiciones [AND])
- Condition (Condición): Priority (Prioridad), Equals (Es igual a), High (Alta)
- When to Run the Flow for Updated Records (Cuándo ejecutar el flujo para los registros actualizados): Only when a record is updated to meet the condition requirements (Solo cuando un registro se actualiza para cumplir los requisitos de condición)
- Optimize the Flow for (Optimice el flujo para): Actions and Related Records (Acciones y registros relacionados)
- Agregue un elemento de flujo secundario:
- Seleccione el flujo Post to Chatter (Publicar en Chatter).
- Label (Etiqueta):
Post to Chatter
(Publicar en Chatter) - API Name (Nombre de API):
Post_to_Chatter
- Habilite el campo postTargetID y seleccione Triggering Case (Caso desencadenante) > Case ID (Id. de caso).
- Habilite el campo userMentionID y seleccione Triggering Case (Caso desencadenante) > Owner ID (Id. de propietario).
Asegúrese de desplazarse hacia abajo y seleccionar Owner ID (Id. de propietario), no Owner ID (Group) (Id. de propietario [Grupo]) ni Owner ID (User) (Id. de propietario [Usuario]).
- Guarde el flujo. En Flow Label (Etiqueta de flujo), introduzca
Case Priority is High
(La prioridad del caso es alta).
Ahora, cada vez que se necesita un cambio en la creación del registro, Flo actualiza solo el flujo secundario único. La puntuación es Pereza 1-Sobrecarga de trabajo 0.
Considerar lo siguiente
Tenga en cuenta estas peculiaridades cuando trabaje con flujos secundarios.
- El elemento de flujo secundario puede hacer referencia solo a los flujos iniciados automáticamente y a los flujos de pantalla.
- En un flujo de pantalla, puede hacer referencia solamente a otro flujo de pantalla.
- Si menciona un flujo inactivo, solo se ejecuta para los usuarios que tienen el permiso Manage Flows (Gestionar flujos).
- Si un flujo secundario tiene varias versiones, el flujo principal ejecuta la versión activa del flujo secundario. Si un flujo secundario no tiene versiones activas, el flujo principal ejecuta la versión más reciente.
Recursos