Salesforce MFA: una alternativa con Blockchain

Cuando publiqué el segundo artículo sobre el uso de Salesforce MFA, mi compañero de comunidad Manuel Tejeiro (kudos), me preguntó en Linkedin más o menos esto: nuestros usuarios no tienen dispositivos, implementar MFA se hace muy difícil. Curiosamente, a mí me ha sucedido algo parecido en mi proyecto, y pensé, ¿cómo puede ser MFA una… Leer más Salesforce MFA: una alternativa con Blockchain

SFDX CLI Scanner, la navaja suiza para el análisis de código estático en Salesforce

Salesforce acaba de publicar un plugin para su CLI, denominado CLI Scanner. En este artículo veremos qué es, para qué sirve, cómo utilizarlo y sus fortalezas y puntos de mejora. ¿Qué es? Salesforce CLI Scanner es un plug-in de la CLI de Salesforce (vaya frase!!). Esto implica que es invocable en la línea de comandos,… Leer más SFDX CLI Scanner, la navaja suiza para el análisis de código estático en Salesforce

Cómo mejorar la entrega de correos en Salesforce: introducción a SPF, DKIM, DMARC y Email Relay

Salesforce permite enviar correos de varias formas, pero muchas veces todo el esfuerzo invertido, puede verse al traste, porque el correo no llega a su destino. En este artículo, explico varios de los conceptos que influyen en el nivel de entrega de los mensajes. Introducción Existen muchas opciones para enviar correos desde Salesforce: Mediante Workflow… Leer más Cómo mejorar la entrega de correos en Salesforce: introducción a SPF, DKIM, DMARC y Email Relay

Salesforce CLI: la herramienta de automatización para todos

Existen muchos artículos sobre los comandos que podemos lanzar con la linea de comandos de Salesforce, la llamada Salesforce CLI. Pero en muchas ocasiones, me pregunto si al mostrar todos esos comandos, conseguimos realmente transmitir las capacidades y los beneficios que la CLI puede aportar a todos, sin excepción. Por este motivo, este artículo tiene… Leer más Salesforce CLI: la herramienta de automatización para todos

Introducción a Change Data Capture en Salesforce

Change Data Capture es un mecanismo ya disponible en Winter ’19 que facilita la integración entre sistemas y permite crear nuevos procesos de negocio, generando eventos (Change Data Events) cuando creamos, actualizamos, eliminamos o recuperamos un registro de un objeto. En esta entrada veremos que con tan solo pocos clics podremos activar la generación de… Leer más Introducción a Change Data Capture en Salesforce

Crear y desplegar un Protected Custom Metadata Type con información confidencial

Vimos en la entrada anterior las alternativas para almacenar información confidencial en Salesforce y vimos que el mecanismo preferido inicialmente, era la creación y despliegue de un Protected Custom Metadata Type. En este artículo veremos paso a paso y en detalle: La arquitectura recomendada por Salesforce para el Managed Package y asegurar la confidencialidad de… Leer más Crear y desplegar un Protected Custom Metadata Type con información confidencial

Cómo almacenar información confidencial

Durante estas fechas (Navidades),  es fundamental saber guardar ciertos secretos 😉 . Saber qué secretos ocultar, a quién y a quién no ocultarlos, y cuanto esfuerzo nos a va suponer ocultarlo. Aparecen varias opciones y así no romper la magia de los más pequeños demasiado pronto. Sucede de igual manera en Salesforce cuando deseamos almacenar… Leer más Cómo almacenar información confidencial

Meetup Taller Desarrollo con Visual Studio Code en Salesforce (novedades Dreamforce ’18)

Ayer 13/12 nos reunimos el grupo de Barcelona Salesforce Developer’s, donde presenté las novedades de Desarrollo con Visual Studio Code presentadas en el Dreamforce 2018. Como siempre la gente súper implicada, participativa, y agradecer a @Pablo y al equipo de @Indra-Minsait  por hacer posible nuevamente el evento. La verdad es que tengo una suerte enorme de… Leer más Meetup Taller Desarrollo con Visual Studio Code en Salesforce (novedades Dreamforce ’18)

Dreamforce Gathering 2018 Barcelona con 1 Millón de Minions

Ayer, 06/11 tuvimos el evento de Dreamforce Gathering 2018 en Barcelona, conjuntamente el grupo de Developers y Administradores de Salesforce. Primero de todo agradecer a Cognizant, por ceder sus oficinas, y a los organizadores Pablo García, David Sánchez y Roger Borges, por la magnífica organización (dedicando su tiempo), lo interesante del evento y el buen… Leer más Dreamforce Gathering 2018 Barcelona con 1 Millón de Minions

Optimización de Queries (Parte 2) – con Query Plan y Tooling/REST API

