Lea sobre nuestras programaciones de actualización aquí.
Los sistemas demuestran un comportamiento automatizado al permitir al negocio cumplir objetivos y metas clave de forma más rápida y a escala. La automatización saludable permite a los usuarios centrarse en trabajo de alto valor y reduce el tiempo empleado en tareas manuales repetitivas o entrada de datos compleja.
La automatización suele significar traducir los procesos comerciales de un formulario a otro: de formulario en papel a formulario digital, de un sistema antiguo a uno nuevo. Con cada traducción de proceso comercial viene una oportunidad para la transformación.
La transformación no consiste en utilizar nuevas tecnologías para introducir cambios disruptivos y confusos para los usuarios. La transformación consiste en crear formas más sencillas de realizar el trabajo, permitiendo que el negocio crezca sin fricciones y capacitando a los usuarios comerciales para centrarse más en lo que realmente importa a sus partes interesadas. Desde un punto de vista arquitectónico, esto implica identificar tareas que se pueden eliminar por completo o gestionar automáticamente. Requiere una conexión clara entre cómo se utiliza la tecnología y su impacto mensurable en el negocio.
Algo importante a tener en cuenta acerca de la automatización con Salesforce: se puede realizar con una variedad de herramientas, utilizando conjuntos de habilidades programáticas y declarativas. Diseñar automatizaciones bien arquitectadas no se trata de elegir construir con solo una herramienta de automatización. Se trata de utilizar enfoques coherentes y predecibles, y permitir a los equipos desarrollar, probar, implementar y mantener las automatizaciones que diseña. Sus automatizaciones deben adoptar la forma más mantenible y legible posible.
Esta sección trata cómo diseñar y refactorizar automatizaciones para permitir a los negocios cumplir objetivos clave de forma más rápida y a escala. Puede mejorar la arquitectura de sus automatizaciones en Salesforce centrándose en la eficiencia y la integridad de los datos.
La creación de eficiencia en sus automatizaciones no se trata de volver a crear negocio como de costumbre con tecnologías de Salesforce. Se trata de comprender en profundidad las mediciones clave y los resultados comerciales que los equipos serán responsables de cumplir o realizar un seguimiento, y retroceder para ver unidades funcionales dentro y en todo el trabajo que está automatizando. Se trata de identificar cómo puede crear patrones con sus automatizaciones que permiten al negocio operar de forma más efectiva y rápida, a escala.
Una lógica de automatización eficiente hará que sus sistemas:
- Más ampliable y valiosa para el negocio
- Más útil para usuarios
- Más adaptable y capaz de satisfacer las cambiantes necesidades comerciales
Puede mejorar la eficiencia en sus automatizaciones a través del diseño de procesos y la lógica operativa.
El diseño de procesos implica definir las formas en que se realiza el trabajo. Construir procesos realmente eficientes y efectivos significa que sus diseños no solo replican formas actuales de trabajo. Identificar y eliminar pasos ineficaces o poco claros es esencial. Los procesos optimizados deben crear un valor comercial mensurable (consulte KPI) sin pasos innecesarios. Los pasos no claros o innecesarios probablemente crearán deudas técnicas y darán como resultado automatizaciones inmantenibles.
A menudo, la responsabilidad de descubrir y documentar procesos comerciales recaerá en un analista comercial o incluso un administrador del sistema. Los arquitectos son responsables de asociarse con estos miembros de su equipo para asegurarse de que sus diseños de procesos son técnicamente sólidos y están bien estructurados. Aplicar su Knowledge de la plataforma Salesforce lo antes posible ayudará su equipo a identificar procesos para simplificar a través de la automatización o procesos que necesitan cambiar para evitar personalizaciones costosas.
Para crear procesos optimizados para Salesforce, considere:
-
Defina procesos minuciosamente. Es más probable que los procesos con fines poco claros o definiciones ambiguas se malinterpreten en tiempo de diseño. Esto llevará a diseños defectuosos basados en suposiciones, lo que dará como resultado automatizaciones incorrectas o ineficientes. Asegúrese de que los procesos comerciales que desea automatizar cumplen los siguientes estándares:
- Con ámbito a una única función específica (consulte Unidades funcionales)
- Tiene productos claramente definidos y mensurables (consulte Valor comercial)
- Tiene entradas y salidas claramente definidas
-
Deje claros los pasos del proceso.* Aunque a veces puede ser tentador agregar pasos adicionales que “podrían ser útiles en el futuro”, este nunca es un buen enfoque. Cada paso en una automatización debe ser relevante para el resultado del proceso general. Asegúrese de que cada paso del proceso tiene las siguientes características:
- Realiza una tarea específica y granular (consulte la opción)
- Obligatorio para que el proceso genere su resultado definido (eliminar todos los pasos no esenciales)
- Se puede completar utilizando un número mínimo de recursos
- Hace uso de datos del sistema existentes en vez de solicitar entradas de usuario donde sea posible (Consulte implicación)
- Proporciona opciones de entrada que los usuarios pueden comprender sin necesidad de saber cómo funcionan los sistemas subyacentes (consulte útil)
La lista de patrones y antipatrones a continuación muestra el aspecto de la optimización adecuada (y deficiente) en una organización de Salesforce. Puede utilizarlos para validar sus diseños de automatización antes de crear o identificar automatizaciones que necesitan optimizarse más.
Para obtener más información acerca de las herramientas de automatización de procesos disponibles en Salesforce, consulte Herramientas relevantes para automatizados.
La lógica operativa trata de la eficacia con la que se traduce un proceso desde su diseño a una implementación real. Las automatizaciones con una sólida lógica operativa continúan funcionando bien, independientemente de los picos en los volúmenes de transacciones o el número de instancias simultáneas que se están ejecutando. Las automatizaciones lógicamente sólidas ayudan a los negocios a escalar más fácilmente para operar con niveles de demanda más altos. La creación de una sólida lógica operativa en sus automatizaciones está directamente relacionada con la fiabilidad general de su sistema.
Las automatizaciones que no funcionan de forma efectiva proporcionan malas experiencias de usuario y cliente, lo que lleva a pérdidas potenciales de ingresos y pérdida de Customer Trust. También tienen mayores costes de mantenimiento y pueden convertirse en cuellos de botella que retrasan los procesos relacionados, contribuyendo a problemas de rendimiento del sistema en general.
Para crear lógica operativa efectiva en automatizaciones, considere:
- Asegúrese de que todos los que crean automatizaciones saben cómo hacerlo. Las malas opciones de diseño se pueden realizar con cualquier tipo de herramienta de automatización. El código no es menos propenso a errores o malas opciones de implementación que las herramientas basadas en clics. El uso de Id. de referencia codificados, por ejemplo, es un antipatrón que aparece tanto en Flujo como en código. Las herramientas basadas en clics no deben verse como una licencia para permitir a cualquier usuario y a todos publicar una automatización en producción. Cada miembro del equipo que crea una automatización necesita saber cómo crearla de la forma correcta. Consulte los estándares de diseño y legibilidad para obtener más información acerca de cómo definir y aplicar estándares efectivos en sus sistemas.
- Documente claramente todas las rutas de ejecución. El mayor uso de automatizaciones no solo aumenta los volúmenes de datos potenciales, sino que también aumenta los contextos de invocación no planificados. Debe comprender cómo se pueden invocar diferentes automatizaciones y garantizar que los controles de transacciones apropiados (consulte Gestión de datos) aparecen en todas las automatizaciones que tienen múltiples puntos de entrada. Por ejemplo, los flujos de pantalla no se ejecutarán con cargas de datos masivas, pero Apex desencadena y desencadena (e inicia automáticamente) flujos probablemente sí. Documentar claramente rutas de ejecución planificadas y potenciales para automatizaciones es un aspecto clave para comprender qué condiciones lógicas tendrá que acomodar durante la implementación.
- “Bulkificar” todas las operaciones de datos (incluyendo SOQL). Cada operación de datos (insertar, actualizar, etc.) debe realizarse en recopilaciones. Siempre. Sin excepciones. Esto es lo que se entiende por operaciones “masivas”. Aunque la plataforma puede admitir operaciones de datos de singleton, nunca debe permitir que se implementen patrones de singleton.
- Utilice SOSL para operaciones de búsqueda. Existe una idea errónea de que las operaciones de datos no se pueden realizar en registros devueltos a través de SOSL. Es cierto que no se puede invocar DML directamente contra resultados de SOSL, pero el código puede analizar resultados de SOSL y crear una recopilación a la que se puede hacer referencia en métodos de clase DML o Database. Las diferencias clave entre SOSL y SOQL son los tipos de devolución para cada uno y cómo responden a búsquedas generalizadas o comodín. SOSL puede funcionar con varios tipos de sObject (por lo que el tipo de devolución es diferente) y puede gestionar búsquedas de comodín y cadena generalizada con mejor rendimiento que SOQL.
- Trate SOQL como una operación de datos. No utilice SOQL para buscar registros: utilícelo para refinar sus operaciones de datos. Las operaciones de datos y SOQL pueden tener un impacto muy similar en el rendimiento de la base de datos relacional subyacente. SOQL puede incluso pasar un indicador DML explícito que bloqueará filas de base de datos en previsión de operaciones de datos. Para crear automatizaciones ampliables, asegúrese de tratar SOQL con diligencia debida similar: no lo utilice sin criterios de selección muy específicos y bien formados, no permita referencias de campos extraños y requiera una cuidadosa coincidencia de tipos de datos entre campos y entradas de filtro en lógica de declaración de
WHERE. Su código también debe tener controles apropiados para garantizar que una consulta nunca se ejecute en contextos no masificados o con criterios de filtro nulos o en blanco. - Mantenga las operaciones síncronas estrictamente centradas en el trabajo que ayuda a un usuario en tiempo real. Durante su optimización de procesos, identifique lógica relevante para lo que los usuarios necesitan hacer en tiempo real o casi en tiempo real y lo que se puede aplazar en una transacción asíncrona (asincrónica). Consulte Manejo de datos para obtener más consideraciones sobre el diseño de operaciones de sincronización/asincronización.
La lista de patrones y antipatrones a continuación muestra el aspecto de la lógica operativa adecuada (y deficiente) en la automatización de Salesforce. Puede utilizarlos para validar sus diseños de automatización antes de crear o identificar automatizaciones que necesitan optimizarse más.
Para obtener más información acerca de las herramientas disponibles en Salesforce que pueden ayudarle a planificar la escala, consulte Herramientas relevantes para automatizados.
Los KPI de automatización miden la repercusión de una automatización a lo largo del tiempo. Sin ellos, no tendrá forma de saber si una automatización está agregando realmente valor comercial o creando complejidad no intencionada para sus usuarios. Cada automatización que cree debe estar vinculada a un conjunto claro y mensurable de indicadores clave de rendimiento.
Los buenos KPI se definen por un valor medible junto con un periodo de tiempo asociado. Algunos ejemplos incluyen:
- [Número X] horas de trabajo guardadas al mes
- Fallos de procesamiento desde la entrada de datos manual reducidos en [Y%] por semana
Una vez que tenga indicadores clave de rendimiento claros y mensurables, también debe comprender si una automatización en Salesforce generará datos relevantes para la creación de informes sobre esos indicadores clave de rendimiento y cómo hacerlo.
La lista de patrones y antipatrones a continuación muestra el aspecto de los indicadores clave de rendimiento apropiados (y deficientes) cuando se trata de automatizaciones de Salesforce. Puede utilizarlos para validar sus KPI existentes o identificar dónde necesita identificar mejor los KPI antes de crear.
Para obtener más información acerca de las herramientas disponibles en Salesforce para obtener ayuda con los indicadores clave de rendimiento, consulte Herramientas relevantes para automatizados.
La siguiente tabla muestra una selección de patrones para buscar (o crear) en su organización y antipatrones para evitar o dirigir para su solución.
✨ Descubra más patrones para la eficiencia en el Explorador de patrones y antipatrones.
| Patrones | Antipatrones | |
|---|---|---|
| Diseño de procesos | En su organización:
- Cada flujo sirve a un único propósito específico - Cada paso realiza una tarea específica y granular - Los flujos se organizan en una estructura jerárquica que consta de un flujo principal y subflujos de soporte - Todas las entradas de usuario tienen un propósito claro dentro del flujo - Solo se solicita a los usuarios proporcionar datos cuando no se pueden utilizar datos del sistema existentes |
En su organización:
- Los flujos sirven para múltiples propósitos y requieren entradas adicionales para proporcionar contexto - Los flujos requieren entradas cuyos datos no se utilizan - Los grupos de pasos relacionados contienen funciones que se solapan con grupos de pasos en otros flujos - Los flujos solicitan entradas de usuario cuando se pueden utilizar datos almacenados en su lugar |
| En Apex:
- Cada clase sirve a un único propósito específico - Cada método realiza una tarea específica y granular - Todas las variables de entrada tienen un propósito claro dentro de la clase - La ejecución de código requiere un número mínimo de recursos |
En Apex:
- Las clases sirven para múltiples propósitos - Los métodos realizan múltiples tareas o los métodos realizan tareas que no se alinean con el propósito declarado de la clase de la que forman parte - Las variables de entrada no se utilizan actualmente en métodos - Los métodos recuperan innecesariamente datos de la base de datos o de sistemas externos |
|
| Lógica operacional | En flujo:
- Ninguna variable hace referencia a valores codificados (para tipos de registro, usuarios, etc.) - Todos los flujos y procesos iniciados automáticamente utilizan elementos de decisión y/o pausa para evaluar criterios de entrada y evitar bucles infinitos o ejecuciones en grandes volúmenes de datos - Los flujos (incluyendo procesos) transfieren lógica a Apex en contextos de gran volumen de datos - Los subflujos se utilizan para las secciones de un proceso que necesitan reutilizarse en todo el negocio |
En flujo:
- Las variables tienen valores codificados - Los flujos (incluyendo procesos) deben desactivarse manualmente antes de cargas de datos masivas - Los flujos (incluyendo procesos) desencadenan avisos de "excepción no gestionada" - Incluso flujos sencillos causan regularmente errores relacionados con límites reguladores - Partes de un flujo se repiten entre flujos en vez de utilizar subflujos |
| En Apex:
- Ninguna variable hace referencia a valores codificados (para tipos de registro, usuarios, etc.) - Todos los criterios comodín aparecen en SOSL - SOQL está envuelto en intentar atrapar
- No aparece SOQL dentro de un bucle - Las declaraciones SOQL son selectivas, incluyendo: -- sin uso de comparaciones ME GUSTA o comparaciones de texto parcial
-- los operadores de comparación utilizan lógica positiva (es decir, INCLUDES, IN) como lógica principal o única
-- el uso de = NULL, != NULL es raro y/o siempre sigue un operador de comparación positiva
-- no aparecen declaraciones LIMIT 1
-- sin uso de la palabra clave TODAS LAS FILAS
| En Apex:
- Las variables tienen valores codificados - SOSL rara vez o no se utiliza de forma coherente para criterios de selección de comodines - SOQL no está envuelto en intentar atrapar
- SOQL aparece dentro de bucles - Las declaraciones SOQL no son selectivas, incluyendo: -- Los criterios de filtro ME GUSTA y comodín aparecen
-- las comparaciones que utilizan criterios NO, NO EN se utilizan como el operador de comparación principal o único
-- = NULL, != Los criterios se utilizan como el operador de comparación principal o único
-- Aparecen declaraciones LIMIT 1
-- Se utiliza la palabra clave TODAS LAS FILAS
| |
| En sus estándares de diseño y documentación:
- Las rutas de ejecución planificadas y potenciales para automatizaciones se describen claramente - Los casos de uso para operaciones síncronas y asíncronas dentro de automatizaciones se describen claramente como parte de estándares de diseño |
En sus estándares de diseño y documentación:
- La invocación de automatización no está documentada - Los casos de uso para operaciones síncronas y asíncronas no se solucionan |
|
| KPIs | En su documentación:
- Las salidas para cada automatización son medibles y están sujetas a plazos - Se enumeran las partes interesadas responsables para cada KPI |
En su documentación:
- Los KPI no existen para automatizaciones o tienen plazos de tiempo poco claros para mediciones - Los KPI existen sin partes interesadas responsables |
| En informes y paneles:
- Todas las mediciones relacionadas con los KPI se incluyen en al menos un informe o panel |
En informes y paneles:
- Los informes de KPI no existen o faltan mediciones relacionadas con algunos KPI |
La integridad de los datos se basa en lo bien que un sistema mantiene datos precisos y completos. Salesforce Platform mantiene una sólida lógica de procesamiento diseñada para proteger la integridad de los datos almacenados en la base de datos relacional de una organización individual. Uno de los fundamentos de la creación de automatizaciones saludables es comprender los comportamientos de integridad de datos integrados de Salesforce y asegurarse de que todos sus diseños de automatización se alinean con (y reconocen) estos comportamientos.
Los principales antipatrones en el diseño de automatización surgen de no reconocer los potentes servicios de integridad de datos ya proporcionados por Salesforce y no utilizar la funcionalidad estándar que aprovecha estos servicios. Para diseñar automatizaciones que protegen y mantienen la integridad de los datos, debe estar familiarizado con el orden fundamental de comportamientos de operación de Salesforce.
Ampliar correctamente la integridad de los datos en sus automatizaciones personalizadas significa que su sistema puede:
- operar contra volúmenes de datos masivos y grandes sin intervención manual,
- aplicar políticas de seguridad de usuario cuando sea necesario y cambiar al contexto del sistema cuando sea necesario,
- encontrar errores en tiempo de ejecución y seguir rutas de recuperación o fallo predecibles.
Puede crear una mejor integridad de datos en sus automatizaciones de Salesforce a través de un tratamiento de datos y un tratamiento de errores adecuados.
El primer paso para diseñar para un tratamiento de datos adecuado en Salesforce es comprender cómo gestiona la plataforma de múltiples arrendatarios transacciones. Esto incluye comprender el orden de ejecución integrado que utiliza Salesforce Platform para garantizar la integridad de los datos durante las operaciones de datos a nivel de registro. Para obtener más información sobre las repercusiones de este comportamiento, consulte Manipulación de bases de datos en Fundamentos de Salesforce Architecture.
La mala gestión de datos en sus automatizaciones puede ser algunos de los antipatrones más difíciles de identificar y remediar completamente. La naturaleza recurrente y solapada del orden de ejecución de la plataforma puede dificultar la tarea de ver dónde se originan los problemas. La sección específica de código o flujo que arroja un error mortal o supera los límites reguladores podría no ser la causa raíz de un problema de gestión de datos subyacente.
El conocimiento de transacciones es clave para crear automatizaciones que funcionan de forma fiable y a escala con Salesforce. Esto significa asegurarse de que cada paso de una automatización está diseñado con el Knowledge de dónde se encuentra en relación con el orden de ejecución controlado por la plataforma, puede llevar a cabo su función correctamente y pasa la información al siguiente paso correctamente.
Independientemente de la herramienta de automatización que esté utilizando, el conocimiento de transacciones adecuado sigue patrones similares y requiere consideraciones comunes:
- Supongamos que se solicitará a cada automatización que se ejecute en grandes volúmenes de datos sin previo aviso, en un momento dado. Las automatizaciones deben tener rutas para permitir la ejecución por lotes o masiva (consulte Escalabilidad).
- No mezcle operaciones de datos de contexto de usuario y sistema en la misma transacción.
- Reserve operaciones de datos de sincronización para contextos anteriores y utilice operaciones asíncronas para todas las acciones de contexto.
- Utilice mensajería y notificaciones para evitar crear experiencias en aplicación que requerirían que un usuario espere datos basándose en los resultados de una operación asíncrona.
Más allá del conocimiento de transacciones, hay una segunda dimensión en el manejo de datos: saber cuándo llevar a cabo lógica en diferentes contextos de ejecución. Las razones comunes para dividir las automatizaciones en diferentes contextos de ejecución incluyen:
- Operaciones de datos complejas y/o de gran volumen
- Las operaciones masivas no garantizan que una automatización gestione grandes volúmenes de datos correctamente. Si el volumen de operaciones de datos dentro de una automatización supera los límites por transacción, deberá realizar operaciones de datos utilizando funciones específicas de grandes volúmenes de datos (como Apex por lotes o la API masiva 2.0). Estos tienen límites de transacciones diferentes, adecuados para grandes volúmenes de datos.
- Las operaciones de datos que necesitan atravesar jerarquías de relaciones complejas o realizar recálculos complejos (sin incluir campos de fórmula) entre registros pueden superar fácilmente los límites por transacción cuando se realizan de forma masiva. Considere cuán “ruidosa” es una actualización en un registro, en términos de las operaciones de datos relacionadas o SOQL necesarias para completar acciones posteriores en el sistema.
- Los tipos de sObjects implicados en toda la cadena de una automatización pueden requerir que divida operaciones de datos en transacciones separadas para evitar errores de “DML mixto”.
- Lógica que debe ejecutarse en contexto de usuario o sistema
- Salesforce Platform aplica la compartición y visibilidad en contexto de usuario. Si necesita realizar operaciones que superan los niveles de permisos de los usuarios de su automatización, tendrá que asegurarse de que esas operaciones se ejecutan en contexto del sistema.
- Diferentes herramientas se ejecutarán o no en diferentes contextos:
- Apex se ejecutará en contexto del sistema de forma predeterminada. Puede controlar si los comportamientos Apex aplican reglas de colaboración a nivel de usuario y cómo hacerlo utilizando palabras clave en una definición de clase Apex.
- El flujo no tiene un único comportamiento predeterminado. Un flujo se ejecutará en contexto de usuario o sistema basándose en cómo se inicia el flujo. Tiene la opción de aplicar la colaboración en contexto del sistema.
- Los procesos (es decir, las automatizaciones creadas con Process Builder) se ejecutan en contexto del sistema sin compartir consideraciones. (Nota: Recomendamos crear automatizaciones de código bajo con Flow.
- Lógica que necesita ejecutarse de forma asíncrona
- Operaciones del sistema externo: Las llamadas síncronas o acciones que acceden a datos externos no están incluidas en ningún comportamiento de reversión de plataforma. Para aprovechar estos comportamientos, debe colocar acciones que implican sistemas externos en transacciones separadas (utilizando métodos Apex asíncronos, rutas asíncronas o acciones invocables).
- Eventos y mensajería - Para controlar el flujo de eventos o mensajes relacionados con operaciones de datos (y aprovechar los comportamientos de reversión de plataforma), coloque todas las acciones relacionadas con mensajería o eventos después de contextos, utilizando métodos Apex asíncronos.
La lista de patrones y antipatrones a continuación muestra el aspecto adecuado (y deficiente) de la gestión de datos en automatizaciones de Salesforce. Puede utilizarlos para validar sus diseños de automatización antes de crear, o identificar automatizaciones que necesitan ser refactorizadas para mejorar la gestión de datos.
Para obtener más información acerca de las herramientas disponibles en Salesforce para el manejo de datos en automatización, consulte Herramientas relevantes para automatizado.
La gestión de errores es crítica para la integridad de los datos. La gestión de errores potente también ayuda a su sistema a escalar y envejecer con más resiliencia.
La gestión incorrecta de errores en automatizaciones puede llevar a:
- Incoherencias de registro y otros problemas de integridad de datos
- Envío de notificaciones imprecisas a usuarios y otros sistemas
- Perder tiempo y recursos en procesamiento manual o repetido
- Falta general de Confide en un sistema
La gestión de errores en automatizaciones requiere proporcionar a cualquier proceso en ejecución la capacidad de analizar un error para obtener información, acceder a lógica acerca de cuáles deben ser los siguientes pasos basándose en información de error y luego seguir la ruta correcta. Estas funciones no necesitan crearse una y otra vez en cada automatización (eso es un antipatrón de optimización). En su lugar, cada automatización en el sistema debe tener la capacidad de conectarse a los componentes de gestión de errores relevantes.
Para crear controles de gestión de errores apropiados en sus automatizaciones, formule estas preguntas:
- ¿Qué es un error “fatal”?
- ¿Qué es un error “recuperable”?
- Para automatizaciones desencadenadas por acciones de usuario, ¿cómo puede la automatización capturar y notificar al usuario errores antes de intentar confirmar cambios?
Una vez haya decidido cómo gestionar estos errores, puede empezar a crear una gestión de errores efectiva en sus automatizaciones. La lista de patrones y antipatrones a continuación muestra el aspecto adecuado (y deficiente) de la gestión de errores en una automatización de Salesforce. Puede utilizarlos para validar sus diseños de automatización antes de crear, o identificar automatizaciones que necesitan refactorizarse para mejorar la gestión de errores.
Para obtener más información acerca de las herramientas disponibles en Salesforce para la gestión de errores, consulte Herramientas relevantes para automatizados.
La siguiente tabla muestra una selección de patrones para buscar (o crear) en su organización y antipatrones para evitar o dirigir para su solución.
✨ Descubra más patrones para la integridad de los datos en el Explorador de patrones y antipatrones.
| Patrones | Antipatrones | |
|---|---|---|
| Gestión de datos | En su diccionario de datos:
- Existen datos a nivel de campo y lógica de priorización para todos los orígenes de datos y objetos de lago de datos - La asignación de campos desde el objeto de lago de datos al objeto de modelo de datos existe |
En su diccionario de datos:
- Los datos a nivel de campo y la lógica de priorización para orígenes de datos y objetos de lago de datos no están incluidos - La asignación de campos desde objetos de lago de datos a objetos de modelo de datos no está incluida |
| En su Apex:
- Todas las declaraciones DML síncronas o métodos de clase de base de datos se llevan a cabo antes de desencadenar contextos de ejecución - Las invocaciones Apex asíncronas utilizan colas para 'encadenar' DML complejos entre transacciones - Lote Apex se utiliza exclusivamente para grandes volúmenes de datos - @future Apex no se utiliza o se utiliza con moderación, para llamadas o DML de objetos del sistema |
En su Apex:
- Las declaraciones DML aparecen regularmente en código que se invocará después de contextos de desencadenador - Apex asíncrono rara vez se utiliza - Las funciones Apex asíncronas se utilizan de forma arbitraria, incluyendo: -- Métodos futuros y Apex en cola se utilizan de forma incoherente o indistinta -- Las operaciones de base de datos no tienen lógica clara y coherente para pasar la ejecución a Batch Apex cuando sea necesario |
|
| En flujo:
- Todos los flujos iniciados en contexto de usuario abstraen todas las transacciones de contexto del sistema en subflujos, que se colocan de forma coherente después de un elemento Pausa, para crear una nueva transacción - Se crean secuencias complejas de operaciones de datos relacionadas con Orchestrator (en vez de invocar múltiples subflujos dentro de un flujo monolítico) - Todos los flujos desencadenados por registros tienen valores de orden de desencadenamiento rellenados - Los flujos que implican llamadas externas del sistema o procesos de larga ejecución utilizan rutas asíncronas |
En flujo:
- Grandes flujos monolíticos intentan coordinar secuencias complejas de operaciones de datos relacionadas (con o sin subflujos) - Los flujos desencadenados por registros no utilizan atributos de orden de desencadenador en absoluto o no utilizan valores de orden de desencadenador de forma coherente - Las rutas asíncronas no se utilizan de forma coherente o en absoluto |
|
| En su organización:
- Las reglas de reconciliación de Resolución de identidad siguen la lógica de priorización en su diccionario de datos |
En su organización:
- Las reglas de reconciliación de Resolución de identidad no siguen la lógica de priorización en el diccionario de datos |
|
| Gestión de errores | En Apex:
- El código encierra todos los DML, SOQL, llamadas y otros pasos críticos del proceso en bloques de captura de intentos
- Se utilizan excepciones personalizadas para crear mensajería de error avanzada y lógica - En contextos asíncronos y masivos, se utilizan métodos de clase de base de datos en vez de DML - Los métodos de clase de base de datos se pueden utilizar exclusivamente para todas las operaciones de datos (en vez de DML) |
En Apex:
- DML, SOQL, llamadas u otros pasos críticos del proceso no se envuelven de forma coherente en bloques de captura de intentos
- Las declaraciones System.debug aparecen en el código de producción (y no se comentan)
- No se utilizan métodos de clase de base de datos - Las operaciones de datos se realizan exclusivamente con DML |
| En componentes web Lightning (LWC):
- JavaScript encierra todas las operaciones de datos y pasos de proceso críticos en bloques if () / otra if ()
- Todas las funciones @wire utilizan datos y propiedades de error proporcionadas por la API
- Todo si (error) / si (error) declaraciones contienen lógica para procesar errores y proporcionar mensajes informativos |
En LWC:
- JavaScript no utiliza coherentemente if () / else if () bloques con operaciones de datos o pasos de proceso críticos
- Las funciones @wire no utilizan propiedades de datos y errores proporcionadas por la API (o no las utilizan de forma coherente)
- Si se utiliza en absoluto, si (error) / otro si (error) declaraciones no contienen realmente lógica para procesar errores y proporcionar mensajes de error útiles |
|
| En Aura:
- JavaScript encierra todas las operaciones de datos y pasos de proceso críticos en bloques de captura de intentos
- Dentro de los bloques de captura de intentos, el error JavaScript nativo se utiliza en declaraciones throw (sin uso de $A.error())
- Toda la lógica de error recuperable aparece en declaraciones de captura y proporciona mensajes de usuario claros |
En Aura:
- JavaScript no encierra de forma coherente operaciones de datos y pasos de procesos críticos en bloques de intento
- Los componentes utilizan $A.error()
- La lógica de error recuperable no aparece de forma coherente en declaraciones de captura, y los mensajes de error a usuarios no son claros |
|
| En flujo:
- Los flujos de pantalla utilizan de forma coherente conectores de fallos para mostrar errores a los usuarios - Los mensajes de error personalizados están configurados para errores que aparecerán en pantalla - Los flujos con operaciones de datos, llamadas y otra lógica de procesamiento crítica tienen rutas de fallo para todas las acciones clave |
En flujo:
- Los flujos no utilizan rutas de fallo de forma coherente o en absoluto - Los mensajes de error personalizados no se utilizan, de modo que los usuarios ven el mensaje predeterminado "Se ha producido un fallo no gestionado en este flujo" |
El concepto de valor comercial, en el contexto de la automatización, trata sobre cuán bien crean los procesos un impacto positivo y mensurable para las partes interesadas comerciales. Idealmente, la automatización de procesos permite a los usuarios emplear menos tiempo en tareas repetitivas de bajo valor. También ayuda a potenciar la integridad de los datos eliminando actividades de procesamiento manual que podrían introducir errores. Al igual que Process Design, identificar y entregar automatizaciones que dirigirán el valor comercial real requiere trabajo más allá del descubrimiento básico y el análisis comercial.
A veces, puede parecer que la mejor forma de entregar valor al negocio es simplemente automatizar cada proceso solicitado por un usuario comercial, ya sea en el orden en que aparecen en su cola de espera (o cola de tickets) o basándose en factores políticos en su organización. Esto puede llevar a dos problemas relacionados: la creación de automatizaciones en un orden subóptimo y la creación de automatizaciones incorrectas por completo. El primer problema, la mala priorización, evita que los procesos de alto valor se implementen cuando deberían, lo que podría ralentizar el crecimiento. El segundo problema, la creación de automatizaciones incorrectas, no solo retrasa la entrega de automatizaciones de alto valor, sino que también lleva a tiempo perdido, costes innecesarios y mayor frustración entre los equipos de entrega.
Puede entregar un mayor valor comercial centrándose en los KPI y la priorización.
| Herramienta | Descripción | Eficiencia | Integridad de datos | Valor comercial |
|---|---|---|---|---|
| Lote Apex | Registros por lotes juntos y procesarlos en partes gestionables | X | X | |
| Métodos futuros Apex | Ejecutar asíncronamente métodos Apex en segundo plano | X | X | |
| Pex Queueing | Agregar trabajos Apex a una cola y supervisarlos | X | X | |
| Apex Scheduler | Ejecutar clases Apex asíncronamente en horas especificadas | X | X | |
| Aprobaciones | Especificar los pasos requeridos para aprobar registros | X | X | |
| Apex asíncrono | Ejecutar código Apex asíncronamente | X | X | |
| Acciones automatizadas | Realizar actualizaciones de campo, envíos de correo electrónico y otras acciones en segundo plano | X | X | |
| Einstein Next Best Action | Mostrar las recomendaciones correctas a las personas correctas en el momento correcto | X | X | |
| Alerta de correo electrónico | Crear y enviar correos electrónicos automatizados | X | X | |
| Acciones de distribución | Especificar acciones automatizadas a realizar para la distribución de casos | X | X | |
| Actualización de campo | Actualizar valores de campo basándose en automatización | X | X | |
| Flow Builder | Crear automatizaciones con una interfaz de apuntar y hacer clic | X | X | |
| Extensiones de flujo | Acceder a variables almacenadas como entradas de componente en flujos | X | ||
| Biblioteca de plantillas de flujo | Utilizar plantillas para diseñar flujos específicos del sector | X | X | |
| Desencadenador de flujo | Automatizar procesos comerciales complejos | X | ||
| Acciones invocables | Agregar funcionalidad Apex a flujos | X | X | |
| Orquestador | Crear y gestionar automatizaciones de múltiples pasos | X | X | |
| Mensaje saliente | Enviar información desde un proceso automatizado con recepciones y reintentos | X | ||
| Publicar eventos de plataforma con flujo | Publicar eventos a través de automatizaciones e interacciones de usuario | X | ||
| Optimizador de consultas | Utilizar índices y selectividad para mejorar el rendimiento de consultas, informes y vistas de lista | X | X | |
| Flujo de Salesforce | Crear automatizaciones de procesos declarativos con Flow Builder | X | X | |
| Enviar notificaciones con flujos | Enviar mensajes por SMS, WhatsApp o Facebook Messenger | X | X | |
| Enviar notificaciones con procesos | Enviar mensajes por SMS, WhatsApp o Facebook Messenger | X | X | |
| Modificador SOQL FOR UPDATE | Bloquear registros para evitar condiciones de carrera y problemas de seguridad de hilos | X | ||
| Estrategia Builder | Identificar recomendaciones para aflorar en páginas de registro | X | X | |
| Subflujos | Reducir la complejidad del flujo mediante la reutilización | X | ||
| Suscribirse a eventos de plataforma con flujo | Recibir mensajes publicados a través de automatizaciones | X | ||
| Acciones de tareas | Determinar detalles de asignación proporcionados a un usuario por una automatización | X |
| Recurso | Descripción | Eficiencia | Integridad de datos | Valor comercial |
|---|---|---|---|---|
| Límites y reguladores de ejecución Apex | Obtenga información acerca de cómo el motor de tiempo de ejecución Apex aplica límites | X | X | |
| Recursos de gestión por lotes | Crear, gestionar, programar y supervisar trabajos por lotes | X | X | |
| Prácticas recomendadas para SOQL y SOSL | Mejorar el rendimiento de consultas de aplicaciones con grandes volúmenes de datos | X | ||
| Plantilla Estándares de diseño | Crear estándares de diseño para su organización | X | X | X |
| Masificación de flujos en transacciones | Diseñar flujos para operar contra recopilaciones | X | X | |
| Consideraciones sobre datos de flujos | Obtenga información acerca de flujos desencadenados por programación para datos por lotes | X | X | |
| Depuración de flujos | Probar y solucionar problemas de flujos | X | ||
| Cómo se procesan las solicitudes | Obtenga información acerca de cómo Salesforce procesa trabajos rápidamente y minimiza fallos | X | X | |
| Plantilla de hoja de cálculo de KPI | Determinar el valor comercial de una medición concreta | X | X | |
| Realización de llamadas a sistemas externos desde acciones invocables | Llamar a sistemas externos desde un flujo utilizando Apex | X | ||
| de operaciones DML mixtas | Conocer qué sObjects se pueden utilizar juntos para DML en la misma transacción | X | X | |
| Orden de ejecución | Comprender el orden de eventos para inserciones, actualizaciones y alteraciones | X | X | |
| Preguntas más frecuentes sobre planes de consulta | Optimizar consultas que implican grandes volúmenes de datos | X | X | |
| Consideraciones sobre flujos desencadenados por programación | Comprender los comportamientos especiales de flujos desencadenados por programación | X | ||
| Control de transacciones | Generar un punto de guardado que especifique el estado actual de la base de datos | X | X | |
| ¿Qué sucede cuando falla un flujo? | Comprender la gestión de errores en flujos | X | X | |
| Guía de prácticas recomendadas de automatización de flujos de trabajo | Primeros pasos con la automatización de Salesforce | X | X | X |
| Trabajar con consultas SOQL muy grandes | Redactar consultas SOQL más eficientes | X |
Ayúdenos a mantener Salesforce Well-Architected relevante para usted; realice nuestra encuesta para proporcionar comentarios sobre este contenido y díganos qué le gustaría ver a continuación.