Skip to content

Etiqueta: INCLUDE

Automatización y Salesforce DevOps: una receta para el desarrollo acelerado

Automatización y Salesforce DevOps: una receta para el desarrollo acelerado

Última actualización el 3 de julio de 2023 por Rakesh Gupta

En el acelerado mundo empresarial actual, la eficiencia en el desarrollo de software es vital. La automatización ha surgido como una solución clave, agilizando los procesos para aumentar la productividad y liberar la innovación. Salesforce no es inmune a estos desafíos y complejidades de toda la industria.

Ingrese a DevOps. DevOps se ha convertido en un elemento esencial en el desarrollo de software, incluido Salesforce. Mediante la colaboración de desarrolladores, administradores y partes interesadas, Salesforce DevOps crea un entorno perfecto para la automatización.

La combinación de automatización y Salesforce DevOps cosecha múltiples beneficios: menos errores, preparación más rápida para el mercado, una canalización de lanzamiento optimizada, menos repeticiones, calidad de código superior y mecanismos de retroalimentación más fuertes. Mejora la eficiencia operativa y la velocidad de implementación en el ecosistema de Salesforce, fomentando un desarrollo ágil.

Este artículo explora la intersección de la automatización y Salesforce DevOps, los beneficios de su sinergia y formas prácticas de aplicarla para un desarrollo más rápido en sus operaciones de Salesforce. Tanto si es un profesional de Salesforce como un novato, este artículo ofrece información para reforzar su enfoque de DevOps de Salesforce con la automatización.

Descripción de DevOps de Salesforce

Antes de profundizar en cómo se cruzan Salesforce DevOps y la automatización, es fundamental comprender lo que implica Salesforce DevOps.

DevOps, una combinación de ' Desarrollo ' y ' Operaciones ', es un conjunto de prácticas diseñadas para fusionar el desarrollo de software, el control de calidad y las operaciones de TI en un proceso unificado y fluido. En un contexto de Salesforce , DevOps es la unión de estos principios con las sólidas capacidades de CRM de Salesforce, con el objetivo de facilitar procesos de desarrollo e implementación más fluidos y rápidos.

En esencia, Salesforce DevOps incorpora principios como:

  1. Integración continua y entrega continua (CI/CD),
  2. responsabilidades compartidas,
  3. Acción centrada en el cliente,
  4. Cultura de colaboración.

El objetivo es crear un entorno cohesivo donde los administradores, desarrolladores y otras partes interesadas puedan trabajar en armonía, lo que lleva a ciclos de desarrollo más cortos, tiempo de comercialización más rápido y software de alta calidad.

Sin embargo, a pesar de las ventajas de Salesforce DevOps, los desarrolladores a menudo enfrentan desafíos. Si bien es un activo, las características integrales y la capacidad de personalización de Salesforce pueden complicar el proceso de desarrollo e implementación .

Los desafíos difieren de un equipo a otro y de un caso de uso a otro, pero estos son algunos de los más comunes:

  • Las diferencias en los entornos,
  • Administrar dependencias de código,
  • Manejo de metadatos,
  • Alinear el trabajo de diferentes equipos
  • Necesidad de mantener la calidad del código
  • Estabilidad del sistema mientras entrega a gran velocidad

Aquí es donde la automatización viene al rescate. La automatización, en esencia, es el uso de la tecnología para realizar tareas con una intervención humana reducida. Cuando se aplica a Salesforce DevOps , puede aliviar significativamente estos desafíos.

Las pruebas automatizadas, por ejemplo, pueden mejorar la calidad del código al identificar errores al principio del proceso de desarrollo. Las implementaciones automatizadas pueden sincronizar metadatos y código en diferentes entornos, lo que reduce los errores de implementación. Del mismo modo, la automatización de tareas repetitivas puede liberar el tiempo de los desarrolladores, lo que les permite concentrarse en actividades que agregan más valor, como el desarrollo de funciones o el diseño de sistemas.

Además, la automatización fomenta un proceso de desarrollo más ágil, lo que permite actualizaciones periódicas e incrementales en lugar de implementaciones rígidas de Salesforce. Este aspecto acorta el ciclo de desarrollo y facilita la reversión de los cambios si algo sale mal, lo que aumenta la estabilidad general del sistema.

Aprovechamiento de la automatización para el desarrollo acelerado de Salesforce

Acelerar el desarrollo de Salesforce a través de la automatización implica identificar tareas manuales y repetitivas, implementar herramientas y marcos de automatización adecuados y perfeccionar los procesos para mejorar la eficiencia y reducir los cuellos de botella. Profundicemos en cada una de estas áreas con más detalle:

Identificación de tareas manuales y repetitivas

El primer paso hacia la automatización es reconocer qué tareas están ralentizando su velocidad de desarrollo.

Estos típicamente incluyen:

  • Revisiones de código,
  • Pruebas,
  • Despliegue,
  • Configuración,
  • Migración de datos.

Suelen implicar procesos manuales tediosos que consumen tiempo y son propensos a errores. Al identificar estas tareas, puede identificar dónde la automatización proporcionará el mayor beneficio y tendrá un impacto significativo en la velocidad y la eficiencia de su desarrollo.

Implementación de herramientas y marcos de automatización

Una vez que haya identificado las áreas que podrían beneficiarse de la automatización, es hora de elegir e implementar las herramientas y los marcos adecuados. Salesforce ofrece varias funciones de automatización integradas, como Apex y Salesforce Flow .

Sin embargo, otras herramientas pueden ser más adecuadas para tareas complejas, como Salesforce DX para la gestión del ciclo de vida del desarrollo, o Jenkins y CircleCI para la integración y entrega continuas. Al seleccionar estas herramientas, asegúrese de que se alineen con las habilidades de su equipo y los requisitos específicos de su entorno de Salesforce.

Optimización de procesos para mejorar la eficiencia

La automatización no se trata solo de herramientas y tecnología. También se trata de refinar sus procesos. Revise su flujo de trabajo de desarrollo actual para identificar posibles cuellos de botella y áreas de mejora.

Por ejemplo:

  1. ¿Cómo se informan y rastrean los errores?
  2. ¿Con qué frecuencia se realizan las implementaciones y cómo se programan?
  3. ¿Cómo se recopilan los comentarios y cómo se actúa en consecuencia?

Simplificar estos procesos puede mejorar drásticamente la eficiencia de su equipo, permitiéndole aprovechar al máximo sus esfuerzos de automatización.

Vale la pena mencionar que los beneficios de la automatización van más allá de acelerar el desarrollo. La automatización también puede mejorar la calidad del código al detectar errores temprano a través de pruebas automatizadas. Puede reducir los errores de implementación al sincronizar el código en diferentes entornos.

Y al liberar a los desarrolladores de las tareas rutinarias, les permite concentrarse más en el desarrollo de características y el diseño del sistema, fomentando así la innovación y mejorando el valor entregado a los usuarios finales.

Pruebas automatizadas para el desarrollo acelerado de Salesforce

Las pruebas son un componente crucial de cualquier ciclo de vida de desarrollo, y su importancia se multiplica para acelerar el desarrollo de Salesforce. Las pruebas periódicas y exhaustivas ayudan a identificar errores y problemas desde el principio, lo que reduce el riesgo de reparaciones costosas y lentas en el futuro. Asegura la calidad y la confiabilidad de la aplicación, lo que a su vez contribuye a mejorar las experiencias de los usuarios y los resultados comerciales.

La automatización puede potenciar este proceso de prueba. Las pruebas automatizadas implican el uso de herramientas de software para ejecutar pruebas y comparar los resultados reales con los resultados esperados. La implementación de una estrategia de prueba automatizada para las aplicaciones de Salesforce puede acelerar drásticamente el proceso de desarrollo, lo que garantiza implementaciones más rápidas, eficientes y confiables con menos errores.

Existen numerosas herramientas disponibles para pruebas automatizadas en Salesforce. Apex proporciona soporte integrado para pruebas unitarias, mientras que herramientas como Selenium, Provar y AssureClick pueden automatizar las pruebas de IU. Jest es una excelente opción para probar Lightning Web Components (LWC). Al seleccionar una herramienta, considere las necesidades específicas de su aplicación, la experiencia de su equipo y la complejidad y frecuencia de sus requisitos de prueba.

Seguir las mejores prácticas es esencial para aprovechar todo el potencial de las pruebas automatizadas. Estas son algunas de las mejores prácticas para pruebas automatizadas eficientes y completas en el desarrollo de Salesforce:

  • Apunte a una alta cobertura de prueba : asegúrese de probar todas las partes de su aplicación. Salesforce requiere una cobertura de código mínima del 75 %, pero apuntar a una mayor cobertura puede brindar más confianza en la confiabilidad de la aplicación.
  • Cree pruebas repetibles y autónomas : las pruebas deben poder ejecutarse en cualquier entorno y no deben basarse en datos de pruebas anteriores. Esto garantiza que cada prueba valide una función específica de forma independiente.
  • Mantenga sus conjuntos de pruebas : a medida que su aplicación evolucione, sus pruebas también deberían hacerlo. Revise y actualice regularmente sus pruebas para asegurarse de que reflejen con precisión el estado actual de su aplicación.
  • Implemente diferentes niveles de prueba : combine pruebas unitarias, pruebas de integración y pruebas de interfaz de usuario para validar todos los aspectos de su aplicación. Cada nivel de prueba proporciona una perspectiva diferente sobre la funcionalidad de la aplicación.
  • Priorizar la legibilidad de la prueba : las pruebas a menudo sirven como documentación, explicando lo que se supone que debe hacer una parte del código. Asegúrese de que sus pruebas estén bien estructuradas y claramente escritas para que sean fáciles de entender para los demás.
  • Incorpore las pruebas al principio del proceso de desarrollo : no espere hasta el final del ciclo de desarrollo para comenzar las pruebas. La incorporación de pruebas de manera temprana y frecuente le permite detectar y solucionar problemas rápidamente.

Integración e implementación continuas con automatización

La integración continua y la implementación continua (CI/CD) forman un pilar central de Salesforce DevOps. CI/CD está diseñado para reducir errores y acelerar el desarrollo a través de la integración continua de código y procesos de implementación automatizados y consistentes.

En el contexto de Salesforce, CI fusiona periódicamente los cambios de código en un repositorio compartido, a menudo varias veces al día. Cada integración se verifica automáticamente mediante la creación de la aplicación y la ejecución de pruebas, lo que garantiza que los nuevos cambios se integren perfectamente con el código existente y no introduzcan errores.

Por otro lado, CD implementa automáticamente esos cambios en la producción, lo que garantiza que las nuevas características, configuraciones y mejoras lleguen a los usuarios finales lo más rápido posible. En Salesforce, CD puede implicar la implementación de cambios en diferentes entornos, como entornos de desarrollo, prueba, ensayo y producción.

La automatización es clave para lograr procesos impecables de CI/CD de Salesforce. A través de la automatización, puede optimizar y estandarizar los pasos involucrados en:

  • Creación, prueba e implementación de aplicaciones de Salesforce,
  • Reducir el potencial de error humano
  • Acelerar el ciclo de desarrollo general.

La automatización del proceso de compilación garantiza que los cambios en el código se integren y validen de manera constante. Las pruebas automatizadas, como comentamos anteriormente, verifican la integridad y la calidad del nuevo código. La automatización del proceso de implementación ayuda a sincronizar el código y los cambios de configuración en diferentes entornos, lo que garantiza que todos los equipos de DevOps trabajen con la versión más reciente y precisa de la aplicación.

Control de versiones y automatización de la gestión de cambios

En el desarrollo de Salesforce, el control de versiones y la gestión de cambios son fundamentales para mantener la integridad, coherencia y calidad de su aplicación.

El control de versiones, una parte integral del desarrollo de software, implica administrar y rastrear diferentes versiones de su base de código. Le permite ver los cambios a lo largo del tiempo, volver a las versiones anteriores cuando sea necesario y administrar el código de varios desarrolladores al mismo tiempo.

La gestión de cambios se refiere a la gestión y el seguimiento de los cambios del sistema, incluidos los cambios de configuración, las modificaciones de código y las implementaciones de nuevas funciones.

La automatización de estos procesos puede mejorar su eficiencia y confiabilidad en el desarrollo de Salesforce.

  1. El control de versiones automatizado permite una integración de código más fluida de diferentes desarrolladores, lo que reduce el riesgo de conflictos y errores.
  2. La gestión de cambios automatizada asegura que todas las modificaciones a su sistema sean rastreadas y verificadas con precisión, mejorando la responsabilidad y facilitando el diagnóstico de cualquier problema que surja.

Varias herramientas pueden ayudar a automatizar el control de versiones y la gestión de cambios en Salesforce. Los sistemas de control de versiones (VCS) como Git permiten un control de versiones efectivo. Facilita el seguimiento de los cambios en la base del código, lo que ayuda a mantener la integridad del código.

Las herramientas de DevOps como Copado o Gearset pueden ayudar a automatizar el seguimiento y la implementación de cambios en diferentes entornos para la gestión de cambios. Brindan una visibilidad integral de su historial de cambios, lo que le permite administrar los cambios de manera más efectiva y mantener la estabilidad de su aplicación.

Automatización de la supervisión y el tratamiento de errores

En el ámbito vertiginoso del desarrollo de Salesforce, el papel de la automatización se extiende más allá de la creación, prueba e implementación. El monitoreo automatizado y el manejo de errores son igualmente importantes para mantener la salud de la aplicación y corregir rápidamente cualquier problema.

El monitoreo automatizado implica el uso de herramientas para realizar un seguimiento constante del rendimiento, el uso y el estado general de sus aplicaciones de Salesforce. Este enfoque proactivo permite a los equipos de desarrollo identificar y abordar posibles problemas antes de que afecten a los usuarios.

El manejo proactivo de errores va de la mano con el monitoreo automatizado. En lugar de esperar a que se informen los problemas, el manejo proactivo de errores implica el uso de sistemas automatizados para identificar y, a menudo, resolver los problemas tan pronto como ocurran. Las notificaciones de error automatizadas aseguran que su equipo esté al tanto de cualquier problema al instante, lo que permite una respuesta rápida, minimiza el tiempo de inactividad y reduce la posibilidad de errores costosos.

La implementación de estas herramientas de automatización en Salesforce DevOps implica el uso estratégico de recursos como Monitoreo de eventos de Salesforce, que proporciona un flujo de eventos de auditoría de aplicaciones de su organización, y herramientas de Monitoreo y advertencia de errores, que pueden notificarle automáticamente sobre errores o excepciones.

Conclusión

La automatización combinada con las prácticas de Salesforce DevOps ofrece una poderosa estrategia para acelerar el desarrollo y mejorar la calidad del software. Es una receta para el éxito en el vertiginoso panorama digital actual.

Para implementar la automatización en su desarrollo de Salesforce, comience por identificar las tareas repetitivas que podrían automatizarse. Luego, implemente herramientas adecuadas para tareas como integración continua, pruebas automatizadas, control de versiones y monitoreo de aplicaciones. Agilice cualquier proceso manual junto con la implementación de estas herramientas, creando un flujo de trabajo de desarrollo eficiente y efectivo.

La adopción de la automatización en Salesforce DevOps acelera el desarrollo y refuerza la confiabilidad y el valor de sus aplicaciones. A medida que el ecosistema de Salesforce continúa evolucionando, el papel de la automatización crecerá aún más, dando forma al futuro del desarrollo de Salesforce.

Este artículo fue escrito por Sam Hops. Es redactora de contenido para una revista digital que cubre temas relacionados con el diseño, el comercio electrónico, el marketing digital y el espíritu empresarial. Sam es un apasionado de todo lo relacionado con el marketing digital, pero tiene un interés particular en el diseño gráfico, el SEO y las redes sociales.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Seguir leyendo

Presentamos HowToDev_ ☁️

Presentamos HowToDev_ ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Presentamos HowToDev_ | Blog de desarrolladores de Salesforce

HowToDev_ es una nueva serie sobre Salesforce+ que creamos para ayudar a los desarrolladores a familiarizarse con Salesforce Platform. Si ya tiene habilidades tecnológicas pero es nuevo en el ecosistema de Salesforce, o si desea aprender un poco sobre el desarrollo, ¡HowToDev_ es la serie para usted!

En esta nueva serie, aprenderá a ampliar la Plataforma de Salesforce y crear aplicaciones personalizadas utilizando potentes funciones de desarrollo de Salesforce líderes en la industria. Seré su anfitrión y, en cada episodio, lo explicaré cómo tomar una interfaz de usuario basada en datos que viene lista para usar con Salesforce y crear una experiencia intuitiva e interactiva que facilite la vida de los usuarios.

Descripción general de la plataforma de Salesforce

La plataforma de Salesforce reúne una serie de servicios de infraestructura, red, aplicaciones y datos para crear una poderosa herramienta que puede ampliar en un abrir y cerrar de ojos. Esto se debe a muchas de las complejidades que puede haber utilizado en otras plataformas de usuarios y desarrolladores. En el primer episodio de HowToDev_, repasamos una descripción general de Salesforce Platform y cómo puede crear objetos personalizados para ampliar el modelo de datos.

Realmente solo necesita preocuparse por la aplicación y los servicios de datos que se le proporcionan para construir. Desde su front-end hasta sus API, todo sale de la caja listo para que comience a construir.

¡Vamos a codificar!

¡Espera un segundo! Hay algunas cosas que necesita saber aquí antes de abrir ese entorno de desarrollo. Aquí hay un vistazo de lo que cubrimos en el Episodio 1 .

Comprender la importancia de los metadatos en Salesforce: Nosotros explicar la función de los metadatos, que representan toda la configuración, la automatización y la interfaz de usuario en el entorno de Salesforce.

Definición de qué son una aplicación y una organización en Salesforce: aclaramos los conceptos de una aplicación y una organización en Salesforce, subrayando su distinción con respecto a las aplicaciones y organizaciones tradicionales.

Creación del objeto de propiedad : demostramos el proceso de creación de un objeto personalizado (el objeto de propiedad) en Configuración de Salesforce, que funciona como una tabla de base de datos para administrar y rastrear propiedades.

Agregar nuevos campos al objeto: agregamos dos nuevos campos personalizados al objeto Propiedad (es decir, Fecha de cotización y Días en el mercado), que resaltan la naturaleza dinámica de los campos de Salesforce.

Mirando hacia el futuro: Concluimos el episodio con una mirada al futuro de lo que cubrirá la serie, prometiendo una futura exploración de la codificación y la resolución de problemas complejos dentro de Salesforce.

Una vez que tenga una mayor comprensión de estos conceptos, ¡podemos abrir la CLI en el Episodio 2 !

Dónde ver HowToDev_

Todos los episodios se lanzaron a la vez en Salesforce+, ¡así que puede disfrutarlos todos ahora! Esto es lo que se trata en cada episodio:

Episodio 1: Descripción general de la plataforma Salesforce
Episodio 2: Herramientas para desarrolladores de Salesforce
Episodio 3: Código en Salesforce con Apex, SOQL y DML
Episodio 4: compilar componentes web Lightning
Episodio 5: Automatización con flujo y disparadores
Episodio 6: Completar y lanzar su aplicación Salesforce

Más recursos

  • HowToDev_ Repositorio de GitHub : este es el lugar donde encontrará todo el código, las definiciones, los enlaces y los documentos a los que se hace referencia en la serie.
  • Creamos una divertida Trailhead Quest para completar mientras ves HowToDev_. Únase a la búsqueda ahora para poner a prueba sus conocimientos y tener la oportunidad de ganar* uno de los 10 paquetes de premios HowToDev_, que incluyen un par de Apple AirPods y un estuche personalizado de Salesforce Developers. También recibirá una insignia exclusiva de la comunidad HowToDev_ en Trailhead. Complete la misión en cualquier momento antes del 31 de julio a las 11:59 p. m. (hora del Pacífico) para participar y ganar.

Sobre el Autor

Stephan Chandler-Garcia es promotor de desarrolladores en Salesforce. Ha estado en el ecosistema de Salesforce durante más de 10 años como cliente, socio e ISV. Puede encontrar a Stephan en persona en un grupo comunitario de Trailblazer o en una de nuestras conferencias en todo el mundo. Alternativamente, sígalo en Twitter @stephanwcg o @schandlergarcia en GitHub, y consulte su repositorio de GitHub para ver código de muestra y proyectos.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Seguir leyendo

Integración de API de zona horaria de Salesforce y Google: traducción de coordenadas a información de zona horaria

Integración de API de zona horaria de Salesforce y Google: traducción de coordenadas a información de zona horaria

Última actualización el 29 de junio de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puede aprovechar la API de zona horaria de Google para actualizar automáticamente la información de zona horaria de un cliente potencial en función de sus coordenadas geográficas?

Objetivos:

Después de leer este blog, podrá:

Jestilla Zetkin se desempeña actualmente como arquitecta de Salesforce en Gurukul On Cloud (GoC). El Director Comercial le ha confiado a Jestilla un desafío único. El objetivo es asegurarse de que, en el momento de la creación, los prospectos de Salesforce (creados a través de Web-to-lead) reciban los detalles exactos de la zona horaria, que se determinan en función de sus respectivas coordenadas geográficas.

  1. El caso de uso comercial requiere que usemos la API de zona horaria de Google para actualizar automáticamente cuatro campos específicos en los clientes potenciales:
    1. dstOffset (la compensación del horario de verano en segundos)
    2. rawOffset (el desplazamiento de la hora universal coordinada para la zona horaria de la ubicación dada)
    3. timeZoneId (una cadena que identifica de forma única la zona horaria)
    4. y timeZoneName (el nombre largo de la zona horaria)
  2. En caso de una respuesta fallida, instituya una acción de contingencia para crear una tarea para el propietario designado del cliente potencial.

¿Qué es la API de zona horaria de Google?

Hay muchas posibilidades de que su base de clientes esté repartida en varias zonas horarias. Este factor puede influir en gran medida en sus interacciones con ellos, especialmente al programar llamadas, reuniones o enviar mensajes automáticos. La plataforma de Salesforce ofrece un entorno altamente adaptable para almacenar y administrar datos de clientes, pero de forma predeterminada, no proporciona una forma de registrar automáticamente la zona horaria del cliente potencial en función de sus coordenadas geográficas.

La API de zona horaria de Google es un servicio ofrecido por Google como parte de su plataforma Google Maps. La API proporciona datos de zona horaria para cualquier ubicación en todo el mundo en función de las coordenadas de latitud y longitud. Este servicio puede ser particularmente útil para los desarrolladores que necesitan ajustar la comunicación de acuerdo con la ubicación geográfica de un cliente potencial o contacto o para empresas que operan en diferentes zonas horarias.

La API de zona horaria proporciona la siguiente información:

  • El ID de la zona horaria , según lo define la base de datos de zonas horarias de la IANA (por ejemplo, America/New_York ).
  • El nombre de la zona horaria (por ejemplo, hora de verano del este ).
  • La diferencia horaria con respecto a la hora universal coordinada (UTC) sin tener en cuenta el horario de verano (rawOffset).
  • El desfase horario debido al horario de verano (dstOffset).

Tenga en cuenta que la API de zona horaria de Google está sujeta a cargos, por lo que es importante comprender las implicaciones de costos antes de implementarla.

¿ Cómo funciona la API de zona horaria de Google?

La API de zona horaria de Google funciona tomando coordenadas de latitud y longitud y devolviendo datos de zona horaria en formato JSON. Aquí hay un ejemplo básico de cómo usarlo.

La siguiente solicitud HTTP GET obtiene información de zona horaria para una ubicación en la latitud 40.712776 y longitud -74.005974 (ciudad de Nueva York), y asume que está realizando la solicitud en una determinada marca de tiempo (marca de tiempo UNIX).

 https://maps.googleapis.com/maps/api/timezone/json?location=40.712776,-74.005974&timestamp=1458000000&key=YOUR_API_KEY

En la URL de solicitud anterior, reemplace YOUR_API_KEY con su clave API real.

Aquí hay una respuesta de muestra en formato JSON que la API podría devolver:


{ "dstOffset": 3600, "compensación sin procesar": -18000, "estado": "OK", "timeZoneId": "América/Nueva_York", "timeZoneName" : "Hora de verano del Este"
}

La respuesta incluye la siguiente información:

  1. dstOffset : La compensación del horario de verano en segundos. Será cero si la zona horaria no está en el horario de verano durante la marca de tiempo especificada.
  2. rawOffset : el desplazamiento de UTC (sin contar el horario de verano) en segundos.
  3. estado : una cadena que indica el estado de la solicitud. “OK” significa que la solicitud fue exitosa.
  4. timeZoneId : una cadena que contiene el ID "tz" de la zona horaria (por ejemplo, "América/Nueva_York").
  5. timeZoneName : una cadena que contiene el nombre de forma larga de la zona horaria (por ejemplo, "hora de verano del este").

Recuerde, en la URL de solicitud, se requiere el parámetro de marca de tiempo y el parámetro de ubicación espera coordenadas de latitud y longitud.

  1. Marca de tiempo : el tiempo deseado en segundos desde la medianoche del 1 de enero de 1970 UTC. La API de zona horaria utiliza la marca de tiempo para determinar si se debe aplicar o no el horario de verano, según la zona horaria de la ubicación.
  2. Ubicación : una tupla de latitud, longitud separada por comas, ubicación = 40.712776, -74.005974, que representa la ubicación para buscar.

Además, no olvide incluir su clave API.

Beneficios de usar la API de zona horaria de Google

La API de zona horaria de Google ofrece una serie de beneficios significativos, especialmente para desarrolladores y empresas que necesitan operar en diferentes zonas horarias. Estos son algunos de los beneficios clave:

  1. Precisión : la API de zona horaria de Google proporciona datos de zona horaria precisos para cualquier ubicación en todo el mundo. Tiene en cuenta tanto la zona horaria 'sin procesar' como el horario de verano, lo que garantiza que siempre tenga la hora local correcta.
  2. Facilidad de uso : la API es fácil de usar y solo requiere la latitud y la longitud como entradas. Devuelve datos en un formato JSON estructurado, que es fácil de analizar y usar en varias aplicaciones.
  3. Cobertura global : la API proporciona datos de zona horaria para ubicaciones en todo el mundo, lo que la hace útil para empresas globales y aplicaciones con bases de usuarios internacionales.
  4. Confiabilidad : como servicio proporcionado por Google, es altamente confiable, lo que garantiza que tenga acceso constante a los datos de la zona horaria cuando los necesite.
  5. Integración : se puede integrar en una variedad de aplicaciones y plataformas, incluidas aplicaciones móviles, servicios web y plataformas de CRM como Salesforce. Esto permite funcionalidades como la programación de comunicaciones en diferentes franjas horarias, etc.
  6. Información actualizada : Google actualiza continuamente sus bases de datos, lo que garantiza que los datos devueltos por la API de zona horaria, como los cambios de horario de verano, estén siempre actualizados.

Al aprovechar estos beneficios, las empresas pueden mejorar la experiencia del cliente, aumentar la eficiencia operativa y garantizar un registro de datos preciso, entre otras ventajas.

Antes de comenzar a usar la API de zona horaria, necesita un proyecto con una cuenta de facturación y la API de zona horaria habilitada. Aquí hay una guía paso a paso para configurar su proyecto de Google Cloud y habilitar la API de zona horaria:

Paso 1: crea o selecciona tu proyecto

  1. Navegue a Google Cloud Console .
  2. Si ha creado un proyecto anteriormente, puede seleccionarlo de la lista desplegable en la parte superior. De lo contrario, haga clic en Nuevo proyecto en la parte superior derecha.
  3. Asigne un nombre a su proyecto y, opcionalmente, también puede editar el ID del proyecto.
  4. Haga clic en Crear para crear el proyecto.

Paso 2: configurar una cuenta de facturación

Debe vincular una cuenta de facturación a su proyecto para usar la API de zona horaria de Google. Así es cómo:

  1. En Google Cloud Console, abra el menú del lado izquierdo de la consola y haga clic en Facturación .
  2. Si tiene una o más cuentas de facturación, elija una cuenta y asóciela con su proyecto. De lo contrario, haga clic en Crear cuenta , complete el formulario para crear una nueva cuenta de facturación y luego asóciela con su proyecto.

Paso 3: habilite la API de zona horaria

Una vez que haya configurado su proyecto y su cuenta de facturación, puede habilitar la API de zona horaria.

  1. En Google Cloud Console, abra el menú del lado izquierdo de la consola y vaya a API y servicios | biblioteca
  2. En la biblioteca de API, busque API de zona horaria y selecciónela.
  3. En la página de la API de zona horaria, haga clic en Habilitar .

