Skip to main content
Join the Agentforce Virtual Hackathon to build innovative solutions and compete for a $50k Grand Prize. Sign up now. Terms apply.

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.
Nota

Esta insignia es solo una parte del proceso hacia el dominio de Flow Builder. De principio a fin, la ruta Crear flujos con Flow Builder le sirve de guía en el aprendizaje de todo sobre Flow Builder. Siga esta secuencia de insignias recomendada para desarrollar habilidades sólidas de automatización de procesos y convertirse en un experto 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). 

La ventana de nueva pantalla muestra un componente de texto. El campo Default Value (Valor predeterminado) contiene “Enter value or search resources” (Introducir valor o buscar recursos) como texto de marcador de posición encima de una lista de selección de variables globales.

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:

  1. 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.
  2. En Global Variables (Variables globales), seleccione una variable que empiece con $. Flow Builder muestra los campos disponibles en la variable seleccionada.
Nota

En algunos elementos, las variables globales tienen distintos nombres y no empiezan con $. Sin embargo, siguen ubicadas en la sección de variables globales del campo. En este momento, los equipos de desarrollo de Flow Builder están actualizando cada elemento para usar estos nombres nuevos. Hasta que se complete ese proceso, proporcionaremos ambos nombres para cada variable global que analicemos.

  1. Seleccione el campo que contiene el valor que desea usar.
    Al seleccionar la variable global $Flow, aparece una lista de campos disponibles: CurrentDate, CurrentDateTime e InterviewStartTime.
Nota

Tenga en cuenta que el tipo de datos del campo de la variable global debe ser compatible con el tipo de datos del campo. Por ejemplo, para definir el valor predeterminado de un campo de fecha y hora, debe seleccionar un campo de variable global de fecha o fecha y hora. O bien, para establecer el valor de un campo de divisa, debe seleccionar un campo de variable global de número o divisa.

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.

La lista de selección de la variable global $User muestra los campos en el objeto de usuario.

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

  1. Abra el flujo Create Follow-Up with Decision Maker (Crear seguimiento con persona responsable de la toma de decisiones).
  2. En el lienzo del flujo, después del elemento Get Decision Maker (Obtener persona responsable de la toma de decisiones), haga clic en Agregar elemento. Seleccione Get Records (Obtener registros).
  3. 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.
  4. En Object (Objeto), seleccione User (Usuario).
  5. En Condition Requirements (Requisitos de condición), seleccione All Conditions Are Met (AND) (Se cumplen todas las condiciones [AND]).
  6. 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
  1. Haga clic en  en el panel de nueva obtención de registros para cerrar dicho panel.

El panel de nueva obtención de registros correspondiente a los pasos anteriores.

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

  1. En Flow Builder, si la caja de herramientas aún no está abierta, haga clic en Alternar caja de herramientas para abrirla.
  2. Haga clic en New Resource (Nuevo recurso).
  3. En Resource Type (Tipo de recurso), seleccione Text Template (Plantilla de texto).
  4. En API Name (Nombre de API), escriba ChatterPostManager.
  5. 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).
  6. 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.
  7. Agregue corchetes [ ] alrededor del campo de combinación, por ejemplo:
    [{Get_Owner_Manager.Id}]
  8. Agregue el símbolo @ al principio y dos puntos al final, por ejemplo:
    @[{Get_Owner_Manager.Id}]:
Nota

Recuerde que, cuando está seguido por un valor encerrado entre corchetes, el símbolo @ inserta el valor como una mención en la publicación de Chatter.

  1. Después de los dos puntos, comience una línea nueva y escriba:
    This opportunity was marked Closed Lost.
    Closed by:
  2. 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].
  1. 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

  1. Después del elemento Get Owner Manager (Obtener gestor de propietario), haga clic en Agregar elemento. Introduzca post (publicar) en la barra de búsqueda.
  2. Seleccione Post to Chatter (Publicar en Chatter).
  3. En Label (Etiqueta), escriba Chatter Post to Manager (Publicación de Chatter para gestor).
  4. En Message (Mensaje), seleccione la plantilla de texto ChatterPostManager.
  5. En Target Name or ID (Id. o nombre de destino), seleccione Triggering Opportunity (Oportunidad desencadenante) > Owner ID (Id. de propietario).
  6. Haga clic en Done (Listo).
  7. 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.

Nota

¿Por qué se debe evitar la codificación fija? Las Id. de Salesforce cambian en cualquier momento. Si crea un flujo con una Id. codificada fija en un entorno sandbox, es probable que el registro que intenta consultar tenga una Id. distinta en otros entornos sandbox y en producción. Además, es difícil comprender un flujo o solucionar problemas en él cuando no se puede ver con facilidad qué registro representa una Id.

¿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.

Campos de criterios en la ventana New Decision (Nueva decisión), con la opción Resource (Recurso) establecida en $UserRole > DeveloperName, Operator (Operador) establecido en Contains (Contiene) y Value (Valor) definido como West (Oeste).

Nota

Después de averiguar que el usuario está asignado a un territorio occidental, Flo usa un elemento de decisión para que el flujo pueda aplicar el descuento correspondiente al territorio occidental en vez del descuento estándar que se usa en otros territorios. Aprendió sobre el elemento de decisión en Lógica de Flow Builder, la insignia justo arriba de esta en la ruta Crear flujos con Flow Builder, así que no tiene que adelantarse; puede simplemente terminar esta insignia primero.

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.

Una sección de la ventana Create Records (Crear registros) correspondiente a la descripción anterior.

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.

La ventana de nueva pantalla que corresponde a la descripción anterior.

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:

  • Actualizar datos en el registro que desencadenó el flujo.
  • Actualizar un grupo de registros relacionados con el registro desencadenante.

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.

La lista de objetos seleccionables del campo de objeto en la ventana New Get Records (Nueva obtención de registros), seleccionando un tipo de metadatos personalizados.

Nota

¿Busca los tipos de metadatos personalizados? Busque los elementos con un nombre de API que tenga __mdt al final.

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

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios