Blue Canvas
Metadatos de SalesforceDatos de CPQPerfiles y permisos
Planes
Control de versionesRespaldo de metadatosComparación e implementación de sandboxesResolución de conflictos de fusiónResolución de dependencias de camposIntegraciones
Para administradores de SalesforcePara desarrolladores de ApexPara seguridad y cumplimientoPara grandes empresas
Operaciones académicasAgenda una demoBlogDocumentaciónHistorias de clientesDirectorio de agenciasHerramientasCertificación SOC 2
EN|ESContáctanosAccederComenzar
Consejos para desarrolladores

Depurar Apex con los registros de depuración y los puntos de control de Salesforce

Explora los registros de depuración y los puntos de control de Salesforce para depurar Apex. Comprende los mensajes de registro y los puntos de control para resolver problemas de forma eficiente.

Randalyn Hill-CofferPor Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas·5 de diciembre de 2024·10 min de lectura

En este artículo, profundizaremos en los aspectos esenciales de la depuración de Apex en Salesforce, con especial atención al uso de registros de depuración y puntos de control. Te guiaremos por todo el proceso, desde comprender los desafíos particulares de depurar en una arquitectura multiinquilino como Salesforce hasta la aplicación práctica de crear instrucciones de depuración y configurar indicadores de seguimiento.

Estas son nuestras 5 conclusiones clave:

  • La depuración en Salesforce difiere de la de otros entornos debido a su arquitectura multiinquilino, y herramientas como los registros de depuración y los puntos de control son esenciales para resolver problemas en el código Apex.
  • Un registro de Salesforce puede contener ejecución de código, instrucciones de depuración, marcas de tiempo e información sobre los límites de uso de recursos.
  • Puedes agregar instrucciones de depuración al código Apex para generar registros y configurar indicadores de seguimiento para registrar la actividad de un usuario específico.
  • Puedes consultar los registros de depuración en la Configuración de Salesforce, y es importante prestar atención a la fecha y hora de vencimiento del indicador de seguimiento.
  • Los registros de Salesforce ofrecen información valiosa sobre la ejecución de unidades de código y transacciones, además de información acumulada de rendimiento, como la cantidad de consultas SOQL, el tiempo de CPU y el tamaño de la memoria dinámica.
En este artículo
  • Introducción a los registros de depuración en Salesforce
  • Ejemplo de código
  • Habilitar registros en Configuración
  • Ver registros en Configuración
  • Comprender los mensajes de registro en Salesforce
  • Cómo usar puntos de control en Salesforce
  • Recursos sobre registros de depuración de Salesforce
  • Soluciones de pago
  • Depurador avanzado de Apex de Salesforce
  • Illuminated Cloud
  • Videos
  • Lecturas adicionales
  • ¡Es hora de aprovechar el poder de los registros de depuración y los puntos de control en Apex de Salesforce!
  • Preguntas frecuentes: registros de depuración en Salesforce

‍“El 90% de programar es depurar. El otro 10% es escribir errores” — @bramcohen

Introducción a los registros de depuración en Salesforce

Un registro típico de Salesforce contiene varios elementos: ejecución de código, instrucciones de depuración, marcas de tiempo y los límites de uso de recursos que podrías estar alcanzando.

Ejemplo de código

La forma más sencilla de empezar a generar registros en Salesforce es agregar una instrucción de depuración a tu código. Usaremos el ejemplo predeterminado de código de un desencadenador Apex que aparece en la documentación de Salesforce sobre Cómo escribir tu primera clase y desencadenador Apex.

En el tutorial, creamos un objeto personalizado llamado Libro con un campo personalizado llamado Precio:

public class HelloWorld {
public static void applyDiscount(Book__c[] books) {
for (Book__c book : books) {
book.Price__c *= 0.9;
     }
  }
}

Tenemos un desencadenador que aplica un descuento del 10% cada vez que agregas un nuevo libro:

trigger HelloWorldTrigger on Book__c (before insert) {
Book__c[] books = Trigger.new;
HelloWorld.applyDiscount(books);
}