Paso 4: Genere su clave API

Finalmente, necesita una clave de API para autenticar sus solicitudes en la API de zona horaria.

  1. En Google Cloud Console, abra el menú del lado izquierdo de la consola y vaya a API y servicios | Cartas credenciales.
  2. Haga clic en el botón + CREAR CREDENCIALES en la parte superior y seleccione Clave API .
  3. Su nueva clave de API se creará y se mostrará. Cópielo y guárdelo de forma segura. Necesitará esta clave para realizar solicitudes a la API de zona horaria.

Ahora, su proyecto de Google Cloud está todo configurado y puede comenzar a usar la API de zona horaria de Google.

👉 Si bien la API de zona horaria es compatible con OAuth 2.0 y la cuenta de servicio para la autenticación, esta guía se enfoca en el método de clave de API más simple por razones de brevedad. Si necesita un método de autenticación más seguro o complejo, consulte la documentación de autenticación oficial de Google.

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver utilizando varias herramientas de automatización como Apex Trigger y otras, utilizaremos Salesforce Flow y la función de flujo HTTP Callout (GET) recientemente introducida .

HTTP Callout extrae o envía datos entre la base de datos de Salesforce y un sistema externo a través de Flow Builder sin usar código. Puede configurar integraciones directas según sea necesario sin tener que trabajar con un desarrollador o llamar a una herramienta de middleware, como Mulesoft. Después de configurar la acción de llamada HTTP en un flujo, Flow Builder genera automáticamente un registro de servicio externo , una acción invocable y una clase de Apex que puede usar para crear un recurso definido por Apex para flujos. A continuación, puede utilizar la salida de datos de la solicitud de la API como entrada en Flow Builder y en Salesforce.

Puede usar HTTP Callout para conectar un flujo a una variedad de API.

  • Obtener información de direcciones usando una API de mapa
  • Obtén las condiciones meteorológicas con una API de servicios meteorológicos
  • Genere el código de barras con una API de servicio de código de barras
  • Obtenga información de autorización de pago con una API de procesamiento de pagos
  • y mucho más

Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de Jestilla mediante Record-Triggered After-Save Flow . Debemos:

  1. Cree campos personalizados en el cliente potencial para almacenar la respuesta
  2. Crear una credencial con nombre
  3. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue una fórmula para calcular la marca de tiempo
    3. Configurar una llamada HTTP GET para la API de zona horaria
    4. Agregue un elemento de decisión para verificar el código de respuesta
    5. Agregue un elemento Actualizar registros para actualizar el prospecto
    6. Agregue un elemento Crear registros para crear una tarea para que el propietario del cliente potencial maneje la respuesta de error

Paso 1: Cree campos personalizados en el objeto principal para almacenar la respuesta

En este paso, hemos establecido campos personalizados dentro del objeto principal. Estos servirán como repositorios para los datos de respuesta de la API de zona horaria de Google.

Etiqueta de campo Nombre de API de campo Tipo de datos
dstOffset dstOffset __c Número (18,0)
rawOffset rawOffset__c Número (18,0)
Posición actual Posición_actual__c Geolocalización
Identificación de zona horaria Time_Zone_Id__c Texto (255)
Nombre de zona horaria
Nombre_de_la_zona_horaria__c Texto (255)

Paso 2: crear una credencial con nombre

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, ingrese Credenciales con nombre y luego seleccione Credenciales con nombre .
  3. Haga clic en Nuevo legado .
  4. Rellene la página con la URL y los parámetros de autenticación del extremo de la llamada.
  5. Haga clic en Guardar .

Paso 3.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos , luego haga clic en Nuevo flujo .
  4. Seleccione la opción Flujo activado por registro , haga clic en Crear
    1. Objeto: Plomo
    2. Activar el flujo cuando: se crea un registro
    3. Establecer condiciones de entrada: se cumplen todas las condiciones (Y)
    4. Fila 1:
      1. Campo : Posición_Actual__Latitud__s
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
    5. Haga clic en + Agregar condición
    6. Fila 2:
      1. Campo : Posición_Actual__Longitud__s
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
    7. Optimizar el flujo para : acción y registros relacionados
    8. Elija la opción para incluir una ruta de ejecución asíncrona para acceder a un sistema externo después de que la transacción original para el registro de activación se confirme con éxito .
  5. Haga clic en Listo.

Paso 3.2: fórmula para calcular la marca de tiempo

  1. En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para calcular los segundos desde la época de Unix (1 de enero de 1970, 00:00:00).
  2. Ingrese la siguiente información :
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forN_Timestamp
    3. Tipo de datos : Número
    4. Lugares decimales : 0
    5. Fórmula : RONDA((AHORA() – FECHAHORAVALUE(“1970-01-01 00:00:00”)) * 24 * 60 * 60, 0)
  3. Haga clic en Listo.

Paso 3.3: configurar una acción de llamada HTTP GET

HTTP Callout lo guía a través de la introducción de los detalles sobre el servicio HTTP basado en web o el punto final de la API REST al que se está conectando. Después de completar la configuración, invoca la acción en un flujo.

  1. En el nodo Ejecutar asincrónicamente , seleccione Acción .
  2. Haga clic en + Crear llamada HTTP .
  3. Configure el servicio externo que conecta Salesforce con la API basada en HTTP.
    1. Introduzca un Nombre para el servicio externo.
    2. Seleccione la credencial con nombre que creó en el paso 2 .
    3. Haga clic en Siguiente .
  4. El siguiente paso es configurar la acción invocable que puede usar en Flow Builder o en Salesforce.
    1. Para Etiqueta , ingrese la acción que realiza la llamada.
    2. Método : OBTENER
    3. Agregue el extremo de la URL para la solicitud.
      1. Ruta URL : /maps/api/timezone/json
    4. Agregue claves de parámetros de consulta si la API a la que está llamando las tiene. Cuando usa esta acción en un flujo, ingresa valores para las claves definidas.
      1. Haga clic en Agregar clave
        1. Clave : ubicación
        2. Tipo de datos : cadena
        3. Requerido : Verdadero
      2. Haga clic en Agregar clave
        1. Clave : marca de tiempo
        2. Tipo de datos : entero
        3. Requerido : Verdadero
      3. Haga clic en Agregar clave
        1. Clave: clave
        2. Tipo de datos : cadena
        3. Requerido : Verdadero
  5. Proporcione un cuerpo de respuesta de API de muestra. Salesforce genera una estructura de datos a partir de la respuesta de muestra.
    1. Vaya a la sección Proporcione una respuesta de muestra .
    2. Haga clic en Nuevo .
    3. Pegue una respuesta JSON de muestra .
       { "timeZoneName": "cadena de muestra", "compensación sin procesar": 1, "timeZoneId": "cadena de muestra", "errorMessage": "cadena de muestra", "dstOffset": 1, "estado": "cadena de muestra"
      }
Seguir leyendo

Diseñe una API Swagger con código para traer datos a Salesforce ☁️

Diseñe una API Swagger con código para traer datos a Salesforce ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Diseñe una API de Swagger con código para llevar datos a Salesforce | Blog de desarrolladores de Salesforce

La integración de una API externa con su organización de Salesforce puede ser una tarea sencilla que no requiere código si utilizaCredenciales con nombre y Servicios externos . Deberá crear una credencial con nombre que apunte a la API y configurar un servicio externo en la interfaz de usuario de configuración. La clave aquí es proporcionar una especificación OpenAPI para la API. Si la API no tiene una, puede diseñarla usted mismo manualmente usando YAML o JSON, usar MuleSoft Anypoint Platform o aprovechar las herramientas y el código de código abierto.

En esta publicación, le presentaremos la especificación OpenAPI y Swagger, discutiremos los elementos principales de la especificación y lo guiaremos a través del diseño e implementación de una API con código. Usaremos Node.js y Swagger dentro del marco Fastify para esta tarea. Finalmente, integraremos esta API con Salesforce.

OpenAPI y Swagger

OpenAPI es una especificación para diseñar y construir API. Proporciona una forma estandarizada de definir su API para otros, brindando una forma estructurada que incluye puntos finales, tipos de solicitud/respuesta, definiciones de esquema, métodos de autenticación y más. Las especificaciones de OpenAPI están escritas en formatos YAML o JSON, ambos fáciles de leer y escribir. Esta especificación es ampliamente adoptada y respaldada por una variedad de herramientas, lo que la convierte en una opción popular para diseñar y documentar API. De hecho, si desea importar una API a Salesforce utilizando servicios externos, deberá especificarse con OpenAPI. Además, Salesforce es miembro de la Iniciativa OpenAPI .

Nota: A la fecha de esta publicación, la versión actual de la especificación OpenAPI es 3.1.0.

Swagger , por otro lado, es un conjunto de herramientas ( la mayoría de código abierto ) para implementar la especificación OpenAPI. Incluye la interfaz de usuario de Swagger, que proporciona una interfaz gráfica para comprender y probar las API, y Swagger Codegen, que genera código SDK de cliente y apéndices de servidor a partir de una especificación OpenAPI.

La especificación OpenAPI v2 también se conoce como Swagger, pero su nombre cambió cuando se convirtió en parte de la iniciativa OpenAPI en 2016.

Estructura básica de la especificación OpenAPI

La especificación OpenAPI está organizada en las siguientes secciones clave:

API abierta Define el documento raíz y combina la lista de recursos y la declaración de la API. Requerido
Información Proporciona metadatos sobre la API, como el título, la descripción, los términos del servicio, la información de contacto, etc. Obligatorio
Servidores Especifica una o más URL base para su API, como producción o preparación.
Seguridad Define un esquema de seguridad que pueden utilizar las operaciones de la API.
Caminos Describe las rutas y operaciones disponibles para la API. Cada ruta tiene un método HTTP con los detalles de la operación.
Etiquetas Agrega metadatos a una sola etiqueta que utiliza el objeto de operación.
Documentos externos Proporciona una descripción y una URL para la documentación externa.
Componentes Define un conjunto de objetos reutilizables para diferentes aspectos de la API. Esto puede incluir esquemas, respuestas, parámetros, ejemplos, cuerpos de solicitud, encabezados, esquemas de seguridad, etc.

Para obtener una explicación más detallada de cada sección y sus correspondientes definiciones de objeto, consulte la documentación oficial de la especificación OpenAPI .

Para fines de demostración, crearemos una API para administrar una librería. Esta API contará con dos métodos HTTP: uno para enumerar los libros disponibles y otro para agregar nuevos libros. A continuación, encontrará una definición básica de esta API, centrándose en el método para listar libros ( GET /books ) y sus objetos de respuesta.

Tenga en cuenta que estamos usando tres secciones principales aquí: Información , Rutas y Componentes . Como se mencionó anteriormente, describiremos esta API a medida que la implementemos mediante código. Para este propósito, utilizaremos Fastify y Fastify Swagger.

Fastify y Fastify Swagger

Fastify es un marco web altamente eficiente y flexible para Node.js. Está diseñado para facilitar su uso y ofrecer la máxima velocidad sin comprometer la personalización. Fastify proporciona una base sólida para las aplicaciones web y las API, con funciones como la validación de solicitudes y respuestas basadas en esquemas, ganchos, complementos y registro automático. Una de sus principales ventajas radica en su ecosistema, que incluye numerosos complementos centrales y mantenidos por la comunidad.

Uno de estos complementos es fastify-swagger . Este complemento nos permite ofrecer definiciones de Swagger (OpenAPI v2) u OpenAPI v3, que se generan automáticamente a partir de sus esquemas de ruta o de una definición existente de Swagger/OpenAPI. Además, utilizará fastify-swagger-ui , un complemento que sirve una instancia de Swagger UI dentro de su aplicación.

Nota: La siguiente demostración requiere la instalación de Node.js LTS y, a la fecha de esta publicación de blog, la última versión es v18.16.0.

Comencemos a crear la API de su librería instalando Fastify CLI y generando un nuevo proyecto ejecutando:

Luego, vayamos a la carpeta del proyecto e instalemos las dependencias fastify-swagger y fastify-swagger-ui .

Nota: En esta demostración, se centrará en tres aspectos principales: agregar compatibilidad con Swagger a Fastify, definir rutas de API y delinear esquemas y tipos de respuesta. No explicaremos cómo integrar la API con una base de datos. Si está interesado en explorar la fuente completa del proyecto, está disponible en el repositorio de ejemplos de codeLive.

Agreguemos compatibilidad con Swagger a Fastify editando el archivo app.js , luego importemos Swagger y SwaggerUI y registrémoslos como complementos.

aplicación.js

En la configuración del complemento de Swagger, tiene la opción de pasar toda la definición de especificación de OpenAPI, o puede aprovechar el enfoque dinámico que ofrece el complemento. Para esta demostración, utilizará el enfoque dinámico. Dado que el único campo obligatorio es info , definirá los metadatos de su API allí, además, la sección refResolver se encarga de nombrar las referencias de definición de esquema.

Y para SwaggerUI, solo especifica la ruta donde se alojará el sitio de documentación.

Ahora vamos a crear una carpeta schemas . Aquí es donde definirá los esquemas de su API. Para esta demostración, definirá un esquema book y un esquema error .

esquemas/index.js

Los esquemas representan la estructura de los objetos con los que trabajará, tanto para los cuerpos de solicitud como para los de respuesta. Para la especificación OpenAPI, el complemento Swagger agregará automáticamente estos objetos en el campo components .

Finalmente, definamos las rutas API para GET /books y POST /books usando Fastify. Primero, deberá registrar los esquemas dentro de Fastify. Luego, especificará los objetos de respuesta y solicitud para cada ruta que haga referencia a esos esquemas.

rutas/root.js

{ // … look at the code repository for a complete implementation } ) // POST /books fastify.post( ‘/books’, { schema: { description: "Create a book", body: { $ref: ‘book#’, required: [‘author’, ‘title’] }, response: { 201: { description: ‘Returns the book that has been created’, $ref: ‘book#’ }, 500: { description: ‘Returns an error’, $ref: ‘error#’ } } } }, async (request, reply) => { const { title, author } = request.body const id = randomUUID() const client = await fastify.pg.connect() try { const { rows: books } = await client.query( ‘INSERT INTO books(id, title, author) VALUES($1, $2, $3) RETURNING *’, [id, title, author] ) const [newBook] = books reply.code(201).send(newBook) } catch (error) { reply .status(500) .send({ code: 500, message: `An error ocurred: ${error.message}` }) } finally { client.release() } } ) // GET / fastify.get(‘/’, { schema: { hide: true } }, async function (request, reply) { reply.status(301).redirect(‘/api-docs’) })
} «>