Vimos en la entrada anterior que el objetivo de la optimización de consultas es conseguir: Obtener el menor coste posible, es decir el mejor plan de ejecución Que este coste sea inferior a 1, significando que la consulta es selectiva utilizando los índices creados Como desarrolladores o administradores necesitamos validar si una consulta será selectiva… Leer más Optimización de Queries (Parte 2) – con Query Plan y Tooling/REST API

Meetup: Framework de Triggers en el Barcelona Developer Group con superhéroes

Ayer 04/10 tuvimos el Meetup en Barcelona, de como crear un framework de triggers Rock-Solid, con las ideas que propusieron Tony Scott, Dan Appleman y Hari Krishnan, en la  Developer Community . Es un placer, encontrarnos y compartir conocimientos y experiencias de todos, deberíamos vernos más!! Mil gracias a Pablo García por toda su organización y a… Leer más Meetup: Framework de Triggers en el Barcelona Developer Group con superhéroes

Data Skew Detector: aplicación para detectar Data Skew en tu ORG

En la entrada anterior describí que era la anomalía en los datos llamada Data Skew en Salesforce. Y aunque ese es el primer paso, lo realmente útil, en nuestro día a día, es poderlo detectar con antelación. No conozco qué Salesforce ofrezca, ninguna utilidad para la localización de Data Skew, aunque anticiparnos a qué suceda… Leer más Data Skew Detector: aplicación para detectar Data Skew en tu ORG

Data Skew: bloqueos y pérdida de rendimiento con GRU y los Minions

(Actualización 11/12/2018:  realizé una presentación en el evento, Barcelona Dreamforce Global Gathering 2018, donde expuse la problemática de Data Skew. Para la explicación, utilizé analogías con Gru y los Minions, y dado su buen recibimiento he creído necesario actualizar este artículo y el uso de las analogías que utilicé). Sucede habitualmente que podemos tomar decisiones para… Leer más Data Skew: bloqueos y pérdida de rendimiento con GRU y los Minions

Análisis de código Estático con PMD

(Actualizado Mayo 2020) Desde hace ya mucho, para los lenguajes de programación más comunes, disponemos de analizadores de código estático. Son herramientas, que aplican reglas de validación al código que escribimos. Salesforce no proporciona una herramienta nativa dedicada al análisis de código estático APEX. Afortunadamente existen diferentes opciones en el mercado: CodeScan, Checkmarx, PMD, etc.… Leer más Análisis de código Estático con PMD

Trigger Frameworks – El framework de Hari Krishnan: lo bueno hecho mejor (Parte 4)

Como tercera entrada de la serie de Frameworks para la gestión de Triggers, no podía faltar la propuesta de Hari Krishnan. Este framework no es revolucionario, sinó que cómo explica el mismo autor, fue la culminación de evolucionar las ideas de Tony Scott, Dan Appleman, siendo mejoradas. De los 3 frameworks analizados en esta serie,… Leer más Trigger Frameworks – El framework de Hari Krishnan: lo bueno hecho mejor (Parte 4)

Trigger Frameworks – El framework de Appleman que los inició a todos (Parte 3)

Las ideas propuestas por Dan Appleman en su libro Advanced Apex para la gestión eficiente de triggers, han sido la base para varios frameworks aparecidos posteriormente. De hecho, el título que el autor dio al capítulo de su libro, «One trigger to rule them all» es ampliamente mencionado en muchos artículos y sitios web. Mi objetivo… Leer más Trigger Frameworks – El framework de Appleman que los inició a todos (Parte 3)

Trigger Frameworks – Un patrón de triggers simple y potente (Parte 2)

Uno de los primeros patrones/frameworks que aparecieron fue en un Force.com Cookbook, y después mejorado en su propio blog, por su propio autor, Tony Scott. Utilizaré la nomenclatura de Patrón en lugar de Framework, porque realmente el autor no propuso, ni era su propósito, facilitar un framework, sino unas buenas prácticas que dieran respuesta a las… Leer más Trigger Frameworks – Un patrón de triggers simple y potente (Parte 2)

Trigger Frameworks – Triggers súper vitaminados (Parte 1)

Los triggers, son una funcionalidad ampliamente utilizada, pero que a medida que avanza el proyecto y se afianza, su uso desordenado provoca situaciones inadvertidas o efectos laterales indeseados, con frustración por parte del desarrollador y del usuario. En este artículo quiero explicar, cuales son las problemáticas habituales, cuando aparecen, y las best practices y frameworks… Leer más Trigger Frameworks – Triggers súper vitaminados (Parte 1)

Kung Fu Panda Salesforce Async

Ayer por la tarde (07/06/2018) fue un placer presentar un meetup al Barcelona Salesforce Developer Group  las capacidades asíncronas de Salesforce: Como crear procesos asíncronos Como los gestiona la plataforma Las colas de ejecución y pacificación Un ejemplo real de requerimientos complejos y como satisfacerlos

Dynamic Planning for Async Processing

As explained in the last 2 entries, asynchronous processing and execution planning capabilities on Salesforce are very useful and powerful. But nonetheless, in some complex scenarios, you will find some limitations that can be overcome easily. Let me explain how, with some Apex Developing and using standard capabilities, you can get a quite powerful Dynamic… Leer más Dynamic Planning for Async Processing

