Empiece a realizar un seguimiento de su progreso
Inicio de Trailhead
Inicio de Trailhead

Usar acciones rápidas, botones personalizados o Apex

Objetivos de aprendizaje

Después de completar esta unidad, podrá:
  • Crear acciones rápidas (en lugar de usar JavaScript) para validar campos, crear registros con valores completados previamente y redirigir a una página de Visualforce.
  • Describir cómo usar los botones de URL personalizados para obtener la misma funcionalidad de navegación y redireccionamiento que con los botones de JavaScript.
  • Usar un botón de Visualforce personalizado en lugar de un botón de JavaScript para trabajar con varios registros en listas.

¿Tiene botones? Nosotros tenemos alternativas

Anteriormente, hemos explicado por qué ha llegado el momento de migrar a Lightning Experience, donde las increíbles funciones nuevas le permiten ir un paso más allá de los botones de JavaScript. A continuación, vamos a explicar cómo puede migrar fácilmente la funcionalidad de los botones de JavaScript personalizados mediante soluciones que funcionan tanto en Salesforce Classic como en Lightning Experience.

En esta tabla se indican casos de uso de botones de JavaScript para encontrar soluciones alternativas y mejores en la mayoría de los casos en Lightning.

Casos de uso principales de botones de JavaScript Alternativas de Lightning Declarativo/programático
Validar campos (guardado previo) Acciones rápidas (mediante valores predeterminados y fórmulas) D
Desencadenadores de Apex P
Crear registros con valores completados previamente Acciones rápidas (mediante valores predeterminados y fórmulas) D
Redirigir a una página de registro Botones de URL personalizados D
Redirigir a una página de Visualforce Acciones rápidas de Visualforce P
Acciones de Lightning P
Completar previamente valores basados en entradas Acciones de Lightning P
Pantallas emergentes de confirmación Acciones de Lightning P
Llamadas a API (Salesforce y terceros) Acciones de Lightning P
Pantallas emergentes de comentarios Acciones de Lightning P
Integración externa Acciones de Lightning P
Acciones masivas en registros de vista de lista Botones de Visualforce personalizados en vistas de lista P

Como puede ver, Salesforce ofrece varias herramientas declarativas para convertir la funcionalidad de sus botones de JavaScript personalizados.

Acciones rápidas

Las acciones rápidas son compatibles con muchos de los usos comunes de los botones de JavaScript. Las acciones rápidas se pueden basar en un objeto específico o pueden ser globales, lo que significa que son más genéricas y accesibles desde cualquier registro o noticia en tiempo real de Chatter. Siempre hay una acción rápida que puede realizar en relación con cualquier aspecto de Salesforce. Aquí tiene varios ejemplos.

Validar valores de campo

En ocasiones, es posible que desee asegurarse de que determinados campos se completan o llenan con criterios específicos cuando los usuarios crean o actualizan registros.

Supongamos que desea crear una acción para cerrar una tarea sin solicitar a los usuarios que vayan a una página de modificación completa. No obstante, también es posible que desee asegurarse de que la tarea tiene una fecha de vencimiento para poder cerrarla.

Puede cumplir todos estos requisitos mediante la creación de una acción rápida para el objeto Tarea.
  1. Desde el Gestor de objetos en Configuración, haga clic en Tarea y, a continuación, haga clic en Botones, vínculos y acciones.
  2. Haga clic en Nueva acción.
  3. Para Tipo de acción, seleccione Actualizar un registro.
  4. Para Etiqueta, ingrese Cerrar tarea.
  5. Haga clic en Guardar.

A continuación, seleccionamos los campos que deseamos que aparezcan en la acción rápida Cerrar tarea. Puede establecer fácilmente un campo como obligatorio o de solo lectura mediante sus propiedades de campo.

Propiedades de campo de acción

Después de establecer los campos con el formato de acción, puede agregar valores de campo predefinidos para cualquier campo del registro de tarea. En este ejemplo, hemos marcado el campo Fecha de vencimiento como obligatorio. Además, hemos agregado un valor predefinido para que el campo Estado se cambie a Completado.

Establecer valor de campo predefinido para Estado

Ahora que ya hemos configurado la acción, la agregamos al formato de página Tarea. A continuación, los usuarios pueden acceder a ella desde una página de registro de tarea tanto en Lightning Experience como en la aplicación móvil Salesforce. Este es un ejemplo de la acción Cerrar tarea de la página Tareas.

