Aprovechar al máximo las variables globales y los valores
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Consultar los campos del usuario que ejecuta en Flow Builder.
- Consultar la información de la función y del perfil del usuario que ejecuta en Flow Builder.
- Consultar las etiquetas personalizadas en Flow Builder.
- Consultar los metadatos personalizadas en Flow Builder.
¿Qué es una variable global?
Las variables globales existen en todos los flujos. No las crea usted ni puede cambiar sus valores en el flujo, pero permiten que el flujo tenga acceso a datos muy útiles que pueden ser distintos cada vez que se ejecuta.
Puede usar las variables globales en los campos que le permiten seleccionar un recurso. Tales campos suelen contener texto de marcadores de posición, como “Enter value or search resources…” (Introducir valor o buscar recursos) o “Insert a resource…” (Insertar un recurso).
En Flow Builder, las variables globales se comportan de forma similar a los objetos y campos: cada variable global contiene diversos valores. Para usar una variable global en un flujo, siga estos pasos:
- Mientras crea o edita un elemento, haga clic en un campo que le permita seleccionar un recurso. Flow Builder muestra los recursos que puede colocar en este campo.
- En Global Variables (Variables globales), seleccione una variable que empiece con $. Flow Builder muestra los campos disponibles en la variable seleccionada.
- Seleccione el campo que contiene el valor que desea usar.
Obtener los valores de campo del usuario que ejecuta
La variable global $User (o, en algunos elementos, la variable global del usuario que ejecuta) le otorga al flujo una visión del usuario detrás del teclado. Por supuesto, en el sentido figurado; pero sí permite que el flujo acceda a los datos del usuario que ejecuta el flujo. Utilice la variable global $User para acceder a datos como la Id., el nombre, la Id. de gestor y la dirección de email del usuario que ejecuta, entre otros.
Los gerentes de ventas de Pyroclastic quieren enterarse cuando un miembro del equipo cierra una oportunidad de alto valor como perdida. Flo le pide que automatice la notificación con una publicación de Chatter para el gestor del propietario de la oportunidad. La persona que cierra la oportunidad puede no ser el propietario de la oportunidad, así que la notificación debe indicar quién hizo el cambio.
Ya tiene un flujo que se ejecuta cuando el nombre StageName de una oportunidad cambia a Closed Lost (Cerrada perdida): Create Follow-Up with Decision Maker (Crear seguimiento con persona responsable de la toma de decisiones). Agregue una acción a ese flujo para hacer una publicación de Chatter para el gestor del propietario de la oportunidad.
Primero, necesita identificar al gestor del propietario. Como hizo en la unidad 2, utilice un elemento Get Records (Obtener registros) para recuperar información y, a continuación, use esos datos en un elemento de acción.
Recuperar el gestor del propietario
- Abra el flujo Create Follow-Up with Decision Maker (Crear seguimiento con persona responsable de la toma de decisiones).
- En el lienzo del flujo, después del elemento Get Decision Maker (Obtener persona responsable de la toma de decisiones), haga clic en
. Seleccione Get Records (Obtener registros).
- En Label (Etiqueta), introduzca
Get Owner Manager
(Obtener gestor de propietario).
Recuerde que este nombre se usa para etiquetar a la variable generada, así que conviene usar un nombre descriptivo.
- En Object (Objeto), seleccione User (Usuario).
- En Condition Requirements (Requisitos de condición), seleccione All Conditions Are Met (AND) (Se cumplen todas las condiciones [AND]).
- En la sección Filter Records (Filtrar registros), defina las condiciones que indican al elemento qué registros debe recuperar:
- Field (Campo): Id (Id.)
- Operator (Operador): Equals (Es igual a)
- Value (Valor): $Record> Owner (Propietario)> ManagerId
- Haga clic en
en el panel de nueva obtención de registros para cerrar dicho panel.
Ahora tiene una variable de registro que contiene todos los campos del gestor del propietario de la oportunidad, incluidos su nombre y dirección de email. A continuación, debe usar un elemento de acción para crear la publicación de Chatter.
Crear una plantilla de texto
- En Flow Builder, si la caja de herramientas aún no está abierta, haga clic en
para abrirla.
- Haga clic en New Resource (Nuevo recurso).
- En Resource Type (Tipo de recurso), seleccione Text Template (Plantilla de texto).
- En API Name (Nombre de API), escriba
ChatterPostManager
.
- Junto al campo Resource Picker (Selector de recursos), cambie View as Rich Text (Ver como texto enriquecido) a View as Plain Text (Ver como texto sin formato).
- En el campo Resource Picker (Selector de recursos), seleccione User from Get_Owner_Manager (Usuario de Get_Owner_Manager) > Id.
Al principio del cuerpo del mensaje, se inserta un campo de combinación para el nombre del gestor.
- Agregue corchetes [ ] alrededor del campo de combinación, por ejemplo:
[{Get_Owner_Manager.Id}]
- Agregue el símbolo @ al principio y dos puntos al final, por ejemplo:
@[{Get_Owner_Manager.Id}]:
- Después de los dos puntos, comience una línea nueva y escriba:
- Deje un espacio y después inserte tres campos de combinación más con la variable global $User, que se encuentra en la sección de variables globales. Asegúrese de agregar un espacio entre ellos para que no se ejecuten todos juntos:
-
$User> FirstName
-
$User> LastName
-
$User> Email
[Texto alternativo: La ventana de nuevo recurso que corresponde a los pasos anteriores].
- Haga clic en Done (Listo).
A continuación, debe usar la plantilla de texto en un elemento de acción para publicar en las noticias en tiempo real de Chatter de la oportunidad.
Notificar al gestor en una publicación de Chatter
- Después del elemento Get Owner Manager (Obtener gestor de propietario), haga clic en
. Introduzca
post
(publicar) en la barra de búsqueda.
- Seleccione Post to Chatter (Publicar en Chatter).
- En Label (Etiqueta), escriba
Chatter Post to Manager
(Publicación de Chatter para gestor).
- En Message (Mensaje), seleccione la plantilla de texto ChatterPostManager.
- En Target Name or ID (Id. o nombre de destino), seleccione Triggering Opportunity (Oportunidad desencadenante) > Owner ID (Id. de propietario).
- Haga clic en Done (Listo).
- Guarde el flujo.
Obtener los valores del perfil y de la función del usuario que ejecuta
Al crear flujos, evite aplicar código fijo en las Id. La codificación fija es cuando introduce manualmente una Id. de Salesforce en los flujos o el código. Un ejemplo de la codificación fija en un elemento Update Records (Actualizar registros) es establecer criterios para buscar “005i000006rZRFU”. En vez de eso, debe recuperar la Id. con un elemento Get Records (Obtener registros) y verificar la Id. almacenada en la variable de registro de dicho elemento.
¿Y esto qué tiene que ver con las variables globales? En algún punto, es posible que desee acceder al perfil o a la función del usuario. Supongamos que su organización está dividida en territorios que se asignan como funciones de usuario al personal de ventas. Los territorios occidentales (Sales-West1, Sales-West2 y Sales-West3) usan un cálculo de descuento distinto que otros territorios. Para calcular los descuentos correctamente, es necesario que un flujo obtenga la función del usuario que ejecuta para confirmar si está asignado a uno de los territorios occidentales.
Flo intenta usar la variable global $User para encontrar la función del usuario que ejecuta, pero el único valor ahí es la Id. de la función. Ella sabe bien que no debe realizar una codificación fija en una Id. del flujo. Afortunadamente, hay otra manera de acceder a la información de la función del usuario que ejecuta: la variable global $UserRole (o, en algunos elementos, la variable global de la función del usuario que ejecuta). Puede acceder a muchos valores en la función del usuario que ejecuta.
De la misma manera, la variable global $Profile (o, en algunos elementos, la variable global del perfil de usuario que ejecuta) debe usarse en situaciones similares donde el flujo tiene que acceder a los valores del perfil del usuario que ejecuta. El único valor de perfil en $User es la Id. del perfil, pero al igual que $UserRole para las funciones, $Profile concede acceso al resto de los valores del perfil.
Para evitar la codificación fija cuando se comprueba la función del usuario que ejecuta, haga referencia a $UserRole > DeveloperName. En el perfil, haga referencia a $Profile > Name.
Recuperar etiquetas personalizadas
Si los usuarios de su organización trabajan en varios idiomas, las etiquetas personalizadas son muy valiosas. Las etiquetas personalizadas contienen una cadena de texto que puede traducir en varios idiomas. Después de que define la traducción, Salesforce muestra etiquetas personalizadas a cada usuario en su idioma nativo. Incluso también puede usar etiquetas personalizadas en los flujos.
En Flow Builder, utilice la variable global $Label (o, en algunos elementos, la variable global de etiqueta personalizada) para colocar una etiqueta personalizada en cualquier lugar que acepte un recurso de texto, como componentes de pantalla, valores predeterminados para campos y fórmulas de texto. En este ejemplo, al crear un registro de tareas, el valor del campo Subject (Asunto) se establece en la variable global TaskPrintLabels. Cuando los usuarios ven la tarea, su asunto está en su propio idioma.
El siguiente ejemplo es un componente Display Text (Mostrar texto) en una pantalla de flujo. En el campo Resource Picker (Selector de recursos), cuando se selecciona $Label, se enumeran las etiquetas personalizadas. Al seleccionar una, se agrega al área de texto del componente.
Otras variables globales importantes
Hay algunas otras variables globales que pueden ser útiles al crear flujos.
Variable global |
Qué hace |
---|---|
$Flow.CurrentDate (o Running Flow Interview [Entrevista del flujo en ejecución) > CurrentDate])
|
Recupera la fecha en que se ejecuta el elemento. |
$Flow.CurrentDateTime [o Running Flow Interview (Entrevista del flujo en ejecución) > CurrentDateTime]
|
Recupera la fecha y hora en que se ejecuta el elemento. |
$Flow.InterviewStartTime [o Running Flow Interview (Entrevista del flujo en ejecución) > InterviewStartTime]
|
Recupera la fecha y hora en que el flujo empezó a ejecutarse por primera vez. |
$Flow.FaultMessage (o Running Flow Interview [Entrevista del flujo en ejecución) > FaultMessage])
|
Recupera el mensaje de error cuando un flujo se detiene debido a un error. |
$Organization (o Running Org [Organización en ejecución])
|
Recupera información que se encuentra en la página de información de la compañía en Setup (Configuración), como el nombre o la dirección de la organización. |
$Record (o Triggering [object name] [Nombre de objeto desencadenante])
|
En un flujo desencadenado por registro, $Record recupera datos del registro que desencadenó el flujo. (Usó esta variable global en un reto práctico para obtener la compañía y la Id. de un prospecto creado recientemente). También puede usar $Record para:
Obtenga más información sobre $Record en la insignia Flujos desencadenados por registro. |
Recuperar valores de metadatos personalizados
Metadatos personalizados no es una variable global, pero es un conjunto de valores a los que puede acceder de manera global: en Flow Builder y en toda la Salesforce org. Por ejemplo, un tipo de metadatos personalizados se puede usar en flujos, código, reglas de validación y mucho más.
En Flow Builder, los metadatos personalizados se recuperan de la misma forma que los registros de objetos: con el elemento Get Records (Obtener registros). Al seleccionar el objeto, seleccione el tipo de metadatos personalizados.
Para obtener más información y casos de uso de ejemplo, consulte el módulo Aspectos básicos de los tipos de metadatos personalizados de Trailhead, en particular, la sección sobre cómo usar tipos de metadatos personalizados en la unidad de Flow.
Recursos
- Blog de administradores de Salesforce: Por qué se debe evitar la codificación fija y tres soluciones alternativas
- Administradores de Salesforce, ¡automaticen esto! Video: ¡Automatice esto! — Enviar notificaciones de casos automáticamente con Flow
- Trailhead: Aspectos básicos de los tipos de metadatos personalizados