Lo más sencillo es agregar una instrucción System.debug() al desencadenador de esta manera:

trigger HelloWorldTrigger on Book__c (before insert) {
Book__c[] books = Trigger.new;
HelloWorld.applyDiscount(books);
System.debug('my message that I want to show up in the logs');
}

Habilitar registros en Configuración

Si agrego un nuevo Libro, los registros de depuración de Salesforce mostrarán la instrucción que agregué. Es algo parecido a agregar una instrucción print en Python. Pero ¿dónde veo este registro?

  • Primero, ve a Configuración y busca Registros de depuración.
debug-logs-search.png

Luego, configura una nueva marca de seguimiento. Una marca de seguimiento le indica a Salesforce que registre cualquier actividad causada por un usuario específico.

  • Haz clic Nueva marca de seguimiento. El Nombre de la entidad rastreada será el usuario para el que queremos capturar registros. Puedes usar tu propia cuenta o la de otro usuario, según para quién quieras generar los registros. Por lo general, para depurar usarás tu propia cuenta.

También tendrás que establecer un Nivel de depuración. Hay varios niveles de depuración:

LoggingLevel.NONE
LoggingLevel.ERROR
LoggingLevel.WARN
LoggingLevel.INFO
LoggingLevel.FINE
LoggingLevel.FINER
LoggingLevel.FINEST

Los registros de Salesforce tienen un límite de 2MB, así que quizá debas ajustar un poco los niveles de registro para asegurarte de no superar ese límite.

  • En este caso, solo vamos a establecer Código Apex para Máximo detalle y Sistema para Depuración.
    Deja el resto en Información.
  • Haz clic Guardar.

Ten en cuenta que tu seguimiento tiene una fecha y hora de vencimiento. Revísalas si tus registros dejan de aparecer misteriosamente después de unos minutos de depuración.

Ver registros en Configuración

Ahora vuelve a ejecutar tu desencadenador creando un nuevo Libro. Cuando vuelvas a los registros de depuración, ya deberías ver registros.

  • Vuelve a cargar la página de registros de depuración. Ya deberías ver registros.
  • Haz clic Ver para abrir el registro.

Una vez aquí, ya tienes registros que puedes revisar.

‍

Comienza ahora con la integración continua para Salesforce

¡Nuestras herramientas de desarrollo te ayudan a comparar organizaciones de Salesforce en segundos, fusionar cambios de varios sandboxes en uno y respaldar continuamente tus cambios de Apex y metadatos!

Comprender los mensajes de registro en Salesforce

¿Qué contiene un registro? El registro de depuración tiene varios elementos útiles:

39.0 APEX_CODE,FINEST;APEX_PROFILING,INFO; CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO; VISUALFORCE,INFO;WAVE,INFO;WORKFLOW,INFO
05:02:13.0 (218671)|USER_INFO|[EXTERNAL]|00541000001zI0K|jack+albert@bluecanvas.io|Pacific Standard Time|GMT-08:00
05:02:13.0 (257361)|EXECUTION_STARTED
05:02:13.0 (262162)|CODE_UNIT_STARTED|[EXTERNAL]|TRIGGERS
05:02:13.0 (300519)|CODE_UNIT_STARTED|[EXTERNAL]|01q41000001JanC|HelloWorldTrigger on Book trigger event BeforeInsert for [new]
05:02:13.0 (359311)|HEAP_ALLOCATE|[EXTERNAL]|Bytes:8
05:02:13.0 (764600)|HEAP_ALLOCATE|[72]|Bytes:3
05:02:13.0 (834010)|HEAP_ALLOCATE|[77]|Bytes:152
05:02:13.0 (857019)|HEAP_ALLOCATE|[342]|Bytes:408
05:02:13.0 (875943)|HEAP_ALLOCATE|[355]|Bytes:408
05:02:13.0 (894176)|HEAP_ALLOCATE|[467]|Bytes:48
05:02:13.0 (927154)|HEAP_ALLOCATE|[139]|Bytes:6
05:02:13.0 (945255)|HEAP_ALLOCATE|[EXTERNAL]|Bytes:1
05:02:13.0 (1072442)|HEAP_ALLOCATE|[EXTERNAL]|Bytes:8
05:02:13.0 (1086106)|VARIABLE_SCOPE_BEGIN|[1]|this|HelloWorldTrigger|true|false
05:02:13.0 (1139970)|VARIABLE_ASSIGNMENT|[1]|this|{}|0x612fbadc
05:02:13.0 (1191038)|HEAP_ALLOCATE|[EXTERNAL]|Bytes:8
05:02:13.0 (1198395)|VARIABLE_SCOPE_BEGIN|[1]|this|HelloWorldTrigger|true|false
05:02:13.0 (1214030)|VARIABLE_ASSIGNMENT|[1]|this|{}|0x612fbadc
05:02:13.0 (1219830)|STATEMENT_EXECUTE|[1]
05:02:13.0 (1221599)|STATEMENT_EXECUTE|[2]
05:02:13.0 (1258733)|HEAP_ALLOCATE|[50]|Bytes:5
05:02:13.0 (1285175)|HEAP_ALLOCATE|[56]|Bytes:5
05:02:13.0 (1293649)|HEAP_ALLOCATE|[64]|Bytes:7
05:02:13.0 (1684574)|VARIABLE_ASSIGNMENT|[2]|this.books|[{"IsDeleted":false,"OwnerId":"00541000001zI0KAAU",
"Price__c":100.00,
"Name":"Blog Book Test 1"}]|0x612fbadc
05:02:13.0 (1690698)|STATEMENT_EXECUTE|[3]
05:02:13.0 (3258094)|HEAP_ALLOCATE|[3]|Bytes:1
05:02:13.0 (3277447)|METHOD_ENTRY|[1]|01p4100000HR623|HelloWorld.HelloWorld()
05:02:13.0 (3281108)|STATEMENT_EXECUTE|[1]
05:02:13.0 (3286028)|STATEMENT_EXECUTE|[1]
05:02:13.0 (3291206)|METHOD_EXIT|[1]|HelloWorld
05:02:13.0 (3321524)|METHOD_ENTRY|[3]|01p4100000HR623|HelloWorld.applyDiscount(List<Book__c>)
05:02:13.0 (3350205)|VARIABLE_SCOPE_BEGIN|[2]|books|List<Book__c>|true|false
05:02:13.0 (3484434)|VARIABLE_ASSIGNMENT|[2]|books|[{"IsDeleted":false,"OwnerId":"00541000001zI0KAAU","Price__c":
100.00,     
"Name":"Blog Book Test 1"}]|0x2f08a20a
05:02:13.0 (3493612)|STATEMENT_EXECUTE|[2]
05:02:13.0 (3729368)|HEAP_ALLOCATE|[3]|Bytes:5
05:02:13.0 (3757183)|HEAP_ALLOCATE|[3]|Bytes:4
05:02:13.0 (3766245)|VARIABLE_SCOPE_BEGIN|[3]|b|Book__c|true|false
05:02:13.0 (3869071)|VARIABLE_ASSIGNMENT|[3]|b|{"IsDeleted":false,"OwnerId":"00541000001zI0KAAU",
"Price__c":100.00,
"Name":"Blog Book Test 1"}|0x6857411d
05:02:13.0 (3874120)|STATEMENT_EXECUTE|[3]
05:02:13.0 (3875268)|STATEMENT_EXECUTE|[4]
05:02:13.0 (3917921)|HEAP_ALLOCATE|[4]|Bytes:3
05:02:13.0 (3940194)|HEAP_ALLOCATE|[4]|Bytes:28
05:02:13.0 (4002038)|HEAP_ALLOCATE|[4]|Bytes:28
05:02:13.0 (4194737)|VARIABLE_ASSIGNMENT|[4]|this.Price__c|90.000|0x6857411d
05:02:13.0 (4218164)|HEAP_ALLOCATE|[3]|Bytes:5
05:02:13.0 (4239381)|VARIABLE_ASSIGNMENT|[3]|b|null|
05:02:13.0 (4249224)|METHOD_EXIT|[3]|01p4100000HR623|HelloWorld.applyDiscount(List<Book__c>)
05:02:13.0 (4254931)|STATEMENT_EXECUTE|[4]
05:02:13.0 (4259392)|HEAP_ALLOCATE|[4]|Bytes:45
05:02:13.0 (4309898)|USER_DEBUG|[4]|DEBUG|my message that I want to show up in the logs
05:02:13.4 (4323385)|CUMULATIVE_LIMIT_USAGE
05:02:13.4 (4323385)|LIMIT_USAGE_FOR_NS|(default)|
Number of SOQL queries: 0 out of 100
Number of query rows: 0 out of 50000
Number of SOSL queries: 0 out of 20
Number of DML statements: 0 out of 150
Number of DML rows: 0 out of 10000
Maximum CPU time: 0 out of 10000
Maximum heap size: 0 out of 6000000
Number of callouts: 0 out of 100
Number of Email Invocations: 0 out of 10
Number of future calls: 0 out of 50
Number of queueable jobs added to the queue: 0 out of 50
Number of Mobile Apex push calls: 0 out of 10