Acción Cerrar tarea de la página Tareas

Al hacer clic en Cerrar tarea, se muestra la acción de modo que el usuario pueda trabajar en ella y guardarla rápidamente.

Superposición de la acción Cerrar tarea

Esto es lo que vemos en la aplicación móvil Salesforce.

Acción Cerrar tarea de la aplicación Salesforce

Campos completados previamente con valores

Un caso de uso más avanzado es cuando desea permitir a los usuarios crear un registro, pero también desea que uno o varios de los campos se completen automáticamente en función de los valores de un campo dependiente.

Por ejemplo, supongamos que la cuota trimestral típica del equipo de ventas interno es una cuarta parte de los ingresos de sus clientes en el último año con un aumento del 10 %. Dado que no siempre es posible aplicar esta fórmula sencilla, desea completar previamente el importe de la oportunidad con el valor, pero también desea permitir la modificación por parte del usuario. Cree una acción para que los usuarios puedan modificar el campo de forma rápida y eficiente sin tener que ir a la página completa del registro de oportunidad.

Para crear esta acción de ejemplo, siga los mismos pasos que antes para crear la acción rápida de oportunidad.
  1. Desde el Gestor de objetos en Configuración, haga clic en Cuenta y, a continuación, haga clic en Botones, vínculos y acciones.
  2. Haga clic en Nueva acción.
  3. Para Tipo de acción, seleccione Crear un registro.
  4. Para Objeto de destino, seleccione Oportunidad.
  5. Seleccione el tipo de registro correspondiente.
  6. Para Etiqueta, ingrese Nueva oportunidad.
  7. Haga clic en Guardar.
Una vez que haya seleccionado los campos para el formato de acción, puede agregar valores predefinidos para el campo Importe. En nuestro ejemplo, hemos usado esta fórmula:
Account.Last_Year_Revenue_Generated__c  * 1.10  / 4

Agregue esta acción al formato de página de cuenta. Cuando los usuarios la invocan, ven un valor completado previamente en el campo que pueden aceptar o sustituir.

Superposición de la acción Nueva oportunidad

Lo mejor de esta acción es que puede extraer datos de la cuenta de la oportunidad para usarlos al crear la oportunidad. Además, dado que Salesforce es compatible con el traspaso de registros, si tiene cuentas jerárquicas, puede extraer los ingresos de la cuenta principal del siguiente modo:
Account.Parent.Last_Year_Revenue_Generated__c

No se preocupe por recordar los formatos de fórmula, ya que las acciones rápidas son declarativas y usan el generador de fórmulas de Salesforce.

Redirigir a una página de Visualforce en función de los valores de entrada

Puede crear páginas de Visualforce para mejorar los procesos de negocio. Los usuarios pueden navegar hasta estas páginas de Visualforce de varias formas (por ejemplo, con botones personalizados, sustituciones de acciones y fichas).

Una ventaja de las páginas de Visualforce es que puede usar el controlador estándar para crear páginas de registro personalizadas y agregar la validación previa, campos completados previamente, fórmulas y mucho más.

Los botones de JavaScript se suelen usar en Salesforce Classic para leer y pasar valores de un registro a una dirección URL que redirige a los usuarios a una página de Visualforce. Además, puede conceder a los usuarios acceso a páginas de Visualforce mediante acciones rápidas. La creación de acciones rápidas de Visualforce es un proceso sencillo y similar a lo que ya hemos explicado. La única diferencia es que debe seleccionar Visualforce personalizado como el tipo de acción.

Crear una acción de Visualforce

En el caso de las acciones rápidas de Visualforce específicas de objeto, debe incluir standardController para el objeto en la página de Visualforce para tener acceso a los datos de registro y para que la página de Visualforce se muestre en la lista de selección de acciones rápidas.

Es posible que use botones de JavaScript para la navegación, lo que permite redirigir a los usuarios a otra página con el comando window.open(URL) y algunas variables. Sin embargo, en la mayoría de los casos, puede usar vínculos o botones de URL personalizados en Lightning Experience.

Esta es una lista de distintos vínculos y botones de URL y su comportamiento de redireccionamiento en Lightning Experience.

