Categorías
Administración de Salesforce

Fórmulas, Roll-Up Summary y reglas de validación en Salesforce: guía práctica sin código

Cómo usar campos de fórmula, Roll-Up Summary y reglas de validación en Salesforce sin código: ejemplos, errores comunes, la regla de fechas que sí funciona y un ejercicio.

Buena parte de las reglas de una empresa se pueden llevar a Salesforce sin escribir una sola línea de código. Calcular un total, resumir lo que pasa en los registros relacionados o impedir que alguien guarde un dato incorrecto son tareas que un administrador resuelve desde Setup, con clics y fórmulas. A eso se lo llama lógica de negocio declarativa, y tiene tres herramientas centrales: los campos de fórmula, los campos de resumen (Roll-Up Summary) y las reglas de validación.

En esta guía vemos para qué sirve cada una, cómo se configuran y cuáles son los errores más comunes al usarlas. El contenido sigue el módulo de Trailhead «Fórmulas y validaciones» y lo complementa con lo que aparece en la práctica diaria.

Tres herramientas, tres trabajos

La forma más simple de recordarlas es con un verbo cada una: la fórmula calcula, el Roll-Up Summary resume y la regla de validación controla. Se combinan entre sí: un Roll-Up puede sumar importes, una fórmula puede calcular un porcentaje sobre ese total y una regla puede impedir que el porcentaje supere un tope.

Diagrama de las tres herramientas declarativas de Salesforce: el campo de fórmula calcula, el Roll-Up Summary resume y la regla de validación controla

Campos de fórmula: valores que se calculan solos

Un campo de fórmula obtiene su valor a partir de otros campos, funciones u operaciones. Es de solo lectura: nadie lo completa a mano, y como se calcula cada vez que se muestra el registro, siempre está al día. Si cambia el precio o la cantidad, el total cambia sin que nadie toque nada.

Puede leer campos del mismo objeto y también de sus objetos padre, por ejemplo Account.Industry desde una oportunidad. Al crearlo se elige el tipo de resultado: número, moneda, porcentaje, fecha, texto o casilla de verificación.

Estas son cuatro fórmulas que se usan todos los días:

NecesidadFórmulaResultado
Importe totalPrecio__c * Cantidad__cMoneda
Días hasta el cierreCloseDate - TODAY()Número
Nombre completoFirstName & " " & LastNameTexto
Industria de la cuentaTEXT(Account.Industry)Texto

Dos detalles que conviene tener en cuenta. Una lista de selección no se puede usar directamente como texto: hay que convertirla con TEXT(). Y si una fórmula divide, protegela del cero, por ejemplo con IF(Precio__c = 0, 0, (Precio__c - Costo__c) / Precio__c) para calcular un margen. El editor de fórmulas ayuda con el botón Insertar campo, que evita escribir nombres de API a mano, y con Comprobar sintaxis, que conviene usar siempre antes de guardar.

Campos de resumen (Roll-Up Summary)

Un campo de resumen vive en el objeto padre y lee los registros hijos. Las operaciones disponibles son cuatro: SUM (suma), COUNT (cantidad de registros), MIN (valor mínimo) y MAX (valor máximo). A diferencia de la fórmula, el valor sí se guarda, y Salesforce lo recalcula solo cada vez que cambian los hijos.

Un ejemplo típico es el total ganado por cuenta: un Roll-Up en Cuenta que suma el importe de las oportunidades, con un filtro que toma solo las que están en etapa Cerrada ganada. El filtro es lo que convierte un dato cualquiera en un indicador útil.

Diagrama de un Roll-Up Summary que suma tres oportunidades cerradas ganadas de 5.000, 4.000 y 6.000 en un total de 15.000 en la cuenta, y deja fuera una oportunidad en negociación

Tres aclaraciones que generan muchas consultas:

  • Requiere una relación maestro-detalle. Hay excepciones entre objetos estándar: Cuenta puede resumir sus Oportunidades y Oportunidad puede resumir sus Productos, aunque esas relaciones no sean maestro-detalle. Entre objetos personalizados unidos por una relación de búsqueda no se puede, y la alternativa es un Flow que haga el cálculo. Si estás decidiendo cómo relacionar dos objetos, te puede servir esta guía para elegir entre Lookup y objeto de unión.
  • No existe el promedio. Para obtenerlo, creá dos Roll-Up (uno con SUM y otro con COUNT) y un campo de fórmula que divida uno por el otro.
  • Hay un límite por objeto. Salesforce permite 25 campos de resumen por objeto de forma predeterminada, así que conviene usarlos con criterio.

Reglas de validación: frenar el dato malo antes de guardarlo

