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…), "Search a field…" (Buscar un campo…) 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 cualquiera de las opciones. 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 Running User (Usuario que ejecuta) (o, en algunos elementos, la variable global $User) 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 Running User (Usuario que ejecuta) 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): User ID (Id. de usuario)
- Operator (Operador): Es igual a
- Value (Valor): Triggering Opportunity (Oportunidad desencadenante) > Owner ID (Id. del propietario) (primero) >Manager ID (Id. del gerente) (segundo)
- Haga clic en
en el panel Get Records (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) > User ID (Id. de usuario).
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:
This opportunity was marked Closed Lost. Closed by:
- Deje un espacio y, a continuación, añada tres campos combinados más utilizando la variable global Running User (Usuario que ejecuta) 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:
-
Running User (Usuario que ejecuta)> FirstName (Nombre)
-
Running User (Usuario que ejecuta)> LastName (Apellido)
-
Running User (Usuario que ejecuta)> Email (Correo electrónico)
- 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 Target Name (Nombre de destino) o ID (Id.), seleccione User from Get Owner Manager (Usuario de Get Owner Manager) > User ID (Id. de usuario).
- 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 la variable global Running User (Usuario que ejecuta) 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 Running User’s Role (Función del usuario que ejecuta) (o, en algunos elementos, la variable global $UserRole). Puede acceder a muchos valores en la función del usuario que ejecuta.
Además, la variable global Running User’s Profile (Perfil del usuario que ejecuta) (o, en algunos elementos, la variable global $Profile) 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 Running User (Usuario que ejecuta) es el Id. del perfil; pero, al igual que Running User’s Role (Función del usuario que ejecuta) para las funciones, Running User’s Profile (Perfil del usuario que ejecuta) 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 Running User’s Role (Función del usuario que ejecuta) > DeveloperName (Nombre del desarrollador). Para el perfil, seleccione Running User’s Profile (Perfil del usuario que ejecuta) > Name (Nombre).
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 Custom Label (Etiqueta personalizada) (o, en algunos elementos, la variable global $Label) 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) de una pantalla, 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 |
---|---|
Running Flow Interview (Entrevista de flujo en ejecución) > CurrentDate
|
Recupera la fecha en la que se ejecuta el elemento |
Running Flow Interview (Entrevista de flujo en ejecución) > CurrentDateTime
|
Recupera la fecha/hora en la que se ejecuta el elemento |
Running Flow Interview (Entrevista de flujo en ejecución) > InterviewStartTime
|
Recupera la fecha/hora en la que se ejecuta por primera vez el flujo |
Running Flow Interview (Entrevista de flujo en ejecución) > FaultMessage
|
Recupera el mensaje de error cuando un flujo se para debido a un error |
Running Org (Empresa que ejecuta) (u $Organization) |
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 |
Triggering (Desencadenante) [nombre del objeto]
|
En un flujo desencadenado por un registro, Triggering (Desencadenante) [nombre del objeto] 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 Triggering (Desencadenante) [nombre del objeto] para:
Obtenga más información sobre Triggering (Desencadenante) [nombre del objeto] 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