Botón y vínculo personalizado de URL Comportamiento en Lightning Experience
URL externa
www.google.com
La dirección URL se abre en una ficha nueva
URL de Salesforce relativa, vista
/{!Account.Id}
La página de inicio de registro se abre en la ficha existente
URL de Salesforce relativa, modificación
/{!Account.Id}/e
La superposición de modificación se muestra en la página existente
URL de Salesforce relativa, lista
/001/o
La página de inicio de objeto se abre en la ficha existente
URL de $Action, vista
{!URLFOR($Action.Account.View, Account.Id)}
La página de inicio de registro se abre en la ficha existente
URL de $Action, modificación
{!URLFOR($Action.Account.Edit, Account.Id)}
La superposición de modificación se muestra en la página existente

Desencadenadores de Apex

Es posible que esté familiarizado con los desencadenadores de Apex, ya que son compatibles con nuestra plataforma desde hace mucho tiempo. Los desencadenadores de Apex se pueden configurar para su ejecución antes o después de que un usuario haga clic en Guardar en un registro.

Si necesita guardar previamente la validación, el cálculo y el llenado de los campos, considere la posibilidad de usar desencadenadores de Apex. Son especialmente útiles para la integración externa, ya que las reglas se aplican mediante la API de Salesforce en Salesforce Classic, Lightning Experience y la aplicación móvil Salesforce.

Para obtener más información sobre los desencadenadores de Apex, consulte la Guía del desarrollador de Apex u obtenga la insignia para desencadenadores de Apex.

Botones de Visualforce personalizados

Otra función extraordinaria de Lightning Experience es la compatibilidad con el uso de botones de Visualforce en vistas de lista. Con esta función, puede usar acciones de Visualforce existentes en Lightning y trabajar con varios registros en listas. A continuación se describe el proceso.
  1. Cree su página de Visualforce. Este es un ejemplo de código para modificar la etapa y las fechas de cierre para varias oportunidades:
    <apex:page standardController="Opportunity" recordSetVar="opportunities" extensions="tenPageSizeExt">
       <apex:form>
          <apex:pageBlock title="Edit Stage and Close Date" mode="edit">
             <apex:pageMessages />
             <apex:pageBlockButtons location="top">
                <apex:commandButton value="Save" action="{!save}"/>
                <apex:commandButton value="Cancel" action="{!cancel}"/>
             </apex:pageBlockButtons>
             <apex:pageBlockTable value="{!selected}" var="opp">
                <apex:column value="{!opp.name}"/>
                <apex:column headerValue="Stage">
                   <apex:inputField value="{!opp.stageName}"/>
                </apex:column>
                <apex:column headerValue="Close Date">
                   <apex:inputField value="{!opp.closeDate}"/>
                </apex:column>
             </apex:pageBlockTable>
          </apex:pageBlock>
       </apex:form>
    </apex:page>
  2. Cree un botón personalizado que haga referencia a su página de Visualforce.
  3. Agregue la acción a su vista de lista. Nota Las acciones masivas no son compatibles en la lista de registros vistos recientemente. Solo están disponibles en vistas de lista.

Ejemplo

Así es como la acción se muestra en Lightning Experience.

Botón personalizado de Visualforce en Lightning Experience

Como puede ver en nuestros ejemplos, Salesforce tiene un excelente conjunto de funciones que le permiten migrar la funcionalidad de los botones de JavaScript y cambiar a Lightning Experience.

Es posible que tenga infinidad de botones de JavaScript que se han acumulado en su organización durante años. Por lo tanto, cabe esperar que el proceso de migración o conversión requiera bastante tiempo. Sin embargo, este trabajo puede no ser tan complejo como cree. Hemos hecho un análisis de los botones de JavaScript en la organización de Salesforce interna que usan todos nuestros empleados. Muchos de estos botones están obsoletos o los usuarios los invocan en muy raras ocasiones. Otros son simplemente duplicados (es decir, un mismo botón en distintos objetos). Después de revisar la lista, hemos observado que muchos de los botones de JavaScript se podrían convertir en las soluciones que hemos descrito hasta ahora. A modo de recordatorio, podríamos usar unos cuantos con las nuevas acciones de Lightning.

Es probable que haya advertido que las acciones de Lightning de la lista de soluciones programáticas pueden ser un método de sustitución común para muchos de los casos de uso de los botones de JavaScript. Las acciones de Lightning se pueden crear fácilmente, ya que se basan en el marco de acciones rápidas. Puede configurarlas mediante un método similar al de las acciones rápidas de Visualforce. Examinaremos las acciones de Lightning más detenidamente a continuación.