Aproveche al máximo los valores y variables globales
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Referenciar los campos del usuario que ejecuta en Flow Builder.
- Referenciar las funciones y la información del perfil del usuario que ejecuta en Flow Builder.
- Referenciar etiquetas personalizadas en Flow Builder.
- Referenciar metadatos personalizados en Flow Builder.
¿Qué es una variable global?
Las variables globales existen en todos los flujos. Usted no las crea ni tiene la posibilidad de cambiar su valor en el flujo, pero le dan acceso a su flujo a todos los datos útiles que pueden variar cada vez que se ejecuta el flujo.
Puede utilizar variables globales en campos que le permiten seleccionar un recurso. Ese tipo de campos, por lo general, contienen textos de marcador como "Enter value or search resources…" (Introduzca valor o busque recursos…) o "Insert a resource…" (Introduzca un recurso…).
En Flow Builder, las variables globales se comportan de manera similar a los objetos y campos: cada variable contiene múltiples valores. Para utilizar una variable global en un flujo, siga los siguientes pasos.
- Al crear o editar un elemento, haga clic en un campo que le permita seleccionar un recurso. Flow Builder muestra los recursos que puede usar en ese campo.
- En Global Variables (Variables globales), seleccione una variable que comience con $. Flow Builder muestra los campos disponibles para la variable seleccionada.
- Seleccione el campo que contiene el valor que quiere utilizar.
Obtener los valores de campo del usuario que ejecuta
La variable global $User (o, en algunos elementos, la variable global Running User [Usuario que ejecuta]) le permite a su flujo tener una visión del usuario que está detrás del teclado. No en sentido literal, por supuesto. Pero le da acceso a su flujo a información del usuario que lo ejecuta. Utilice la variable global $User para acceder a información como el Id. del usuario que ejecuta, el nombre, el Id. del gerente, la dirección de correo electrónico y mucho más.
Los gerentes de ventas de Pyroclastic quieren recibir una notificación cada vez que un miembro del equipo cierre una oportunidad de mucho valor como perdida. Flo le pide que automatice esa notificación mediante una publicación de Chatter dirigida al gerente del propietario de la oportunidad. Es posible que la persona que ha cerrado esa oportunidad no sea su propietaria, por lo que la notificación deberÃa indicar quién hizo el cambio.
Ya tiene un flujo que se ejecuta cada vez que el StageName de una oportunidad cambia a Closed Lost: Create Follow-Up with Decision Maker (Cerrada perdida: Crear seguimiento con el responsable de la toma de decisiones). Añada una acción en ese flujo para crear una publicación de Chatter dirigida al gerente del propietario de la oportunidad.
Primero, tiene que identificar al gerente del propietario. Tal como hizo en la segunda unidad, utilice el elemento Get Records (Obtener registros) para recuperar información que utilizará después en un elemento Action (Acción).
Recuperar el gerente del propietario
- Abra el flujo Create Follow-Up with Decision Maker (Crear seguimiento con el responsable de la toma de decisiones).
- En el lienzo del flujo, después del elemento Get Decision Maker (Obtener responsable de la toma de decisiones), haga clic en
. Seleccione Get Records (Obtener registros).
- En Label (Etiqueta), introduzca
Get Owner Manager
(Obtener gerente del propietario).
Recuerde que este nombre se utiliza para etiquetar la variable generada, por lo que es una buena idea utilizar 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 [Y]).
- En la sección Filter Records (Filtrar registros), establezca las condiciones que indiquen al elemento qué registros debe recuperar:
- Field (Campo): Id.
- Operator (Operador): Es igual a
- Value (Valor): $Record> Owner> ManagerId
- Haga clic en
en el panel New Get Records (Nuevo elemento Obtener registros) para cerrarlo.
Ahora ya tiene una variable de registro que contiene todos los campos del gerente del propietario de la oportunidad, incluyendo su nombre y dirección de correo electrónico. Lo siguiente es utilizar un elemento Action (Acción) para crear una publicación en Chatter.
Crear una plantilla de texto
- En Flow Builder, si la caja de herramientas no está abierta todavÃa, 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), introduzca
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 plano).
- En el campo Resource Picker (Selector de recursos), seleccione User from Get_Owner_Manager (Usuario de Get_Owner_Manager) > Id.
Se ha insertado un campo combinado para el nombre del gerente al comienzo del cuerpo del mensaje.
- Añada corchetes [ ] alrededor del campo combinado, de esta manera:
[{Get_Owner_Manager.Id}]
- Añada un sÃmbolo @ al principio y dos puntos (:) al final, asÃ:
@[{Get_Owner_Manager.Id}]:
- Después de los dos puntos, empiece una nueva lÃnea e introduzca:
- Deje un espacio y, a continuación, añada tres campos combinados más utilizando la variable global $User que encontrará en la sección Global Variables (Variables globales). Asegúrese de añadir un espacio entre ellos para que no se ejecute a la vez:
-
$User> FirstName
-
$User> LastName
-
$User> Email
(Texto alternativo: La ventana New Resource [Nuevo recurso] correspondiente a los pasos anteriores).
- Haga clic en Done (Listo).
Lo siguiente es utilizar una plantilla de texto en un elemento Action (Acción) para crear una publicación en las noticias en tiempo real de Chatter de la oportunidad.
Notificar al gerente con una publicación de Chatter
- Después del elemento Get Owner Manager (Obtener gerente del propietario), haga clic en
. Escriba
post
(publicar) en la barra de búsqueda.
- Seleccione Post to Chatter (Publicar en Chatter).
- En Label (Etiqueta), introduzca
Chatter Post to Manager
(Publicación de Chatter para el gerente).
- En Message (Mensaje), seleccione la plantilla de texto ChatterPostManager.
- En el campo 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 de perfil y función del usuario que ejecuta
Al crear flujos, evite codificar de forma rÃgida los identificadores. El codificado de forma rÃgida consiste en introducir manualmente un Id. de Salesforce en un flujo o código. Un ejemplo de codificado de forma rÃgida en un elemento Update Records (Actualizar registros) es establecer criterios para verificar "005i000006rZRFU". En su lugar, debe recuperar el Id. con un elemento Get Records (Obtener registros) y, a continuación, comprobar el Id. almacenado en la variable de registro de ese mismo elemento.
¿Qué tiene que ver esto con las variables globales? En algún momento, es posible que quiera acceder al perfil o función del usuario. Supongamos que su organización está dividida por territorios, asignados como funciones de usuario a los vendedores. Los territorios del oeste (Sales-West1, Sales-West2 y Sales-West3) utilizan un cálculo de descuentos diferentes al de otros territorios. Para calcular correctamente los descuentos, un flujo necesita conocer la función del usuario que ejecuta para confirmar si está asignado a uno de los territorios del oeste.
Flo intenta utilizar una variable global $User para conocer la función del usuario que ejecuta, pero el único valor de función que encuentra es el Id. de la función. Ella sabe que no debe codificar de forma rÃgida un Id. en su flujo. Afortunadamente, existe otra forma de acceder a la información sobre la función del usuario que ejecuta: la variable global $UserRole (o, en algunos elementos, la variable global Running User Role [Función del usuario que ejecuta]). Puede acceder a muchos valores en la función del usuario que ejecuta.
Además, la variable global $Profile (o, en algunos elementos, la variable global Running User Profile [Perfil del usuario que ejecuta]) se deberÃa utilizar en situaciones parecidas en las que el flujo necesita acceder a los valores del perfil del usuario que ejecuta. El único valor de perfil en $User es el Id. del perfil; pero, al igual que $UserRole para las funciones, $Profile permite el acceso al resto de los valores de perfil.
Para evitar el codificado de forma rÃgida al comprobar la función del usuario que ejecuta, seleccione $UserRole > DeveloperName. Para el perfil, seleccione $Profile > Name.
Recuperar etiquetas personalizadas
Si los usuarios de su organización trabajan en diferentes idiomas, las etiquetas personalizadas son muy útiles. Las etiquetas personalizadas contienen una cadena de texto que puede traducir a múltiples idiomas. Después de establecer las traducciones, Salesforce muestra las etiquetas personalizadas a cada usuario en su lengua materna. Puede utilizar estas etiquetas personalizadas incluso en los flujos.
En Flow Builder, utilice la variable global $Label (o, en algunos elementos, la variable global Custom Label [Etiqueta personalizada]) para colocar una etiqueta personalizada en cualquier lugar que admita un recurso de texto, como componentes de pantalla, valores predefinidos para campos o fórmulas de texto. En este ejemplo, al crear un registro de tarea, el valor del campo Subject (Asunto) se establece en la variable global TaskPrintLabels. Ahora, cuando los usuarios vean esa tarea, el asunto se mostrará en su propia lengua.
El siguiente ejemplo es un componente Display Text (Mostrar texto) en una pantalla de flujo. En el campo Resource Picker (Selector de recursos), cuando $Label está seleccionado, se indican las etiquetas personalizadas disponibles. Si selecciona una de ellas, se añade al área de texto en el componente.
Otras variables globales importantes
Existen otras pocas variables globales que pueden ser útiles al crear flujos.
Variable global |
Función |
---|---|
$Flow.CurrentDate (o Running Flow Interview > CurrentDate)
|
Recupera la fecha en la que se ejecuta el elemento |
$Flow.CurrentDateTime (o Running Flow Interview > CurrentDateTime)
|
Recupera la fecha/hora en la que se ejecuta el elemento |
$Flow.InterviewStartTime (o Running Flow Interview > InterviewStartTime)
|
Recupera la fecha/hora en la que se ejecuta por primera vez el flujo |
$Flow.FaultMessage (o Running Flow Interview > FaultMessage)
|
Recupera el mensaje de error cuando un flujo se para debido a un error |
$Organization (o Running Org)
|
Recupera la información que encuentra en la página de información de la empresa en Configuración, como el nombre y la dirección de su empresa |
$Record (o Triggering [nombre del objeto])
|
En un flujo desencadenado por un registro, $Record recupera la información del registro que desencadenó el flujo. (Usted utilizó esta variable global en un reto práctico para obtener la compañÃa y el Id. de un nuevo candidato creado). También puede utilizar $Record para:
Obtenga más información sobre $Record en la insignia Flujos desencadenados por registro. |
Recuperar valores de metadatos personalizados
Los metadatos personalizados no son una variable global, pero sà son un conjunto de valores a los que puede acceder globalmente: en Flow Builder o a través su organización de Salesforce. Por ejemplo, un tipo de metadatos personalizados se puede utilizar en flujos, códigos, reglas de validación, etc.
En Flow Builder, usted recupera metadatos personalizados de la misma manera que recupera registros de objetos: utilizando el elemento Get Records (Obtener registros). Al seleccionar el objeto, seleccione un tipo de metadatos personalizados.
Para más información y ejemplos de casos de uso, consulte el módulo de Trailhead Conceptos básicos sobre los tipos de metadatos personalizados, en particular la unidad de Flow "Uso de los tipos de metadatos personalizados".
Recursos
- Blog de administradores de Salesforce: Por qué debe evitar el codificado de forma rÃgida y tres soluciones alternativas
- Administradores de Salesforce, ¡automaticen esto! VÃdeo: ¡Automatiza esto! — Enviar notificaciones del caso automáticamente
- Trailhead: Conceptos básicos sobre los tipos de metadatos personalizados