Analicemos la ruta POST /books :

  • La función fastify.post define el método HTTP.
  • El primer argumento especifica la ruta: /books.
  • El segundo argumento especifica el schema , que incluye el body : el objeto de carga útil que espera la API. (Tenga en cuenta que es una referencia al esquema del book ). También incluye varios objetos response para esa ruta, que se asignan a los códigos de estado HTTP correspondientes 201 y 500 .
  • El tercer argumento es la implementación de la ruta. En este caso, está insertando el objeto en la base de datos y devolviendo el nuevo objeto. Si este proceso falla, devolverá un objeto de error. Es importante tener en cuenta que está utilizando los mismos esquemas que definió anteriormente.

Nota: También tiene la opción de excluir ciertas rutas de la documentación pasando hide: true en el objeto de esquema de esa ruta específica, como se demuestra en GET / route.

Su API está lista, así que ejecútela localmente para echar un vistazo a la interfaz de SwaggerUI ejecutando:

Y navegue a http://localhost:3000/api-docs para ver las diferentes rutas, su documentación y tener una forma de probarlas directamente desde la interfaz.

Si desea probarlo e implementarlo en Heroku, asegúrese de actualizar el script start en el archivo package.json con lo siguiente.

Además, asegúrese de tener acceso a una base de datos Heroku PostgreSQL y cree el esquema de la base de datos ejecutando:

<dx-code-block title language code-block="heroku pg:psql

Nota: El archivo database.sql está disponible en el repositorio de ejemplos de codeLive.

Luego puede implementarlo ejecutando:

Si desea ver cómo se ve implementado, vea mi versión que se ejecuta en Heroku .

Integración de una API externa con Salesforce

Ahora que tiene una API de acceso público, integrémosla con Salesforce como un servicio externo.

Primero, deberá crear una credencial con nombre para esta API. En la interfaz de usuario de configuración, vaya a Seguridad > Credenciales con nombre y cree una credencial externa con un protocolo de autenticación personalizado y una entidad de seguridad.

Asegúrese de que la credencial externa tenga una entidad principal a la que le haya asignado permisos en Acceso principal de credenciales externas en su conjunto de permisos.

Luego, cree una credencial con nombre que haga referencia a la credencial externa con la URL que apunta a la API pública.

A continuación, vaya a Integraciones > Servicios externos y agregue un nuevo servicio externo desde una especificación de API, seleccione la credencial con nombre y configure la ruta relativa a la ruta de especificación de OpenAPI. En su demostración, será /api-docs/json .

Después de eso, guarde sus cambios y seleccione las operaciones que desea importar a Salesforce, revise las operaciones y finalice.

Como puede ver, las operaciones que ha seleccionado se han importado correctamente, especificando tanto los parámetros de entrada como los de salida.

Ahora podrá invocar este servicio externo desde Flow, Apex, Einstein Bots y OmniStudio.

Conclusión

OpenAPI y los servicios externos de Salesforce brindan una poderosa combinación para integrar API externas en su organización de Salesforce. Al aprovechar el enfoque estandarizado de OpenAPI para definir las API y la capacidad de Salesforce para consumir fácilmente estas definiciones e invocarlas desde soluciones de código bajo y pro-código, los desarrolladores como usted pueden optimizar el proceso de conexión a servicios externos y mejorar las capacidades de sus aplicaciones de Salesforce.

Si está interesado en obtener más información sobre los servicios externos , puede encontrar una lista de recursos de aprendizaje a continuación, incluidos videos que muestran cómo invocarlos desde Flow y Apex.

Recursos de aprendizaje

Sobre el Autor

Julián Duque es un defensor principal de desarrolladores en Salesforce, donde se enfoca en Node.js, JavaScript y desarrollo backend. Le apasiona la educación y el intercambio de conocimientos y ha estado involucrado en la organización de comunidades tecnológicas y de desarrolladores desde 2001.

Sígalo en Twitter @julian_duque, @julianduque.co en Bluesky social o LinkedIn.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Seguir leyendo

Herramientas para desarrolladores desde cero (Parte 1 de 2) ☁️

Herramientas para desarrolladores desde cero (Parte 1 de 2) ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Herramientas para desarrolladores desde cero (Parte 1 de 2) | Blog de desarrolladores de Salesforce

Tanto si es un nuevo desarrollador que acaba de empezar su carrera en el ecosistema de Salesforce como si es un desarrollador experimentado de Salesforce que aún no se ha cambiado a nuestras nuevas herramientas para desarrolladores, esta serie de publicaciones de blog es para usted. Le mostraremos cómo configurar y utilizar las herramientas que pueden ayudar a todos los desarrolladores de Salesforce a ser mucho más productivos y felices.

Antes de que empieces

Si es nuevo en Salesforce y no tiene una organización (instancia de Salesforce) disponible para practicar, regístrese en una organización Developer Edition . Es completamente gratis y tiene la mayoría de las funciones de Salesforce preinstaladas para que pruebe y aprenda. Deberá proporcionar un nombre de usuario en forma de dirección de correo electrónico, pero no es necesario que sea uno real. Es solo un nombre de usuario que debe ser único en todos los productos de Salesforce. Después de solicitar una organización, recibirá un correo electrónico con los pasos para iniciar sesión. Tome nota del nombre de usuario de la organización que proporcionó, ya que tendrá que usarlo más adelante.

Si es un desarrollador de Salesforce establecido y un usuario de Developer Console, este es el momento adecuado para adoptar las nuevas herramientas de desarrollador. Si bien Developer Console puede ser una forma rápida de cambiar algunas líneas de código, usar las herramientas más modernas cambiará las reglas del juego, ya que incluyen un montón de capacidades que simplificarán su trabajo. Usar las nuevas herramientas requiere un cambio de hábitos al principio, pero te prometo que muy pronto entenderás sus beneficios. Además, tenga en cuenta que ya no estamos invirtiendo en Developer Console, y problemas como la falta de soporte para Lightning Web Components son algo que no abordaremos.

Instalación de las herramientas de desarrollador

Los metadatos de su organización están en la nube, pero para desarrollarse de una manera más productiva, desarrollará localmente. El modus operandi será trabajar con los metadatos en su máquina local y sincronizarlos con su organización, lo que significa recuperarlos o implementarlos cuando sea necesario.

Una alternativa al desarrollo local es usar Code Builder (Beta) , un IDE basado en web que puede iniciar desde su organización y que tiene las herramientas de desarrollador instaladas. Sin embargo, en este blog, nos centraremos en el flujo de trabajo de desarrollo local.

El primer paso es instalar las siguientes herramientas en su máquina:

  • CLI de Salesforce : esta es la herramienta de interfaz de línea de comandos que utilizará para escribir comandos para mover su código entre su entorno local y su organización, ejecutar pruebas, implementar datos de muestra y mucho más. Si no le gusta escribir comandos en una terminal, no tema, ya que tenemos opciones alternativas como se describe en esta publicación de blog.
  • Código VS : este es el IDE que usará para desarrollar en su máquina local.
  • Java : algunas funciones en las extensiones de Salesforce para VS Code dependen de la plataforma Java, kit de desarrollo de edición estándar (JDK). Instálelo siguiendo las instrucciones vinculadas.
  • Extensiones de Salesforce para VS Code : Este es un grupo de extensiones de VS Code que aumentan las capacidades de VSCode, exponiendo la mayoría de los comandos de la CLI de Salesforce en la interfaz de usuario de VS Code, para que pueda ejecutarlos con clics. Las extensiones también agregan funciones para habilitar la depuración, facilitar las pruebas, permitirle explorar los metadatos en su organización y más.

Creación de un proyecto de Salesforce DX

Cuando trabaja con los metadatos de una organización localmente, los archivos de metadatos deben almacenarse en una carpeta de proyecto, siguiendo una estructura determinada. Eso es lo que llamamos un proyecto de Salesforce DX.

Una vez instaladas las herramientas para desarrolladores, puede continuar y crear un proyecto de Salesforce DX que luego conectará a su organización. Una forma de hacerlo es escribir un comando que utilice la CLI de Salesforce para crear el proyecto. Puede escribir ese comando en una terminal normal.

sf project generate -n myProject

Nota: la CLI de Salesforce contiene dos ejecutables, sfdx y sf . En este blog, escribiremos los comandos utilizando el ejecutable y la sintaxis más modernos, que es sf .

El indicador -n indica el nombre del proyecto. La CLI de Salesforce aplicará scaffolding a un proyecto en una carpeta con ese nombre. Una vez que se crea el proyecto, puede abrirlo en VS Code, con File → Open Folder .

Gracias a las extensiones de Salesforce para VS Code, existe una forma sin escribir para ejecutar los comandos de la CLI de Salesforce. Simplemente abra la paleta de comandos de VS Code con View → Command Palette y escriba SFDX para ver todos los comandos disponibles. También podríamos haber creado el proyecto con SFDX: Create Project en lugar de escribir el comando.

Autorizar y establecer una organización como predeterminada

Una vez que su proyecto esté configurado, el siguiente paso es autorizar la CLI de Salesforce para que funcione con su organización. Comencemos esta vez con la forma de hacerlo sin escribir. Cuando abra el proyecto por primera vez, simplemente haga clic en el botón Sin conjunto de organizaciones predeterminado y aparecerá la paleta de comandos, sugiriendo que autorice una organización. Proceda siguiendo las instrucciones del comando.

Otra forma de hacerlo es ejecutar un comando CLI de Salesforce. Esta vez, y de ahora en adelante, le recomiendo que use el terminal integrado de VS Code para ejecutar comandos, ya que tener todas las herramientas en la misma pantalla reduce el cambio de contexto. Puede abrirlo en Terminal → New Terminal .

El comando CLI de Salesforce utilizado para autorizar una organización es:

sf org login web -s

Luego, siga las instrucciones dadas por el comando. El indicador -s configurará esa organización como su organización predeterminada para este proyecto. Puede ver la organización predeterminada de su proyecto en la barra inferior de VS Code.

Todos los comandos de la CLI de Salesforce tienen varios indicadores disponibles. Por ejemplo, si desea conectarse a una zona de pruebas, puede pasar la URL de la instancia de la zona de pruebas a sf org login web usando -r . Para ver la ayuda del comando y todos sus indicadores disponibles, ejecute el comando agregando --help al final.

Cuando trabaja con varias organizaciones, será común autorizar la CLI de Salesforce con varias organizaciones. Puede ver las organizaciones a las que la CLI de Salesforce tiene autorización para acceder ejecutando sf org list . Puede cambiar la organización predeterminada de un proyecto haciendo clic en el nombre de la organización en la barra inferior de VS Code, como hicimos para autorizar por primera vez, o ejecutando:

sf config set target-org=your-org-username@sf.com

Permítanme compartir con ustedes un último consejo. Las organizaciones pueden tener alias. Esto es útil cuando no desea recordar nombres de usuario largos o complejos. Para establecer un alias, escriba el siguiente comando.

sf alias set myalias=your-org-username@sf.com

Cuando se establece un alias, puede utilizar el alias en lugar del nombre de usuario de la organización en cualquiera de los comandos de la CLI de Salesforce.

Implementación de metadatos en la organización

Una vez que la CLI de Salesforce y su IDE estén autorizados con su organización, y la organización esté configurada como la organización predeterminada para su proyecto, puede comenzar a desarrollar e implementar cambios. Por ejemplo, digamos que queremos crear una clase de Apex. Puede crear el archivo de metadatos que representa la clase de Apex manualmente en la carpeta classes . Sin embargo, es mucho más efectivo crear la clase desde la paleta de comandos.

También puede crear una clase escribiendo el siguiente comando de la CLI de Salesforce:

sf apex generate class -n myClass -d force-app/main/default/classes

Una vez que su clase esté lista para implementarse en su organización, hay varias formas de hacerlo. Una forma es especificar los metadatos en el comando.

sf project deploy start -m ApexClass

Una segunda forma es especificar una carpeta para implementar.

sf project deploy start -p force-app/main/default/classes

Y una tercera forma, disponible gracias a Salesforce Extensions for VS Code, es hacer clic con el botón derecho en el archivo y hacer clic en Deploy This Source to Org .

Todas esas opciones le permiten ejecutar las implementaciones usted mismo. Si desea automatizar este paso e implementar un archivo cada vez que se guarda, puede establecer la configuración Implementar al guardar VS Code en "Verdadero" y ahorrar algo de tiempo.

Cuando se implementan sus metadatos, normalmente querrá abrir su organización para realizar pruebas. Puede iniciar sesión utilizando su navegador como de costumbre. Pero para los desarrolladores, es más eficiente hacer clic en el botón de abrir organización en la barra inferior de VS Code.

Conclusión

En esta publicación de blog, aprendió cómo obtener una organización gratuita para el desarrollo y cómo instalar las herramientas de desarrollo que todo desarrollador de Salesforce debería usar hoy. Ha entendido cómo crear un proyecto y autorizarlo con su organización y, por último, cómo implementar metadatos mediante la CLI de Salesforce o VS Code. En la Parte 2 de esta serie, aprenderá cómo recuperar metadatos, trabajar con organizaciones con seguimiento de origen y usar bibliotecas de Node para cuidar la calidad de su código. Además, compartiremos otras gemas ocultas de las extensiones de Salesforce para VS Code. Si te gusta un formato de video, mira nuestro episodio de codeLive . Y si tiene preguntas, no dude en hacerlas en Salesforce Developers Trailblazer Community . ¡Estén atentos para la segunda publicación de blog de esta serie mañana!

Sobre el Autor

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Puedes seguirla en Linkedin , Twitter o GitHub .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Seguir leyendo

Lista de todas las fórmulas disponibles para Salesforce Flow

Lista de todas las fórmulas disponibles para Salesforce Flow

Última actualización el 16 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo averiguar todas las funciones de fórmula permitidas en un Flujo?

Objetivos:

Después de leer este blog, podrá:

  • Descubra todas las funciones de fórmula admitidas en Salesforce Flow
  • Ejecute SOQL para objetos de la API de herramientas
  • y mucho más

Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). Quiere saber cómo encontrar todas las fórmulas disponibles para Salesforce Flow.

