Ejecute un flujo dentro de otro flujo
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Minimizar su trabajo utilizando el elemento Subflow (Flujo secundario)
- Crear un flujo que se ejecuta dentro de otro flujo.
- Configurar las variables de un flujo referenciado para transferir datos al flujo principal.
El poder de la pereza
Lo crea o no, una de las cualidades más importantes que un administrador puede tener es la pereza.
SÃ, lo ha leÃdo bien. Si necesita hacer un cambio en su organización de Salesforce que afecta a cuatro flujos diferentes, ¿prefiere actualizar los cuatro flujos o solamente uno? Parece magia, pero usted también puede superar obstáculos, como el trabajo innecesario, mediante el poder de la pereza.
Por ejemplo, la organización de Flo tiene cuatro flujos que publican el mismo mensaje en Chatter. Cada vez que cambia algo sobre esa publicación, Flo debe actualizar el elemento duplicado en cada uno de los cuatro flujos. A Flo le entran escalofrÃos solo de pensar que tiene que realizar tanto trabajo repetido. Afortunadamente, existe otro elemento, uno que no hemos utilizado todavÃa: el elemento Subflow (Flujo secundario).
El uso de este elemento en un flujo (flujo principal) le permite hacer referencia a otro flujo (flujo secundario) para ejecutarlo dentro del flujo actual (principal). La idea de realizar los cambios en un solo flujo en lugar de en cuatro hace a Flo tremendamente feliz. Además, con menos flujos, hay menos oportunidades de que algo se pase por alto o se configure incorrectamente.
Flo le pide que cree un flujo por separado para la publicación de Chatter. Ella planea reemplazar los elementos repetidos en cada uno de los cuatro flujos utilizando el nuevo flujo secundario en su lugar. AsÃ, si cambia algo relacionado con la publicación de Chatter, Flo puede actualizar un único flujo secundario en vez de actualizar los cuatro flujos por separado.
Variables de entrada y de salida
Las variables en un flujo secundario son especiales. ¿Se ha fijado en las opciones de configuración Available for input (Disponible para entrada) y Available for output (Disponible para salida) cuando crea las variables? Estas opciones de configuración activan las variables para que transfieran entradas del flujo principal al secundario y salidas del flujo secundario al principal.
Pero ¿por qué transferir datos desde y hacia un flujo secundario? En el ejemplo de Flo, el flujo secundario publica en Chatter sobre la base del registro desencadenante del flujo principal, por lo que el flujo secundario necesita ese Id. del registro desencadenante. Un flujo secundario no tiene acceso al registro desencadenante en el flujo principal, por lo que este último necesita enviarle esta información al flujo secundario. Y, si el flujo principal necesita conocer el Id. de la publicación de Chatter creada por el flujo secundario, este último tiene que enviar ese Id. de vuelta al flujo principal.
Usted es el que define 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 a un flujo principal cuando termina el flujo secundario, este último necesita una variable que esté disponible para salida.
- Si no necesita transferir datos en ninguna de las direcciones, no necesita ninguna variable de entrada o salida.
Crear un elemento Subflow (Flujo secundario)
Para ejecutar un flujo dentro de otro flujo, lo primero es crear un flujo principal y uno secundario. Después, debe agregar un elemento Subflow (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): seleccionado
- Cree otra variable de texto:
- API Name (Nombre de API):
postTargetID
- Available for input (Disponible para entrada): seleccionado
- Cree otra variable de texto más:
- API Name (Nombre de API):
chatterPostID
- Available for output (Disponible para salida): seleccionado
- Cree una plantilla de texto:
- API Name (Nombre de API):
chatterBody
- Body (Cuerpo):
@[{!userMentionID}], please review this record.
(@[{!userMentionID}], revise este registro). - En el editor del cuerpo, cambie "View as Rich Text" (Ver como texto enriquecido) a "View as Plain Text" (Ver como texto plano).
- Agregue un elemento Action (Acción):
- Action (Acción): Publicar en Chatter
- Label (Etiqueta):
Chatter Mention Post
(Publicación de mención en Chatter) - API Name (Nombre de API):
Chatter_Mention_Post
- Message (Mensaje): chatterBody
- Target Name or ID (Id. o nombre 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 Subflow (Flujo secundario)
- Cree un flujo desencadenado por un registro:
- Object (Objeto): Case (Caso):
- Trigger the Flow When (Active el flujo cuando): Se crea o se actualiza un registro
- Condition Requirements (Requisitos de condición): All Conditions Are Met (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 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 (Optimizar el flujo para): Actions and Related Records (Acciones y registros relacionados)
- Agregue un elemento Subflow (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
- Active el campo postTargetID y seleccione Triggering Case (Caso desencadenante) > Case ID (Id. del caso)
- Active el campo userMentionID y seleccione Triggering Case (Caso desencadenante) > Owner ID (Id. del propietario).
Asegúrese de desplazarse hacia abajo y seleccionar Owner ID (Id. del propietario), no Owner ID (Group) (Id. del propietario [Grupo]) ni Owner ID (User) (Id. del propietario [Usuario]).
- Guarde el flujo. En Flow Label (Etiqueta de flujo), introduzca
Case Priority is High
(La prioridad del caso es alta)
Ahora, siempre que sea necesario un cambio en la creación del registro, Flo actualiza solamente el flujo secundario. Y este partido termina con un resultado de 1 punto para la pereza y 0 para el trabajo de más.
Cuestiones para tener en cuenta
Recuerde estas peculiaridades cuando trabaje con flujos secundarios.
- El elemento Subflow (Flujo secundario) puede hacer referencia solamente a flujos que se inician automáticamente y a flujos de pantalla.
- En un flujo de pantalla, solo puede hacer referencia a otro flujo de pantalla.
- Si hace referencia a un flujo inactivo, solo se ejecutará para usuarios que tengan 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 ninguna versión activa, el flujo principal ejecuta la última versión.
Recursos