Apex Connector Framework – Usar un servicio externo como un Objeto Nativo

Vimos en las entradas anteriores sobre el uso de oData en Salesforce con Connect, pero dejé para más adelante el Apex Connector Framework (ACF), y ha llegado la hora. Con un caso de uso que espero entretenido e interesante, muestro como el ACF nos abre un fácil integración con sistemas externos que sin él tendría… Leer más Apex Connector Framework – Usar un servicio externo como un Objeto Nativo

Planificador Dinámico para Procesos Asíncronos

Como hemos visto en las 2 entradas anteriores, las capacidades asíncronas de Salesforce y su planificación son de gran utilidad. Aún así, vimos que podemos encontrar una carencia: si nuestros procesos asíncronos tiene condiciones funcionales o técnicas de las que depende lanzar su ejecución, no existe la posibilidad de configurar estas dependencias. Mi objetivo es… Leer más Planificador Dinámico para Procesos Asíncronos

Casos de uso para Apex asíncrono

Partiendo del artículo anterior donde vimos como Salesforce gestiona la ejecución de los procesos asíncronos  veamos como seleccionar el/los método/s  más adecuado/s en casos de uso reales. Recordemos las posibilidades que tenemos: Utilización de la anotación @Future Implementación de la interfaz Schedulable Implementación de la interfaz Queueable Implementación de la interfaz Batchable

Empezando Apex Asíncrono por las colas

En esta entrada me centraré, en cómo diseñar la ejecución de Procesos Asíncronos Apex (en adelante Apex Async), aprovechando las capacidades de la plataforma. Pero lo haré de manera invertida a como se hace habitualmente, donde se explica como programar los mecanismos de programación. Pero en IMMO, si los desarrolladores, arquitectos y administradores, entendemos bien… Leer más Empezando Apex Asíncrono por las colas

Introducción a la Arquitectura de Eventos en Salesforce

«Four years from now, ‘mere mortals’ Will begin to adopt an event-driven architecture (EDA) for the sort of complex event processing that has been attempted only by software gurus [until now]’ —Roy Schulte (Gartner), 2003 (Entrada actualizada en Enero 2019, al liberarse como GA el mecanismo de Change Data Capture en Winter 19). En esta… Leer más Introducción a la Arquitectura de Eventos en Salesforce

BULK API v2: 2 veces más rápida con la mitad de código

Una de las novedades que quizás pasaron inadvertidas en la última release de Winter ’18, fue la nueva versión de la BULK API, denominada BULK API v2, disponible en v41.0. Esta nueva versión, sigue siendo una API REST, que utiliza los verbos HTTP para crear Jobs, cerrar/abortar, eliminar y obtener información al respecto, aportando novedades… Leer más BULK API v2: 2 veces más rápida con la mitad de código

Replicar cambios en Salesforce hacia sistemas externos – Opciones y alternativas

No creo que sea casualidad que, en cada nueva versión, Salesforce introduzca mejoras sustanciales, a la permeabilización de sus datos y en especial, intentar hacerlo de forma eficiente, estándar y cada vez más simple. Hasta hace relativamente pocos años, la integración entre Salesforce y sistemas externos, estaba limitada a unos escenarios concretos y a unas… Leer más Replicar cambios en Salesforce hacia sistemas externos – Opciones y alternativas

Salesforce Connect para acceder a datos en Amazon RDS via oData

Supongamos el siguiente caso de uso: Queremos acceder a una gran cantidad de datos, que están fuera de nuestra ORG de Salesforce (presumiblemente en una base de datos en nuestro CPD) Queremos acceder a estos datos, sin interfaces ni APIs Queremos realizar reporting y análisis, cruzando esta base de datos con nuestros objetos declarados en… Leer más Salesforce Connect para acceder a datos en Amazon RDS via oData

Una posible adopción de gitFlow en proyectos Salesforce

Vincent Driessen en su blog GitFlow- A successfull Branching Model, describe el casi proceso de facto que aplican muchos equipos de desarrollo para la gestión de ramas (aunque prefiero la explicación y gráficos de AtlassiangitFlow Workflow.)-. En esta entrada, intento explicar por qué, al menos en mi caso, no es directa su aplicación en un… Leer más Una posible adopción de gitFlow en proyectos Salesforce

Mi lista de Limitaciones en Integraciones de Salesforce

Creo que todos lo hemos sufrido -> «Salesforce no soporta FTP nativo» -> Mala cara. De mi background como arquitecto de Integración esa afirmación sorprende, pero cuando conoces las capacidades de Integración de Salesforce y otros aspectos como su Seguridad, Fiabilidad, Documentación, Comunidad, etc., se te pasa el susto. Mantengo una lista de las limitaciones… Leer más Mi lista de Limitaciones en Integraciones de Salesforce