Skip to content

Etiqueta: Salesforce Platform

Tendencias en marketing 茅tico – 驴Su tecnolog铆a es segura?

Con la IA generativa desbordando la imaginaci贸n de los profesionales del marketing, 驴qu茅 podemos hacer para garantizar que nuestra pr谩ctica del marketing siga bas谩ndose en el pensamiento 茅tico? Leandro P茅rez, Vicepresidente Senior y Director de Marketing de Salesforce Asia-Pac铆fico, comparte sus ideas de primera mano.

Seguir leyendo

10 preguntas frecuentes sobre la implementaci贸n de Salesforce Einstein

驴Qu茅 es Salesforce Einstein? Seg煤n la presentaci贸n oficial del producto de Salesforce en su sitio web, 芦Salesforce Einstein es la primera IA integral para CRM. Se trata de un conjunto integrado de tecnolog铆as de IA que hace que la plataforma Customer Success Platform sea m谩s inteligente y lleva la IA a los pioneros de todo el mundo禄  Pero, 驴esta breve explicaci贸n transmite realmente la profundidad con la que la IA interact煤a con […]

El post 10 preguntas frecuentes sobre la implementaci贸n de Salesforce Einstein appeared first on Salesforce Ben.

Seguir leyendo

Ahorre tiempo y cierre m谩s acuerdos: Salesforce Sales Cloud es la mejor herramienta para su proceso de ventas

Desde la generaci贸n de prospectos hasta el cierre de acuerdos, desvele los secretos de un proceso de ventas de 茅xito y descubra el poder transformador de Salesforce Sales Cloud.

El post Ahorre tiempo y cierre m谩s acuerdos con Salesforce Sales Cloud

The post Ahorre tiempo y cierre m谩s acuerdos: Salesforce Sales Cloud es la mejor herramienta para su proceso de ventas appeared first on Salesforce.

Consiga ahorrar tiempo y cerrar m谩s operaciones con Salesforce Sales Cloud

Seguir leyendo

La versi贸n Spring ’24: Una gu铆a completa para desarrolladores de Salesforce 鈽侊笍

La versi贸n Spring '24: Una gu铆a completa para desarrolladores de Salesforce 鈽侊笍

La versi贸n Spring ’24 ya est谩 aqu铆, y estos son algunos de los aspectos m谩s destacados de la versi贸n, que detallan las novedades para los desarrolladores de todo el ecosistema de Salesforce.

La versi贸n Spring ’24 ya est谩 aqu铆

The post Gu铆a para desarrolladores de Salesforce sobre la versi贸n Spring ’24 appeared first on Blog para desarrolladores de Salesforce.

La versi贸n Spring ’24 ya est谩 aqu铆

Seguir leyendo

Presentaci贸n del control de versiones de API a nivel de componente de LWC 鈽侊笍

Presentaci贸n del control de versiones de API a nivel de componente de LWC 鈽侊笍

El versionado de la API de LWC es una excelente forma de garantizar la compatibilidad con versiones anteriores de los componentes existentes y, al mismo tiempo, permitir que los nuevos componentes adopten las nuevas caracter铆sticas.

The post Presentaci贸n del control de versiones de API a nivel de componente para LWC appeared first on Blog de desarrolladores de Salesforce.

Blog de desarrolladores de Salesforce

Seguir leyendo

30 preguntas y respuestas de entrevistas a analistas de negocio

La demanda de analistas de negocio de Salesforce ha crecido a un ritmo elevado. Las organizaciones de Salesforce han evolucionado y se han vuelto m谩s complejas. Como resultado, existe una mayor necesidad de evaluar los cambios deseados y obtener una visi贸n completa de la situaci贸n, para asegurarse de que todo el mundo est谩 de acuerdo. Esta es la raz贸n por la que las organizaciones deben buscar […]

El post 30 Business Analyst Interview Questions & Answers appeared first on Salesforce Ben.

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

Gu铆a completa de documentaci贸n de Salesforce (en un mundo de inteligencia artificial)

La plataforma Salesforce es muy potente. Con cada nueva versi贸n, su org se vuelve m谩s potente, pero tambi茅n m谩s compleja. Como le dijeron una vez a Spiderman: 芦un gran poder conlleva una gran responsabilidad禄. Entonces, 驴c贸mo puede asumir la responsabilidad real de mantener su organizaci贸n? Con todo lo dem谩s que tiene que hacer, documentar sus cambios es probablemente bajo en […]

El post Gu铆a completa para la documentaci贸n de Salesforce (en un mundo de IA) appeared first on Salesforce Ben.

Seguir leyendo

5 razones por las que necesita un diccionario de datos de Salesforce

Desde el temor a las imprecisiones en los informes hasta la lucha constante contra los silos de datos y la sombra amenazadora de los incumplimientos, los retos de supervisar sus datos son abundantes. Y no hablemos ya de los quebraderos de cabeza financieros que provocan las malas pr谩cticas de gesti贸n de datos. Mantener un diccionario de datos no es solo marcar una casilla […]

The post 5 razones por las que necesita un diccionario de datos de Salesforce appeared first on Salesforce Ben.

Las razones por las que necesita un diccionario de datos de Salesforce appeared first on Salesforce Ben

Seguir leyendo

C贸mo aprobar el examen de certificaci贸n Salesforce Certified AI Associate

C贸mo aprobar el examen de certificaci贸n Salesforce Certified AI Associate

脷ltima actualizaci贸n el 7 de septiembre de 2023 por Rakesh Gupta Como nuevo Salesforce Certified AI Associate, comparto mis experiencias de estudio contigo y quiero que seas el pr贸ximo en superarlo As铆 que, 隆prep谩rese y sum茅rjase! 馃憠 Ya que est谩s aqu铆, es posible que desees

El post C贸mo aprobar el examen de certificaci贸n Salesforce Certified AI Associate appeared first on Campe贸n de la Automatizaci贸n.

C贸mo aprobar el examen de certificaci贸n Salesforce Certified AI Associate appeared first on Campe贸n de la Automatizaci贸n

Seguir leyendo

Nunca te pierdas el ritmo: notificaciones para la eliminaci贸n de clientes potenciales en la cadencia de participaci贸n de ventas

Nunca te pierdas el ritmo: notificaciones para la eliminaci贸n de clientes potenciales en la cadencia de participaci贸n de ventas

脷ltima actualizaci贸n el 1 de noviembre de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • 驴C贸mo se notifica al propietario del cliente potencial cuando alguien elimina un cliente potencial de la cadencia de participaci贸n de ventas?

Objetivos:

Despu茅s de leer este blog, podr谩s:

  • Comprender la captura de datos modificados
  • Comprender el objeto ActionCadenceTracker
  • Suscr铆base para cambiar eventos mediante un activador de Apex
  • Llamar a un flujo iniciado autom谩ticamente desde la clase Apex
  • Y mucho m谩s.

馃憠 Anteriormente, escrib铆 un art铆culo sobre Sales Engagement. 驴Por qu茅 no echarles un vistazo mientras lo haces?

  1. 驴Ya ha recorrido el camino de ladrillos amarillos de la cadencia de ventas?

A Benjamin Moore , administrador de Salesforce en Gurukul On Cloud (GoC), se le ha asignado una tarea espec铆fica. Siempre que un vendedor por tel茅fono o el equipo de ventas internas elimine un cliente potencial (cliente potencial) de la cadencia de participaci贸n de ventas, aseg煤rese de la creaci贸n autom谩tica de una tarea con estos detalles:

  • Asunto : – Cliente potencial eliminado de la cadencia de participaci贸n en ventas
  • Estado : – No iniciado
  • Prioridad :- Alta
  • Fecha de vencimiento : – Hoy
  • Relacionado con : – Plomo
  • Asignado a : – Propietario principal

驴Qu茅 es la cadencia de participaci贸n en ventas?

La adquisici贸n de clientes potenciales es un paso importante en cualquier esfuerzo de marketing. Una vez que los equipos de ventas internas tienen una lista de clientes potenciales, est谩n listos para emprender actividades de divulgaci贸n. 隆Pero espera! Demos un paso atr谩s y reflexionemos sobre las siguientes preguntas como pre谩mbulo para comprender la cadencia de ventas: (1) 驴Con qu茅 frecuencia desea que sus representantes se comuniquen con los clientes potenciales? (2) 驴C贸mo le gustar铆a que se comunicaran con el cliente potencial, mediante llamada o correo electr贸nico? (2) 驴C贸mo desea capturar la disposici贸n de las llamadas? (3) etc茅tera.

La cadencia de participaci贸n de ventas es una l铆nea de tiempo de las actividades y m茅todos de ventas que siguen los representantes de ventas para atraer clientes potenciales. El prop贸sito de una cadencia es facilitar que el representante de ventas interno cumpla con el cronograma y garantice que los prospectos no sean olvidados, es decir, que nada se pierda. Por ejemplo, si ofrece una consulta gratuita en su sitio web y alguien completa un formulario, la cadencia incluir铆a una lista de las cosas que hace para programar la primera reuni贸n.

Una cadencia de ventas normalmente incluye tres puntos de contacto diferentes: correo electr贸nico , redes sociales y llamadas/correos de voz . La cadencia, para diferentes embudos de ventas, puede diferir, pero siempre debe incluir una combinaci贸n de las tres formas de comunicaci贸n mencionadas.

Una cadencia de participaci贸n de ventas se parece a esto:

HVS.png

En otras palabras, las cadencias de participaci贸n de ventas difieren de un tipo de proceso de ventas a otro, pero la idea b谩sica sigue siendo la misma: toques consistentes y secuenciales.

驴Qu茅 es la captura de datos modificados?

Seguir leyendo

Todo lo que aprendimos sobre IA para ventas en Dreamforce 2023

Todo lo que aprendimos sobre IA para ventas en Dreamforce 2023

Dreamforce fue 茅pico. Compartimos consejos y noticias de la industria con Salesblazers, hicimos amigos y repartimos montones de regalos (nuestros peluches son insuperables). Sin embargo, entre todas las sesiones de puesta al d铆a y aprendizaje de este a帽o, se destac贸 un tema: la importancia cr铆tica de la inteligencia artificial (IA) en las ventas.

Los equipos de ventas est谩n viendo el surgimiento de nuevas herramientas de inteligencia artificial para ayudar a la prospecci贸n, el entrenamiento y la previsi贸n, todo al servicio de la eficiencia de las ventas. Tambi茅n hay un mayor inter茅s en la informaci贸n sobre los clientes en tiempo real como ventaja competitiva, alojada en un CRM 煤nico y seguro.

驴C贸mo est谩n aprovechando todo esto los mejores equipos de ventas, manteniendo al mismo tiempo relaciones s贸lidas con los clientes? Descubra sus consejos y trucos de ventas a continuaci贸n.

驴Te perdiste la conferencia magistral de Dreamforce Sales Cloud? Transm铆talo en Salesforce+

Escuche lo que dicen los l铆deres de ventas innovadores sobre la innovaci贸n impulsada por la IA, la toma de decisiones basada en datos y las 煤ltimas innovaciones de Sales Cloud.

1. Priorice los datos seguros antes de adoptar la IA generativa

El campo en constante evoluci贸n de la IA promete mejorar la eficiencia de los vendedores, pero conlleva algunos desaf铆os de seguridad. Una investigaci贸n reciente de Salesforce encontr贸 que el 73% de los empleados cree que la IA generativa introduce nuevos riesgos de seguridad. Hay buenos motivos para preocuparse: las herramientas p煤blicas de IA generativa carecen de cifrado de datos, de enmascaramiento de datos y, en realidad, de cualquier tipo de protecci贸n de seguridad. Esto hace que sus datos sean vulnerables al robo y al mal uso.

En el 煤ltimo a帽o, todos nos hemos vuelto un poco m谩s inteligentes en lo que respecta a la seguridad. Ahora sabemos que debemos evitar conectar los datos de los clientes a herramientas p煤blicas de IA generativa y que todav铆a necesitamos un ser humano en el medio para revisar manualmente cualquier copia de IA generativa para garantizar la precisi贸n. Y si desea aprovechar la IA generativa, debe hacerlo en un entorno que pueda controlar, con todas las protecciones de seguridad que necesita para evitar que sus datos caigan en las manos equivocadas.

C贸mo Salesforce le ayuda a mantener la seguridad:

La confianza siempre ha sido nuestro valor n煤mero uno, raz贸n por la cual lanzamos Einstein Trust Layer a principios de este a帽o. Se trata de una arquitectura de IA segura, integrada de forma nativa en la plataforma Salesforce. Dise帽ado para est谩ndares de seguridad empresarial, permite a los equipos beneficiarse de la IA generativa sin comprometer los datos de sus clientes. Por ejemplo, si bien los mensajes impulsan cada salida de IA generativa, nuestra arquitectura Zero Retention garantiza que no se almacenen datos de clientes fuera de Salesforce. El enmascaramiento de datos (ocultar cualquier informaci贸n confidencial de una empresa o un individuo) proporciona una capa adicional de protecci贸n.