Práctica guiada (nosotros hacemos):

Con la Fórmula, puede crear cualquier cosa, desde ecuaciones matemáticas simples hasta cálculos más complejos y avanzados. En este artículo, aprenderá cómo encontrar todas las funciones de fórmula disponibles que se pueden usar en Salesforce Flow.

Si está buscando una explicación sobre cómo usar la columna de fórmula, consulte este artículo .

Hagamos una pausa aquí, familiarícese con los objetos API de herramientas FormulaFunction y FormulaFunctionAllowedType . contiene

Nombre del objeto
Detalles
FórmulaFunción Representa una función utilizada al construir una fórmula, incluidos ejemplos y usos. Este objeto está disponible en la API de herramientas versión 39.0 y posteriores.
CustomFielFormulaFunctionAllowedTyped Representa las funciones que se admiten en el contexto de la fórmula dada. Este objeto está disponible en la versión API 48.0 y posteriores.

Realice los pasos a continuación para obtener una cobertura de código confiable:

  1. Haga clic en Configuración | Consola de desarrollador .
  2. En el Editor de consultas, ingrese la siguiente consulta SOQL
    1. SELECCIONE Function.Name, Function.Label, Function.Description, Function.ExampleString FROM FormulaFunctionAllowedType where Type='Flow'
    2. Seleccione la casilla de verificación Usar API de herramientas .
    3. Haga clic en Ejecutar .

SELECCIONE Función.Nombre, Función.Etiqueta, Función.Descripción, Función.Cadena de ejemplo
FROM FormulaFunctionAllowedType donde Tipo='Flujo'

Lista de todas las fórmulas disponibles para Salesforce Flow

FórmulaFunción.Nombre FormulaFunction.Label FormulaFunction.Descripción FormulaFunction.ExampleString
1 abdominales abdominales Devuelve el valor absoluto de un número, un número sin su signo ABS (número)
2 ACOS ACOS Devuelve el arcocoseno del número en radianes, si el número dado está entre -1 y 1. De lo contrario, NULL. ACOS(número)
3 AGREGARMESES AGREGARMESES Agregue el número de meses a la fecha, usando la última fecha del mes si la fecha es el último día del mes o agregando el número de meses tiene menos días. AGREGARMESES(fecha,num)
4 Y Y Comprueba si todos los argumentos son verdaderos y devuelve VERDADERO si todos los argumentos son verdaderos Y (lógico1, lógico2,…)
5 ASCII ASCII Devuelve el punto de código del primer carácter de la cadena dada como un número. ASCII(texto)
6 COMO EN COMO EN Devuelve el arcoseno del número en radianes, si el número dado está entre -1 y 1. De lo contrario, NULL. ASIN(número)
7 UN BRONCEADO UN BRONCEADO Devuelve el arco tangente del número en radianes. ATAN(número)
8 ATAN2 ATAN2 Devuelve el arco tangente del cociente de y y x en radianes. ATAN2(y,x)
9 COMIENZA COMIENZA Comprueba si el texto comienza con los caracteres especificados y devuelve VERDADERO si es así. De lo contrario devuelve FALSO COMIENZA(texto, comparar_texto)
10 VALOR EN BLANCO VALOR EN BLANCO Comprueba si la expresión está en blanco y devuelve expresión_sustituta si está en blanco. Si la expresión no está en blanco, devuelve el valor de la expresión original. VALOR EN BLANCO (expresión, expresión_sustituta)
11 BR BR Inserta una etiqueta de interrupción HTML en fórmulas de cadena BR()
12 CASO CASO Compara una expresión con una serie de valores. Si la expresión es igual a cualquier valor, se devuelve el resultado correspondiente. Si no es igual a ninguno de los valores, se devuelve el resultado de otra cosa CASE(expresión, valor1, resultado1, valor2, resultado2,…,else_result)
13 CASESAFEID CASESAFEID Convierte una identificación de 15 caracteres en una identificación de 18 caracteres que no distingue entre mayúsculas y minúsculas CASESAFEID(id)
14 TECHO TECHO Redondea un número al entero más cercano, lejos de cero si es negativo TECHO(número)
15 CDH CDH Devuelve una cadena con el punto de código del primer carácter como el número dado. CHR(número)
dieciséis CONTIENE CONTIENE Comprueba si el texto contiene caracteres específicos y devuelve VERDADERO si los contiene. De lo contrario, devuelve FALSO CONTIENE(texto, comparar_texto)
17 porque porque Devuelve el coseno del número, donde el número dado en radianes COS(número)
18 TAZA DE CAMBIO TAZA DE CAMBIO Devuelva la tasa de conversión a la moneda corporativa para el CurrencyIsoCode dado, o 1.0 si la moneda no es válida. TIPO DE MONEDA (IsoCode)
19 FECHA FECHA Crea una fecha a partir de un año, mes y día. FECHA (año, mes, día)
20 FECHAHORAVALOR FECHAHORAVALOR Devuelve un valor de año, mes, día y hora GMT DATETIMEVALUE(expresión)
21 FECHAVALO FECHAVALO Crea una fecha a partir de su representación de fecha y hora o texto FECHAVALUE(expresión)
22 DÍA DÍA Devuelve el día del mes, un número entre 1 y 31 DÍA (fecha)
23 DÍA DEL AÑO DÍA DEL AÑO Devuelve el día del año calendario (del 1 al 366). DÍA DEL AÑO (fecha)
24 DISTANCIA DISTANCIA Devuelve la distancia entre dos ubicaciones utilizando la unidad proporcionada. DISTANCIA(ubicación, ubicación, unidad)
25 Exp Exp Devuelve e elevado a la potencia de un número dado EXP(número)
26 ENCONTRAR ENCONTRAR Devuelve la posición de la cadena search_text en text ENCONTRAR(buscar_texto, texto [, start_num])
27 PISO PISO Redondea un número hacia abajo, hacia cero al entero más cercano Numero de piso)
28 FORMATO DURACIÓN FORMATO DURACIÓN Formatee el número de segundos con días opcionales, o la diferencia entre horas o dateTimes como HH:MI:SS. FORMATDURATION(numSeconds[, includeDays] | dateTime/time, dateTime/time)
29 DESDEUNIXTIME DESDEUNIXTIME Devuelve la fecha y hora que representa el número dado como los segundos transcurridos desde el 1 de enero de 1970. DESDEUNIXTIME(número)
30 GEOLOCALIZACIÓN GEOLOCALIZACIÓN Devuelve una ubicación basada en la latitud y longitud proporcionadas. GEOLOCALIZACIÓN (latitud, longitud)
31 GETSESIONID GETSESIONID Devuelve el ID de la sesión actual. Esto puede ser útil en los hipervínculos a otras aplicaciones que utilizan las credenciales de salesforce.com para la autenticación. GETSESIONID()
32 HTMLENCODE HTMLENCODE Codifica texto y fusiona valores de campo para su uso en HTML HTMLENCODE(texto)
33 HIPERVÍNCULO HIPERVÍNCULO Crea un hipervínculo HIPERVÍNCULO (url, nombre_amistoso [, destino])
34 SI SI Comprueba si una condición es verdadera y devuelve un valor si es VERDADERO y otro valor si es FALSO. SI (prueba_lógica, valor_si_verdadero, valor_si_falso)
35 INCLUYE INCLUYE Determina si cualquier valor seleccionado en un campo de lista de selección múltiple es igual a un literal de texto que especifique. INCLUYE (multiselect_picklist_field, text_literal)
36 INITCAP INITCAP Devuelve el texto en minúsculas con el primer carácter de cada palabra en mayúsculas. INITCAP(texto)
37 ESTÁ EN BLANCO ESTÁ EN BLANCO Comprueba si una expresión está en blanco y devuelve VERDADERO o FALSO ESBLANCO(expresión)
38 ES NULO ES NULO Comprueba si una expresión es nula y devuelve VERDADERO o FALSO ESNULL(expresión)
39 ES NÚMERO ES NÚMERO Devuelve VERDADERO si el valor del texto es un número. De lo contrario, devuelve FALSO. ESNUMERO(Texto)
40 ISOSEMANA ISOSEMANA Devuelva el número de semana ISO 8601 para la fecha dada (del 1 al 53) para que la primera semana comience el lunes. ISOSEMANA(fecha)
41 ISOAÑO ISOAÑO Devuelve el año de 4 dígitos de la numeración de semanas ISO 8601 para la fecha dada, de modo que el primer día sea lunes. ISOAÑO(fecha)
42 ISPICKVAL ISPICKVAL Comprueba si el valor de un campo de lista de selección es igual a un literal de cadena ISPICKVAL(campo_lista_selección, literal_texto)
43 JSENCODE JSENCODE Codifica texto y valores de campo de combinación para su uso en JavaScript JSENCODE(texto)
44 JSINHTMLENCODE JSINHTMLENCODE Codifica texto y valores de campo combinados para su uso en JavaScript dentro de etiquetas HTML JSINHTMLENCODE(texto)
45 IZQUIERDA IZQUIERDA Devuelve el número especificado de caracteres desde el inicio de una cadena de texto IZQUIERDA(texto, num_chars)
46 LARGO LARGO Devuelve el número de caracteres en una cadena de texto LARGO(texto)
47 ENLACE A ENLACE A Devuelve el elemento de enlace HTML para el objetivo seleccionado con entradas opcionales expresadas como parámetros de consulta LINKTO(etiqueta, objetivo, id, [entradas], [sin anular])
48 LN LN Devuelve el logaritmo natural de un número LN(número)
49 REGISTRO REGISTRO Devuelve el logaritmo en base 10 de n REGISTRO (número)
50 MÁS BAJO MÁS BAJO Convierte todas las letras del valor a minúsculas INFERIOR (texto)
51 LPAD LPAD Rellene el lado izquierdo del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length LPAD(texto, padded_length [, pad_string])
52 MÁX. MÁX. Devuelve el mayor de todos los argumentos. MAX(número,número,…)
53 MCEILING MCEILING Redondea un número al entero más cercano, hacia cero si es negativo MCEILING(número)
54 PISO PISO Redondea un número hacia abajo al entero más cercano, lejos de cero si es negativo MFLOOR(número)
55 MEDIO MEDIO Devuelve un carácter desde la mitad de una cadena de texto, dada una posición inicial y una longitud MID(texto, núm_inicio, núm_caracteres)
56 MÍN. MÍN. Devuelve el menor de todos los argumentos. MIN(número,número,…)
57 MODIFICACIÓN MODIFICACIÓN Devuelve el resto después de dividir un número por un divisor MOD(número,divisor)
58 MES MES Devuelve el mes, un número entre 1 (enero) y 12 (diciembre) MES(fecha)
59 NO NO Cambia FALSO a VERDADERO o VERDADERO a FALSO No es lógico)
60 AHORA AHORA Devuelve una fecha y hora que representa el momento actual AHORA()
61 VALOR NULO VALOR NULO Comprueba si expresión es nula y devuelve expresión_sustituta si es nula. Si la expresión no es nula, devuelve el valor de la expresión original. NULLVALUE(expresión, expresión_sustituta)
62 O O Comprueba si alguno de los argumentos es verdadero y devuelve VERDADERO o FALSO. Devuelve FALSO solo si todos los argumentos son falsos O(lógico1,lógico2,…)
63 Pi Pi Devuelve pi PI()
64 PICKLISTCOUNT PICKLISTCOUNT Devuelve el número de valores seleccionados en una lista de selección múltiple. PICKLISTCOUNT(multiselect_picklist_field)
sesenta y cinco PREDECIR PREDECIR Devuelve una predicción de Einstein Discovery basada en un Id. de registro o una lista de campos y sus valores. PREDICT(PredDefId, [recordId] | [campo, valor, …])
66 REGEX REGEX Devuelve VERDADERO si Texto coincide con la expresión regular RegEx_Text. De lo contrario, devuelve FALSO. REGEX(Texto, RegEx_Text)
67 CONTRARRESTAR CONTRARRESTAR Devuelve la cadena de texto en orden inverso REVERSO (texto)
68 BIEN BIEN Devuelve el número especificado de caracteres desde el final de una cadena de texto DERECHA(texto, num_chars)
69 REDONDO REDONDO Redondea un número a un número específico de dígitos REDONDO(número,núm_dígitos)
70 RPAD RPAD Rellene el lado derecho del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length RPAD(texto, padded_length [, pad_string])
71 PECADO PECADO Devuelve el seno del número, donde el número dado en radianes SIN(número)
72 SQRT SQRT Devuelve la raíz cuadrada positiva de un número SQRT(número)
73 SUSTITUTO SUSTITUTO Sustituye texto_nuevo por texto_antiguo en una cadena de texto. Use SUSTITUIR cuando desee reemplazar texto específico en una cadena de texto SUSTITUIR (texto, texto_antiguo, texto_nuevo)
74 BRONCEARSE BRONCEARSE Devuelve la tangente del número, donde el número dado en radianes TAN(número)
75 TEXTO TEXTO Convierte un valor en texto usando un formato de visualización estándar TEXTO(valor)
76 HOY HOY Devuelve la fecha actual HOY()
77 RECORTAR RECORTAR Elimina todos los espacios de una cadena de texto excepto los espacios individuales entre palabras RECORTAR (texto)
78 TRONCO TRONCO Trunca un número a un número específico de dígitos TRUNC(número,núm_dígitos)
79 UNIXTIMESTAMP UNIXTIMESTAMP Devuelve la cantidad de segundos desde el 1 de enero de 1970 para la fecha dada, o la cantidad de segundos en el día para una hora. UNIXTIMESTAMP(fecha/hora)
80 SUPERIOR SUPERIOR Convierte todas las letras del valor a mayúsculas SUPERIOR (texto)
81 CÓDIGOURL CÓDIGOURL Codifica texto y valores de campo combinados para su uso en direcciones URL CÓDIGOURL(texto)
82 URLPARA URLPARA Devuelve la URL del destino seleccionado con entradas opcionales expresadas como parámetros de consulta URLFOR(objetivo, id, [entradas], [sin anular])
83 VALOR VALOR Convierte una cadena de texto que representa un número en un número VALOR(texto)
84 DÍA LABORABLE DÍA LABORABLE Devuelve el día de la semana para la fecha dada, usando 1 para el domingo, 2 para el lunes, hasta 7 para el sábado. DÍA DE LA SEMANA (fecha)
85 AÑO AÑO Devuelve el año de una fecha, un número entre 1900 y 9999 AÑO (fecha)

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Seguir leyendo

Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 ☁️

Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