05:02:13.4 (4323385)|CUMULATIVE_LIMIT_USAGE_END
05:02:13.0 (7801949)|CODE_UNIT_FINISHED|HelloWorldTrigger on Book trigger event BeforeInsert for [new]
05:02:13.0 (56862492)|CODE_UNIT_FINISHED|TRIGGERS
05:02:13.0 (56876928)|EXECUTION_FINISHED

La primera línea es el Encabezado. Proporciona información sobre la versión y los niveles de registro que configuramos para las distintas categorías. Aquí puedes ver que tu nivel de registro de código Apex está configurado en Máximo detalle mientras que Validación está configurado en Información.

39.0 APEX_CODE,FINEST;APEX_PROFILING,INFO; CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO; VISUALFORCE,INFO;WAVE,INFO;WORKFLOW,INFO

La siguiente línea proporciona información del usuario:

USER_INFO|[EXTERNAL]|00541000001zI0K|jack+albert@bluecanvas.io|Pacific Standard Time|GMT-08:00

Esta información incluye el nombre del usuario que realizó la acción que generó el registro. También incluye su zona horaria. (¡Bryan menciona en su charla una ocasión en la que conocer la zona horaria fue crucial para corregir un error!)

A continuación, puedes ver que las unidades de ejecución han comenzado. Una unidad de ejecución contiene todo lo que ocurre durante una transacción. EXECUTION_STARTED y EXECUTION_FINISHED indican el inicio y el final de una unidad de ejecución.

05:02:13.0 (257361)|EXECUTION_STARTED
05:02:13.0 (262162)|CODE_UNIT_STARTED|[EXTERNAL]|TRIGGERS
05:02:13.0 (300519)|CODE_UNIT_STARTED|[EXTERNAL]|01q41000001JanC|HelloWorldTrigger on Book trigger event BeforeInsert for [new]

Dentro de las transacciones hay unidades de código. Las unidades de código son “unidades de trabajo independientes dentro de una transacción”. Las clases de Apex, los desencadenadores y las reglas de validación son ejemplos de unidades de código.

Cada transacción y unidad de código incluye una marca de tiempo y el número de nanosegundos transcurridos desde el inicio de la transacción (es el número largo entre paréntesis después de la marca de tiempo). Esto puede ser útil para depurar problemas de rendimiento.

Al final, obtienes información acumulada de rendimiento, incluidas las consultas SOQL, el tiempo de CPU y el tamaño de la memoria heap:

05:02:13.4 (4323385)|LIMIT_USAGE_FOR_NS|(default)|
Number of SOQL queries: 0 out of 100
Number of query rows: 0 out of 50000
Number of SOSL queries: 0 out of 20
Number of DML statements: 0 out of 150
Number of DML rows: 0 out of 10000
Maximum CPU time: 0 out of 10000
Maximum heap size: 0 out of 6000000
Number of callouts: 0 out of 100
Number of Email Invocations: 0 out of 10
Number of future calls: 0 out of 50
Number of queueable jobs added to the queue: 0 out of 50
Number of Mobile Apex push calls: 0 out of 10
05:02:13.4 (4323385)|CUMULATIVE_LIMIT_USAGE_END
05:02:13.0 (7801949)|CODE_UNIT_FINISHED|HelloWorldTrigger on Book trigger event BeforeInsert for [new]
05:02:13.0 (56862492)|CODE_UNIT_FINISHED|TRIGGERS
05:02:13.0 (56876928)|EXECUTION_FINISHED

Salesforce tiene más documentación sobre los registros de depuración que vale la pena leer.

Cómo usar puntos de control en Salesforce

También puedes usar la consola de desarrollador para depurar. Salesforce tiene un concepto llamado “puntos de control”.

Con los puntos de control, puedes “investigar los objetos en memoria en un punto específico de la ejecución y ver los otros objetos que hacen referencia a ellos”. Puedes obtener un volcado de la información de las variables en el momento de ese punto de control.

  • Para establecer un punto de control, haz clic en la línea de código donde quieras tomar la instantánea en la consola de desarrollador hasta que aparezca un pequeño punto rojo.
checkpoint.png

Si vuelves a ejecutar tu desencadenador (en nuestro ejemplo, al agregar un nuevo Libro) ahora puedes examinar los datos de las variables en ese momento.

  • En la pestaña Puntos de control de la consola de desarrollador, haz clic en el punto de control para explorar el árbol de archivos.

Aquí podemos ver que el título del libro es Don Quijote y el precio es $30 en el momento del punto de control:

Puedes establecer hasta 5 puntos de control a la vez. Usar varios puntos de control puede ayudarte a determinar exactamente dónde cambia la información de las variables. La información de la memoria heap también está disponible en los puntos de control.

Para obtener más información sobre los puntos de control, consulta esta documentación.

Recursos sobre registros de depuración de Salesforce

Soluciones de pago

También hay algunas soluciones de pago que ofrecen funciones de depuración avanzada.

Depurador avanzado de Apex de Salesforce

Salesforce vende Depurador avanzado que amplía el complemento Force.com IDE para Eclipse. Te permite establecer puntos de interrupción para clases y desencadenadores de Apex, ver variables, consultar la pila de llamadas, interactuar con clases globales, mostrar resultados en la consola y mucho más.


Illuminated Cloud

Algunos de los IDE de pago, como Illuminated Cloud también ofrecen un depurador avanzado de Apex como parte de su plataforma.

Videos

Como siempre, la comunidad de Salesforce cuenta con excelentes recursos sobre la depuración de Apex. Como mencionamos antes, Bryan Leboff, de Appirio, dio una excelente charla sobre las mejores prácticas para depurar Apex. Puedes ver el video completo aquí:


Lecturas adicionales

El blog de Jitendra Zaa tiene varios excelentes tutoriales y artículos sobre depuración, incluidos videos.

‍

¡Es hora de aprovechar el poder de los registros de depuración y los puntos de control en Apex de Salesforce!

Como hemos visto a lo largo de este artículo, Apex de Salesforce presenta desafíos únicos de depuración. Dicho esto, creemos que, con los conocimientos y las herramientas adecuados, ¡estos desafíos se pueden superar de manera eficaz!

Al familiarizarte con herramientas como los registros de depuración y los puntos de control, obtendrás información clave sobre la ejecución de las unidades de código y las transacciones de tu aplicación. También accederás a información de rendimiento, como las consultas SOQL, el tiempo de CPU y el tamaño de la memoria heap. Estos datos son invaluables para resolver problemas en tu código Apex y mejorar su eficiencia. A medida que corrijas tu código, puedes usar herramientas DevOps como Blue Canvas para implementar parches sin complicaciones en tus organizaciones de Salesforce (ofrecemos una prueba gratuita de 14 días, regístrate aquí).

