Loading
Mejora de Salesforce mediante código
. Variables globales

Variables globales

Cuando trabaja con componentes como botones personalizados y vínculos, fórmulas en campos personalizados, reglas de validación, flujos, procesos y páginas de Visualforce, puede utilizar campos de combinación especiales para hacer referencia a los datos en Salesforce.

Ediciones necesarias

La disponibilidad de cada variable global depende de los requisitos de la experiencia y la versión para la función relacionada.
Permisos de usuario necesarios
Para crear, modificar y eliminar Custom S-Control, fórmulas o páginas de Visualforce: Personalizar aplicación
Para modificar flujos y procesos: Gestionar flujo
Nota
Nota Las fichas Web solo admiten campos de combinación $User, $Organization y $Api.

Utilice estas variables globales cuando seleccione un tipo de campo de combinación para agregar a su componente personalizado:

$Action

Descripción: Un tipo de campo de combinación global para utilizar al hacer referencia a las acciones estándar de Salesforce, como mostrar la página de inicio de la ficha Cuentas, crear cuentas, modificar cuentas y eliminar cuentas. Utilice campos de combinación de acciones en las funciones LINKTO y URLFOR para hacer referencia a la acción seleccionada.
Uso:
  • Seleccionar el tipo de campo: $Action.
  • Inserte un campo de combinación en el formato $Action.object.action, como por ejemplo $Action.Account.New.
Ejemplo de S-Control:

Este S-Control hace referencia a la acción estándar para crear cuentas en el campo de combinación $Action.Account.New.

<html>
    <body>
        {!LINKTO(
            "Create a New Account", 
            $Action.Account.New, 
            $ObjectType.Account
         )}
    </body>
</html>
Ejemplo de Visualforce:
<apex:outputLink value="{!URLFOR($Action.Account.New)}">
    Create New Account
</apex:outputLink>
Sugerencias: Esta variable global sólo está disponible con botones personalizados, vínculos, S-Control y páginas de Visualforce.

Todos los objetos admiten acciones básicas, como crear nuevo, duplicar, ver, modificar, enumerar y eliminar. La variable global $Action también hace referencia a acciones disponibles en numerosos objetos estándar. Los valores disponibles en su organización pueden diferir en función de las funciones que active.

$Api

Descripción: tipo de campo de combinación global para utilizar al hacer referencia a la URL de la API.  
Uso:
  • Seleccionar el tipo de campo: $Api.
  • Seleccione un campo de combinación, como:
    • $Api.Enterprise_Server_URL__xxx: El extremo de Enterprise WSDL SOAP donde xxx representa la versión de API. Por ejemplo, $Api.Enterprise_Server_URL_140 es el valor del campo de combinación de la versión 14.0 de API.
    • $Api.Partner_Server_URL__xxx: El extremo de Partner WSDL SOAP donde xxx representa la versión de la API.
    • $Api.Session_ID: El Id. de la sesión.
 
Ejemplo de S-Control:

Este campo de fórmula personalizada llama un servicio para sustituir el código SIC. Sustituya miservidor por el nombre de su servidor.

HYPERLINK("https://www.myserver.com/mypage.jsp" & 
"?Username="       & $User.Username & 
"&crmSessionId="   & GETSESSIONID() & 
"&crmServerUrl="   &  $Api.Partner_Server_URL_90  &
"&crmObjectId="    & Id &
"&crmFieldUpdate=sicCode",
"Update SIC Code")
 
Visualforce y ejemplo de flujo:

Uso de diferenciación de punto para obtener el Id. de sesión.

{!$Api.Session_ID}
 
Sugerencias:

Esta variable global sólo está disponible con campos de fórmula, s-controls, botones y vínculos personalizados, páginas de Visualforce, flujos y fórmulas de proceso.

$Api.Session_ID y GETSESSIONID() devuelven el mismo valor, un identificador para la sesión actual en el contexto actual. Este contexto varía dependiendo de dónde se ha evaluado la función o la variable global. Por ejemplo, si utiliza en un campo de fórmula personalizado y ese campo aparece en un formato de página estándar en Salesforce Classic, la sesión a la que se hace referencia es una sesión de Salesforce básica. Este mismo campo (o bien la variable subyacente o resultado de fórmula), al ser utilizado en una página de Visualforce, hace referencia a una sesión de Visualforce en su lugar.

Los contextos de sesión se basan en el dominio de la solicitud. Así, el contexto de la sesión cambia siempre que cruza los límites de un nombre de host, como .salesforce.com a .vf.force.com o .lightning.force.com.

Los identificadores de sesión desde contextos diferentes y las sesiones en sí, son diferentes. Cuando cambia entre contextos, se sustituye la sesión antigua por la nueva y la sesión antigua deja de ser válida. El Id. de sesión también cambia en este momento.

Normalmente, Salesforce controla de forma transparente el intercambio de sesiones entre contextos, pero si usted mismo pasa el Id. de sesión, es posible que tenga que volver a acceder a $Api.Session_ID o GETSESSIONID() desde el nuevo contexto, para garantizar que el Id. de sesión sea válido.

No todas las sesiones se crean por igual. En particular, las sesiones obtenidas en un contexto Lightning de Experience tienen privilegios limitados, y no tienen acceso de API. No puede utilizar estos Id. de sesión para realizar llamadas de API. La {!$Api.Session_ID} no se genera para usuarios invitados.

 

$Component

Descripción: Tipo de campo de combinación global para utilizar al hacer referencia a un componente de Visualforce.
Uso: Cada componente de una página de Visualforce tiene su propio atributo Id. Cuando se representa la página, este atributo se utiliza para generar el Id. de Modelo de objeto de documento (DOM). Utilice $Component.Path.to.Id en JavaScript para hacer referencia a un componente específico en una página, donde Path.to.Id es un especificador de jerarquía de componentes para el componente al que se hace referencia.
Ejemplo de Visualforce:
function beforeTextSave() {
    document.getElementById('{!$Component.msgpost}').value = myEditor.getEditorHTML();
}
Sugerencias: Esta variable global sólo está disponible con páginas de Visualforce.