2. No esperes para unirte a la IA generativa

La IA generativa puede parecer una adici贸n espectacular a su pila tecnol贸gica, pero no es simplemente algo "bueno tenerlo". Lo necesita para seguir siendo competitivo. Seg煤n nuestro reciente informe Tendencias en IA generativa para ventas , el 55% de los profesionales de ventas informan que actualmente o planean usar IA generativa, y el 58% dice que les ayuda o les ayudar谩 a aumentar la productividad.

Es f谩cil ver por qu茅 la adopci贸n est谩 aumentando. Los representantes pueden utilizar indicaciones basadas en texto para identificar clientes potenciales, investigar empresas, redactar correos electr贸nicos e incluso analizar correos electr贸nicos anteriores para descubrir necesidades de clientes potenciales que no han abordado. Los CRM m谩s avanzados impulsados por IA pueden personalizar las comunicaciones e incluso imitar la voz y el tono de los representantes. Esto permite a los vendedores deshacerse de las tareas manuales que consumen mucho tiempo y centrarse en lo que realmente importa: construir relaciones significativas con los clientes .

C贸mo ayuda Sales Cloud a que la IA sea accesible para todos:

En Dreamforce, presentamos algunas ingeniosas innovaciones de IA generativa para Sales Cloud ofrecidas a trav茅s de Einstein 1 Sales, nuestro conjunto de herramientas de IA:

Resumen de llamadas: resuma autom谩ticamente las llamadas para resaltar los temas clave cubiertos durante las reuniones y los pr贸ximos pasos.

Correos electr贸nicos de ventas: genere autom谩ticamente correos electr贸nicos personalizados e hiperrelevantes para cada conversaci贸n de ventas utilizando los datos del cliente que ya est谩n alojados en Sales Cloud.

Einstein Copilot para ventas: descargue el trabajo pesado durante todo el ciclo de ventas a un asistente digital, incluida la investigaci贸n de cuentas, la preparaci贸n de reuniones (establecimiento de agenda y notas a tener en cuenta) y actualizaciones de registros de transacciones.

3. Ap贸yese en el an谩lisis en tiempo real y la IA predictiva para ganar cuando llegue el cambio

Como selament贸 recientemente uno de nuestros Salesblazers, muchas empresas todav铆a est谩n atrapadas en hojas de c谩lculo obsoletas que requieren actualizaciones y an谩lisis manuales lentos y que consumen mucho tiempo. 脡se es el engorroso modus operandi operativo del pasado y dificulta actuar seg煤n la informaci贸n m谩s reciente sobre acuerdos. Peor a煤n: predecir lo que suceder谩 a continuaci贸n es una tarea herc煤lea e imprecisa.

Al aprovechar el poder de la automatizaci贸n, los equipos de ventas pueden apoyarse en su CRM para actualizar los registros de transacciones en tiempo real (l茅ase: no m谩s hojas de c谩lculo). Cuando se combina con IA predictiva, los representantes y gerentes pueden recibir alertas sobre posibles problemas de acuerdos y pron贸sticos antes de que las cosas se descarrilen.

Y eso es realmente s贸lo el comienzo. Imag铆nese esto: mientras los representantes se mantienen al tanto de las 煤ltimas novedades sobre los acuerdos, los gerentes aprovechan los datos en tiempo real para realizar un seguimiento del desempe帽o del equipo sobre la marcha, identificando oportunidades de capacitaci贸n en el momento (como clientes potenciales estancados) que pueden abordar r谩pidamente para mantener a los representantes encaminados. . Al mando, los l铆deres utilizan los datos m谩s recientes para obtener una visi贸n hol铆stica del desempe帽o de su organizaci贸n de ventas en relaci贸n con los objetivos.

Los datos en tiempo real y la IA predictiva son las claves de todo esto, lo que permite a los equipos de ventas detectar se帽ales de alerta tempranas y cambiar r谩pidamente las estrategias para garantizar que alcancen sus objetivos de ventas .

C贸mo la IA predictiva y en tiempo real de Sales Cloud le ayuda a mantenerse por delante de sus competidores:

Al utilizarEinstein Activity Capture , Sales Cloud captura y unifica autom谩ticamente datos de cada interacci贸n con el cliente, como correos electr贸nicos, chats en l铆nea y llamadas telef贸nicas, para que los representantes puedan ver su propio "estado de ventas" en cualquier momento. A煤n mejor, los equipos pueden extraer datos de herramientas de terceros y armonizarlos con los registros de CRM existentes para obtener una vista de 360 grados de cada cliente y cliente potencial. Aplique la funcionalidad predictiva de IA y obtendr谩 recomendaciones muy relevantes para los pr贸ximos mejores pasos que har谩n avanzar cada acuerdo.

Para gerentes y l铆deres de ventas, las actualizaciones de datos en tiempo real y la IA predictiva se unen en El panel Deal Insights de Sales Cloud para detectar posibles problemas de pron贸stico con anticipaci贸n para que los equipos puedan ajustar la estrategia y mantener el rumbo. La actividad de los representantes tambi茅n se captura a trav茅s de Activity 360 : los gerentes pueden ver m茅tricas clave del equipo, como clientes potenciales en proceso y tasa de ganancias, en un solo lugar para descubrir oportunidades de capacitaci贸n mientras todav铆a hay tiempo para impactar los acuerdos.

4. Invierta en una 煤nica plataforma en lugar de m煤ltiples herramientas desconectadas

Nuestro reciente informe sobre el estado de las ventas revel贸 una cruda realidad: el 66% de los representantes de ventas se sienten abrumados por la multitud de herramientas disponibles. El atractivo de la tecnolog铆a de pr贸xima generaci贸n, incluidos los complementos de IA generativa y las herramientas de funci贸n 煤nica, amenaza con agravar ese problema.

驴El grito de guerra del escenario de Dreamforce? Simplifique su pila tecnol贸gica . Reemplace las soluciones puntuales con una plataforma que pueda ampliar con nuevas caracter铆sticas, capacidades o funciones a medida que surjan las necesidades. Priorice las funciones principales, como la gesti贸n de contactos, la gesti贸n de canales y la previsi贸n, pero tambi茅n busque una plataforma que le permita integrar perfectamente capacidades de IA y an谩lisis en tiempo real para eliminar la fatiga de alternar entre sistemas.

C贸mo le ayuda Sales Cloud a impulsar las ventas de un extremo a otro:

M谩s all谩 de satisfacer las necesidades b谩sicas del d铆a a d铆a de los vendedores a trav茅s de herramientas como Activity Capture, puede aprovechar la plataforma Sales Cloud para simplificar su pila tecnol贸gica en ventas y operaciones, al tiempo que incorpora el poder de la IA. Por ejemplo, los equipos que supervisan la planificaci贸n de ventas y los programas de habilitaci贸n de ventas pueden utilizar el poder de los datos de actividad de clientes y vendedores en tiempo real para realizar esa planificaci贸n y seguimiento de resultados directamente dentro de Sales Cloud CRM. Muchos clientes de Sales Cloud incluso extienden las funciones de automatizaci贸n e inteligencia de su CRM a los canales de socios a trav茅s de nuestra soluci贸n Partner Relationship Management .

5. La tecnolog铆a es importante, pero no pierdas el foco en las relaciones

Este 煤ltimo es un poco pivote.

Si hay algo que ha llamado la atenci贸n de los l铆deres de ventas en los 煤ltimos tiempos es esto: las relaciones te hacen o te deshacen. Es importante que estemos al tanto de las 煤ltimas tecnolog铆as, como la IA, pero lo que es igualmente importante son las conexiones que establecemos con nuestros equipos y nuestros clientes. Eso siempre comienza con la superaci贸n personal. Cuanto mejor seas para involucrarte, comunicarte y animar a los dem谩s, mejores ser谩n tus relaciones.

Los Salesblazers hablaron mucho sobre esto durante Dreamforce, pero tres consejos fueron los que m谩s resonaron. Primero, nunca dejes de aprender. Tome clases, obtenga experiencia pr谩ctica, haga crecer su red de pares y aprenda de otros en su campo. En segundo lugar, valore la confianza que se ha ganado con sus clientes y contin煤e fortaleciendo esas relaciones haciendo un seguimiento y ofreci茅ndoles recursos 煤tiles que sabe que necesitan. En tercer lugar, muestra siempre lo mejor de ti. T贸mese el tiempo para comprender qu茅 es lo que realmente motiva a sus clientes y brinde las soluciones que necesitan antes de que sepan que las necesitan. Haga un esfuerzo adicional y descubrir谩 que la lealtad llega r谩pidamente.

Hay d铆as dif铆ciles y d铆as f谩ciles, pero cada d铆a es una oportunidad para apuntalar las relaciones que son la base de las ventas.

C贸mo Salesforce puede ayudarle a fomentar relaciones s贸lidas:

La comunidad Salesblazer es el lugar al que acuden todos los profesionales de ventas para obtener asesoramiento profesional, orientaci贸n t谩ctica de ventas y creaci贸n de redes. 脷nase y con茅ctese con compa帽eros Salesblazers que pueden ayudarlo a aprender, conectarse y crecer.

Prep谩rese para el 茅xito en las ventas

驴Qu茅 aprendimos en Dreamforce? En resumen, la IA es el nombre del juego. A medida que evoluciona la industria de las ventas, los l铆deres de ventas pueden mejorar la productividad con IA generativa, tomar decisiones m谩s r谩pidas basadas en datos con IA predictiva y optimizar la tecnolog铆a para que los representantes puedan centrarse m谩s en la construcci贸n de relaciones. Si los tiene en la mira, en 2024 estar谩 por delante del resto.

Transmita lo mejor de Dreamforce 2023

驴Extra帽as la magia? No te preocupes. Vea toda la cobertura de IA y vea qu茅 est谩n haciendo los principales l铆deres de ventas para salir adelante en 2023. 隆Todo est谩 bajo demanda en Salesforce+!

Seguir leyendo

Desatando los superpoderes de administraci贸n de Salesforce: 隆Impulse la colaboraci贸n en equipo, sobrecargue la eficiencia, gesti贸n de datos maestros!

Desatando los superpoderes de administraci贸n de Salesforce: 隆Impulse la colaboraci贸n en equipo, sobrecargue la eficiencia, gesti贸n de datos maestros!

脷ltima actualizaci贸n el 31 de julio de 2023 por Rakesh Gupta

Durante la 煤ltima d茅cada, el papel de un administrador de Salesforce ha evolucionado dr谩sticamente, manteniendo el ritmo del panorama din谩mico de las ventas y la gesti贸n de las relaciones con los clientes. Lo que alguna vez fue principalmente una posici贸n de entrada de datos se ha convertido en un rol multifac茅tico que abarca la planificaci贸n estrat茅gica, el an谩lisis y la optimizaci贸n de procesos. A medida que las empresas reconozcan la importancia de Salesforce para impulsar el crecimiento y mejorar las experiencias de los clientes, los administradores proporcionar谩n un puente fundamental entre la tecnolog铆a y el 茅xito comercial.

Este art铆culo explorar谩 c贸mo los administradores pueden aprovechar la automatizaci贸n de procesos junto con el ecosistema de Salesforce para fomentar la colaboraci贸n en equipo, mejorar la eficiencia organizacional y mejorar la gesti贸n de datos.

Uso de la automatizaci贸n de correo electr贸nico de Salesforce para la programaci贸n

La automatizaci贸n del correo electr贸nico se utiliza para optimizar varios aspectos de la comunicaci贸n por correo electr贸nico con clientes potenciales y clientes dentro de la plataforma de Salesforce para garantizar una programaci贸n de citas r谩pida y eficiente. Permite a las empresas administrar de manera eficiente sus campa帽as de marketing y ventas por correo electr贸nico, la participaci贸n del cliente y las reservas.

En los 煤ltimos a帽os, la automatizaci贸n revolucion贸 los procesos de ventas y soporte al agilizar la reserva de citas, reducir la carga de trabajo manual y brindar a los clientes opciones convenientes de autoservicio. Actualmente, los administradores de Salesforce pueden aprovechar herramientas como SUMO Scheduler junto con flujos nativos y alertas por correo electr贸nico para enviar autom谩ticamente invitaciones a citas. Al crear disparadores que monitorean campos de datos espec铆ficos asociados con registros de contactos y lanzar flujos personalizados, los administradores pueden asegurarse de que los clientes potenciales siempre puedan programar citas, independientemente de la hora del d铆a o la ubicaci贸n.