¡Es hora de poner la teoría en práctica! Recuerda que un proceso de depuración sólido es clave para escribir código eficiente y sin errores. No dejes que los errores te frenen: potencia tu desarrollo con las herramientas de depuración adecuadas y acelera tu ciclo de implementación con Blue Canvas. 🚀

‍

-------------

Preguntas frecuentes: registros de depuración en Salesforce

¿Qué son los registros de depuración en Salesforce?

  • Los registros de depuración en Salesforce brindan información valiosa sobre la ejecución del código Apex y las transacciones. Contienen detalles de la ejecución del código, instrucciones de depuración, marcas de tiempo e información sobre los límites de ejecución. Son esenciales para resolver problemas y depurar código Apex.

¿Cómo puedo agregar instrucciones de depuración a mi código Apex para generar registros?

  • Para agregar instrucciones de depuración a tu código Apex en Salesforce, puedes usar el método System.debug(). Solo incluye el mensaje o la variable que quieras en la instrucción de depuración.

¿Cómo puedo ver los registros de depuración en Salesforce?

  • Para ver los registros de depuración en Salesforce, debes acceder al menú Configuración. Busca "Registros de depuración" en Configuración y encontrarás la opción para ver y administrar los registros. La página Registros de depuración muestra una lista de registros generados por distintos usuarios. Puedes hacer clic en "Ver" para abrir un registro específico y examinar su contenido.

¿Cómo puedo configurar indicadores de seguimiento para registrar la actividad de un usuario específico?

  • Los indicadores de seguimiento en Salesforce te permiten especificar la actividad de qué usuario se debe registrar en los registros de depuración. Para configurar un indicador de seguimiento, ve a Configuración y busca "Registros de depuración". Haz clic en "Nuevo indicador de seguimiento" y especifica el usuario cuyos registros quieres capturar. Además, debes establecer el nivel de depuración, que determina el nivel de detalle de los registros. Guarda el indicador de seguimiento para empezar a registrar la actividad del usuario especificado.

¿Por qué es importante llevar un control de la fecha y hora de vencimiento de los indicadores de seguimiento?

  • Los indicadores de seguimiento en Salesforce tienen una fecha y hora de vencimiento asociadas. Es esencial tenerlas en cuenta al configurar estos indicadores, ya que, cuando vencen, se detiene el registro de la actividad del usuario específico. Si tus registros dejan de aparecer sin explicación después de unos minutos de depuración, conviene revisar si el indicador de seguimiento venció.

¿Qué información puedo encontrar en los registros de depuración de Salesforce?

  • Los registros de depuración de Salesforce contienen información diversa que puede ayudarte a resolver problemas y comprender el comportamiento del código Apex. Entre los elementos que incluyen se encuentran detalles de la ejecución del código, marcas de tiempo, límites de ejecución, asignación de memoria heap, asignaciones de variables e información acumulada de rendimiento. Esta última ofrece datos sobre métricas como el número de consultas SOQL, el tiempo de CPU y el tamaño de la memoria heap.

¿Hay soluciones de pago para la depuración avanzada en Salesforce?

  • Sí, hay soluciones de pago para la depuración avanzada en Salesforce. Salesforce ofrece el Depurador avanzado, que amplía el complemento Force.com IDE para Eclipse. Te permite establecer puntos de interrupción, ver variables, interactuar con clases globales y más. Además, IDE como Illuminated Cloud también ofrecen un depurador avanzado de Apex como parte de su plataforma.