$ComponentLabel

Descripción: Campo de combinación global que se utiliza al hacer referencia a la etiqueta de un componente inputField en una página de Visualforce asociada con un mensaje.
Uso: Devuelve la etiqueta de un componente inputField asociado con un mensaje.
Ejemplo de Visualforce:
<apex:datalist var="mess" value="{!messages}">
    <apex:outputText value="{!mess.componentLabel}:" style="color:red"/>
    <apex:outputText value="{!mess.detail}" style="color:black" />
</apex:datalist>
Sugerencias: Esta variable global sólo está disponible con páginas de Visualforce.

$CurrentPage

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a la página de Visualforce o solicitud de página actual.
Uso: Utilice esta variable global en una página de Visualforce para hacer referencia al nombre de la página actual ($CurrentPage.Name) o la dirección URL de la página actual ($CurrentPage.URL). Utilice $CurrentPage.parameters.parameterName para hacer referencia a parámetros y valores de solicitud de página, donde NombreParámetro es el parámetro de solicitud al que se hace referencia. NombreParámetro no distingue entre mayúsculas y minúsculas.
Ejemplo de Visualforce:
<apex:page standardController="Account">
    <apex:pageBlock title="Hello {!$User.FirstName}!">
        You belong to the {!account.name} account.<br/>
        You're also a nice person.
    </apex:pageBlock>
    <apex:detail subject="{!account}" relatedList="false"/>
    <apex:relatedList list="OpenActivities" 
        subject="{!$CurrentPage.parameters.relatedId}"/> 
</apex:page>
Sugerencias: Esta variable global sólo está disponible con páginas de Visualforce.

$CustomMetadata

Descripción: Registro de metadatos personalizados. Disponible en API versión 43.0 y posterior.
Uso: Utilice esta variable global en fórmulas de reglas de validación para hacer referencia de forma dinámica a tipos de metadatos personalizados mediante la sintaxis $CustomMetadata.type.record.field.
Sugerencias: Esta variable global solo admite fórmulas de reglas de validación.

$FieldSet

Descripción: Permite acceder a un conjunto de campos definido en su organización.
Uso: Utilice esto en sus páginas de Visualforce para iterar dinámicamente en los campos de un conjunto de campos. A esta variable global debe agregarle un prefijo con una referencia al objeto estándar o personalizado que tiene el conjunto de campos.
Ejemplo de Visualforce:
<apex:page standardController="Account">
    <apex:repeat value="{!$ObjectType.Account.FieldSets.myFieldSetName}" var="field">
        <apex:outputText value="{!field}" />
    </apex:repeat>
</apex:page>
Sugerencias: Esta variable global sólo está disponible con páginas de Visualforce.

$Label

Descripción: Un tipo de campo de combinación global para utilizar al hacer referencia a una etiqueta personalizada.
Uso:
  • Seleccionar el tipo de campo $Label.
  • Seleccione la etiqueta personalizada a la que desea hacer referencia.

El valor devuelto depende del parámetro de idioma del usuario contextual. El valor devuelto es uno de los siguientes, en orden de precedencia:

  • El texto de la traducción local
  • El texto de la traducción del paquete
  • El texto de la etiqueta principal
Ejemplo de flujo:

Cree una fórmula de flujo cuya expresión sea:

{!$Label.customCurrency_label}

Luego, haga referencia a esa fórmula de flujo como la etiqueta de un componente de pantalla.

Ejemplo de Visualforce:
<apex:page>
    <apex:pageMessage severity="info" 
        strength="1" 
        summary="{!$Label.firstrun_helptext}" 
    />
</apex:page>
Ejemplo de componentes Aura
Etiqueta en una expresión de marcado utilizando el espacio de nombres predeterminado
{!$Label.c.labelName}
Las expresiones de etiqueta en el marcado son compatibles únicamente en recursos .cmp y .app.
Etiqueta en código JavaScript si su organización tiene un espacio de nombres
$A.get("$Label.namespace.labelName")
Sugerencias: Esta variable global está disponible para componentes Aura, páginas de Visualforce, Apex, flujos y fórmulas de proceso únicamente.

$Label.Site

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a una etiqueta de Sites estándar de una página de Visualforce. Al igual que con todas las etiquetas estándar, el mensaje de la etiqueta se muestra según el idioma y la configuración regional del usuario. No puede modificar el mensaje de una etiqueta Sites estándar. Para utilizar un mensaje personalizado, cree una etiqueta personalizada y luego haga referencia a la etiqueta con la variable global $Label.
Uso: Utilice esta expresión en una página de Visualforce para acceder a una etiqueta de Sites estándar. Si la aplicación del servidor crea la página para que aparezca en el navegador del usuario final, el valor devuelto depende del idioma y de la configuración regional del usuario.
Ejemplo de Visualforce:
<apex:page>
    <apex:pageMessage severity="info" 
        strength="1" 
        summary="{!$Label.Site.temp_password_sent}" 
    />
</apex:page>
Sugerencias: Esta variable global sólo está disponible con páginas de Visualforce.

Salesforce proporciona estas etiquetas:

Etiqueta Mensaje
authorization_required Autorización necesaria
bandwidth_limit_exceeded Se ha superado el límite de ancho de banda
change_password Cambiar contraseña
change_your_password Cambie la contraseña
click_forget_password Si ha olvidado su contraseña, haga clic en Contraseña olvidada para restablecerla.
community_nickname Apodo
confirm_password Confirmar contraseña
down_for_maintenance <i>{0}</i> está apagado para mantenimiento
email Email
email_us envíenos un email
enter_password ¿Olvidó la contraseña? Ingrese su nombre de usuario abajo.
error Error: {0}
error2 Error
file_not_found No se ha encontrado el archivo
forgot_password Contraseña olvidada
forgot_password_confirmation Confirmación de contraseña olvidada
forgot_your_password_q ¿Olvidó la contraseña?
get_in_touch <a href="{0}">{1}</a> si necesita hacer contacto.
go_to_login_page Ir a página de inicio de sesión
img_path /img/sites
in_maintenance Apagado para mantenimiento
limit_exceeded Se ha superado el límite.
login Inicio de sesión
login_button Inicio de sesión
login_or_register_first Antes de poder acceder a esta página, debe iniciar la sesión o registrarse.
logout Finalizar sesión
new_password Nueva contraseña
new_user_q ¿Es un usuario nuevo?
old_password Contraseña anterior
page_not_found No se ha encontrado la página
page_not_found_detail No se ha encontrado la página: {0}
password Contraseña
passwords_dont_match Las contraseñas no coinciden.
powered_by Con tecnología de
register Registro
registration_confirmation Confirmación de registro
site_login Inicio de sesión del sitio Web
site_under_construction Sitio Web en construcción
sorry_for_inconvenience Disculpe las molestias.
sorry_for_inconvenience_back_shortly Disculpe las molestias. En breve, estaremos activos de nuevo.
stay_tuned Permanezca atento.
enviar Enviar
temp_password_sent Se le ha enviado un email con la contraseña temporal.
thank_you_for_registering Gracias por registrarse. Se le ha enviado un email con la contraseña temporal.
under_construction <i>{0}</i> está en construcción
user_registration Registro de usuario nuevo
username Nombre de usuario
verify_new_password Repetir contraseña nueva

$Network

Descripción: Un tipo de campo de combinación global para utilizar al hacer referencia a detalles del sitio de Experience Cloud en una plantilla de email de Visualforce.
Uso: Utilice esta expresión en una plantilla de email de Visualforce para acceder al nombre del sitio de Experience Cloud y la URL de inicio de sesión.
Ejemplo de Visualforce:
<messaging:emailTemplate subject="Your Password has been reset" recipientType="User">
    <messaging:htmlEmailBody >
        <p>Hi,</p>
        <p>Your password for <b>{!$Network.Name}</b> has been reset.</p>
        <p><a href='{!$Network.NetworkUrlForUserEmails}'>Reset Password</a></p>
        <p>Regards,</p>
        <p>Community Manager</p>
    </messaging:htmlEmailBody>
</messaging:emailTemplate>
Sugerencias: Esta variable global solo funciona en plantillas de email de Visualforce para sitios de Experience Cloud.

$MessageChannel

Descripción: Un tipo de campo de combinación que proporciona acceso a un canal de mensajes definido en su organización.
Uso: Utilice esta expresión en su página de Visualforce para acceder a un canal de mensajes y utilizar las API del Servicio de mensajes Lightning.
Ejemplo de Visualforce:
<apex:page>
    <script>
        // Load the MessageChannel token in a variable
        var SAMPLEMC = "{!$MessageChannel.SampleMessageChannel__c}";
        function handleClick() {
            const payload = {
                recordId: "some string",
                recordData: {value: "some value"}
            }
            sforce.one.publish(SAMPLEMC, payload);
        }
    </script>
    <div>
        <p>Publish SampleMessageChannel</p>
        <button onclick="handleClick()">Publish</button>
    </div>
</apex:page>
Sugerencias: Esta variable global está disponible para páginas de Visualforce.

$ObjectType

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a objetos estándar o personalizados (como Cuentas, Casos u Oportunidades) y los valores de sus campos. Utilice campos de combinación de tipo de objeto en funciones LINKTO, GETRECORDIDS y URLFOR para hacer referencia a un tipo específico de datos o a la función VLOOKUP, para hacer referencia a un campo específico en un objeto relacionado.
Uso:
  • Seleccionar el tipo de campo: $ObjectType.
  • Seleccionar un objeto para insertar en un campo de combinación que represente ese objeto, como $ObjectType.Case.

    Opcionalmente, seleccione un campo en ese objeto utilizando esta sintaxis: $ObjectType.Límite_función__c.Límite.Campos__c.

Ejemplo de botón personalizado:

Este botón de lista personalizado hace referencia al objeto estándar de casos en el campo de combinación $ObjectType.Case.

{!REQUIRESCRIPT ("/soap/ajax/13.0/connection.js")}
var records = {!GETRECORDIDS($ObjectType.Sample)};
var newRecords = [];
if (records[0] == null) {
    alert("Please select at least one row")
} else {
    for (var n=0; n<records.length; n++) {
        var c = new sforce.SObject("Case");
        c.id = records[n];
        c.Status = "New";
        newRecords.push(c);
    }
    result = sforce.connection.update(newRecords);
    window.location.reload();
}
Ejemplo de regla de validación:

Este ejemplo comprueba si un código postal de facturación es válido, verificando sus cinco primeros caracteres en un objeto personalizado denominado Código_postal__c que contiene un registro para cada código postal válido en los Estados Unidos. Si no se encuentra el código postal en el objeto Zip_Code__c, o si Estado de facturación no coincide con State_Code__c correspondiente en el objeto Zip_Code__c, aparece un error.

AND(
    LEN(BillingPostalCode) > 0, 
    OR(BillingCountry = "USA", BillingCountry = "US"), 
    VLOOKUP(
        $ObjectType.Zip_Code__c.Fields.State_Code__c,
        $ObjectType.Zip_Code__c.Fields.Name,
        LEFT(BillingPostalCode,5)
    ) <> BillingState
)
Ejemplo de Visualforce:

En este ejemplo se recupera la etiqueta del campo Name de la cuenta:

{!$ObjectType.Account.Fields.Name.Label}
Sugerencias: Esta variable global está disponible en las páginas de Visualforce, botones y vínculos personalizados, S-Control y reglas de validación.

$Organization

Descripción: Tipo de campo de combinación global para utilizar al hacer referencia a información sobre el perfil de su compañía. Utilice los campos de combinación de la organización para hacer referencia a la dirección, fax, Id. u otros detalles acerca de su organización.
Uso:
  • Seleccionar el tipo de campo: $Organization.
  • Seleccione un campo de combinación, como $Organization.Fax.
Ejemplo de regla de validación:

Utilice los campos de combinación de organización para comparar los atributos de su organización con los de las cuentas. Por ejemplo, es posible que desee determinar si su organización tiene el mismo país que sus cuentas. Esta fórmula de validación hace referencia al campo de combinación del país de su organización y requiere un código de país para cualquier cuenta extranjera.

AND($Organization.Country <> BillingCountry, ISBLANK(Country_Code__c))
Ejemplo de flujo: Cree una fórmula de flujo (Texto) cuya expresión sea {!$Organization.City}. En un elemento Decisión, compruebe si la ciudad de un contacto coincide con esa fórmula.
Ejemplo de Visualforce:

Uso de diferenciación de punto para acceder a la información de su organización. Por ejemplo:

{!$Organization.Street}
{!$Organization.State}
Sugerencias:

Los campos de combinación de la organización obtienen sus valores a partir de cualquier valor almacenado actualmente como parte de la información de su compañía en Salesforce.

Tenga en cuenta que {!$Organization.UiSkin} es un valor de lista de selección y, por lo tanto, se debe utilizar con funciones de lista de selección, como ISPICKVAL() en campos personalizados, reglas de validación, expresiones de Visualforce, flujos de fórmula, fórmulas de proceso y fórmulas de regla de flujo de trabajo.

$Page

Descripción: Tipo de campo de combinación global para utilizar al hacer referencia a una página de Visualforce.
Uso: Utilice esta expresión en una página de Visualforce para establecer un vínculo a otra página de Visualforce.
Ejemplo de Visualforce:
<apex:page>
    <h1>Linked</h1>
    <apex:outputLink value="{!$Page.otherPage}">
        This is a link to another page.
    </apex:outputLink>
</apex:page>
Sugerencias: Esta variable global sólo está disponible con páginas de Visualforce.

$Permiso

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a información sobre el acceso de permisos personalizados del usuario actual. Utilice los campos de combinación de permisos para hacer referencia a informaciones acerca del acceso actual del usuario en cualquiera de los permisos personalizados de su organización.
Uso:
  • Seleccionar el tipo de campo: $Permiso.
  • Seleccione un campo de combinación como $Permission.customPermissionName.
Ejemplo de regla de validación:

Esta regla de validación hace referencia al permiso personalizado changeAustinAccounts para el usuario actual. Esta regla garantiza que solo los usuarios con changeAustinAccounts puedan actualizar cuentas con una ciudad de facturación Austin.

BillingCity = 'Austin' && $Permission.changeAustinAccounts
Ejemplo de flujo:

Esta fórmula de flujo evalúa si el usuario actual tiene el permiso personalizado deleteCandidates.

{!$Permission.deleteCandidates}
Ejemplo de Visualforce:

Para que pageblock solo aparezca para usuarios con el permiso personalizado seeExecutiveData, utilice lo siguiente:

<apex:pageBlock rendered="{!$Permission.canSeeExecutiveData}">
    <!-- Executive Data Here -->
</apex:pageBlock>
Sugerencias: $Permiso solo aparece si se han creado los permisos personalizados en su organización. Esta variable global no es compatible con procesos, flujos y reglas de flujo de trabajo.

$Profile

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a información sobre el perfil del usuario actual. Utilice campos de combinación de perfil para hacer referencia a la información acerca del perfil de usuario, como tipo de licencia o nombre.
Uso:
  • Seleccionar el tipo de campo: $Profile.
  • Seleccione un campo de combinación como $Profile.Name.
Ejemplo de regla de validación:

Esta fórmula de regla de validación hace referencia al nombre del perfil del usuario actual para asegurar que solo el propietario del registro o los usuarios con este perfil pueden modificar un campo personalizado denominado Objetivo personal:

AND(
    ISCHANGED( Personal_Goal__c ), 
    Owner <> $User.Id, 
    $Profile.Name <> "Custom: System Admin" 
)
Ejemplo de flujo:

Cree una fórmula de flujo (Texto) con esta expresión.

{!$Profile.Name}

Haciendo referencia a esa fórmula, evitará utilizar una consulta (elementos Búsqueda) y ahorrará tiempo.

Ejemplo de Visualforce:

Para devolver el perfil del usuario actual, utilice esto:

{!$Profile.Name}
Sugerencias:
  • Los campos de combinación $Profile sólo están disponibles en la ediciones que puedan crear perfiles personalizados.
  • Utilice nombres de perfiles para hacer referencia a perfiles estándar en campos de combinación $Profile.

  • Los valores de los campos de combinación estarán en blanco si los atributos del perfil están en blanco. Por ejemplo, Descripción de perfil no es obligatoria y a veces no contiene un valor.
  • Para utilizar estos campos de combinación no es necesario conceder a sus usuarios permisos o derechos de acceso a su información de perfil.

Si ha hecho referencia previamente al valor interno de un perfil, utilice esta lista para determinar el nombre que tiene que utilizar en su lugar:

Nombre de perfil estándar $Profile Value
Administrador del sistema PT1
Usuario estándar PT2
Sólo lectura PT3
Gestor de soluciones PT4
Usuario de marketing PT5
Administrador del contrato PT6
Usuario de socio PT7
Usuario de plataforma estándar PT8
Usuario de la aplicación de Platform One estándar PT9
Usuario del portal de clientes PT13
Gestor del portal de clientes PT14

$RecordType

Descripción: Un campo de combinación global que se debe utilizar al hacer referencia al tipo de registro del registro actual.
Uso: Agregar manualmente $RecordType a su S-Control.
Ejemplo de Visualforce:

Para devolver el Id. del tipo de registro actual, utilice esto:

{$RecordType.Id}
Sugerencias:
  • Utilice $RecordType.Id en lugar de $RecordType.Name para hacer referencia a un tipo de registro específico. Aunque $RecordType.Name hace que una fórmula sea más legible, debe actualizar la fórmula si cambia el nombre del tipo de registro, mientas que la Id. de un tipo de registro nunca cambia. Sin embargo, si está implementando fórmulas en organizaciones (por ejemplo, entre entornos sandbox y producción), utilice $RecordType.Name porque los Id. no son los mismos en las organizaciones.
  • Evite utilizar $RecordType en fórmulas, excepto en fórmulas de valor predeterminado. En su lugar, utilice el campo de combinación RecordType (por ejemplo, Account.RecordType.Name) o el campo RecordTypeId en el objeto.
  • No haga referencia a ningún campo con el campo de combinación $RecordType en fórmulas de objetos cruzados. La variable $RecordType resuelve el registro que contiene la fórmula, no el registro al que se expande la fórmula. En su lugar, utilice el campo de combinación RecordType para el objeto.

$Request

Descripción: Campo de combinación global que se debe utilizar para hacer referencia a un parámetro de consulta por nombre que devuelve un valor.
Uso: Agregar manualmente $Request a su S-Control.
Ejemplo de S-Control:

Este miniprograma, denominado Title_Snippet, requiere dos parámetros de entrada: titleTheme y titleText. Puede volver a utilizarlo en muchos S-Control para proporcinar el título de página y tema en su HTML.

<h2 class="{!$Request.titleTheme}.title">
    {!$Request.titleText}
</h2>

Este S-Control llama a este miniprograma mediante la función INCLUDE, enviando los parámetros del título y el tema de la página HTML que crea.

<html>
    <head/>
    <body> 
        {!INCLUDE(
                $SControl.Title_Snippet, 
                [titleTheme = "modern", titleText = "My Sample Title"]
        )}
        Insert your page-specific content here ... 
    </body> 
</html>
Sugerencias: No utilice $Request en páginas de Visualforce para hacer referencia a parámetros de consulta. Utilice $CurrentPage en su lugar.

$Resource

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a un recurso estático existente en función de su nombre en una página de Visualforce. También puede utilizar campos de combinación de recursos en funciones URLFOR para hacer referencia a un archivo específico de un archivo de recursos estáticos.
Uso: Utilice $Resource para hacer referencia a un recurso estático existente. El formato es $Resource.nameOfResource, como $Resource.TestImage.
Ejemplos de Visualforce:

Este componente Visualforce hace referencia a un archivo de imagen que se cargó como recurso estático y cuyo nombre es TestImage:

<apex:image url="{!$Resource.TestImage}" width="50" height="50"/>

Para hacer referencia a un archivo de archivado (como un archivo .zip o .jar), utilice la función URLFOR. Especifique el nombre de recurso estático que proporcionó al cargar el archivo con el primer parámetro y la ruta al archivo que desee dentro del archivo con el segundo. Por ejemplo:

<apex:image url="{!URLFOR($Resource.TestZip, 'images/Bluehills.jpg')}" 
    width="50" height="50"/>
Sugerencias: Esta variable global sólo está disponible con páginas de Visualforce.

$SControl

Importante
Importante Las páginas de Visualforce sustituyen a los S-Control. Las organizaciones que no hayan usado anteriormente S-Control no podrán crearlos. Los S-Control existentes no se verán afectados y todavía podrán modificarse.
Descripción: Tipo de campo de combinación global que se debe utilizar para hacer referencia a un Custom S-Control existente en función de su nombre. Utilice los campos de combinación de S-Control en las funciones LINKTO, INCLUDE y URLFOR para hacer referencia a uno de sus Custom S-Control.
Uso:
  • Seleccionar el tipo de campo: $SControl.
  • Seleccione un S-Control para insertar un campo de combinación que represente dicho S-Control, como $Scontrol.Header_Snippet.
Ejemplo de S-Control:

Este S-Control hace referencia al miniprograma del campo de combinación $Scontrol.Header_Snippet:

<html>
    <body>
        {!INCLUDE(
            $SControl.Header_Snippet, 
            [title = "My Title", theme = "modern"]
         )}
    </body>
</html>
Ejemplo de Visualforce:

Este ejemplo muestra cómo vincular un S-Control llamado HelloWorld en una página de Visualforce:

<apex:page>
    <apex:outputLink value="{!$SControl.HelloWorld}">
        Open the HelloWorld s-control
    </apex:outputLink>
</apex:page>

Tenga en cuenta que si quiere incorporar un S-Control en una página, puede utilizar la etiqueta <apex:scontrol> sin el campo de combinación $SControl. Por ejemplo:

<apex:page>
    <apex:scontrol controlName="HelloWorld" />
</apex:page>
Sugerencias:
  • La lista desplegable para Insertar campo de combinación enumera todos sus Custom S-Control excepto los miniprogramas. Aunque los miniprogramas son S-Control, se comportan de manera diferente. Por ejemplo, no puede hacer referencia a un miniprograma directamente desde una función URLFOR; los miniprogramas no están disponibles al crear un botón o vínculo personalizado que tenga el Origen del contenido de Custom S-Control; y no puede agregar miniprogramas a sus formatos de página. Para insertar un miniprograma en su S-Control, utilice el botón desplegable Insertar miniprograma.
  • Esta variable global sólo está disponible con botones personalizados, vínculos, S-Control y páginas de Visualforce.

$Setup

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a una configuración personalizada de tipo “jerarquía”.
Uso:

Utilice $Setup para acceder a las configuraciones personalizadas de jerarquía y sus valores de campos mediante la notación de punto. Por ejemplo, $Setup.App_Prefs__c.Show_Help_Content__c.

Las configuraciones personalizadas de jerarquía permiten valores en cualquiera de los tres niveles siguientes:

  • Organización, el valor predeterminado para todos
  • Perfil, que sustituye al valor Organización
  • Usuario, que sustituye a los valores Organización y Perfil

Salesforce determina automáticamente el valor correcto para este campo de configuración personalizada basándose en el contexto actual del usuario que interviene.

Ejemplo de campo de fórmula:
{!$Setup.CustomSettingName__c.CustomFieldName__c}

Los campos de fórmula sólo funcionan con configuraciones personalizadas de jerarquía; no se pueden utilizar para configuraciones personalizadas de lista.

Ejemplo de Visualforce:

Este ejemplo muestra cómo mostrar condicionalmente un mensaje de ayuda ampliado para un campo de entrada, dependiendo de las preferencias del usuario:

<apex:page>
    <apex:inputField value="{!usr.Workstation_Height__c}"/>
    <apex:outputPanel id="helpWorkstationHeight" 
        rendered="{!$Setup.App_Prefs__c.Show_Help_Content__c}">
        Enter the height for your workstation in inches, measured from the 
        floor to top of the work surface.
    </apex:outputPanel>
    ...
</apex:page>

Si el nivel de la organización del ajuste personalizado se establece como true, los usuarios verán el mensaje de ayuda ampliado de manera predeterminada. Si un usuario prefiere no ver los mensajes de ayuda, puede establecer una configuración personalizada como false para sustituir el valor de la organización (o del perfil).

Las configuraciones personalizadas de tipo “lista” no están disponibles en las páginas de Visualforce que utilicen esta variable global. Puede acceder a las configuraciones personalizadas de lista en Apex.

Sugerencias: Esta variable global está disponible en páginas de Visualforce, campos de fórmula, reglas de validación, flujos y fórmulas de proceso.

$Sitio

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a información sobre el sitio actual de Salesforce.
Uso:

Utilice diferenciación de punto para acceder a información acerca del sitio actual de Salesforce.

Ejemplo de Visualforce:

Este ejemplo muestra cómo se utiliza el campo de combinación $Site.Template:

<apex:page title="Job Application Confirmation" showHeader="false" 
    standardStylesheets="true">

    <!-- The site template provides layout & style for the site -->
    <apex:composition template="{!$Site.Template}">

    <apex:define name="body">
        <apex:form>
            <apex:commandLink value="<- Back to Job Search" 
                onclick="window.top.location='{!$Page.PublicJobs}';return false;"/>
            <br/>
            <br/>
            <center>
                <apex:outputText value="Your application has been saved. 
                    Thank you for your interest!"/>
            </center>
            <br/>
            <br/>
        </apex:form>
    </apex:define>
    
    </apex:composition>
</apex:page>
Sugerencias: Esta variable global está disponible en páginas de Visualforce, plantillas de email y s-control.

Tenga en cuenta que solo están disponibles estos campos de sitio:

Campo de combinación Descripción
$Site.Name Devuelve el nombre de API del sitio actual.
$Site.Domain Devuelve su URL basada en sitios de Salesforce.
$Site.CustomWebAddress Devuelve la URL personalizada de la solicitud si no termina en force.com o devuelve la URL personalizada principal del sitio. Si no existe ninguna de las dos, entonces devuelve una cadena vacía. Tenga en cuenta que la ruta de la URL siempre es la raíz, aunque la URL personalizada de la solicitud tenga un prefijo de ruta. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía. El valor de este campo siempre termina con el carácter /. Se desaconseja el uso de $Site.CustomWebAddress y recomendamos utilizar $Site.BaseCustomUrl en su lugar.
$Site.OriginalUrl Devuelve la dirección URL original de esta página si se trata de una página de error designada para el sitio; de lo contrario, devuelve null.
$Site.CurrentSiteUrl Devuelve la URL de base del sitio actual que deberían utilizar las referencias y los vínculos. Tenga en cuenta que este campo podría devolver la URL de la página de referencia en lugar de la URL de la solicitud actual. El valor de este campo incluye un prefijo de ruta y siempre termina con el carácter /. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía. Se desaconseja el uso de $Site.CurrentSiteUrl. Utilice $Site.BaseUrl en su lugar.
$Site.LoginEnabled Devuelve true si el sitio actual está asociado con un portal de clientes de inicio de sesión activado; en caso contrario devuelve false.
$Site.RegistrationEnabled Devuelve true si el sitio actual está asociado con un portal de clientes de registro automático activado; en caso contrario devuelve false.
$Site.IsPasswordExpired Para usuarios autenticados, devuelve true si la contraseña de inicio de sesión del usuario actual ha caducado. Para usuarios no autenticados, devuelve false.
$Site.AdminEmailAddress Devuelve una cadena vacía. Este campo de combinación está desaprobado.
$Site.Prefix Devuelve el prefijo de la ruta de la URL del sitio actual. Por ejemplo, si la URL de su sitio es MyDomainName.my.salesforce-sites.com/partners, /partners es el prefijo de ruta. Devuelve null si no se define el prefijo. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía.
$Site.Template Devuelve el nombre de la plantilla asociado con el sitio actual; devuelve la plantilla predefinida si no se ha designado ninguna plantilla.
$Site.ErrorMessage Devuelve un mensaje de error de la página actual si se ha designado una página de error para el sitio y existe un error; de lo contrario, devuelve una cadena vacía.
$Site.ErrorDescription Devuelve la descripción del error de la página actual si se ha designado una página de error para el sitio y existe un error; de lo contrario, devuelve una cadena vacía.
$Site.AnalyticsTrackingCode El código de seguimiento asociado con su sitio. Servicios como Google Analytics pueden utilizar este código para realizar seguimientos de datos de solicitudes de páginas para su sitio.
$Site.BaseCustomUrl

Devuelve una URL de base para el sitio actual que no utiliza un subdominio. La URL devuelta utiliza el mismo protocolo (HTTP o HTTPS) que la solicitud actual si en el sitio existe al menos una URL personalizada que no sea de force.com y que admita HTTPS. El valor devuelto nunca termina en el carácter /. Si todas las direcciones URL personalizadas en este sitio terminan en force.com o salesforce-sites.com, o este sitio no tiene direcciones URL personalizadas, entonces devuelve una cadena vacía. Si la solicitud actual no es una solicitud de sitio, este método devuelve una cadena vacía.

Este campo sustituye a CustomWebAddress e incluye el prefijo de ruta de la URL personalizada.

$Site.BaseInsecureUrl Este campo de combinación está desaprobado. Devuelve una URL de base para el sitio actual que utiliza HTTP en lugar de HTTPS. Se utiliza el dominio de la solicitud actual. El valor devuelto incluye el prefijo de la ruta y nunca termina en el carácter /. Si la solicitud actual no es una solicitud de sitio, este método devuelve una cadena vacía.
$Site.BaseRequestUrl Devuelve la URL de base del sitio actual para la URL solicitada. A esto no le influye la URL de la página de referencia. La URL devuelta utiliza el mismo protocolo (HTTP o HTTPS) que la solicitud actual. El valor devuelto incluye el prefijo de la ruta y nunca termina en el carácter /. Si la solicitud actual no es una solicitud de sitio, este método devuelve una cadena vacía.
$Site.BaseSecureUrl Devuelve una URL de base para el sitio actual que utiliza HTTPS en lugar de HTTP. Se prefiere el dominio de la solicitud actual si admite HTTPS. Los dominios que no son subdominios force.com se prefieren que los subdominios force.com. Se utiliza un subdominio Force.com, si está asociado con el sitio, en el caso de que no exista ningún otro dominio HTTPS en el sitio actual. Si no hay ninguna URL personalizada HTTPS en el sitio, entonces este método devuelve una cadena vacía. El valor devuelto incluye el prefijo de la ruta y nunca termina en el carácter /. Si la solicitud actual no es una solicitud de sitio, este método devuelve una cadena vacía.
$Site.BaseUrl

Devuelve la URL de base del sitio actual que deberían utilizar las referencias y los vínculos. Tenga en cuenta que este campo puede devolver la URL de la página de referencia en lugar de la URL de la solicitud actual. El valor de este campo incluye el prefijo de la ruta y nunca termina en el carácter /. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía.

Este campo sustituye a $Site.CurrentSiteUrl.

$Site.MasterLabel Devuelve el valor del campo Etiqueta principal del sitio actual. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía.
$Site.SiteId Devuelve el Id. del sitio actual. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía.
$Site.SiteType Devuelve el valor de la API del campo Tipo del sitio del sitio actual. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía.
$Site.SiteTypeLabel Devuelve el valor de la etiqueta del campo Tipo del sitio del sitio actual. Si la solicitud actual no es una solicitud de sitio, este campo devuelve una cadena vacía.

$System.OriginDateTime

Descripción: Campo de combinación global que representa el valor literal de 1900-01-01 00:00:00. Utilice esta variable global al realizar cálculos de compensación de fecha/hora o asignar un valor literal a un campo de fecha/hora.
Uso:
  • Seleccionar el tipo de campo: $System.
  • Seleccione Hora de fecha de origen de la opción Insertar campo de combinación.
Ejemplo de fórmula:

Este ejemplo ilustra cómo convertir un campo de fecha en un campo de fecha/hora. Utiliza la fecha del campo de combinación Hora de fecha de origen para obtener el número de días desde un campo personalizado denominado Mi campo de fecha. A continuación, agrega el número de días al valor Hora de fecha de origen.

$System.OriginDatetime + ( My_Date_Field__c - DATEVALUE($System.OriginDatetime) )

La Hora de fecha de origen está en la zona horaria GMT, pero el resultado se muestra en la zona horaria local del usuario.

Ejemplo de Visualforce, Flujo y Proceso:

Este ejemplo calcula el número de días que han transcurrido desde el 1 de enero de 1900:

{!NOW() - $System.OriginDateTime}
Sugerencias:

Esta variable global está disponible en:

  • Valores predeterminados
  • Flujos
  • Fórmulas en campos personalizados, procesos y reglas de flujo de trabajo
  • Acciones de actualización del campo Flujo de trabajo
  • S-controls y páginas de Visualforce

$User

Descripción: Tipo de campo de combinación global que se debe utilizar al hacer referencia a información sobre el usuario actual. Los campos de combinación de usuario pueden hacer referencia a información acerca del usuario, como apodo, título e Id.. La mayoría de los campos disponibles en el objeto estándar Usuario están también disponibles en $User.
Uso:
  • Seleccionar el tipo de campo: $User.
  • Seleccione un campo de combinación como $User.Username.
Ejemplo de regla de validación:

Esta fórmula de regla de validación hace referencia al Id. del usuario actual para determinar si el usuario actual es el propietario del registro. Utilice un ejemplo como este para asegurarse de que únicamente el propietario del registro o usuarios con perfil de administrador pueden modificar un campo personalizado denominado Objetivo personal:

AND(
    ISCHANGED( Personal_Goal__c ), 
    Owner <> $User.Id, 
    $Profile.Name <> "Custom: System Admin" 
)
Ejemplo de flujo:

Cree una fórmula de flujo (Texto) que cuenta con esta expresión.

{!$User.FirstName} & “ “ & {!$User.LastName}

Cuando haya creado esa fórmula, haga referencia a ella en cualquier parte donde necesite llamar al usuario por nombre en su flujo. Al hacer referencia a la variable global $User, evita la utilización de un elemento Obtener registros, lo que cuenta en los límites del flujo.

Ejemplo de Visualforce:

Este ejemplo muestra el nombre actual de la compañía del usuario, así como el estado del usuario actual (que devuelve un valor booleano).

<apex:page>
    <h1>Congratulations</h1>
    <p>This is your new Apex Page</p>
    <p>
        The current company name for this user is: {!$User.CompanyName}
    </p>
    <p>
        Is the user active?
        {!$User.isActive}
    </p>
</apex:page>
Sugerencias:
  • El usuario actual es la persona que modifica el registro que solicita el valor predefinido, la regla de validación u otra operación que utiliza estos campos de combinación globales.
  • Si un proceso de Caso Web o Prospecto Web modifica un registro, el usuario actual es el Propietario predeterminado del prospecto o Propietario predeterminado de caso.
  • Cuando un proceso ejecuta acciones programadas y el usuario que ha iniciado el proceso ya no está activo, $User hace referencia al usuario del flujo de trabajo predeterminado. Lo mismo sucede con acciones basadas en tiempo en reglas de flujo de trabajo.
  • Algunos de los campos de combinación $User están disponibles cuando se definen filtros de configuraciones de Mobile.

$User.UITheme y $User.UIThemeDisplayed

Descripción:

Estos campos de combinación globales identifican el aspecto de Salesforce que ve un usuario en una página Web en concreto.

La diferencia entre las dos variables es que $User.UITheme devuelve el aspecto que se supone que debe ver el usuario, mientras que $User.UIThemeDisplayed devuelve el aspecto que el usuario ve realmente. Por ejemplo, un usuario puede tener la preferencia y los permisos para ver el aspecto del Lightning Experience, pero si está utilizando un navegador que no admita ese aspecto y comportamiento, como por ejemplo las versiones obsoletas de Internet Explorer, $User.UIThemeDisplayed devolverá un valor diferente.

La ejecución de Classic y Lightning Experience en diferentes ventanas o fichas del navegador no es compatible y puede causar un comportamiento inesperado en el aspecto de su organización y los valores devueltos por los campos $User.UITheme y $User.UIThemeDisplayed. Por ejemplo, si su organización está utilizando Lightning Experience, pero cambia a Classic en una ficha de navegador diferente, estos campos devuelven un tema de Classic en ambas fichas.

Uso:

Utilice estas variables para identificar el archivo CSS utilizado para mostrar las página Web de Salesforce a un usuario. Ambas variables devuelven uno de estos valores.

  • Theme1: tema obsoleto de Salesforce
  • Theme2: tema de la interfaz de usuario de Salesforce Classic 2005
  • Theme3: tema de la interfaz de usuario de Salesforce Classic 2010
  • Theme4d: tema moderno “Lightning Experience” de Salesforce
  • Theme4t: tema de la aplicación móvil Salesforce
  • Theme4u: tema de la consola Lightning
  • PortalDefault: tema del Portal de clientes de Salesforce
  • Webstore: tema AppExchange
Ejemplo de Visualforce:

Este ejemplo muestra cómo puede mostrar diferentes formatos basados en el tema de un usuario:

<apex:page>
    <apex:pageBlock title="My Content" rendered="{!$User.UITheme == 'Theme2'}">
        // this is the old theme...
    </apex:pageBlock>

    <apex:pageBlock title="My Content" rendered="{!$User.UITheme == 'Theme3'}">
       // this is the classic theme ...
    </apex:pageBlock>
</apex:page>

$UserRole

..
Descripción:Tipo de campo de combinación global que se debe utilizar al hacer referencia a información sobre la función del usuario actual. Los campos de combinación de funciones pueden hacer referencia a información como el nombre de la función, descripción e Id.
Uso:
  • Seleccionar el tipo de campo: $UserRole.
  • Seleccione un campo de combinación como $UserRole.Name.
Ejemplo de regla de validación:

Esta fórmula de regla de validación hace referencia al nombre de función del usuario que se va a validar, que un campo personalizado denominado Porcentaje de descuento no supera el valor máximo permitido para esa función:

Discount_Percent__c > VLOOKUP(
    $ObjectType.Role_Limits__c.Fields.Limit__c,
    $ObjectType.Role_Limits__c.Fields.Name, 
    $UserRole.Name
)
Ejemplo de Proceso, Flujo y Visualforce:
{!$UserRole.LastModifiedById}
Sugerencias:
  • El usuario actual es la persona que modifica el registro que solicita el valor predefinido, la regla de validación u otra operación que utiliza estos campos de combinación globales.
  • Si un proceso de Caso Web o Prospecto Web modifica un registro, el usuario actual es el Propietario predeterminado del prospecto o Propietario predeterminado de caso.
  • Cuando un proceso ejecuta acciones programadas y el usuario que ha iniciado el proceso ya no está activo, $UserRole hace referencia a la función del usuario del flujo de trabajo predeterminado. Lo mismo sucede con acciones basadas en tiempo en reglas de flujo de trabajo.

No puede utilizar estos valores $UserRole en Visualforce:

  • CaseAccessForAccountOwner
  • ContactAccessForAccountOwner
  • OpportunityAccessForAccountOwner
  • PortalType
.
 
Cargando
Salesforce Help | Article