Actualizaciones autom谩ticas de temas: haga que sus citas se destaquen

Las reuniones de cara al cliente son vitales para los equipos de ventas y soporte, y las citas perdidas o canceladas pueden afectar negativamente los objetivos estrat茅gicos y el resultado final. Los administradores de Salesforce pueden aprovechar las actualizaciones autom谩ticas de temas dentro de la programaci贸n de citas para reducir las cancelaciones de manera efectiva y aumentar la participaci贸n en las citas. Al implementar esta funcionalidad, los administradores pueden mejorar la comunicaci贸n, brindar claridad e infundir confianza en el proceso de citas para los clientes y la organizaci贸n.

Se puede activar una actualizaci贸n autom谩tica del tema para incluir detalles esenciales como la fecha, la hora, la ubicaci贸n y el prop贸sito de la cita al programarla. Este mensaje de confirmaci贸n sirve como recordatorio para el cliente y reduce las posibilidades de cancelaciones involuntarias o de no presentarse.

Las actualizaciones autom谩ticas de temas tambi茅n se pueden personalizar para atender a clientes individuales. Los administradores pueden incluir detalles personalizados, como el nombre del cliente o referencias de citas espec铆ficas, para captar su atenci贸n y crear una sensaci贸n de personalizaci贸n. Esto ayuda a fomentar una conexi贸n con el cliente y refuerza su compromiso con la cita.

Finalmente, en caso de cambios o actualizaciones en la cita, los administradores pueden usar actualizaciones autom谩ticas de temas para comunicar la informaci贸n revisada. Esto asegura que los clientes est茅n informados sobre cualquier modificaci贸n en tiempo real, minimizando la confusi贸n o la necesidad de cancelar debido a detalles desactualizados o inexactos.

Al permitir la flexibilidad en la programaci贸n y el mantenimiento de registros precisos dentro de Salesforce con la ayuda de l铆neas de asunto automatizadas, los administradores pueden optimizar de manera efectiva su proceso de ventas, mejorar la experiencia del usuario y fortalecer las relaciones con los clientes.

Uso de campos de correo electr贸nico flexibles para una mayor precisi贸n

La flexibilidad es clave para satisfacer las necesidades 煤nicas de los clientes, y los administradores de Salesforce pueden aprovechar el poder de los campos de correo electr贸nico para notificaciones personalizadas, sin importar cu谩n complejas sean. Esta personalizaci贸n permite una experiencia m谩s personalizada que cumple con requisitos espec铆ficos, como el cumplimiento normativo o las pol铆ticas internas.

En el contexto de Salesforce, los campos de correo electr贸nico se utilizan para recopilar y almacenar las direcciones de correo electr贸nico de los clientes. Estos campos aseguran que los datos ingresados sigan el formato adecuado, evitando entradas incorrectas o no v谩lidas. Las direcciones de correo electr贸nico recopiladas a trav茅s de estos campos se pueden usar para enviar recordatorios, actualizaciones, mensajes de seguimiento y otras notificaciones relacionadas con citas. Cada campo de correo electr贸nico act煤a como una medida confiable de capturar y utilizar informaci贸n de contacto para mejorar el compromiso y mantener canales de comunicaci贸n efectivos.

Los campos de correo electr贸nico de Salesforce pueden mejorar la precisi贸n al garantizar que la informaci贸n de contacto almacenada en CRM est茅 actualizada y sea confiable. Al utilizar campos de correo electr贸nico dedicados dentro de Salesforce, los representantes de ventas pueden capturar y almacenar direcciones de correo electr贸nico espec铆ficas de personas o entidades con precisi贸n. Esto ayuda a eliminar el riesgo de usar direcciones de correo electr贸nico desactualizadas o incorrectas asociadas con otros campos, como informaci贸n de contacto personal o comercial, lo que da como resultado comunicaciones por correo electr贸nico m谩s confiables, tasas de rebote reducidas y precisi贸n de datos mejorada.

Automatice la creaci贸n de clientes potenciales en Salesforce en el momento de la reserva

Las herramientas de programaci贸n nativas de Salesforce permiten a los equipos de ventas automatizar la creaci贸n de clientes potenciales, lo que garantiza una captura precisa de la informaci贸n y los datos demogr谩ficos de los clientes potenciales en el CRM. Al automatizar el proceso de creaci贸n de clientes potenciales tan pronto como se programa una cita, los administradores pueden ahorrar tiempo, mantener la integridad de los datos y evitar la redundancia. Los flujos automatizados agilizan el proceso y eliminan los errores de entrada manual. La precisi贸n mejorada y la colaboraci贸n entre las partes interesadas mejoran las tasas de conversi贸n de clientes potenciales y proporcionan datos confiables para informes y an谩lisis.

Para automatizar r谩pidamente la creaci贸n de clientes potenciales en Salesforce en el momento de la reserva, puede seguir estos pasos:

  1. Identifique el evento desencadenante : determine el evento o la acci贸n espec铆ficos que deben desencadenar la creaci贸n de clientes potenciales. En este caso, ser铆a la reserva de una cita.
  2. Configure un flujo de Salesforce : utilice el flujo de Salesforce para crear una regla que active el proceso de creaci贸n de clientes potenciales. Especifique los criterios para cu谩ndo debe activarse el flujo, como cuando se reserva una nueva cita.
  3. Definir asignaci贸n de campos : configure la asignaci贸n de campos para asegurarse de que la informaci贸n relevante de la cita se transfiera correctamente al registro de clientes potenciales. Puede asignar campos como el nombre del participante, la informaci贸n de contacto, los detalles de la cita y otros puntos de datos relevantes.
  4. Crear el registro de prospecto : configure Salesforce Flow para crear un nuevo registro de prospecto con los datos asignados. Aseg煤rese de que todos los campos obligatorios est茅n completos y que el registro de cliente potencial est茅 asociado con la campa帽a o la fuente adecuada.
  5. Probar y validar : pruebe el proceso automatizado de creaci贸n de clientes potenciales reservando una cita de muestra y verificando que el registro de clientes potenciales se cree con los datos esperados. Valide que el registro de prospectos aparezca en la cola de prospectos designada o en las reglas de asignaci贸n.
  6. Supervisar y perfeccionar : Supervise continuamente el proceso de automatizaci贸n de creaci贸n de clientes potenciales para garantizar su eficacia y precisi贸n. Realice los ajustes o mejoras necesarios en funci贸n de los comentarios, los cambios en los requisitos comerciales o los problemas de calidad de los datos.

Al automatizar la creaci贸n de clientes potenciales en Salesforce en el momento de la reserva, los representantes de ventas y los administradores pueden ahorrar tiempo, garantizar la precisi贸n de los datos y mantener un proceso de gesti贸n de clientes potenciales optimizado. Esta automatizaci贸n facilita la captura eficiente de clientes potenciales, reduce el esfuerzo manual y mejora la productividad del equipo de ventas.

Conclusi贸n:

Los flujos de programaci贸n automatizados, junto con las poderosas capacidades de SUMO Scheduler, simplifican y mejoran los procesos de trabajo, ahorran tiempo, reducen errores y mejoran la satisfacci贸n del cliente. Al adoptar la automatizaci贸n, los administradores de Salesforce pueden impulsar mejoras significativas en la eficiencia, la productividad y el rendimiento comercial general. La optimizaci贸n de los procesos de programaci贸n y el aprovechamiento de los flujos de automatizaci贸n en Salesforce con SUMO Scheduler es una combinaci贸n ganadora para las empresas que buscan optimizar sus operaciones. 隆Adopte la revoluci贸n de la automatizaci贸n hoy e impulse a su equipo de ventas a nuevos niveles de 茅xito!

Haga clic aqu铆 para visitar SUMO Scheduler en Salesforce AppExchange y obtener m谩s informaci贸n sobre el poder de la programaci贸n autom谩tica de autoservicio .

Evaluaci贸n formativa:

隆Quiero saber de ti!

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

Seguir leyendo

隆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

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

Salesforce Scale Center est谩 generalmente disponible 鈽侊笍

Salesforce Scale Center est谩 generalmente disponible 鈽侊笍

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.

Salesforce Scale Center est谩 generalmente disponible | 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.

Estamos encantados de anunciar la disponibilidad general de Scale Center , una potente aplicaci贸n dise帽ada para ayudar a nuestros clientes a optimizar sus implementaciones de Salesforce con informaci贸n mejorada sobre rendimiento y escalabilidad. Scale Center revoluciona la forma en que los equipos abordan el desarrollo, las pruebas y el monitoreo al proporcionar acceso de autoservicio y casi en tiempo real a las m茅tricas de rendimiento de la organizaci贸n y a los conocimientos pr谩cticos.

En esta publicaci贸n, escuchar谩 c贸mo Salesforce Scale Center ayuda a los ingenieros, arquitectos, desarrolladores y administradores de rendimiento a evaluar y resolver de manera proactiva los problemas de rendimiento en sus implementaciones de Salesforce, lo que permite a las empresas escalar con confianza.

La importancia de construir a escala

Escalar de manera eficiente es un aspecto cr铆tico del dise帽o e implementaci贸n de aplicaciones en la plataforma Salesforce. Muchos clientes solo se dan cuenta de los problemas de escalabilidad una vez que los usuarios finales comienzan a informar un rendimiento y usabilidad degradados; en este punto, estos problemas ya han afectado el negocio. Dise帽ar para el futuro y predecir y simular el tr谩fico comercial futuro puede ser un desaf铆o. Si bien algunos errores pueden detectarse durante la fase de dise帽o, la mayor铆a de los errores ocurren solo durante el tiempo de ejecuci贸n en producci贸n y, a veces, se manifiestan durante las cargas m谩ximas.

Salesforce Scale Center proporciona la visibilidad necesaria de las m茅tricas de rendimiento necesarias para aislar los puntos cr铆ticos y la capacidad de profundizar en estos puntos cr铆ticos para el an谩lisis de la causa ra铆z y la gu铆a de remediaci贸n. Con Salesforce Scale Center, ahora puede abordar la escalabilidad de la aplicaci贸n de manera proactiva en lugar de reactivamente, asegurando soluciones m谩s disponibles, receptivas y de rendimiento para su usuario final.

Obtenga una visi贸n completa de sus m茅tricas de rendimiento

Salesforce Scale Center permite a los clientes ver una instant谩nea de las m茅tricas de rendimiento de su organizaci贸n durante un intervalo de tiempo definido. A los clientes se les proporciona un panel 煤nico de visualizaci贸n de errores comunes, incluidos inicios de sesi贸n fallidos, errores de Apex simult谩neos y errores de Rowlock. Adem谩s, los clientes pueden ver las m茅tricas clave visualizadas en un gr谩fico durante la duraci贸n del intervalo de tiempo, incluido el tiempo de solicitud promedio, el tiempo de CPU de la base de datos y los errores totales. Con esta vista, los clientes pueden identificar r谩pidamente puntos cr铆ticos de rendimiento y escala.

Llevar a cabo un an谩lisis profundo de un problema de rendimiento

Caso de uso: optimizaci贸n del rendimiento de la base de datos

Salesforce Scale Center no se detiene simplemente en la visibilidad. Una vez que se observan puntos cr铆ticos, problemas y picos dentro de las m茅tricas de rendimiento, los clientes pueden investigar los componentes y sistemas que est谩n causando el problema.

Echemos un vistazo a nuestro primer caso de uso: optimizar el rendimiento de la base de datos. Imagine un escenario en el que los usuarios finales informen que el proceso de registro de su aplicaci贸n lleva mucho tiempo y falla con frecuencia. A continuaci贸n, explicaremos c贸mo puede abordar este problema utilizando Salesforce Scale Center.

  1. Navegue hasta el gr谩fico de CPU de la base de datos .

2. En el gr谩fico, haga clic y arrastre para resaltar los picos en las m茅tricas de rendimiento.

3. Seleccione el tipo de informe e inicie un an谩lisis de la base de datos.

4. Cambie a la pesta帽a An谩lisis de rendimiento para ver el informe generado.

5. Dentro del informe, puede identificar las principales consultas SOQL por tiempo de CPU de base de datos y procesos DML para solucionar qu茅 acciones espec铆ficas est谩n provocando una mala experiencia del usuario final.

Los tipos de informes disponibles en Salesforce Scale Center incluyen: Resumen de Apex, Apex concurrente, Rendimiento de base de datos, Rendimiento de flujo, L铆mites reguladores, Vistas de lista e informes, Rendimiento de integraciones y Bloqueo de fila. Adicionalmente, existe un informe consolidado que engloba todos los an谩lisis.

Al seguir estos pasos y aprovechar el poder de Salesforce Scale Center, los desarrolladores pueden abordar los cuellos de botella en el rendimiento y optimizar los procesos para mejorar la eficiencia.