Una regla de validación evalúa una fórmula cada vez que alguien intenta guardar un registro. Si la fórmula devuelve TRUE, Salesforce muestra un mensaje de error y no guarda. El punto que más cuesta al principio es que la fórmula describe el error, no el dato correcto: tiene que dar TRUE cuando el dato está mal.

Diagrama del flujo de una regla de validación: el usuario guarda, Salesforce evalúa la fórmula y, si da TRUE, muestra el error y no guarda, con el ejemplo Amount menor que 0

Con la fórmula Amount < 0, una oportunidad con importe 500 se guarda sin problemas, y una con importe -100 queda bloqueada. El mensaje se puede mostrar arriba de la página o junto al campo; junto al campo es más claro para el usuario. Un buen mensaje dice qué está mal y cómo corregirlo, por ejemplo «El importe no puede ser negativo.»

El caso de las fechas de cierre

Un ejemplo que aparece en casi todos los cursos es impedir fechas de cierre anteriores a hoy con CloseDate < TODAY(). En la práctica esa regla genera problemas: bloquea cualquier edición de una oportunidad vieja, aunque el usuario esté cambiando otro campo, y también las oportunidades ya cerradas. La versión que funciona en producción es esta:

AND(
  OR(ISNEW(), ISCHANGED(CloseDate)),
  CloseDate < TODAY(),
  NOT(IsClosed)
)

Así la regla solo actúa al crear el registro o cuando cambia la fecha, y nunca sobre oportunidades ganadas o perdidas. Como siempre, hay que ajustarla a la política comercial de cada empresa.

Cuál usar en cada caso

FórmulaRoll-Up SummaryValidación
Qué haceCalcula un valorResume registros hijosBloquea datos inválidos
Dónde viveCualquier objetoEl objeto padreEl objeto que se valida
Qué necesitaCampos del registro o de sus padresMaestro-detalle o excepción estándarUna fórmula que dé TRUE o FALSE
Guarda el valorNo, se calcula al leerSí, se recalcula soloNo guarda valores

Dónde se configuran

  1. Abrí Setup desde el ícono de engranaje y entrá al Gestor de objetos.
  2. Elegí el objeto. Para campos, andá a Campos y relaciones; para reglas, a Reglas de validación. Recordá que el Roll-Up se crea en el objeto padre.
  3. Creá un campo nuevo de tipo Fórmula o Resumen de acumulación, o una regla nueva.
  4. Comprobá la sintaxis, definí qué perfiles ven el campo y probá con registros reales antes de dar el trabajo por terminado.

Buenas prácticas

  • Mensajes que enseñan. Cada error tiene que decir qué corregir.
  • Descripción siempre. Cada campo y cada regla con su porqué, para quien mantenga la org después. Antes de crear un campo nuevo, vale la pena repasar las preguntas que conviene hacerse primero.
  • Una salida para las cargas masivas. Creá un permiso personalizado, asignalo al usuario de integración y agregá a la regla la condición NOT($Permission.Omitir_Validaciones). Así una importación no falla por reglas pensadas para usuarios.
  • Probar con todos. Las reglas también aplican a integraciones y a Flows, así que una regla nueva puede romper un proceso automático que ya funcionaba.

Ejercicio para practicar

En un Trailhead Playground, probá estos tres pasos:

  1. Fórmula en Oportunidad: un campo numérico con los días que faltan para el cierre. Solución: CloseDate - TODAY(), tipo Número, sin decimales.
  2. Roll-Up en Cuenta: el total ganado. Solución: objeto Oportunidades, tipo SUM, campo Importe, filtro Etapa igual a Cerrada ganada.
  3. Regla en Oportunidad: no permitir pasar a la etapa Propuesta sin importe. Solución: AND(ISPICKVAL(StageName, "Proposal/Price Quote"), ISBLANK(Amount)), usando el valor de API real de la etapa en tu org.

Este contenido forma parte de las clases en vivo y gratuitas de Salesforce que damos todos los jueves en EGA Futura Academy. Podés ver el calendario e inscribirte en EGAFutura.com/salesforce. Si después de esta guía querés ver cómo se aplican fórmulas, resúmenes y validaciones en un sistema de gestión completo construido sobre Salesforce, EGA Futura ERP está publicado en el AppExchange y corre 100 % nativo dentro de tu org.

Seguí leyendo

Por Angie Cagliolo

Head of Customer Success en EGA Futura, con más de diez años en la empresa. Traductora pública de inglés de formación, pasó del ámbito académico al ecosistema Salesforce. Coordina equipos multidisciplinarios y acompaña a las organizaciones que usan EGA Futura ERP en su evolución digital, con foco en que cada implementación llegue a resultados concretos y medibles. Escribe sobre estrategia de negocio e inglés profesional para el ecosistema Salesforce.