¡Únase a nosotros para Release Readiness Live esta semana! Los expertos en productos y los defensores de los desarrolladores analizarán y demostrarán las nuevas funciones en el lanzamiento de Summer '23 y, al final de nuestra transmisión, responderemos sus preguntas. Sintonice a las 9 am PT el 19 de mayo para la sesión de desarrolladores. ¿No puedes unirte a nosotros en vivo? La grabación se publicará unas horas después de que finalice la transmisión.

Introducción

Tableau lanzará muchas innovaciones nuevas e interesantes para los desarrolladores en Summer '23, incluido Tableau Embedding Playground, una colección de Postman para la API REST de Tableau y una nueva forma de personalizar y personalizar las vistas integradas en función de los atributos del usuario para las aplicaciones integradas.

Comience con el análisis incorporado

Si conoce Tableau, entonces sabe que puede crear visualizaciones poderosas (visualizaciones, para abreviar) que ayudan a las personas a ver y comprender sus datos. Si está creando una aplicación web, es posible que desee agregar visualizaciones relevantes de Tableau a su aplicación para mejorar la información que ofrece a sus clientes.

Tableau facilita la inserción de visualizaciones al proporcionar un botón Copiar código incrustado , que está disponible al hacer clic en el botón Compartir en la barra de herramientas de Tableau. Puede usar ese código para insertar una visualización de Tableau en una página web.

El código que obtiene del botón Copiar código incrustado es solo un punto de partida. ¿Qué sucede si desea filtrar la visualización en función de quién está viendo la página? Para crear una rica experiencia de análisis integrado para sus usuarios, debe usar Tableau Embedding API v3 . Con la API de inserción, puede aplicar filtros, establecer parámetros, recopilar datos que utiliza para impulsar otras acciones o agregar interfaces personalizadas para interactuar con la visualización.

OK, así que le gustaría ver lo que es posible. Pero si no está familiarizado con la API de incrustación, esto podría significar aprender una nueva biblioteca de JavaScript, leer páginas de material de referencia de la API y otra documentación, y luego configurar un entorno de desarrollo, solo para verificar algunas cosas. Ahora, hay una manera más fácil.

Bienvenido al patio de recreo

Tableau Embedding Playground le facilita el aprendizaje y la exploración de análisis integrados y la API de integración de Tableau. Todo lo que tiene que hacer es proporcionar la URL de la vista de Tableau que desea incrustar, personalizar la visualización, agregar las interacciones que desea probar y luego hacer clic en Ejecutar .

Nota: esta versión de acceso anticipado de Embedding Playground utiliza un libro de trabajo de muestra. Los fragmentos de código que agregan interacciones a la visualización integrada están optimizados para funcionar con esta muestra. Se han completado los nombres de las hojas de trabajo y las variables. Puede usar el Editor de código para editar el código JavaScript. Para esta versión, el panel HTML es de solo lectura, por lo que puede concentrarse por completo en personalizar y agregar interactividad a la visualización en Playground, sin tener que preocuparse por el estilo y el CSS.

El Embedding Playground tiene tres secciones principales:

  • El panel Vista previa , donde puede ver la visualización incrustada y los resultados de su código cambian cuando hace clic en Ejecutar
  • La vista Código , donde puede ver el código JavaScript y HTML que incrusta la visualización de Tableau.
  • El panel de control de la izquierda , donde configura la URL para la vista incrustada y sus propiedades de visualización, como el tamaño y la posición de la barra de herramientas, y donde también puede agregar interacciones, que vienen en forma de fragmentos de código que arrastra y suelta en el Panel JavaScript.

Personaliza el código

Embedding Playground usa Tableau Embedding API v3 para insertar la visualización en el panel de vista previa. La API de incrustación utiliza componentes web y proporciona un elemento HTML que representa la visualización de Tableau. Puede colocar este componente web ( <tableau-viz> ) en su página web como lo haría con cualquier elemento HTML, como una etiqueta <div> o <p> . El panel HTML en la vista Código muestra este componente web.

Este código HTML y un enlace a la biblioteca de la API de incrustación son todo lo que necesita para colocar una visualización de Tableau en una página web. Esto es esencialmente lo que obtiene si usa el botón Copiar código incrustado en Tableau Cloud. Pero hay mucho más que puede hacer, y Embedding Playground lo hace fácil.

<dx-code-block title language code-block="

 
 

«>

Supongamos que queremos aplicar un filtro a la visualización, de modo que solo muestre información que sea de interés para un conjunto específico de usuarios, o que destaque un punto que está tratando de resaltar (como mostrar ciertos lugares en un mapa, o conjuntos particulares de datos).

Con el componente web <tableau-viz> , tenemos acceso a la vista integrada de Tableau, o lo que llamamos el objeto Tableau viz. Si está familiarizado con Tableau, sabrá que un libro de trabajo de Tableau consta de hojas de trabajo, tableros e historias. O más exactamente, un libro de trabajo contiene un montón de hojas, algunas de las cuales son hojas de trabajo, algunas son tableros y otras son historias. Desde el objeto de visualización, podemos acceder al libro de trabajo y a todas las hojas de trabajo y tableros dentro del libro de trabajo. Para cada tipo de hoja, ciertas propiedades están disponibles y hay API (o métodos) específicos a los que puede llamar.

Usando el Embedding Playground, no tienes que memorizar todo eso. Digamos que su vista incrustada es un tablero. Si desea aplicar un filtro a la vista, simplemente haga clic en Agregar interacciones , haga clic en Tablero , haga clic en Filtros y luego arrastre y suelte la tarjeta Aplicar filtro en el panel de JavaScript, justo debajo de *** ¡Inserte su código a continuación! *** comentario.

En esta versión de acceso anticipado, el fragmento de código Aplicar filtro tiene el siguiente aspecto, con el nombre del filtro y sus valores ya completados. Cuando se publique Embedding Playground, los fragmentos de código tendrán marcadores de posición que se reemplazan con los nombres de filtro y valores para su viz. Tenga en cuenta que el Editor de código está en pleno funcionamiento, por lo que puede modificar los valores (cambiar o agregar diferentes estados). Darle una oportunidad. Haga clic en Ejecutar y vea los resultados.

Ven al Playground para enterarte de las novedades

Los desarrolladores de Tableau están ocupados trabajando en nuevas funciones para mejorar el análisis integrado. A medida que se introduzcan nuevos métodos y propiedades, primero se anunciarán en el Programa para desarrolladores y se resaltarán en el Área de juegos de incrustación. Si es un desarrollador experimentado, Embedding Playground podría ser un útil borrador para probar nuevas ideas y trabajar con nuevas API a medida que se presentan. Con Playground, puede probar rápidamente métodos nuevos y existentes y verificar su código sin la sobrecarga de iniciar un nuevo proyecto.

En versiones futuras de Embedding Playground, podrá proporcionar las URL para sus propias visualizaciones y usar Playground como una aplicación conectada , que ofrece una experiencia de autenticación segura y sin problemas basada en relaciones de confianza y con creación web integrada. Además, agregaremos nuevos fragmentos de código para proporcionar plantillas para las interacciones.

Use el código de Playground para impulsar el desarrollo

Puede usar la barra de menú de botones para descargar o copiar el código. El código descargado o copiado está contenido en un solo archivo HTML. Este archivo contiene el código HTML que define el componente web <tableau-viz> y el código JavaScript que agregó cuando agregó interacciones. Puede utilizar este código como punto de partida para desarrollar sus aplicaciones integradas. O copie el código para su necesidad de interacciones específicas, como filtrar la visualización, establecer parámetros o agregar menús contextuales personalizados. Para obtener más información sobre el uso del código para incrustar, consulte los documentos de Tableau Embedding API v3 .

¿Ya leíste lo suficiente? ¡Pruebe Tableau Embedding Playground ahora y permanezca atento a más información!

Colección Tableau Postman (API REST)

Si alguna vez usó la API REST de Tableau , sabe que es una parte esencial de la gestión y administración de usuarios y contenido en Tableau Cloud y Tableau Server. Con la API REST de Tableau, puede hacer mediante programación todo lo que puede hacer con la interfaz de usuario en los sitios de Tableau Server y Tableau Cloud. La API utiliza el conocido protocolo de comunicaciones cliente-servidor a través de HTTP, utilizando solicitudes web estándar. Puede consultar y configurar recursos, establecer permisos y controlar el acceso.

Probablemente también sepa que configurar una sesión para enviar esas solicitudes no siempre es fácil. Conectarse al servidor, autenticarse y adquirir los tokens de acceso para comunicarse con Tableau Server o el sitio de Tableau Cloud puede ser algo complicado. Particularmente si solo está interesado en encontrar rápidamente el nombre de una fuente de datos o buscar un identificador de recurso. Una de las herramientas a las que recurren las personas para generar solicitudes HTTP para puntos finales REST es Postman, una aplicación que puede descargar o usar en un navegador que facilita la creación de solicitudes y el almacenamiento de esas solicitudes en colecciones. La buena noticia es que ahora no necesitas empezar de cero.

Los desarrolladores de Tableau han creado una colección de Postman para la API de REST de Tableau que está disponible junto con las otras colecciones para las API de Salesforce en el espacio de trabajo de Postman del desarrollador de Salesforce . Ya no necesita buscar en la documentación de la API ni recurrir a prueba y error para crear sus propias solicitudes. El espacio de trabajo del cartero del desarrollador de Salesforce tiene el conjunto completo de puntos finales de la API REST de Tableau por los que puede navegar y elegir los que necesita usar. Postman te permite definir y guardar las variables que necesitas para tu conexión. También puede usar Postman para generar las solicitudes en diferentes lenguajes de programación como Python, JavaScript y cURL, de modo que pueda incorporar la solicitud en scripts o en sus aplicaciones integradas.

Puede encontrar más información sobre la API REST de Tableau y lo que la colección Postman puede hacer por usted en la publicación de blog de Stephen Price, Use la API REST de Tableau con Postman para diseñar integraciones.

Funciones de atributo de usuario

La entrega de información personalizada y personalizada es uno de los principales objetivos cuando se integran visualizaciones de Tableau en aplicaciones web. Desea asegurarse de que los usuarios que usan su aplicación tengan la mejor experiencia posible y tengan acceso a la información que no solo es relevante para sus necesidades, sino que también son datos que pueden ver.

Con ese fin, Tableau introdujo dos nuevas funciones de usuario ( USERATTRIBUTE y USERATTRIBUTEINCLUDES ) que brindan un nuevo nivel de personalización y control cuando crea aplicaciones integradas que usan aplicaciones conectadas a Tableau para la integración de aplicaciones. A partir de Tableau 2023.1, cuando autoriza el acceso a contenido incrustado mediante aplicaciones conectadas, ahora puede pasar atributos de usuario en el token web JSON (JWT). Para obtener más información, consulte: Controlar y personalizar el acceso a datos mediante atributos de usuario .

Usted define cuáles son estos atributos de usuario y, según su organización, podrían ser atributos basados en roles de trabajo, departamentos, nivel de gestión, autorización de seguridad, pertenencia a grupos, etc. Estos atributos de usuario siguen el modelo de control de acceso basado en atributos (ABAC), que le brinda flexibilidad en la forma en que diseña sus aplicaciones web. Por ejemplo, podría crear un único portal web que sirva a diferentes grupos proporcionando diferentes vistas de esos datos en función de los atributos. Para ver cómo puede aplicar estos atributos en los libros de trabajo de Tableau, consulte Funciones de usuario: solo para incrustar flujos de trabajo en la nube . Cuando crea vistas en Tableau, los atributos de usuario le dan la opción de agregar filtros de seguridad de nivel de fila a las vistas que incrusta en las aplicaciones web.

Para obtener una excelente descripción general de cómo puede utilizar los atributos, consulte la publicación de blog:Desbloquee el poder de los análisis personalizados con funciones de atributos de usuario. Y para obtener experiencia práctica, consulte el tutorial: Tutorial de funciones de atributos de usuario .

Conclusión

Desde usuarios nuevos hasta desarrolladores experimentados, Tableau Embedded Playground facilita que todos desarrollen código para soluciones de análisis integradas. La colección de Postman para la API REST de Tableau puede ahorrarle tiempo y esfuerzo al encapsular el conjunto completo de terminales REST de Tableau en una interfaz fácil de usar y agregar atributos de usuario a sus aplicaciones integradas para brindar una experiencia más personalizada y segura para su usuarios

Únase al programa para desarrolladores de Tableau

Haga que Tableau trabaje para usted. Únase al Programa para desarrolladores de Tableau y descubra las últimas herramientas y funciones. Obtenga acceso a versiones preliminares y acceso anticipado a nuevas API y bibliotecas mientras aún están en desarrollo. Proporcione comentarios y ayude a dar forma a lo que está por venir.

Aprende MOAR

Nuestros gerentes de producto y defensores de desarrolladores están de vuelta para compartir las últimas características y funcionalidades que llegarán en Summer '23. Para ayudarlo a desarrollarse más rápido, hay una gran cantidad de contenido nuevo del equipo de relaciones con desarrolladores que cubre sus nuevas características favoritas. ¡Asegúrese de consultar Release Readiness Live el viernes 19 de mayo a las 9:00 a. m. PST, y lea lo último en el blog de desarrolladores de Salesforce para conocer más innovaciones relacionadas con desarrolladores en el lanzamiento de Summer '23!

¡Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos! Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Más recursos

Otras lecturas

Sobre el Autor

Dave Hagen trabaja como redactor técnico en el equipo de experiencia de contenido de Salesforce. Escribe documentación para la plataforma de desarrollo de Tableau y el análisis integrado. Puedes encontrarlo en LinkedIn .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Seguir leyendo

Generar código de barras y código QR en Salesforce

Generar código de barras y código QR en Salesforce

Última actualización el 12 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo generar código de barras y código QR en Salesforce?

Objetivos:

Después de leer este blog, podrá:

  • Comprender la diferencia entre código de barras y código QR
  • Beneficios de usar Código de Barras y Código QR
  • Genere un código de barras y muéstrelo en un campo
  • Cargar el código de barras en el archivo de Salesforce y asociarlo con el producto
  • y mucho más