Comparar el rendimiento en diferentes per铆odos de tiempo

Salesforce Scale Center permite a los clientes comparar las m茅tricas de rendimiento de la organizaci贸n en diferentes per铆odos de tiempo. Los casos de uso clave incluyen:

  • Preparaci贸n para la implementaci贸n de producci贸n:
    • Realice pruebas de rendimiento en un entorno de espacio aislado
    • Analice los resultados de las pruebas en Scale Center para identificar cuellos de botella o problemas de rendimiento antes de implementarlos en producci贸n
  • Evaluaci贸n del impacto posterior a la implementaci贸n:
    • Despu茅s de un lanzamiento importante o una implementaci贸n de funciones en producci贸n, aproveche Scale Center para comparar las m茅tricas de la organizaci贸n antes y despu茅s de la implementaci贸n.
    • Determinar si la implementaci贸n ha tenido alg煤n impacto negativo en el desempe帽o general de la organizaci贸n.
  • An谩lisis del rendimiento durante los d铆as pico:
    • Utilice la funci贸n de comparaci贸n de Scale Center para evaluar el impacto en el rendimiento de la organizaci贸n durante los d铆as pico.
    • Compare las m茅tricas de tr谩fico y rendimiento con el comportamiento de referencia, lo que ayuda a identificar cualquier cambio o problema potencial.

C贸mo comparar per铆odos de tiempo en Salesforce Scale Center

  1. Proporcione un rango de tiempo base y un rango de tiempo de comparaci贸n.

2. Compare las m茅tricas de primera l铆nea.

3. Compare los gr谩ficos de rendimiento de la organizaci贸n.

Al aprovechar la funci贸n de comparaci贸n de Scale Center, los desarrolladores pueden obtener informaci贸n valiosa sobre el rendimiento de la organizaci贸n, identificar 谩reas de optimizaci贸n y garantizar un proceso de implementaci贸n fluido y eficiente.

Comience con Salesforce Scale Center

Scale Center es de uso gratuito y est谩 disponible en todas las organizaciones de sandbox de copia completa y de producci贸n de UE.

Consideraciones del producto:

  • Scale Center no tiene impacto en el rendimiento de la organizaci贸n y no accede a los datos de su organizaci贸n
  • Tenga en cuenta que Scale Center no es compatible con Government Cloud Plus
  • Si desea que Scale Center est茅 habilitado en una organizaci贸n fuera de UE, comun铆quese con su representante de cuenta

Para acceder al Centro de escala:

  1. Navegue a Configuraci贸n.
  2. Ingrese "Centro de escala" en el cuadro B煤squeda r谩pida y haga clic en la pesta帽a Rendimiento de la organizaci贸n en la hoja Rendimiento.
  3. Habilite Scale Center para su organizaci贸n activando la opci贸n Habilitar Scale Center .

Tenga en cuenta que las m茅tricas de rendimiento pueden tardar hasta dos horas en aparecer despu茅s de habilitar Scale Center.

M谩s recursos

Sobre el Autor

Justin Saintil es Gerente de Producto Asociado en Salesforce y trabaja en la Cartera de Productos de Escalabilidad.

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 la API de la plataforma de eventos con la colecci贸n de cartero extendida 鈽侊笍

Explore la API de la plataforma de eventos con la colecci贸n de cartero extendida 鈽侊笍

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 la API de la plataforma de eventos con la colecci贸n extendida de Postman | Blog de desarrolladores de Salesforce

Para una gran cantidad de nuestros clientes, la plataforma Salesforce sirve como la piedra angular de sus sistemas de informaci贸n y, por lo tanto, debe integrarse perfectamente con una amplia gama de sistemas de terceros. Entre las muchas opciones de integraci贸n disponibles se encuentra la plataforma de eventos de Salesforce.

En esta publicaci贸n, repasaremos brevemente la plataforma de eventos y luego exploraremos la nueva plataforma de eventos y las solicitudes de API que se agregaron a la colecci贸n de API de la plataforma de Salesforce en Postman. Tambi茅n aprender谩 c贸mo introdujimos la capacidad de configurar Event Relays y canales personalizados con Postman.

Acerca de la plataforma de eventos de Salesforce

Event Platform consta de diferentes funciones que le permiten crear arquitecturas basadas en eventos gracias a Salesforce Event Bus.

Tipos de eventos

El bus de eventos de Salesforce admite dos tipos principales de eventos casi en tiempo real: eventos de plataforma y eventos de cambio.

Los eventos de la Plataforma permiten la comunicaci贸n dentro de la Plataforma y con sistemas externos. Estos eventos se pueden enviar y recibir con c贸digo personalizado o herramientas declarativas, como Flow. Hay eventos de plataforma est谩ndar con campos predefinidos y eventos personalizados que puede crear con campos personalizados.

Los eventos de cambio son enviados autom谩ticamente por la Plataforma cada vez que se crea, modifica, elimina o recupera un registro. Cada evento de cambio est谩 vinculado a un objeto de Salesforce est谩ndar o personalizado, y los campos de evento coinciden con los de su objeto principal.

Los eventos de plataforma y los eventos de cambio se pueden enviar y recibir gracias a una selecci贸n de dos tecnolog铆as de transmisi贸n: la biblioteca CometD heredada o la API Pub/Sub basada en gRCP m谩s moderna . Independientemente de la tecnolog铆a o el tipo de evento, publica o se suscribe a eventos a trav茅s de canales dedicados.

Canales personalizados

Puede definir un canal personalizado para agrupar mensajes de eventos del mismo tipo (eventos de plataforma o eventos de cambio) en una transmisi贸n. Por ejemplo, puede combinar eventos de cambio de cuenta, contacto y pedido en un solo canal personalizado CustomerUpdates__chn . Despu茅s de suscribirse a este canal, recibir谩 notificaciones sobre cambios en cualquiera de esos tres objetos.

Tenga en cuenta que los canales personalizados son compatibles con eventos de plataforma personalizados, pero no con eventos de plataforma est谩ndar.

Adem谩s de la capacidad de agrupar varios eventos, los canales personalizados desbloquean dos funciones: filtrado de eventos y cambio de enriquecimiento de eventos.

El filtrado de eventos le permite configurar expresiones que filtran los eventos que se env铆an en un canal personalizado. Por ejemplo, podr铆a crear un canal espec铆fico como UkLargeCustomerUpdates__chn que filtra las actualizaciones de la cuenta, donde el pa铆s de facturaci贸n es el Reino Unido y los ingresos anuales superan los 500k. El uso del filtrado de eventos ayuda a simplificar el c贸digo del lado del cliente, pero tambi茅n ayuda a evitar los l铆mites m谩ximos de suscriptores simult谩neos .

Los canales personalizados de Change Data Capture tambi茅n otorgan la capacidad de declarar campos enriquecidos . Cuando se trabaja con eventos de cambio, solo se pasan los valores de campo actualizados en los datos del evento. Esta optimizaci贸n puede ser problem谩tica en ciertas situaciones, por ejemplo, cuando desea sincronizar con un sistema de terceros con una ID externa. En este caso, el ID externo no cambia, por lo que nunca forma parte de los datos del evento de cambio. Afortunadamente, el enriquecimiento de campos le permite declarar un canal personalizado en el que puede especificar campos que siempre se pasar谩n en el contexto de eventos de cambio.

Relevo de eventos

Event Relay le permite integrar perfectamente los eventos en tiempo real de Salesforce con Amazon Web Services (AWS). Gracias a Event Relay, los eventos de la plataforma y los eventos de Change Data Capture se env铆an a Amazon EventBridge a trav茅s de canales y los componentes de AWS pueden consumirlos directamente. Los componentes de AWS tambi茅n pueden publicar eventos de plataforma de forma nativa.

Consulte esta publicaci贸n de Event Relay para obtener m谩s informaci贸n.

Antes del lanzamiento de Summer '23, Event Relay solo se pod铆a configurar a trav茅s de las API. Ahora, hay una interfaz de usuario dedicada en Configuraci贸n. La 煤nica pieza que a煤n necesita crear a trav茅s de la API de herramientas o la API de metadatos son los canales personalizados.

Actualizaciones de Salesforce Event Platform para la colecci贸n Postman

En junio, actualizamos la colecci贸n de API de Salesforce Platform para Postman para incluir solicitudes para interactuar con Event Platform . Si no est谩 familiarizado con Postman o la colecci贸n de API de plataforma, eche un vistazo al proyecto Quick Start: Connect Postman to Salesforce Trailhead para comenzar.

Canales personalizados

Nuestras nuevas solicitudes de Postman son un gran ahorro de tiempo ya que, a partir del lanzamiento de Summer '23, los canales personalizados solo se pueden configurar a trav茅s de metadatos o llamadas a la API de herramientas y no se pueden modificar directamente en la configuraci贸n de Salesforce.

Hemos introducido una serie de solicitudes para realizar operaciones de creaci贸n, lectura, actualizaci贸n y eliminaci贸n (CRUD) en canales personalizados y los dos tipos de metadatos relacionados: PlatformEventChannel (consulte los documentos ) y PlatformEventChannelMember (consulte los documentos ).

A pesar de sus nombres, estos tipos de metadatos funcionan tanto para eventos de plataforma como para canales personalizados de eventos de cambio. Las 煤nicas diferencias son que el valor del atributo ChannelType debe establecerse en event para eventos de plataforma o data para eventos de cambio, y que el atributo EnrichedFields solo est谩 disponible para canales personalizados de eventos de cambio.

Publicar eventos de la plataforma

Hemos agregado una serie de ejemplos para eventos de plataforma de publicaci贸n. Movimos la solicitud de la API REST existente a la nueva subcarpeta Publicar eventos de la plataforma y agregamos dos ejemplos para publicar varios eventos en una sola solicitud con la API compuesta y la API SOAP.

Configuraci贸n de retransmisi贸n de eventos

La carpeta Configuraci贸n de retransmisi贸n de eventos es donde se encuentran la mayor铆a de las solicitudes nuevas. Estas nuevas solicitudes son fundamentales para configurar un relevo de eventos:

  • Operaciones CRUD en Credenciales con nombre que se introdujeron en Summer '23
  • Operaciones CRUD en la configuraci贸n de Event Relay
  • Comentarios de retransmisi贸n de eventos de consultor铆a

esquema de eventos

Agregamos dos nuevas solicitudes para recuperar el esquema de un evento de plataforma, ya sea desde su ID o desde su nombre . Estas solicitudes son 煤tiles para recuperar los campos de los eventos.

Lo que nos depara la colecci贸n Postman

Invertimos continuamente en nuestra colecci贸n de API de plataforma y buscamos agregar soporte para la suscripci贸n a eventos de la API Pub Sub. CometD no ser谩 compatible, ya que es una biblioteca que requiere un servidor de aplicaciones, pero estamos considerando conectarnos con la API Pub/Sub basada en gRPC .

Postman ha lanzado una serie de funciones para interactuar con las API de gRPC desde el a帽o pasado. Gracias a esto, podemos conectarnos a la API de Pub/Sub, suscribirnos a eventos y recibirlos. Sin embargo, lamentablemente no podemos decodificar su carga 煤til, ya que est谩 comprimida por la plataforma de Salesforce por motivos de rendimiento. Estamos esperando una nueva caracter铆stica de Postman que nos permita cargar una biblioteca (Apache Avro) para decodificar las cargas 煤tiles de eventos cuando se reciben.

palabras de cierre

Eso es todo para nuestra breve descripci贸n general de Event Platform y las 煤ltimas incorporaciones a la colecci贸n de API de Salesforce Platform. Gracias al crecimiento de esta caja de herramientas, puede comenzar r谩pidamente a explorar y configurar Event Platform.

Si disfruta de nuestro contenido de Postman, h谩ganoslo saber. Tambi茅n puede echar un vistazo a nuestras otras colecciones de c贸digo abierto y contribuir .

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

Presentamos HowToDev_ 鈽侊笍

Presentamos HowToDev_ 鈽侊笍

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

El enlace a la publicaci贸n original, lo encontrar谩s al final de este art铆culo.

Presentamos HowToDev_ | Blog de desarrolladores de Salesforce

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

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

Descripci贸n general de la plataforma de Salesforce

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

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

隆Vamos a codificar!

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

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

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

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

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

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

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

D贸nde ver HowToDev_

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

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

M谩s recursos

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

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

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

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

脷ltima actualizaci贸n el 29 de junio de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

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

Objetivos:

Despu茅s de leer este blog, podr谩:

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

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

驴Qu茅 es la API de zona horaria de Google?

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

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

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

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

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

C贸mo funciona la API de zona horaria de Google?

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

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

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

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

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


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