¿Hay recursos recomendados para aprender más sobre la depuración en Salesforce?

  • Sí, aquí tienes algunos recursos recomendados para aprender más sobre la depuración en Salesforce:
  • Bryan Leboff, de Appirio, dio una charla sobre las mejores prácticas para depurar Apex. Puedes ver el video completo para obtener más información.
  • El blog de Jitendra Zaa ofrece tutoriales y artículos sobre la depuración en Salesforce, incluidos videos que pueden ayudarte a comprender el proceso de depuración.

Comentarios

Deja un comentario

Boletín
Consejos de DevOps para Salesforce en tu correo

Nuevas publicaciones, lanzamientos y guías prácticas. Sin spam; cancela tu suscripción cuando quieras.

ÍNDICE
  • Introducción a los registros de depuración en Salesforce
  • Ejemplo de código
  • Habilitar registros en Configuración
  • Ver registros en Configuración
  • Comprender los mensajes de registro en Salesforce
  • Cómo usar puntos de control en Salesforce
  • Recursos sobre registros de depuración de Salesforce
  • Soluciones de pago
  • Depurador avanzado de Apex de Salesforce
  • Illuminated Cloud
  • Videos
  • Lecturas adicionales
  • ¡Es hora de aprovechar el poder de los registros de depuración y los puntos de control en Apex de Salesforce!
  • Preguntas frecuentes: registros de depuración en Salesforce
También te puede interesar
Tendencias en Blue Canvas
Hablemos de tu configuración de Salesforce

Obtén una demostración específica o una cotización a tu medida

Agenda una consultaSolicita una cotización
Historias de clientes
Equipos reales, resultados reales
Sysco
Sysco
Dejó atrás Jenkins y redujo los despliegues de horas a minutos
Twilio
Twilio
Ahorró 2–3 días por sprint mientras ampliaba el equipo rápidamente
Catalyst Consulting
Catalyst Consulting
La ciudad de Chicago ahorra horas cada día con revisiones de código y despliegues estructurados
También podrían interesarte nuestras otras publicaciones...
Leer más
Salesforce DevOps
Kenji Sano | 6 de octubre de 2026
Las 8 mejores herramientas de implementación de Salesforce en 2026

Compara las 8 mejores herramientas y descubre cuál se adapta a tu equipo.

Read more
Salesforce DevOps
Kenji Sano | 6 de octubre de 2026
Las 9 mejores agencias de Salesforce en México en 2026

Comparamos 9 agencias y consultoras Salesforce en México por experiencia, especialización y capacidad. Además, qué preguntar sobre DevOps antes de contratar.

Leer más
Arquitectura y recursos
Randalyn Hill-Coffer | 5 de octubre de 2026
Las 19 principales herramientas de operaciones académicas para instituciones de educación superior que usan Salesforce en 2027

Compara 19 herramientas de operaciones académicas y áreas relacionadas para instituciones de educación superior que usan Salesforce en 2027. Descubre cuáles funcionan en Salesforce, cuáles se conectan a través de tu SIS y dónde podrías necesitar una integración.

Blue Canvas

DevOps de Salesforce para equipos. Control de versiones basado en Git, copias de seguridad de metadatos y despliegue continuo.

(786) 591-0702

Certificación SOC 2Socio de SalesforceSalesforce AppExchange

Despliegue en Salesforce

  • Herramientas de despliegue
  • Para metadatos de Salesforce
  • Para datos de CPQ

Producto

  • Funcionalidades
  • Seguridad
  • Historias de clientes
  • Precios

Recursos

  • Documentación
  • Blog
  • Operaciones académicas
  • Encuesta Anthropic x Salesforce
  • Socios
  • Integraciones
  • Gestión de lanzamientos

Empresa

  • Quiénes somos
  • Contáctanos
  • Empleo
  • X (Twitter)
  • LinkedIn
  • GitHub
Mantente al día
Novedades del producto

Recibe las últimas funcionalidades, lanzamientos y análisis técnicos detallados directamente en tu correo.

Seguridad y privacidad

·

Sin spam. Cancela tu suscripción cuando quieras.

© 2026 Blue Canvas. Todos los derechos reservados.

Política de privacidadTérminos de uso