Jestilla Zetkin trabaja como arquitecta de Salesforce en Gurukul On Cloud (GoC) . Mientras trabajaba en la implementación de Sales Cloud, obtuvo el requisito de generar códigos de barras. A continuación se detalla el requisito:

  1. Generar un código de barras para el código del producto
  2. Mostrar el código de barras en la página de detalles del producto
  3. Adjunte automáticamente el código de barras a la lista relacionada con el archivo en el producto.

¿Qué son el código de barras y el código QR?

Un código de barras y un código QR son tipos de códigos legibles por máquina que se utilizan para almacenar y recuperar información.

Un código de barras es una imagen cuadrada o rectangular compuesta de líneas paralelas negras y espacios en blanco. Se utiliza en tiendas para rastrear el inventario de productos, en hospitales para rastrear registros de pacientes y en el rastreo de equipaje de aerolíneas, etc.

Un código de respuesta rápida, también conocido como código QR, es un tipo de código de barras que incluye detalles legibles por máquina sobre el elemento al que está adjunto. Se utiliza para compartir datos como videos, fotos, URL web, contactos, etc.

La distinción principal entre un código de barras y un código QR es que un código de barras solo puede almacenar datos en una dimensión, mientras que un código QR puede almacenar datos en dos dimensiones.

¿Beneficios de usar código de barras y código QR?

El código de barras y el código QR brindan varias ventajas en el proceso de ventas, incluida una precisión mejorada, disponibilidad de fecha inmediata, implicaciones de bajo costo y mejor control de inventario. Beneficios de usar códigos de barras y códigos QR:

  1. Entrada de datos eficiente : los códigos de barras y los códigos QR eliminan la necesidad de la entrada manual de datos, lo que reduce los errores y aumenta la eficiencia.
  2. Gestión de inventario : ayudan a agilizar el seguimiento y la gestión del inventario al proporcionar información precisa y en tiempo real.
  3. Transacciones más rápidas : escanear códigos de barras y códigos QR acelera las transacciones en el punto de venta, lo que reduce los tiempos de espera.
  4. Fácil implementación : los códigos de barras y los códigos QR se pueden generar e imprimir fácilmente, y su escaneo se puede realizar con teléfonos inteligentes estándar o escáneres dedicados.
  5. Oportunidades de marketing mejoradas : los códigos QR, en particular, se pueden usar para atraer a los clientes con contenido interactivo, promociones y anuncios.

¿Cómo generar código de barras y código QR?

Para generar un código de barras, puede utilizar varios generadores de códigos de barras en línea o bibliotecas de programación que ofrecen funcionalidades de creación de códigos de barras.

En este artículo usaremos la API de código de barras bwip-js . La API en línea de bwip-js está alojada en una instancia Amazon AWS EC2 mediante una aplicación node.js. Puede usar esta API para generar dinámicamente imágenes de códigos de barras desde cualquier lugar de la web. La imagen devuelta está en formato PNG. No hay cargos por usar esta API y no pude encontrar ningún límite de uso.

Los dos parámetros requeridos son el tipo de código de barras y el valor a codificar. También puede agregar parámetros adicionales para rotar (permite rotar la imagen a una de las cuatro orientaciones ortogonales) e incluir texto .

Práctica guiada (nosotros hacemos):

Realice los pasos a continuación para generar un código de barras para el código del producto:

Paso 1: cree un campo de fórmula personalizada en el producto para generar y mostrar un código de barras