La respuesta incluye la siguiente informaci贸n:

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

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

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

Adem谩s, no olvide incluir su clave API.

Beneficios de usar la API de zona horaria de Google

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

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

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

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

Paso 1: crea o selecciona tu proyecto

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

Paso 2: configurar una cuenta de facturaci贸n

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

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

Paso 3: habilite la API de zona horaria

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

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

Paso 4: Genere su clave API

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

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

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

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

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

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

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

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

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

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

Comencemos a construir este proceso de automatizaci贸n.

Pr谩ctica guiada (nosotros hacemos):

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

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

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

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

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

Paso 2: crear una credencial con nombre

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

Paso 3.1: Definir propiedades de flujo

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

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

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

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

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

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

Presentamos apex-mockery, una biblioteca de simulaci贸n de pruebas unitarias 鈽侊笍

Presentamos apex-mockery, una biblioteca de simulaci贸n de pruebas unitarias 鈽侊笍

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

El enlace a la publicaci贸n original, lo encontrar谩s al final de este art铆culo.

Presentamos apex-mockery, una biblioteca de simulaci贸n de pruebas unitarias | Blog de desarrolladores de Salesforce

Escribir pruebas s贸lidas es crucial para crear aplicaciones comerciales confiables y eficientes. En esta publicaci贸n, haremos un repaso de las pruebas unitarias y presentaremos apex-mockery , una biblioteca liviana de pruebas unitarias de Apex que lo ayuda a escribir pruebas unitarias de Apex verdaderamente desacopladas usando simulacros y aserciones. Compartiremos ejemplos de c贸digo para ayudarlo a comprender c贸mo puede usar la biblioteca para crear pruebas unitarias f谩ciles de entender y de ejecuci贸n r谩pida.

Un repaso a las pruebas unitarias

Antes de echar un vistazo a la biblioteca de Apex-Mockery, demos un paso atr谩s y analicemos algunos de los conceptos b谩sicos de las pruebas unitarias desde un punto de vista independiente de la tecnolog铆a. Luego, veremos Apex y discutiremos por qu茅 la mayor铆a de nosotros deber铆a escribir pruebas unitarias en lugar de pruebas de integraci贸n.

Las pruebas unitarias est谩n en la base de la pir谩mide de prueba.

La ingenier铆a de software abarca m煤ltiples tipos de pruebas: unidad, integraci贸n, servicio, interfaz de usuario funcional, de extremo a extremo, aceptaci贸n del usuario y m谩s. Como dice Martin Fowler , podemos representar un buen equilibrio entre estos tipos de pruebas dentro del alcance de un proyecto represent谩ndolos como una pir谩mide.

Las etiquetas (tipos de prueba) pueden cambiar, pero el principio clave aqu铆 es que las pruebas que se ejecutan r谩pido y con frecuencia deben estar en la parte inferior de la pir谩mide. Estos son los m谩s f谩ciles de implementar y mantener (por lo que cuestan menos). Luego, a medida que subimos a la cima, aumentamos la complejidad y el costo: las pruebas se ejecutan m谩s lentamente y se vuelven m谩s dif铆ciles de implementar y mantener.

En el contexto de esta publicaci贸n y en aras de la brevedad, nos centraremos 煤nicamente en las pruebas unitarias. Estos son los primeros que debe implementar en cualquier proyecto, y deben ser una prioridad en su estrategia de prueba.

Por definici贸n, las pruebas unitarias est谩n destinadas a probar la menor cantidad de c贸digo (una unidad) de un proyecto. Las pruebas unitarias solo deben basarse en la l贸gica pura y estar completamente desvinculadas de sus dependencias (otras clases) y l铆mites (otros servicios, como almacenamiento de datos o servicios web). Las pruebas unitarias deben ejecutarse r谩pido; no requieren una configuraci贸n de prueba particular, como la inserci贸n de datos en la base de datos, y requieren que simule las dependencias de la clase bajo prueba.

Escribir pruebas unitarias de Apex en lugar de pruebas de integraci贸n

Apex se beneficia de una estrecha integraci贸n con la Plataforma de Salesforce y, si bien esta caracter铆stica es excelente para cosas como acceder r谩pida y f谩cilmente a la base de datos, difumina las l铆neas de separaci贸n de preocupaciones entre la l贸gica y los servicios. Como consecuencia, es muy f谩cil escribir pruebas de integraci贸n de Apex en lugar de pruebas unitarias. Por ejemplo, el c贸digo de Apex a menudo se prueba junto con la base de datos utilizando declaraciones @TestSetup y DML. Si bien estas pruebas de integraci贸n ayudan a lograr la cobertura, se basan en la base de datos y, por lo tanto, requieren m谩s tiempo para ejecutarse que las pruebas unitarias "puras".

Como comparti贸 Mitch Spano en su presentaci贸n de pruebas unitarias puras de Apex , la mayor铆a de las veces, no es necesario confiar en las pruebas de integraci贸n para probar capas de software de alto nivel, como controladores LWC, servicios y capas de aplicaci贸n. Gracias a la API de Stub de Apex lanzada en Spring '17, los desarrolladores pueden romper con esas dependencias en el contexto de las pruebas mediante la creaci贸n de su propia biblioteca/marco de pruebas unitarias o el uso de uno existente como apex-mockery.

Presentamos la burla del 谩pice

Como parte del trabajo de ingenier铆a de Salesforce, est谩bamos desarrollando un paquete administrado internamente y necesit谩bamos una biblioteca para escribir pruebas unitarias. Quer铆amos escribir pasos simples de "arreglar" (como en el patr贸n Arrange-Act-Assert ), escribir afirmaciones comprensibles y burlarnos de nuestras dependencias. Buscamos en todo el ecosistema una biblioteca f谩cil de leer y bien probada que pudi茅ramos usar para crear nuestro producto, pero no encontramos una combinaci贸n perfecta, por lo que decidimos escribir la nuestra. Est谩bamos tan contentos con la implementaci贸n final de la biblioteca que decidimos lanzarla como c贸digo abierto con el nombre apex-mockery .

La biblioteca apex-mockery proporciona una biblioteca de simulaci贸n simple, liviana y f谩cil de leer para Apex creada con la API Stub. La biblioteca est谩 dise帽ada para que sea f谩cil de usar y brinde la mejor experiencia de desarrollador posible al generar simulacros y ap茅ndices, configurar esp铆as y escribir aserciones.

Lo guiaremos a trav茅s de un escenario de muestra para que pueda comprender el poder de la biblioteca con algunos ejemplos pr谩cticos. Luego, le mostraremos c贸mo puede escribir pruebas para este proyecto de muestra en tres pasos:

  1. Crear simulacros y esp铆as de m茅todos.
  2. M茅todos de espionaje de trozo
  3. escribir afirmaciones

Ejemplo de escenario: pedidos de panader铆a y entrega

Considere el siguiente escenario de ejemplo: una panader铆a toma pedidos de pasteler铆a y planifica las entregas utilizando un servicio dedicado. Los 煤nicos datos que estamos considerando en el contexto de este escenario son los nombres de los pasteles y su fecha de entrega.

A continuaci贸n se muestra la implementaci贸n b谩sica de nuestro escenario de panader铆a (el c贸digo completo est谩 disponible en el repositorio del proyecto ).

Pasteler铆a.cls

DeliveryService.cls

DeliveryServiceImpl.cls

Confirmaci贸n de pedido.cls

Panader铆a.cls

Ahora que hemos echado un vistazo a nuestro proyecto de muestra, echemos un vistazo a c贸mo podr铆amos escribir pruebas para el m茅todo Bakery.order .

Paso 1: crea simulacros y esp铆as de m茅todos

Para funcionar, la clase Bakery necesita que se pase una instancia DeliveryService en su constructor. En un contexto de producci贸n, el servicio se proporciona con una instancia concreta DeliveryServiceImpl de la siguiente manera:

Sin embargo, en el contexto de las pruebas unitarias, no debe usar una instancia de servicio real para garantizar el desacoplamiento. En otras palabras, DelivertServiceImpl se probar谩 unitariamente por s铆 solo, por lo que no es necesario que pruebe las dos clases integradas juntas. Puede reemplazar la dependencia del servicio con un simulacro que implemente la interfaz DeliverService .

As铆 es como puede crear e inyectar f谩cilmente un simulacro de este tipo, gracias a apex-mockery:

Luego, su prueba necesita un esp铆a, para que pueda controlar el comportamiento del m茅todo planDelivery y ejecutar aserciones en sus llamadas.

Ahora que tiene un servicio simulado y un esp铆a en su m茅todo planDelivery , veamos c贸mo puede configurar su esp铆a y ejecutar aserciones en 茅l.

Paso 2: m茅todos de espionaje de trozo

Una vez que tenga una instancia simulada, puede controlar c贸mo se comportan sus m茅todos controlando sus valores de retorno y lanzando excepciones.

Utilice los m茅todos returns y throwsException para especificar un comportamiento predeterminado que se aplica a todas las llamadas a los m茅todos auxiliares. Luego, si es necesario, usa una combinaci贸n de whenCalledWith(<args>).thenReturn y whenCalledWith(<args>).thenThrow para aplicar comportamientos espec铆ficos a las llamadas a m茅todos que coincidan con los argumentos especificados.

Durante la ejecuci贸n de la prueba, apex-mockery comienza buscando una coincidencia en la configuraci贸n proporcionada por whenCalledWith . Si no se encuentra ninguno, vuelve a la configuraci贸n predeterminada ( returns o throwException ).

Veamos algunas situaciones comunes de configuraci贸n de stubs (ver m谩s recetas ).

  • Devolver algo cada vez que se llame planDelivery
  • Lanza una excepci贸n cada vez que se llama planDelivery
  • Devuelve algo cuando se llama con un argumento espec铆fico
  • Lanza una excepci贸n cuando se llama con un argumento espec铆fico

Ahora que sabe c贸mo impulsar el comportamiento de su simulacro, puede agregar aserciones para probar su c贸digo.

Paso 3: Escribe afirmaciones

apex-mockery proporciona una API de afirmaciones fluidas. Tan pronto como comience su expectativa con Expect.that(mySpy) , tendr谩 acceso a varios m茅todos de afirmaci贸n. La biblioteca viene con una serie de afirmaciones de comportamiento f谩ciles de usar, como:

Si los comparadores de argumentos b谩sicos no son suficientes para sus necesidades, tambi茅n puede crear sus propios comparadores de argumentos personalizados .

Uniendo el ejemplo completo

Ahora que vimos los pasos individuales, terminemos y echemos un vistazo a nuestra prueba para el m茅todo Bakery.order . Observe c贸mo puede usar aserciones de burla de Apex, junto con las aserciones est谩ndar de Apex de la clase system.Assert , en sus pruebas.

palabras de cierre

Esto concluye nuestro recorrido por las pruebas unitarias y la biblioteca de Apex-Mockery. Aprendi贸 c贸mo las pruebas unitarias desacopladas son m谩s f谩ciles de escribir y ejecutar mucho m谩s r谩pido. Tener pruebas r谩pidas acorta el ciclo de retroalimentaci贸n del ciclo de vida del desarrollo, reduce la duraci贸n de la ejecuci贸n del flujo de trabajo de CI y acelera las implementaciones. Estos factores permiten a los desarrolladores implementar y ejecutar pruebas con frecuencia, mejorando as铆 la calidad.

apex-mockery lo ayuda a dirigir su proyecto en esta direcci贸n. Consulte el repositorio del proyecto para comenzar. Encontrar谩 la documentaci贸n de la biblioteca con las opciones de instrucciones de instalaci贸n (instalaci贸n de fuente o paquete desbloqueado), algunas recetas de muestra y una gu铆a de migraci贸n. 隆Feliz prueba unitaria!

Sobre los autores

Ludovic Meurillon es ingeniero de software en el equipo de Service Cloud en Grenoble, Francia. Empuj贸 el c贸digo a la producci贸n durante a帽os, disfruta eliminando m谩s l铆neas de c贸digo de las que agrega y prefiere la programaci贸n en pares sobre las revisiones de c贸digo y los productos de trabajo sobre el dise帽o perfecto. S铆galo en Twitter @LudoMeurillon o consulte sus proyectos de GitHub @ludomeurillon .

S茅bastien Colladon es CTA e ingeniero de software en el equipo de Service Cloud en Par铆s, Francia. Le encanta contribuir a hacer del ecosistema de Salesforce un lugar mejor y disfruta aprender y trabajar con otros. Consulte sus proyectos de GitHub @ scolladon .

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

Aspectos destacados de la versi贸n para desarrolladores | Aprende Moar Verano '23 鈽侊笍

Aspectos destacados de la versi贸n 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.

Aspectos destacados de la versi贸n para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

