Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

Utilizar variables y fórmulas sencillas

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Explicar qué es una expresión de Visualforce y describir dónde se utiliza.
  • Indicar tres o más variables globales disponibles para el uso en expresiones de Visualforce.
  • Agregar una expresión de Visualforce a una página de Visualforce.
  • Utilizar una función en una expresión de Visualforce.
Nota

Nota

¿Es su idioma de aprendizaje español (LATAM)? Comience el reto en un Trailhead Playground en español (LATAM) y copie y pegue los valores en español (LATAM). Si no aprueba el reto en su organización en español (LATAM), recomendamos que (1) cambie la configuración local a Estados Unidos, (2) cambie el idioma a inglés (según estas instrucciones) y, luego, (3) haga clic en el botón “Check Challenge” (Comprobar el reto) nuevamente.

Consulte la insignia Trailhead en su idioma para obtener más información sobre cómo aprovechar la experiencia de Trailhead en otros idiomas.

Introducción a variables globales y expresiones de Visualforce

Las páginas de Visualforce pueden mostrar datos recuperados de la base de datos o servicios Web, datos que cambian dependiendo de quién inició sesión y está visualizando la página, etc. Estos datos dinámicos son accesibles en marcas mediante el uso de variables globales, cálculos y propiedades disponibles gracias al controlador de la página. Ambos se describen generalmente como expresiones de Visualforce. Utilice expresiones para salidas dinámicas o pasando valores en componentes asignándolos a atributos.

Una expresión de Visualforce es cualquier conjunto de valores literales, variables, subexpresiones u operadores que se pueden resolver en un solo valor. Las llamadas de métodos no se permiten en expresiones.

La sintaxis de expresión en Visualforce es: {!expression }

Todo lo que se encuentre dentro de los delimitadores {!} se evalúa y sustituye de forma dinámica cuando se representa la página o cuando se utiliza el valor. Los espacios en blanco se ignoran.

El valor resultante puede ser un valor primitivo (entero, cadena, etc), un valor booleano, un sObject, un método de controlador como un método de acción y otros resultados útiles

Variables globales

Utilice variables globales para acceder y mostrar valores del sistema y recursos en su marca de Visualforce.