Ahora generaremos la imagen del código de barras usando un generador de código de barras bwip-js y mostraremos la imagen en un campo de fórmula usando la etiqueta de imagen.

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Producto .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo .
  4. Seleccione Fórmula como Tipo de datos, luego haga clic en Siguiente.
  5. Ingrese la etiqueta del campo : código de barras (código del producto) y haga clic en la tecla de tabulación, se completará el nombre del campo .
    1. Tipo de devolución de fórmula : Texto
  6. Haga clic en el botón Siguiente .
    1. URL de la fórmula : IMAGEN(“ https://bwipjs-api.metafloor.com/?bcid=code39&text=”+ ProductCode +”&scale=2&rotate=N&includetext&backgroundcolor=ffffff”,”Barcode”)
  7. Establezca la seguridad a nivel de campo para los perfiles .
  8. Agregue este campo a Diseño de página .
  9. Haga clic en Guardar .

Paso 2: asociar la imagen del código de barras al archivo de Salesforce

Ahora ya sabe cómo generar la imagen del código de barras sin ningún código. El siguiente paso es cargar la imagen del código de barras en el archivo de Salesforce para generar o imprimir un PDF.

  1. La imagen devuelta de la API de código de barras bwip-js está en formato PNG. Necesitamos un código apex para recuperar el cuerpo de esta solicitud como un blob.
     Solicitud HttpRequest = new HttpRequest();
    solicitud.setEndpoint(r.imagenURL);
    solicitud.setMethod('GET');
    Enlace Http = nuevo Http();
    Respuesta HttpResponse = vinculante. enviar (solicitud);
    Imagen de blob = respuesta.getBodyAsBlob();
Seguir leyendo

Las mejores formas de automatizar la gestión de proyectos en Salesforce

Las mejores formas de automatizar la gestión de proyectos en Salesforce

Administrar sus proyectos dentro de Salesforce garantiza que todos sus datos clave estén disponibles en un solo lugar, con todos los que necesitan la capacidad de acceder a ellos ya en la plataforma y familiarizados con la interfaz de usuario. Además, no es necesario que cree ni mantenga la integración con herramientas de gestión de proyectos externas de terceros. Sin embargo, si está buscando mejorar aún más su juego de gestión de proyectos en Salesforce, la mejor manera de hacerlo sería a través de la automatización. Este artículo lo guiará a través de las mejores formas de automatizar la gestión de proyectos en Salesforce.

La automatización ayuda a su organización a crear valor a través de una reducción del tiempo dedicado a realizar tareas, una reducción del riesgo relacionado con el error humano y la creación de una experiencia optimizada para sus usuarios y clientes.

Las posibilidades son infinitas cuando se utilizan herramientas de automatización de Salesforce listas para usar, como Salesforce Flow, y las aplicaciones de gestión de proyectos de Salesforce adecuadas, como Inspire Planner.

Ejemplos de cómo puede automatizar la gestión de proyectos en Salesforce

Tabla de contenido

Una vez que haya decidido automatizar la gestión de proyectos en Salesforce, la pregunta es ¿Qué automatizamos ?

A continuación se enumeran varios escenarios de automatización de la gestión de proyectos que han demostrado ahorrar tiempo y recursos a las empresas. Estos pueden darle ideas sobre lo que desea automatizar en su organización de Salesforce.

Lanzar proyectos automáticamente con un flujo de Salesforce

Es un escenario común que las empresas necesitan lanzar proyectos a partir de plantillas específicas cuando las Oportunidades pasan a la etapa Cerrado/Ganado. Hacer esto manualmente para cada oportunidad requiere una cantidad considerable de tiempo y esfuerzo. Además, también deja espacio para el error humano o para que alguien simplemente olvide o retrase un paso.

Con Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce, puede crear un flujo de Salesforce desencadenado por registro para crear automáticamente un proyecto a partir de una plantilla específica en función de diferentes criterios (por ejemplo, la etapa de oportunidad se actualiza a Cerrado/Ganado).

Automatice la gestión de proyectos en Salesforce con Salesforce Flows para lanzar proyectos a partir de oportunidades

Este nuevo proyecto heredará de la plantilla todas sus fases y tareas, predecesores, archivos adjuntos, roles de recursos y más.

Entonces, para comenzar, su gerente de proyecto simplemente necesita actualizar la fecha de inicio de su primera tarea y asignar el equipo del proyecto (¡ambos también se pueden automatizar!).

Se puede configurar una automatización similar de Salesforce Flow para lanzar proyectos desde otras etapas de Oportunidades o para otros objetos en Salesforce, como Casos, Cuentas, Pedidos y más.

Automatice la gestión de proyectos en Salesforce con plantillas de proyectos

Si su organización entrega proyectos que siguen procesos estandarizados, puede Automatice la gestión de proyectos en Salesforce configurando plantillas de proyectos y usándolas cada vez que desee configurar un nuevo proyecto en lugar de crearlos desde cero.

Configurar plantillas de proyecto puede ser un proceso simple con la herramienta adecuada. Por ejemplo, en Inspire Planner simplemente debe marcar la casilla de verificación 'Es plantilla' al crear un nuevo proyecto para hacer una Plantilla de proyecto. Y puede crear un número ilimitado de plantillas para diferentes procesos dentro de su organización.

Las plantillas de proyecto permitirán que su software de administración de proyectos de Salesforce haga parte del trabajo más insignificante por usted, permitiéndole a usted y a su equipo concentrar sus esfuerzos en brindar un servicio de alta calidad a sus clientes.

Con Inspire Planner, sus proyectos heredarán la mayor parte de la información requerida de la plantilla, incluidas las tareas, los archivos adjuntos, la duración de las tareas, las fechas de inicio y finalización, los predecesores, los recursos asignados, la prioridad, el esfuerzo planificado, el costo presupuestado, las categorías, las notas y el diseño del proyecto. y Configuración, y más.

Automatice la gestión de proyectos en Salesforce con plantillas de proyectos ilimitadas en Inspire Planner, una aplicación de gestión de proyectos nativa de SalesforceAutomatice la gestión de proyectos en Salesforce con plantillas de proyectos ilimitadas en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Automatice la gestión de proyectos en Salesforce con la asignación de tareas basada en roles

Asignar automáticamente las tareas de su proyecto a los recursos correctos es una manera fácil de automatizar la gestión de proyectos en Salesforce.

Dependiendo de la cantidad de tareas en sus proyectos, esto podría sumar una cantidad significativa del tiempo de sus gerentes de proyecto si se hace manualmente, y eso suponiendo que lo hagan bien cada vez. Si hay una herramienta a su disposición que alivia esta carga de sus gerentes de proyecto y les permite concentrarse en un trabajo más importante, ¿por qué no ponerla en práctica?

Afortunadamente, esto también es algo que Inspire Planner ofrece listo para usar. Puede predefinir qué roles serán responsables de cada tarea mientras crea sus plantillas o planes de proyecto.

Luego, simplemente necesita asignar un recurso a un rol específico, y la automatización integrada de Inspire Planner asignará inmediatamente todas las tareas de su proyecto a los miembros correctos del equipo del proyecto.

Costura de plantilla

Lanzar proyectos automáticamente desde Oportunidades basadas en plantillas es una excelente manera de automatizar la gestión de proyectos en Salesforce. Pero, ¿qué sucede cuando vendió varios productos dentro de su Oportunidad y cada producto requiere un conjunto diferente de tareas?

¿Puede automatizar dicho proceso en Salesforce dentro de un plan de proyecto en lugar de crear proyectos separados?

La buena noticia es que la respuesta es sí. Inspire Planner ofrece la funcionalidad de unión de plantillas de proyectos que le permite crear un solo proyecto a partir de una oportunidad al "unir" (combinar) diferentes plantillas relacionadas con los productos de oportunidad.

Además, puede definir una plantilla de encabezado (un conjunto de tareas que deben realizarse sin importar qué productos se seleccionaron, por ejemplo, la fase de inicio del proyecto) y definir un orden de ejecución de sus plantillas simplemente arrastrándolas a las posiciones deseadas.

Y con la configuración adicional de Salesforce, puede configurar la unión de plantillas de proyectos en Inspire Planner para trabajar con otros objetos en Salesforce en lugar de productos.

Automatice la programación de su proyecto con dependencias de tareas

Puede automatizar la Gestión de proyectos en Salesforce configurando Dependencias de tareas en el diagrama de Gantt de su proyecto. De esta manera, su proyecto y todas las tareas operarían como una unidad cohesiva en lugar de que cada tarea esté separada. Por lo tanto, actualizar cualquier tarea recalculará automáticamente todo el cronograma del proyecto, ¡sin importar cuán complejo sea su proyecto!

Inspire Planner es compatible con cuatro tipos principales de predecesores (finalización a inicio, finalización a finalización, inicio a inicio y inicio a finalización), así como múltiples dependencias de tareas. Si no está familiarizado con estos términos, un predecesor es una actividad que debe comenzar o finalizar antes de que pueda continuar una tarea sucesora, y un sucesor es una actividad que sigue a otra actividad en función de su dependencia entre sí y no necesariamente en orden cronológico. .

Además de eso, con Inspire Planner también puede agregar tiempo de adelanto o retraso a sus dependencias (por ejemplo, la tarea debe comenzar 3 días después de que finalice otra, o un día antes, etc.), e incluso funciones más avanzadas como la gestión de restricciones ( por ejemplo, una tarea debe terminar en una fecha determinada).

Automatice la gestión de proyectos en Salesforce con dependencias de tareas en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Una vez configuradas, los usuarios finales también pueden ver estas tareas predecesoras y sucesoras en un componente simplificado en la página de tareas. De modo que incluso si los miembros de su equipo no tienen acceso al proyecto o no están familiarizados con los diagramas de Gantt, aún pueden comprender fácilmente qué depende de ellos en este proyecto.

Componente predecesor y sucesor en las tareas de Salesforce en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Automatización de Notificaciones

Otro elemento importante de la automatización de la gestión de proyectos en Salesforce son las notificaciones.

Si desea entregar sus proyectos a tiempo, deberá mantener a su equipo de proyecto actualizado sobre los próximos plazos e hitos. Para empezar, puede configurar alertas y notificaciones automáticas para las tareas del proyecto a través de Salesforce. Esto enviará a los recursos de su proyecto recordatorios por correo electrónico sobre sus tareas y también mostrará un recordatorio de notificación en Salesforce.

Por ejemplo, puede configurar notificaciones de tareas unos días antes de la fecha de vencimiento de la tarea, cuando se actualizaron las fechas de inicio/finalización de la tarea, una notificación de alerta cuando la tarea está vencida y más. Dado que Inspire Planner se integra completamente con las tareas estándar de Salesforce, algunas de estas notificaciones estarán disponibles para usted desde el primer momento.

Finalmente, puede configurar alertas en Inspire Planner para acciones como Tareas listas para comenzar. Cuando se han completado todos los predecesores, Inspire Planner marca automáticamente sus tareas como "Listo para comenzar". A continuación, puede enviar alertas a las personas asignadas a esta tarea o utilizar una vista de lista que muestre solo dichas tareas. De esta manera, su equipo de proyecto sabrá fácilmente en qué debe concentrarse a continuación.

Automatización de KPIs y Reportes

La siguiente idea para automatizar la gestión de proyectos en Salesforce es automatizar los KPI y programar la entrega de sus informes de proyectos.

Puede decidir administrar los KPI manualmente en función del estado actual de sus proyectos o automatizarlos si tiene criterios estandarizados para los KPI internamente. En cualquier caso, puedes configurar alertas para tus jefes de proyecto cuando alguno de los KPIs del proyecto pase de Verde a Ámbar o Rojo.

KPI en Inspire PlannerKPI en Inspire Planner

Al utilizar las aplicaciones de gestión de proyectos nativas de Salesforce, su equipo puede beneficiarse de los potentes informes y paneles de Salesforce. Por ejemplo, Inspire Planner ofrece una carpeta completa lista para usar con informes de proyectos, la capacidad de generar su informe de estado del proyecto con unos pocos clics y también dos paneles dinámicos para su cartera y administradores de recursos.

Panel de administración de recursos en Inspire PlannerPanel de administración de recursos en Inspire Planner

Salesforce luego le permite programar y suscribirse a los informes de su proyecto. De esta manera, su equipo puede recibir notificaciones sobre las métricas más importantes del proyecto sin ejecutar manualmente ni enviar informes por correo electrónico.

Una de las mejores prácticas para generar informes sobre sus proyectos es crear líneas base del proyecto en Inspire Planner. La línea de base se puede utilizar para generar informes sobre el cronograma del proyecto planificado y el rendimiento real de su proyecto. La línea de base también se puede usar para rastrear y enviar notificaciones cuando hay retrasos en el proyecto y cuando las tareas vencen. Estas notificaciones pueden llamar la atención sobre áreas del Proyecto que necesitan más atención, lo que resultará en una reducción de los retrasos.

Automatice la gestión de proyectos en Salesforce con procesos de aprobación

Los procesos de aprobación pueden ayudarlo a automatizar la gestión de proyectos en Salesforce cuando necesite obtener una aprobación para algo en su organización.

Los ejemplos típicos de procesos de aprobación en la gestión de proyectos incluyen empleados que solicitan PTO de sus gerentes, gerentes de proyecto que obtienen aprobación para cambios dentro del alcance del proyecto, aprobación de facturas y más.

Con los procesos de aprobación de Salesforce, puede definir fácilmente sus pasos de aprobación, bloquear registros, permitir la recuperación de solicitudes de aprobación, definir un aprobador, crear plantillas de notificación y más.

Para iniciar procesos de aprobación en sus proyectos en Salesforce, puede usar botones personalizados (p. ej., "Enviar para aprobación") en los que los usuarios deben hacer clic o iniciar procesos de aprobación automáticamente con un Flujo de Salesforce.

Automatizar carteras de proyectos

Las carteras de proyectos le permiten agrupar y ver un conjunto de proyectos en un único diagrama de Gantt combinado. Con Inspire Planner, puede crear un número ilimitado de Portafolios para diversas necesidades, por ejemplo, un portafolio de sus proyectos, un portafolio de proyectos para un cliente específico, etc.

Los portafolios pueden mostrar el cronograma general del proyecto, el estado general del proyecto, el porcentaje completado, los hitos del proyecto y más. Además, un proyecto puede pertenecer a varias carteras.

Con Inspire Planner, puede agregar proyectos a Portafolios o eliminarlos manualmente o con automatización a través de Salesforce Flows. Por ejemplo, cuando se completa un proyecto, puede eliminarlo automáticamente de una cartera.

Portafolios de proyectos en Inspire Planner, una aplicación de gestión de proyectos nativa de SalesforcePortafolios de proyectos en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Y con nuestra próxima función de carteras dinámicas con edición en línea, la gestión automática de carteras se está volviendo más fácil que nunca. Puede crear diferentes vistas de lista de Salesforce para organizar y filtrar automáticamente sus carteras de proyectos en función de varios criterios.

Calcule los niveles de prioridad de riesgos y problemas

Tener la capacidad de ver los riesgos y problemas relacionados con su proyecto significa que estos riesgos pueden mitigarse de manera oportuna durante todo el proyecto. Si busca identificar y prevenir riesgos de proyectos imprevistos, consulte nuestra guía sobre cómo reducir los riesgos de proyectos en Salesforce.

Si está buscando llevar la gestión de riesgos de su proyecto al siguiente nivel en Salesforce, puede hacerlo automatizando el cálculo de riesgos y automatizando la priorización de estos riesgos.

El registro de riesgos del proyecto es una función que ofrece Inspire Planner que le permite realizar un seguimiento de los riesgos de su proyecto y limitar sus impactos. Realiza un seguimiento tanto de los riesgos como de los problemas (los riesgos son los problemas que podrían ocurrir en el futuro y los problemas son los riesgos que han llegado a buen término y realmente sucedieron).

Registro de riesgos del proyecto en Inspire Planner

La Prioridad de sus riesgos se calcula automáticamente multiplicando el Impacto por la Probabilidad. De esta manera, simplemente debe asegurarse de capturar el impacto y la probabilidad de su riesgo e Inspire Planner hará el resto por usted.

Cuándo y por qué debería automatizar la gestión de proyectos en Salesforce

Si bien ahora conoce varias formas de automatizar la gestión de proyectos en Salesforce y cómo Inspire Planner puede ser potencialmente la solución que le permita hacer esto, es posible que todavía se pregunte por qué vale la pena automatizarlo.

¿Qué ganará su empresa con la automatización de la gestión de proyectos en Salesforce y qué impactos negativos mitigará? A continuación hay tres explicaciones de este valor y por qué la automatización no solo es una buena idea sino casi una necesidad.

Ahorre tiempo en tareas repetitivas

La gestión eficaz de proyectos es la diferencia entre un proyecto exitoso y uno fallido y, a menudo, lleva bastante tiempo ejecutarlo con cuidado para obtener resultados óptimos. Dado que hay una serie de tareas que se pueden realizar con su inversión en automatización de Salesforce, tiene mucho sentido liberar a su equipo para que se concentre en los problemas clave en lugar de atascarlos con tareas repetitivas manuales.

La investigación realizada por AutomationAnywhere muestra que en algunas industrias (a saber, el servicio público y la administración general) los profesionales pueden dedicar hasta 3,51 horas diarias a tareas administrativas repetitivas. ¡Estas son tareas que podrían realizarse fácilmente mediante algún tipo de automatización!

Cuando se trata de reducir el tiempo necesario para las tareas repetitivas en la gestión de proyectos, puede devolver el tiempo a su día implementando algunos de nuestros ejemplos de automatización descritos anteriormente, como plantillas de proyectos, asignación de tareas según roles de recursos y más. En última instancia, puede entregar un proyecto exitoso más rápido descargando este tipo de tareas a Salesforce.

Reducir el error humano

Si bien todos tratamos de ser completamente precisos todo el tiempo, solo somos humanos y, como tales, somos propensos a cometer errores. Salesforce, por otro lado, no es humano y no es propenso a la misma capacidad de cometer errores que los humanos. Las tareas más pequeñas pueden llamar menos la atención de un equipo de proyecto ocupado, lo que puede generar problemas mayores en el futuro debido a la naturaleza en cascada de estos errores.

Configurar su organización para automatizar su gestión de proyectos en Salesforce es la mejor manera de reducir (o eliminar efectivamente) su riesgo de error humano mientras gestiona el proyecto (suponiendo que esté configurado correctamente desde el principio, por supuesto).

Administre automáticamente varias plantillas/escenarios

Si su empresa ofrece múltiples servicios o productos diferentes, cada uno con su propio conjunto de tareas o incluso diferentes metodologías de gestión de proyectos (Waterfall vs Agile/Scrum), entonces puede encontrarse con problemas en los que un Project Manager no tiene suficiente experiencia trabajando con un tipo de producto o servicio específico y podría tener problemas para configurar el Proyecto en Salesforce.

Este problema se elimina por completo cuando su gestión de proyectos se automatiza en Salesforce utilizando varias plantillas de proyectos que sus gestores de proyectos pueden aplicar al comienzo de un proyecto. Esto no solo significa que tienen mucho menos trabajo por hacer, sino que también elimina cualquier error potencial o tareas olvidadas y brinda un grado de capacitación para los gerentes de proyecto que son nuevos en un tipo específico de proyecto.

Automatice la gestión de proyectos en Salesforce con Inspire Planner

Como puede ver, hay una cantidad insuperable de valor que se puede obtener al administrar sus proyectos dentro de Salesforce y luego aplicar capas en alguna Automatización de administración de proyectos.

Sus clientes se beneficiarán de sus esfuerzos al contar con un equipo de proyecto efectivo que pueda entregar a tiempo y garantizar que las comunicaciones sean consistentes, que los riesgos se gestionen y mitiguen, y que el equipo centre sus esfuerzos en el trabajo en lugar de las tareas administrativas.

Si está listo para automatizar la gestión de proyectos en Salesforce para su organización y reducir el trabajo manual y repetitivo, consulte Inspire Planner con nuestra prueba gratuita de 30 días hoy o solicite su demostración personal de Inspire Planner.

Seguir leyendo

Retrospectiva de un desarrollador de plataforma de TrailblazerDX '23 ☁️

Retrospectiva de un desarrollador de plataforma de TrailblazerDX '23 ☁️

TrailblazerDX '23 estuvo lleno de innovación y contenido para los desarrolladores. En este blog, la perspectiva de un desarrollador de Salesforce Platform y una lista de recursos de TDX.

La publicación Retrospectiva de un desarrollador de plataforma de TrailblazerDX '23 apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Uso del flujo de credenciales del cliente para una autenticación API más sencilla ☁️

Uso del flujo de credenciales del cliente para una autenticación API más sencilla ☁️

Las API de Salesforce ahora son compatibles con las credenciales de cliente de OAuth, lo que facilita más que nunca establecer integraciones de servidor a servidor que no necesariamente necesitan el contexto del usuario.

La publicación Uso del flujo de credenciales del cliente para una autenticación API más sencilla apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Cómo recopilar datos sobre la marcha con FormAssembly Mobile

Última actualización el 15 de marzo de 2023 por Rakesh Gupta Si alguna vez ha necesitado recopilar datos en el campo, sabe lo difícil que puede ser. O está atascado haciendo un seguimiento de interminables formularios en papel o tiene que llevar una computadora portátil donde quiera que vaya. Incluso si tienes

La publicación Cómo recopilar datos sobre la marcha con FormAssembly Mobile apareció primero en Automation Champion .

Seguir leyendo

Lanzamiento de Marketing Cloud Spring '23 para desarrolladores ☁️

Consulte los aspectos más destacados y conozca las nuevas funciones de la versión Spring '23 para desarrolladores de Marketing Cloud.

La versión posterior de Marketing Cloud Spring '23 para desarrolladores apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Las funciones y herramientas más recientes de LWC para dispositivos móviles ☁️

Recapitulamos las características actuales de LWC para dispositivos móviles y luego analizamos todas las características nuevas e innovadoras disponibles en la versión Spring '23.

La publicación Funciones y herramientas más recientes de LWC para dispositivos móviles apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Los mejores eventos de Salesforce para asistir en 2023

Una de las cosas increíbles de estar involucrado en el ecosistema de Salesforce son los maravillosos eventos. Si desea asistir a algunos de los mejores eventos de Salesforce en 2023, estamos aquí para ayudarlo. Hemos reunido los eventos que no querrá perderse este año. Salesforce y Trailblazer Community organizan […]

La publicación Los mejores eventos de Salesforce para asistir en 2023 apareció primero en Inspire Planner.

Seguir leyendo

Adaptador Salesforce Connect para GraphQL: ¡ahora en versión piloto! ☁️

Nuestro nuevo adaptador Salesforce Connect para GraphQL ahora está en fase piloto, lo que abre nuevas posibilidades para la interoperabilidad entre Salesforce y AWS.

La publicación Adaptador Salesforce Connect para GraphQL: ¡ahora en versión piloto! apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Mejore el rendimiento del código con el analizador de código de Salesforce ☁️

Estamos desarrollando Salesforce Graph Engine con nuevas reglas para ayudarlo a mejorar el rendimiento de su código en la última versión 3.9 de Code Analyzer.

La publicación Aumente el rendimiento del código con Salesforce Code Analyzer apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Creación de conocimientos en Genie Customer Data Cloud ☁️

Genie Customer Data Cloud utiliza datos para crear una vista única del cliente. Puede usar Insights para segmentar, agregar y filtrar para comprender mejor a su cliente.

La publicación Creación de conocimientos en Genie Customer Data Cloud apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

5 innovaciones de Spring '23 para ayudarlo a obtener resultados rápidamente

Vea algunas de nuestras innovaciones favoritas del lanzamiento de Spring '23 para ayudarlo a aprovechar al máximo Salesforce.

Seguir leyendo

Mejores prácticas de LWC para flujos de pantalla ☁️

Asegúrese de que sus componentes se integren bien en el motor de tiempo de ejecución de flujo y funcionen como se espera en este blog sobre Screen Flows.

La publicación Mejores prácticas de LWC para flujos de pantalla apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Dé forma al futuro de la construcción y el desarrollo en Salesforce ☁️

Nuestra encuesta global anual para desarrolladores nos ayuda a saber cómo construye usando los productos de Salesforce, para que podamos mejorar su experiencia al usarlos.

La publicación Da forma al futuro de la construcción y el desarrollo en Salesforce apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Account Engagement (Pardot) API v5: Por qué debería actualizar ☁️

Ha llegado el momento de actualizar a la versión 5 de la API REST de Account Engagement (Pardot). V5 se creó para facilitar la integración a todos los clientes e ISV.

La publicación Account Engagement (Pardot) API v5: Why You Should Upgrade apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

La guía para desarrolladores de TrailblazerDX '23 ☁️

Vea lo que TrailblazerDX '23 tiene reservado para desarrolladores en todo el ecosistema de Salesforce, ya sea que se una a nosotros en San Francisco o en Salesforce+.

La publicación La guía para desarrolladores de TrailblazerDX '23 apareció por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Anunciando los Ganadores del Premio Codey 2022 ☁️

Consulte los ganadores del Premio Codey a los mejores blogs, videos y podcasts de 2022, según la votación de la comunidad de desarrolladores de Salesforce.

La publicación Anunciando los ganadores del premio Codey 2022 apareció primero en el blog de desarrolladores de Salesforce .

Seguir leyendo