隆Haz un gran revuelo con el lanzamiento de Summer '23!

Sabemos que cada versi贸n trae consigo muchas funciones nuevas y sorprendentes, y puede haber mucho que digerir. Con Learn MOAR, empaquetamos el lanzamiento y se lo ofrecemos en un formato f谩cil de digerir con blogs, videos y m谩s.

隆Es f谩cil empezar!

  • 隆Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos!
  • 隆脷nase a nosotros para Release Readiness Live ! 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.

Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Introducci贸n

隆El lanzamiento de Summer '23 est谩 aqu铆 y est谩 repleto de funciones para desarrolladores! En esta publicaci贸n de blog, resumiremos los aspectos m谩s destacados, para que pueda obtener una descripci贸n general de las novedades y decidir qu茅 es lo m谩s interesante para usted. En publicaciones posteriores de Learn MOAR, profundizaremos en algunos de estos aspectos destacados, para que pueda explorarlos con mayor detalle. Mantenerse actualizado con las 煤ltimas innovaciones lo ayudar谩 a aumentar su experiencia y convertirse en un desarrollador m谩s exitoso.

Componentes web Lightning

Comencemos hablando de Lightning Web Components, que presentar谩 una gran cantidad de nuevas funciones en Summer '23.

Un par de funciones que estaban en Beta ahora estar谩n disponibles de forma general (GA). Esto incluye DOM ligero , que permite integraciones de terceros y estilo global, Lightning Web Security para LWC y Aura , que facilita el uso de bibliotecas de JavaScript de terceros en LWC. La API RefreshView , que le permite actualizar la vista de un componente, tambi茅n ser谩 GA. Adem谩s, el adaptador de cable GraphQL se est谩 moviendo a Beta, lo que significa que puede probarlo de inmediato, sin tener que registrarse para el programa piloto. Esto cambiar谩 las reglas del juego sobre c贸mo se leen los datos en Lightning Web Components.

Hay varias mejoras en la sintaxis de LWC que facilitar谩n la escritura de sus componentes. Se est谩 lanzando una nueva directiva de plantilla lwc:spread (consulte los documentos ), que le permite distribuir propiedades de objetos a un componente secundario, lo que reduce significativamente la cantidad de c贸digo que necesita escribir. A partir de Summer '23, podr谩 establecer un valor din谩mico para el atributo de ranura de un elemento HTML. Adem谩s, se habilitar谩 la inyecci贸n program谩tica de hojas de estilo, lo que le permitir谩 establecer la propiedad est谩tica de las hojas de estilo para un componente.

驴Ha comenzado a escribir pruebas de extremo a extremo con UTAM? Esta versi贸n tambi茅n trae mejoras a las capacidades de manejo de errores de UTAM y una extensi贸n de Chrome para identificar objetos de p谩gina de UTAM (en Beta).

M贸vil sin conexi贸n

Salesforce Mobile App Plus (Salesforce App+) es una versi贸n de la aplicaci贸n Salesforce Mobile que habilita LWC Offline. LWC Offline es un entorno de tiempo de ejecuci贸n avanzado para componentes web Lightning que aumenta el tiempo de ejecuci贸n est谩ndar con funciones dise帽adas espec铆ficamente para uso m贸vil y sin conexi贸n. Si bien LWC Offline anteriormente solo estaba disponible en la aplicaci贸n m贸vil Salesforce Field Service, Salesforce App+ le permite usarlo en un contexto m谩s gen茅rico. Salesforce App+ se cerr贸 en Beta en Spring '23 y se trasladar谩 a GA en Summer '23. Salesforce App+ est谩 disponible bajo la licencia Salesforce Mobile Plus.

Integraci贸n de plataforma

Tener una plataforma robusta es tan importante como tener capacidades de integraci贸n s贸lidas. Es por eso que la versi贸n Summer '23 trae muchas funciones de integraci贸n nuevas.

En esta versi贸n, ampliamos la API REST de Salesforce para admitir la recuperaci贸n de elementos secundarios mediante la definici贸n de hasta cinco niveles de consultas SOQL anidadas . Tambi茅n ampliamos la API REST de Connect y la API de Connect (Connect in Apex) para permitir que los desarrolladores creen y administren credenciales con nombre mediante programaci贸n. Adem谩s, la API GraphQL, que se hizo GA en Spring, ahora admitir谩 consultas con funciones agregadas y mejorar谩 sus capacidades de manejo de errores . Los eventos de la plataforma tambi茅n incluyen nuevas funciones, como la capacidad de agregar una clase de devoluci贸n de llamada a su c贸digo de publicaci贸n de Apex , que proporcionar谩 una confirmaci贸n cuando el evento de la plataforma se publique correctamente. Adem谩s, podr谩 obtener m茅tricas de uso de eventos de la plataforma consultando el objeto PlatformEventUsageMetric .

Tambi茅n se est谩n mejorando las capacidades de integraci贸n en Flow. Flow Builders ahora podr谩 configurar llamadas HTTP GET a sistemas externos que no tienen una especificaci贸n de API abierta a trav茅s de la funci贸n Servicios externos. Las llamadas HTTP POST est谩n en Beta. Si es un Muley , puede leer m谩s sobre las innovaciones de Flow plus MuleSoft en la siguiente secci贸n.

Adem谩s de todo esto, el adaptador GraphQL de Salesforce Connect que anunciamos en febrero se mudar谩 a GA, y Event Relay ahora admitir谩 Shield Platform Encryption y tendr谩 una nueva interfaz de usuario de configuraci贸n f谩cil de usar.

Innovaciones entre nubes

Aunque MuleSoft, Tableau y Slack siguen sus propios ciclos de lanzamiento, son partes integrales del ecosistema de Salesforce y de vital importancia para los desarrolladores.

Mula Suave

Una de las innovaciones m谩s recientes de MuleSoft es Anypoint Code Builder (Beta), el IDE de pr贸xima generaci贸n de MuleSoft para dise帽ar, desarrollar e implementar API, integraciones y automatizaci贸n desde un solo entorno. 隆Compru茅balo si a煤n no lo has hecho!

Si ley贸 la secci贸n "Integraci贸n de la plataforma" anterior, es posible que haya recibido un spoiler: MuleSoft se est谩 integrando en Flow m谩s que nunca. En Summer '23, habr谩 una nueva secci贸n en la interfaz de usuario de configuraci贸n de Salesforce Platform, desde la cual podr谩 configurar y administrar los servicios de MuleSoft , que luego se pueden usar en Flow Builder. Adem谩s, el soporte de MuleSoft se est谩 agregando a Flow Orchestrator , lo que facilita la creaci贸n de procesos comerciales automatizados de varios pasos que utilizan los servicios de MuleSoft.

Por 煤ltimo, se lanzar谩 Anypoint Experience Hub . Es la pr贸xima evoluci贸n de Anypoint API Community Manager y permite a los clientes crear portales de API en minutos para una mejor participaci贸n de API.

Cuadro

Si trabaja con API, es posible que est茅 familiarizado con la colecci贸n Postman de API de Salesforce . Esta colecci贸n se ha vuelto muy popular y es ampliamente adoptada en el ecosistema de Salesforce, con actualmente m谩s de 500 bifurcaciones y m谩s de 800 estrellas. Tableau recientemente se subi贸 al carro al agregar sus propias muestras de la API REST de Tableau a la colecci贸n. Para obtener m谩s informaci贸n, lea nuestra entrada de blog .

Si le gust贸 la colecci贸n, le encantar谩 la innovaci贸n m谩s reciente de Tableau, cuya vista previa p煤blica se anunci贸 en la Conferencia de Tableau (TC) 2023 del 9 al 11 de mayo. El nuevo Tableau Embedding Playground ofrece a los desarrolladores un entorno de aprendizaje interactivo para desarrollar r谩pidamente soluciones de an谩lisis integradas. Integre visualizaciones de Tableau y agregue r谩pidamente interacciones que establezcan filtros y par谩metros, obtengan marcas y datos seleccionados, utilizando los componentes b谩sicos de los m茅todos y las propiedades de la API de incorporaci贸n. En el futuro, use sus propias visualizaciones en Tableau Cloud, Tableau Server o Tableau Public para desarrollar sus aplicaciones personalizadas con c贸digo que puede exportar y ejecutar en cualquier lugar.

La diversi贸n no se detiene ah铆. Para admitir an谩lisis integrados personalizados y seguros, Tableau introdujo recientemente dos nuevas funciones de usuario que permiten a los desarrolladores y administradores pasar cualquier atributo de usuario en tiempo de ejecuci贸n dentro del flujo de autenticaci贸n integrado. Para obtener m谩s informaci贸n, leanuestra entrada de blog .

Flojo

Finalmente, nos complace compartir que Slack acaba de anunciar la disponibilidad general de su plataforma Slack de pr贸xima generaci贸n. En la nueva plataforma, puede crear aplicaciones modulares mediante el desarrollo de componentes b谩sicos, como funciones, flujos de trabajo y activadores, mediante TypeScript y Deno . Ahora puede implementar en la infraestructura administrada por Slack, ahorrando tiempo y aumentando la eficiencia. En el futuro, los usuarios de Slack podr谩n aprovechar cada capacidad que ofrece y combinarlas con otras funciones, servicios y proveedores de software para crear automatizaciones potentes y personalizadas. La plataforma tambi茅n incluye una CLI, que puede usar para desarrollar, probar e implementar sus funciones y flujos de trabajo. Para obtener m谩s informaci贸n al respecto y obtener experiencia pr谩ctica, dir铆jase a la gu铆a de inicio r谩pido .

Aprende MOAR

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

Sobre el Autor

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Actualmente se enfoca en el desarrollo de Lightning Web Components y Slack. Puedes seguirla en Twitter 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

Sube de nivel tus habilidades Apex 鈽侊笍

Sube de nivel tus habilidades Apex 鈽侊笍

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.

Subiendo de nivel tus habilidades de Apex | Blog de desarrolladores de Salesforce

Apex es una habilidad 煤nica que los desarrolladores deben dominar al crear soluciones personalizadas con Salesforce. Hay algunos conceptos b谩sicos que son esenciales. Ciertas cosas, como la sintaxis y el flujo de control, son como aprender cualquier otro idioma. Otras cosas, como operaciones masivas, l铆mites reguladores y disparadores, son particulares de Apex y c贸mo se implementa en la Plataforma de Salesforce. Una vez que tenga una idea de estas caracter铆sticas y modismos clave, 驴a d贸nde va despu茅s?

En esta publicaci贸n, aprender谩 sobre algunas caracter铆sticas de Apex que son cr铆ticas para cualquier desarrollador de Apex que busque mejorar m谩s all谩 de lo b谩sico, junto con d贸nde puede ir para aprender sobre ellas.

Nota: Siempre que sea posible, los ejemplos de c贸digo en esta publicaci贸n se toman directamente o se adaptan de la aplicaci贸n de muestra Recetas de Apex o la Gu铆a para desarrolladores de Apex. Ver las referencias al final del art铆culo.

En estos d铆as, si desea un proceso automatizado o una interfaz de usuario similar a un asistente, Flow siempre debe ser una opci贸n que considere. El alcance, la flexibilidad y la madurez de Flow han crecido enormemente. A煤n as铆, es raro que los problemas comerciales complejos se puedan resolver sin ning煤n tipo de c贸digo.

Introduzca Apex invocable.

La anotaci贸n @InvocableMethod se usa para definir m茅todos llamados por Flow. Y @InvocableVariable muestra los par谩metros para que Flow pase datos a su c贸digo Apex. 驴Por qu茅 llamar铆a a Apex desde Flow? Quiz谩s la l贸gica de su flujo se est谩 volviendo demasiado compleja. Tal vez su automatizaci贸n necesite realizar una operaci贸n que no sea accesible para Flow. En casos como estos, Apex puede ser su amigo.

Aqu铆 hay una ilustraci贸n b谩sica del uso de la anotaci贸n @InvocableMethod :

<dx-code-block title language="java" code-block="public class AccountQueryAction {   @InvocableMethod(label='Get Account Names' description='Returns the list of account names corresponding to the specified account IDs.' category='Account')   public static List getAccountNames(List ids) {     List accountNames = new List();     List accounts = [SELECT Name FROM Account WHERE Id in :ids];     for (Account account : accounts) {       accountNames.add(account.Name);     }     return accountNames;   } }禄>

Este ejemplo de la Gu铆a para desarrolladores de Apex ilustra c贸mo la anotaci贸n marca esto como un m茅todo que Flow puede invocar. Tenga en cuenta que la anotaci贸n tambi茅n define detalles como una etiqueta y una descripci贸n que determinan lo que se muestra al usuario de Flow Builder.