Por ejemplo, Visualforce proporciona información acerca del usuario que inició sesión en una variable global denominada $User. Puede acceder a campos de la variable global $User (y cualquier otra) utilizando una expresión del siguiente formulario: {!$GlobalName.fieldName }.

  1. Abra Developer Console y haga clic en File (Archivo) | New (Nuevo) | Visualforce Page (Página de Visualforce) para crear una nueva página de Visualforce. Ingrese UserStatus para el nombre de página.
  2. En el editor, sustituya cualquier marca con lo siguiente.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
    Esta marca crea un cuadro, listo para que agregue alguna información útil.
  3. Haga clic en Preview (Vista previa) para abrir una vista previa de su página que podrá ver mientras realiza los cambios.
  4. Agregue la siguiente marca entre las etiquetas <apex:pageBlockSection>: {!$User.FirstName }.Debe ver su nombre en el tablero User Status (Estado de usuario) que creó.
  5. Agregue dos expresiones adicionales que utilicen la variable global $User en la marca para el tablero User Status (Estado de usuario) de modo que la página tenga el siguiente aspecto.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!$User.FirstName } {!$User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>

{!...} le indica a Visualforce que todo lo incluido entre corchetes es dinámico y está redactado en el lenguaje de expresión. Su valor se calcula y se sustituye en el momento de la ejecución, cuando alguien visualiza la página.

Las expresiones de Visualforce no distinguen entre mayúsculas y minúsculas, y los espacios dentro de {!...} se ignoran. Por lo que todas estas expresiones producen el mismo valor:

  • {!$User.FirstName}
  • {!$USER.FIRSTNAME}
  • {!$user.firstname }

Expresiones de fórmula

Visualforce le permite utilizar más que las variables globales en el lenguaje de expresión. También admite fórmulas que le permiten manipular valores.

Por ejemplo, el carácter & es el operador del lenguaje de fórmula que concatena cadenas.

  1. En su página UserStatus, sustituya las expresiones separadas para el nombre y apellidos con la siguiente expresión de fórmula. Esta expresión combina el nombre y los apellidos del usuario que inició sesión separándolos con un espacio. El resultado debe ser idéntico.
{!$User.FirstName & ' ' & $User.LastName}
  1. Agregue lo siguiente a la marca de página debajo de la información de usuario.
<p> Next week it will be {! TODAY() + 7 } </p>
<p> Today's Date is {! TODAY() } </p>

Estas son fórmulas más complejas que utilizan la función TODAY(). Las funciones son cálculos integrados que puede identificar por el paréntesis tras su nombre. La primera expresión simplemente calcula la fecha actual y la segunda utiliza el operador de suma para agregar siete días a la fecha. El resultado en su página tendrá un aspecto parecido a este.

Next week it will be Thu Sep 25 00:00:00 GMT 2014.
Today's Date is Thu Sep 18 00:00:00 GMT 2014
  1. Agregue lo siguiente a la marca de página debajo de las expresiones de fecha.
<p>Tomorrow will be day number  {! DAY(TODAY() + 1) }</p>
<p>Let's find a maximum: {! MAX(1,2,3,4,5,6,5,4,3,2,1) } </p>
<p>The square root of 49 is {! SQRT(49) }</p>
<p>Is it true?  {! CONTAINS('salesforce.com', 'force.com') }</p>
<p>The year today is {! YEAR(TODAY()) }</p>

Algunas funciones, como TODAY(), tienen paréntesis vacíos, pero algunos utilizan parámetros, que son valores que desea que la función utilice para hacer sus cálculos. En este ejemplo, YEAR() utiliza un parámetro de fecha proporcionado por la función TODAY() que a su vez no utiliza parámetros. La función MAX() puede utilizar cualquier número de parámetros. La función CONTAINS() es especialmente interesante. Devuelve un valor Booleano: algo que es true o false. Compara dos argumentos de texto y devuelve true si el primer argumento contiene el segundo argumento. Si no es así, devuelve false. En este caso, la cadena “force.com” está incluida en la cadena “salesforce.com”, de modo que devuelve true (verdadero).

Expresiones condicionales

Utilice una expresión condicional para mostrar diferentes informaciones basándose en el valor de la expresión.

Por ejemplo, si una factura no tiene partidas, es posible que desee mostrar la palabra “ninguna” en vez de una lista vacía. O bien, si un elemento caducó, es posible que desee mostrar “Finalizado” en lugar de mostrar la fecha y hora de finalización.

Puede hacer esto en Visualforce utilizando una expresión de fórmula condicional, como IF(). La expresión IF() utiliza tres argumentos:

  • El primero es un Booleano: algo que es true o false. Por ejemplo, la función CONTAINS() que utilizó antes.
  • El segundo argumento es el valor que se devolverá si el primer parámetro es true.
  • El tercer argumento es el valor que se devolverá si el primer parámetro es false.
  1. En su página UserStatus, debajo de las otras expresiones, agregue el siguiente código.
    <p>{! IF( CONTAINS('salesforce.com','force.com'),
         'Yep', 'Nope') }</p>
    <p>{! IF( DAY(TODAY()) < 15,
         'Before the 15th', 'The 15th or after') }</p>

Antes de guardar los cambios y ver los resultados, pruebe generar un pronóstico de estos. Los resultados en su página tendrán un aspecto parecido a este.

 Entorno de prueba de expresiones de Visualforce

La primera expresión utiliza el mismo cálculo de función CONTAINS() que antes. La diferencia es que la función IF() convierte el resultado booleano de CONTAINS() en texto más útil para mostrar al usuario. Del mismo modo, la segunda expresión muestra un mensaje durante la primera mitad del mes y un mensaje diferente la segunda mitad del mes.

  1. Elimine todas sus expresiones de prueba y deje solo las líneas que utilizan la variable global $User. En otras palabras, vuelva a esta página.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!$User.FirstName & ' ' & $User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
  1. Utilicemos una expresión condicional para hacer algo un poco más útil. Reemplace la línea con la expresión $User.Username por el siguiente código:
({! IF($User.isActive, $User.Username, 'inactive') })

isActive es otro campo disponible en la variable global $User. Es un campo Booleano que es verdadero si el usuario es activo y falso si se desactivó. Ahora el tablero Estado de usuario mostrará el nombre del usuario si está activo e “inactivo” si no lo está.

Más información...

Existen varias funciones y variables globales que puede utilizar en expresiones de Visualforce.

Hay casi dos docenas de variables globales que se pueden utilizar en Visualforce. Son útiles para obtener información acerca del usuario que acaba de iniciar sesión, como puede ver, pero también para obtener detalles acerca de la configuración de la organización ($Organization), configuración ($Setup), detalles acerca de objetos personalizados ($ObjectType), acciones disponibles en esos objetos ($Action) y mucho más. Consulte las Variables globales en la Guía del desarrollador de Visualforce para obtener información más detallada.

Del mismo modo, existen numerosas funciones que se pueden utilizar en Visualforce. La lista es similar, pero exactamente igual, a las funciones disponibles en campos de fórmula. Si se superponen las funciones que se comportan del mismo modo, puede reutilizar la mayor parte de lo que conoce acerca de los campos de fórmula cuando redacta expresiones de Visualforce. Consulte las Funciones en la Guía del desarrollador de Visualforce para obtener una lista completa.

Las expresiones tienen varios usos y son habitualmente utilizadas para proporcionar valores para atributos en componentes de Visualforce.

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