Un efecto secundario importante de las anotaciones de @Invocable鈥 del que pocas personas hablan es que esto muestra autom谩ticamente su Apex al punto final de la API <INSTANCEURL>/data/<VERSION>/actions/custom/apex .

Otra cosa 煤til que puede hacer al invocar Apex desde su flujo es acceder a los diferentes tipos de Apex as铆ncrono. Lo que trae a colaci贸n la siguiente caracter铆stica de Apex que se debe abordar.

La ejecuci贸n as铆ncrona desacopla una acci贸n que queremos realizar del contexto de ejecuci贸n actual. Siguiendo las mejores pr谩cticas actuales, existen tres formas de ejecutar Apex de forma asincr贸nica: en cola, programable y por lotes. Aunque t茅cnicamente el bus de eventos es as铆ncrono, lo omitiremos por el momento.

Si solo necesita activar un poco de c贸digo para ejecutarlo de forma asincr贸nica, la opci贸n en cola es la herramienta de referencia. Si tiene varias tareas asincr贸nicas, queueable las ejecuta de manera determinista en orden. Debido a que est谩n en cola en orden, tambi茅n puede encadenar una llamada as铆ncrona de otra. Y Apex en cola admite entradas de objetos o tipos primitivos.

Apex programado funciona tal como lo esperar铆a: ejecute alg煤n c贸digo de Apex en un horario. Batch Apex est谩 optimizado para trabajar con conjuntos de datos muy grandes. Para utilizar Apex as铆ncrono, debe crear una clase de Apex que implemente una interfaz espec铆fica: Queueable , Schedulable o Batchable , respectivamente.

Nota: algunos desarrolladores pueden estar familiarizados con la anotaci贸n @Future para hacer que un solo m茅todo sea asincr贸nico, tambi茅n conocido como "m茅todos futuros". Los m茅todos futuros, aunque r谩pidos y f谩ciles, tienen limitaciones que los hacen menos 煤tiles. No hay nada que pueda hacer con un m茅todo futuro que no se pueda hacer mejor con una clase en cola. Por este motivo, no recomendamos implementaciones de producci贸n con m茅todos futuros.

Por lo tanto, echemos un vistazo a un ejemplo de una clase de Apex que se puede poner en cola.

<dx-code-block title language="Java" code-block="public with sharing class QueueableRecipes implements Queueable { public static void execute(QueueableContext qc) { List accounts = [ SELECT Id, Description FROM Account LIMIT 1000 ]; for (Account acct : accounts) { acct.Description += ‘ Edited by Queueable class’; } try { update accounts; } catch (DmlException dmle) { System.debug( LoggingLevel.INFO, ‘real life use cases should do more than just logging the error: ‘ + dmle.getMessage() ); } }
} 芦>

Todas las interfaces as铆ncronas de Apex tienen un m茅todo execute() que debe implementarse como se muestra arriba. Para ejecutar su clase Queueable , debe ponerla en cola.

Si bien no se muestra en este ejemplo de la aplicaci贸n de muestra Recetas de Apex, para pasar datos a su cola, anule el constructor con los par谩metros que necesita.

El t茅rmino "Apex din谩mico" es un poco inapropiado. O, al menos, podr铆a malinterpretarse como que Apex de alguna manera funciona como un lenguaje de programaci贸n din谩mico. Esto no es a lo que se refiere (por ejemplo, no hay Apex
funci贸n eval !).

Dynamic Apex es un c贸digo que se adapta a diferentes tipos de SObject ( Account , Contact , My_Custom_Object__c , etc.) en tiempo de ejecuci贸n. Esto se hace abstrayendo referencias espec铆ficas de SObject. La clave es usar la superclase SObject cuando se trabaja con datos. Tambi茅n utilizar谩 las funciones de "descripci贸n" de Apex para detectar con qu茅 objetos y campos est谩 trabajando y qu茅 puede hacer con ellos (por ejemplo, si este usuario puede consultar este objeto).

Esta es una habilidad esencial para los desarrolladores de ISV. A menudo, crear谩 una aplicaci贸n que debe adaptarse al entorno local del cliente que instala su aplicaci贸n. Esto significa que su c贸digo necesita detectar, describir y adaptar su comportamiento dependiendo de datos conocidos o incluso desconocidos.

Aunque es esencial para un desarrollador de ISV, tambi茅n es importante para cualquier persona que quiera escribir c贸digo m谩s reutilizable.

Tome este ejemplo de consulta muy b谩sico:

<dx-code-block title language="Java" code-block="List accts = [SELECT Id, Name, Website FROM Account];禄>

Esto funcionar谩 todo el d铆a consultando los datos de la cuenta. Pero, 驴y si queremos construir una consulta para cualquier SObject?

Para convertir esto en un Apex "din谩mico", necesitamos abstraer las referencias de campo y SObject espec铆ficas. Y tal vez lo incluir铆amos en un m茅todo que permitiera a otro desarrollador pasarlos. Tambi茅n podr铆amos verificar para asegurarnos de que el usuario tenga los permisos de objeto para realizar la operaci贸n que estamos a punto de intentar.

<dx-code-block title language="Java" code-block="public static List executeDynamicQuery(Schema.DescribeSObjectResult obj, List fields){ // Create a result-set list List resultRecords; if (obj.isQueryable()){ // Set up a query string String queryTemplate = ‘SELECT {0} FROM {1}’; List queryDetails = new List{String.join(fields, ‘, ‘), obj.getName()}; String queryString = String.format(queryTemplate, queryDetails); // Run your query resultRecords = Database.query(queryString); } return resultRecords; } 芦>

Lo anterior construye una consulta para un SObject que se pasa al m茅todo y una lista arbitraria de campos. Utiliza el objeto DescribeSObjectResult para detectar la capacidad de consulta e inferir el nombre de la API de SObject al construir y ejecutar la consulta. A continuaci贸n, debe invocarlo.

As铆 es como podr铆amos hacer eso con los objetos Cuenta y Contacto, respectivamente:

<dx-code-block title language="Java" code-block="List accountRecords = DynamicApexClass.dynamicQuery(Account.SObjectType.getDescribe(), new List{‘Id’,’Name’,’Website’}); List contactRecords = DynamicApexClass.dynamicQuery(Contact.SObjectType.getDescribe(), new List{‘Id’,’FirstName’,’LastName’}); 芦>

Este ejemplo no aborda algunos riesgos de SOQL din谩mico, como la inyecci贸n de SOQL. Por lo tanto, aseg煤rese de leer sobre Apex din谩mico. Aprender a escribir Apex seguro har谩 que sea menos probable que implemente c贸digo vulnerable en su organizaci贸n (o la de un cliente). El enlace de variables en sus consultas SOQL es una herramienta clave para proteger su Apex din谩mico de ser explotado. El m茅todo escapeSingleQuotes() es otra herramienta m谩s antigua que tambi茅n puede encontrar. El modo de usuario tambi茅n es clave para garantizar que cualquier acci贸n realizada tenga que cumplir con todas y cada una de las restricciones del usuario que la ejecuta.

Para obtener un ejemplo m谩s completo y seguro de Apex din谩mico, consulte la receta de Apex del m茅todo invocable en la aplicaci贸n de ejemplo Recetas de Apex. Esa acci贸n invocable funciona con el objeto Cuenta o Tarea.

Con Salesforce, hay algunas formas de realizar la integraci贸n sin c贸digo. Espec铆ficamente, si solo necesita una aplicaci贸n o servicio de cliente para obtener datos de Salesforce, hay muchas API que se muestran autom谩ticamente sin ning煤n tipo de codificaci贸n en el lado de Salesforce. Incluso se ajustan a su esquema personalizado. Si est谩 integrando su organizaci贸n a un sistema externo compatible con OData, puede usar Salesforce Connect y objetos externos (nuevamente, no se requiere c贸digo).

Pero a veces, es posible que deba llamar desde su organizaci贸n a un servicio externo. O tal vez desee mostrar un punto final personalizado que agrupe m谩s complejidad que una de las API est谩ndar. Nuevamente, Apex contiene funciones que admiten tanto la aparici贸n de nuevas API personalizadas como la llamada a servicios web.

Al pensar en API personalizadas, en estos d铆as, la mayor铆a de los desarrolladores pensar铆an en API REST. Puede crear una API REST personalizada en Salesforce Platform creando una clase de Apex que se anota con la anotaci贸n @RestResource . Parte del trabajo de la anotaci贸n es definir tambi茅n el nombre del recurso. Todas las API REST personalizadas basadas en Apex se encuentran en <INSTANCEURL>/services/apexrest/ .

Para definir los comportamientos que necesita admitir, hay una serie de anotaciones de m茅todos que corresponden a verbos HTTP, como @HttpGet y @HttpPost . La clase RestContext contiene un conjunto de elementos de acceso para obtener el estado de la solicitud HTTP entrante y la respuesta saliente que devuelve. A continuaci贸n, se muestra un ejemplo de un extremo REST b谩sico que aparece en el m茅todo HTTP GET. Tenga en cuenta c贸mo se utilizan las anotaciones.

<dx-code-block title language="Java" code-block="@RestResource(urlmapping='/integration-service/*')
global inherited sharing class CustomRestEndpointRecipes( … @HttpGet global static String getRecordsToReturn() { RestResponse response = RestContext.response; try { List accounts = [ SELECT Id, Name, Phone, Website FROM Account WITH USER_MODE ]; response.statusCode = 200; String serializedAccounts = JSON.serialize(accounts); return serializedAccounts; } catch (QueryException qe) { System.debug( LoggingLevel.INFO, ‘Failed to query a list of Accounts. Error is: ‘ + qe.getMessage() ); response.statusCode = 400; return qe.getMessage(); } }
} 芦>

Si su requisito es crear un servicio SOAP, tambi茅n hay un conjunto de caracter铆sticas para admitir ese protocolo.

Fuera del c贸digo real, necesitar谩 una sesi贸n autorizada para acceder a cualquier servicio web que cree. Pero si ya tiene un cliente autorizado, la solicitud es solo otra llamada al punto final personalizado que defina.

La llamada a un punto final REST externo se realiza a trav茅s de un conjunto de clases. La clase HttpRequest le permite definir los par谩metros de c贸mo se comportar谩 su solicitud (punto final, verbo HTTP, encabezados, etc.). La solicitud se realiza a trav茅s del m茅todo est谩tico Http.request() . Esto devuelve un objeto HttpResponse que le proporciona los datos devueltos o el error si la solicitud falla.

Nota: Las clases HttpRequest y HttpResponse son las mismas para las llamadas REST y los servicios REST personalizados.

Se requiere cierta configuraci贸n para su texto destacado. Espec铆ficamente, deber谩 configurar una credencial con nombre en la mayor铆a de los casos. Esta configuraci贸n le permite descargar el protocolo de enlace de autenticaci贸n de su c贸digo. Aunque, si est谩 llamando a un servicio an贸nimo no autenticado, tambi茅n puede optar por usar una configuraci贸n de sitio remoto m谩s simple.

= 200 && response.getStatusCode()

El ejemplo anterior hace una llamada simple a un punto final. Tenga en cuenta que no se utilizan las opciones para establecer encabezados ni usar una credencial con nombre, ya que esta solicitud es para una API simple que no requiere autenticaci贸n.

La transmisi贸n de eventos es una herramienta valiosa para crear arquitecturas d茅bilmente acopladas en aplicaciones complejas. La plataforma de Salesforce implementa la transmisi贸n de eventos a trav茅s de dos caracter铆sticas principales: eventos de plataforma y captura de datos modificados. La columna vertebral de estas funciones es el bus de eventos.

De la Gu铆a para desarrolladores de eventos de plataforma, el bus de eventos es "Un servicio de entrega y almacenamiento de eventos de m煤ltiples inquilinos y m煤ltiples nubes basado en un modelo de publicaci贸n-suscripci贸n". Tanto su organizaci贸n como los sistemas externos pueden publicar y suscribirse a eventos. Por supuesto, es clave que si publicas un mensaje, algo debe haberse suscrito para que suceda cualquier otra cosa.

Los eventos de plataforma representan los datos que pasan a trav茅s del bus de eventos. Los eventos se procesan en el orden en que se reciben. Una forma de pensar en ellos es como un SObject ef铆mero que se almacena temporalmente en el bus de eventos en su camino hacia su destino. De hecho, los metadatos de un evento se almacenan en el mismo lugar de su proyecto que sus SObjects. Puede distinguir los eventos de plataforma personalizados de los SObjects por su sufijo __e (por ejemplo Order_Complete__e ).

Una vez que completa un evento con sus datos, el m茅todo EventBus.publish() es similar a una llamada DML en su SObject normal. Tenga en cuenta el c贸digo a continuaci贸n que publica un evento.

En Apex, se suscribe a un evento creando un disparador as铆ncrono para 茅l. Pero los disparadores as铆ncronos son diferentes de la operaci贸n DML transaccional est谩ndar de un disparador normal. Por esta raz贸n, debe tener en cuenta algunas diferencias. Con disparadores as铆ncronos, el tama帽o del lote es diferente. Necesitas configurar tu usuario de ejecuci贸n. Las operaciones de activaci贸n de eventos tambi茅n se pueden volver a intentar. Aseg煤rese de conocer estas diferencias a medida que comience a implementar activadores de eventos de plataforma. Tenga en cuenta el disparador a continuaci贸n.

A diferencia de los disparadores DML t铆picos, los disparadores de eventos de plataforma solo admiten el contexto after insert . Tampoco existe una acci贸n expl铆cita para suscribir un disparador a un evento de plataforma. Una vez que el activador se implementa en su organizaci贸n, se suscribe autom谩ticamente.

Adem谩s de Apex, los eventos de la plataforma pueden activarse y suscribirse mediante sistemas externos y Flow. Son clave en las integraciones d茅bilmente acopladas. Como tal, es raro que Apex active y se suscriba al mismo evento.

Hemos cubierto mucho. Pero de ninguna manera esto es todo lo que necesita saber como desarrollador de Apex. Los elementos cubiertos se basan en algunas caracter铆sticas bastante comunes. Pero es posible que deba aprender otras funciones de Apex seg煤n los requisitos de su proyecto. Aqu铆 hay algunos otros elementos que debe tener en cuenta.

Cach茅 de plataforma : si proviene de otras plataformas de programaci贸n, estar谩 familiarizado con la noci贸n de una variable est谩tica o global persistente en todas las transacciones. Pero en Apex, las est谩ticas se limitan a la transacci贸n. La memoria cach茅 de la plataforma es una caracter铆stica de Apex que permite la persistencia de datos en memoria entre transacciones. Si encuentra un retraso en el rendimiento relacionado con la recuperaci贸n de datos, la memoria cach茅 de la plataforma puede ayudar.

Marcos de activaci贸n : no es una caracter铆stica del lenguaje, sino bibliotecas que facilitan el uso de activadores. Estos proyectos creados por la comunidad abstraen el c贸digo de activaci贸n repetitivo que a menudo necesita escribir. Al usar un marco de activaci贸n, deber铆a permitirle concentrarse solo en la l贸gica que debe abordarse. Para algo m谩s que un disparador trivial, se recomienda encarecidamente adoptar un marco. Y conozco a algunos que argumentar铆an que deber铆a considerar un marco incluso para ese disparador trivial. Pero este no es el lugar para debatir el tiempo de valor frente a la optimizaci贸n prematura. Hay una implementaci贸n muy simple de esto en la aplicaci贸n Apex Recipes .

SOSL : el lenguaje de b煤squeda de objetos de Salesforce ( SOSL ) es el primo subestimado de SOQL. SOSL permite consultas basadas en texto no deterministas. Es muy eficiente para encontrar datos de texto en comparaci贸n con la b煤squeda de campos de texto con SOQL y comodines. Admite la b煤squeda de varios SObjects simult谩neamente y contiene funciones para filtrar de forma determinista los resultados de la b煤squeda. Si tiene consultas SOQL de texto que son lentas, definitivamente consulte esta herramienta.

AuraEnabled : para mostrar el c贸digo Apex personalizado en sus componentes web Lightning (LWC), esta anotaci贸n es clave. Es muy probable que ya est茅 usando este si comenz贸 su viaje de Salesforce creando LWC. Pero si a煤n no lo ha usado, b煤squelo en cualquier proyecto que involucre una interfaz de usuario personalizada. 驴Por qu茅 "Aura" habilitado si es para LWC? Bueno, esta anotaci贸n se cre贸 inicialmente para admitir el predecesor de LWC, el marco Aura. Ten铆a sentido no reinventar una nueva anotaci贸n cuando la existente funcionar铆a igual de bien para LWC.

Cada viaje para aprender un nuevo lenguaje de programaci贸n tiene algunas caracter铆sticas clave que todos deben conocer. La sintaxis b谩sica, el control de flujo y el modelo de ejecuci贸n de la plataforma son fundamentales para comprender. Pero una vez que tenga esos conceptos b谩sicos, trabajar en funciones m谩s avanzadas es clave para aumentar su conjunto de habilidades. Las acciones invocables, el Apex as铆ncrono, el Apex "din谩mico", la integraci贸n y el bus de eventos son funciones que probablemente utilizar谩 a medida que avanza. Al familiarizarse con estos ahora, no solo se preparar谩 para abordar proyectos en el futuro, sino que tambi茅n podr谩 tomar mejores decisiones de soluci贸n.

Si cree que est谩 listo para aprender, los senderos para desarrolladores intermedios y avanzados en Trailhead pueden ayudarlo a encaminarse con todos estos temas y m谩s.

Aplicaci贸n de muestra Apex Recipes en Github

Gu铆a para desarrolladores de Apex

Gu铆a de referencia de idiomas de Apex

Centro de desarrolladores de Apex

Peter Chittum ha trabajado en software empresarial y habilitaci贸n para desarrolladores durante m谩s de 20 a帽os. Pas贸 los 煤ltimos 12 a帽os ayudando a miles de desarrolladores a tener 茅xito en la plataforma de Salesforce, y m谩s recientemente lider贸 el equipo de promotores de desarrolladores en Salesforce. Pasa su tiempo libre con su familia, anda en bicicleta de monta帽a, cocina y toca m煤sica. S铆galo en Twitter (@pchittum), LinkedIn (en/PeterChittum) o BlueSky Social (@pchittum.bsky.social).

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

Cambios en la estructura del DOM interno del componente Lightning base para compatibilidad futura con sombras nativas 鈽侊笍

Cambios en la estructura del DOM interno del componente Lightning base para compatibilidad futura con sombras nativas 鈽侊笍

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.

Cambios en la estructura del DOM interno del componente Lightning base para la futura compatibilidad con sombras nativas | Blog de desarrolladores de Salesforce

Salesforce est谩 preparando los componentes base de Lightning para adoptar Shadow DOM nativo , lo que mejorar谩 el rendimiento de los componentes y los alinear谩 mejor con los est谩ndares de los componentes web. Como parte de esta fase de preparaci贸n, hemos cambiado la estructura DOM interna de algunos de nuestros componentes. Reci茅n comenzamos y continuaremos modificando las partes internas de los componentes en versiones posteriores. En esta publicaci贸n, discutiremos qu茅 cambiar谩 y c贸mo puede prepararse para ello.

驴Qu茅 es el DOM de sombra nativo?

Shadow DOM es un est谩ndar web que encapsula la estructura del modelo de objeto de documento (DOM) interno de un componente web. Esto nos da la capacidad de proporcionarle componentes robustos y seguros protegi茅ndolos de ser manipulados por HTML, CSS y JavaScript arbitrarios.

Actualmente, Salesforce mantiene un polyfill de sombra sint茅tico para navegadores heredados, como versiones anteriores de Microsoft Edge, pero ahora que todos los principales navegadores admiten DOM de sombra nativo, estamos preparando nuestros componentes para hacer lo mismo.

Con la introducci贸n del shadow DOM nativo, mejoraremos la encapsulaci贸n de los componentes, haci茅ndolos m谩s consistentes y seguros, y brindaremos una forma m谩s predecible de dise帽arlos. Esto resolver谩 una gran cantidad de problemas de compatibilidad con versiones anteriores y alinear谩 los componentes web Lightning con los est谩ndares web.

Sin embargo, puede provocar una fase de adaptaci贸n a medida que hacemos el cambio.

La implementaci贸n interna de los componentes b谩sicos est谩 cambiando

Hemos estado trabajando en la preparaci贸n de nuestros componentes base para adoptar el shadow DOM nativo. Los escenarios espec铆ficos en los que se romp铆a la encapsulaci贸n de los componentes base requer铆an que cre谩ramos un nuevo elemento contenedor dentro del l铆mite de la sombra. Para ayudar a ilustrar esto, veamos un componente base de ejemplo llamado lightning-foo . Antes, el componente se ve铆a as铆:

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

Example base component

芦>

A partir de Summer '23, se ver谩 as铆:

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

Example base component

芦>

La mec谩nica interna de los componentes b谩sicos no se dise帽贸 para acceder directamente y tratarse como una API confiable para su uso. En cambio, nuestros componentes preempaquetados estaban destinados a usarse tal como son, utilizando las API p煤blicas oficiales que hemos compartido abiertamente. Sin embargo, sabemos que algunos clientes est谩n utilizando componentes internos de manera no documentada. Si est谩 accediendo a los elementos internos de un componente base con fines de personalizaci贸n y prueba, tenga en cuenta estos cambios.

驴C贸mo puede arreglar su c贸digo personalizado y sus pruebas?

Al probar manualmente sus aplicaciones, es posible que detecte un componente personalizado que funcionaba anteriormente y que no tiene el aspecto esperado. Debido a estos cambios, sus pruebas automatizadas de un extremo a otro tambi茅n pueden fallar. En ambos casos, puede significar que su c贸digo personalizado o c贸digo de prueba depende de las partes internas de un componente base que ha cambiado . Exploremos estos dos problemas con m谩s profundidad:

Un componente no se ve como se esperaba:

  • Problema: Intentar dise帽ar el elemento o las clases personalizadas dentro de un componente base puede generar resultados imprevistos.
  • Soluci贸n: El cambio de sombra sint茅tica a componentes totalmente encapsulados con DOM de sombra nativo puede cambiar su estrategia de CSS. Al migrar sus personalizaciones de estilo a la sombra nativa, siga estos pasos:
    • Consulte la disponibilidad de un gancho para peinar . Ofrecen un excelente m茅todo para adaptar un componente sin profundizar en las complejidades del CSS subyacente o el shadow DOM.
    • Aseg煤rese de que el valor que est谩 aplicando al gancho de estilo est茅 vinculado a su sistema de dise帽o en lugar de un valor fijo y predefinido. Evite usar un valor codificado.

Una prueba de extremo a extremo falla:

  • Problema: Cualquier implementaci贸n que use combinadores CSS fallar谩. Por ejemplo, lightning-foo > p no coincidir谩 con nuestro marcado actualizado.
  • Soluci贸n: Los combinadores hacen que el CSS sea fr谩gil y deben evitarse a menos que se usen por una buena raz贸n. La mayor铆a de las veces, los combinadores se pueden eliminar sin ninguna regresi贸n. Si se desea un elemento espec铆fico, se pueden usar otros m茅todos de orientaci贸n que no se basen en el marcado que nunca cambia. Es decir, evite apuntar expl铆citamente a elementos HTML siempre que sea posible. Use otros selectores disponibles, como clases que permiten que su uso de CSS sea abstracto, modular y separado del elemento HTML. Si sus pruebas se basan en combinadores de CSS, le recomendamos que adopte el Modelo de automatizaci贸n de pruebas de interfaz de usuario (UTAM) para evitar cambios importantes en el futuro, ya que los objetos de la p谩gina se mantienen actualizados con todos los cambios de componentes.

Conclusi贸n

En resumen, estamos logrando avances significativos al preparar los componentes base de Lightning para adoptar Shadow DOM nativo, lo que garantizar谩 un mejor rendimiento y la alineaci贸n con los est谩ndares de los componentes web, adem谩s de mejorar la seguridad y la confiabilidad de los componentes. Al encapsular la estructura DOM interna, nos esforzamos por brindar una experiencia m谩s s贸lida y predecible tanto para los desarrolladores como para los usuarios.

Si bien estos cambios pueden presentar algunos desaf铆os iniciales, son pasos necesarios hacia un sistema m谩s estandarizado y preparado para el futuro. Seguimos comprometidos a informar y apoyar a los desarrolladores durante esta transici贸n.

En preparaci贸n para estos cambios, recomendamos adoptar ganchos de estilo y m茅todos de orientaci贸n como clases para garantizar que el uso de CSS siga siendo modular y adaptable. Adem谩s, recomendamos enf谩ticamente adoptar UTAM como su soluci贸n de prueba de extremo a extremo.

Est茅n atentos a m谩s actualizaciones y cambios a medida que Salesforce contin煤a optimizando y mejorando el marco de componentes Lightning. Al adoptar estas pr贸ximas mejoras, los desarrolladores pueden esperar una experiencia de desarrollo m谩s fluida y eficiente mientras crean aplicaciones poderosas en la Plataforma Salesforce.

M谩s recursos

Sobre los autores

Maeve Tuntivate es Gerente s茅nior en el equipo de Gesti贸n de productos en Salesforce.

Jesse Brack es ingeniero principal de UX en el equipo de ingenier铆a de sistemas de dise帽o de Salesforce.

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