Skip to content

Etiqueta: Oportunidad

Actualizaciones de integraci贸n de plataforma para desarrolladores | Aprende Moar Verano '23 鈽侊笍

Actualizaciones de integraci贸n de plataforma para desarrolladores | Aprende Moar Verano '23 鈽侊笍

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

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

Actualizaciones de integraci贸n de plataforma para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

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

Introducci贸n

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

Consultas SOQL anidadas en API

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

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

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

Credenciales con nombre en Connect API

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

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

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

Alternativamente, puede usar Apex con lo siguiente:

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

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

Consultas API de GraphQL con funciones agregadas

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

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

Se admiten las siguientes funciones agregadas:

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

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

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

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

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

Adaptador GraphQL de Salesforce Connect

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

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

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

Apex publica devoluciones de llamada en eventos de la plataforma

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

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

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

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

M茅tricas mejoradas para eventos de plataforma

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

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

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

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

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

Para obtener m谩s informaci贸n sobre esta funci贸n, consulte la documentaci贸n .

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

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

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

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

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

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

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

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

Aprende MOAR

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

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

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

Otras lecturas

Sobre el Autor

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

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Mu茅vete a 2GP Administrado con Migraciones de Paquetes 鈽侊笍

Mu茅vete a 2GP Administrado con Migraciones de Paquetes 鈽侊笍

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

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

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

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

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

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

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

Beneficios de usar 2GP para el desarrollo de paquetes

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

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

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

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

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

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

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

Introducci贸n a las migraciones de paquetes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Si lo instal贸 anteriormente, aseg煤rese de estar usando la 煤ltima versi贸n:

sf update

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

sf project generate --name <Your project name>

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

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

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

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

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

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

隆Felicitaciones, su paquete ahora est谩 convertido a 2GP! Si encontr贸 alg煤n problema en el camino, inf贸rmenos utilizando el formulario en el grupo Comunidad de socios .

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

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

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

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

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

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

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

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

Y consulte la secci贸n Paquetes instalados del men煤 Configuraci贸n.

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

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

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

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

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

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

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

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

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

Mientras tanto 鈥

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

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

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

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

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

Conclusi贸n

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

隆Estamos ansiosos por recibir sus comentarios!

M谩s recursos

Grupo de vista previa para desarrolladores en la comunidad de socios

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

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 鈽侊笍

Innovaciones de Tableau para desarrolladores | Aprende Moar Verano '23 鈽侊笍

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

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

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

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

Introducci贸n

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

Comience con el an谩lisis incorporado

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

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

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

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

Bienvenido al patio de recreo

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

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

El Embedding Playground tiene tres secciones principales:

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

Personaliza el c贸digo

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

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

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

 
 

芦>

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

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

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

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

Ven al Playground para enterarte de las novedades

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

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

Use el c贸digo de Playground para impulsar el desarrollo

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

驴Ya le铆ste lo suficiente? 隆Pruebe Tableau Embedding Playground ahora y permanezca atento a m谩s informaci贸n!

Colecci贸n Tableau Postman (API REST)

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

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

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

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

Funciones de atributo de usuario

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

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

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

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

Conclusi贸n

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

脷nase al programa para desarrolladores de Tableau

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

Aprende MOAR

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

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

M谩s recursos

Otras lecturas

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Escriba Apex simplificado y seguro con las actualizaciones de Spring '23 鈽侊笍

Escriba Apex simplificado y seguro con las actualizaciones de Spring '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.

Escriba Apex simplificado y seguro con las actualizaciones de Spring '23 | Blog de desarrolladores de Salesforce

La versi贸n Spring '23 de Salesforce Platform, disponible en general a partir del 13 de febrero, agreg贸 algunas actualizaciones fant谩sticas al lenguaje de Apex. Hemos implementado algunas de las actualizaciones de Spring '23 en la aplicaci贸n de ejemplo Apex-Recipes , lo que ha simplificado significativamente la base de c贸digo existente.

En esta publicaci贸n de blog, revisaremos las actualizaciones en Spring '23 para Apex con ejemplos de c贸digo. Estas actualizaciones ayudan a los desarrolladores a crear aplicaciones m谩s seguras para sus organizaciones.

1. Operaciones de base de datos en modo usuario

Apex, de forma predeterminada, se ejecuta en modo Sistema con permisos elevados, lo que significa que los desarrolladores pueden pasar por alto los controles de seguridad sin darse cuenta al escribir c贸digo.

Antes de continuar, revisemos r谩pidamente los controles de seguridad que los administradores de Salesforce pueden colocar para garantizar que los usuarios solo puedan acceder y manipular los datos para los que est谩n autorizados a ver o editar. Las vi帽etas a continuaci贸n resumen diferentes mecanismos para aplicar un modelo de seguridad detallado para sus datos de Salesforce.

  • CRUD significa "Crear, Leer, Actualizar y Eliminar", las cuatro operaciones b谩sicas que un usuario puede realizar en un registro en Salesforce
  • FLS significa "Seguridad de nivel de campo", que determina qu茅 campos dentro de un registro que un usuario puede ver o editar
  • El uso compartido de registros permite al administrador configurar reglas sobre qui茅n puede ver o editar un registro en funci贸n de varios criterios.

Con las operaciones de base de datos en modo usuario , los desarrolladores pueden optar por ejecutar Apex en el contexto del usuario, lo que garantiza que se apliquen las reglas CRUD/FLS y de uso compartido del usuario configuradas. Veamos esto en acci贸n con ejemplos de c贸digo detallados.

Aplicar CRUD/FLS y reglas de uso compartido para SOQL est谩tico

Puede indicar el modo de operaci贸n usando la palabra clave WITH USER_MODE para el modo de usuario y WITH SYSTEM_MODE para el modo de sistema en su consulta SOQL. Vea el ejemplo a continuaci贸n.

<dx-code-block title language code-block="List accounts = [SELECT Name, ShippingCity, ShippingStreet FROM Account WITH USER_MODE];禄>

En el ejemplo anterior, al usar la palabra clave WITH USER_MODE , la consulta respeta estas restricciones de seguridad:

  • Permisos de lectura en el objeto Cuenta (configurado para Perfil/Conjunto de permisos) para el usuario
  • Permisos de campo (FLS) para Nombre, Calle de env铆o y Ciudad de env铆o para el usuario
  • Configuraci贸n de nivel de registro (como valores predeterminados de toda la organizaci贸n y reglas de colaboraci贸n) para el objeto Cuenta para el usuario

El WITH USER_MODE la palabra clave tambi茅n es compatible con agregar SOQL para hacer cumplir CRUD/FLS y reglas de uso compartido de registros.

<dx-code-block title language code-block="List groupedResults = [SELECT SUM(AMOUNT) total FROM Opportunity WHERE AccountId = :accountId WITH USER_MODE];禄>

En el ejemplo anterior, al usar la palabra clave WITH USER_MODE , la consulta respeta estas restricciones de seguridad:

  • Permisos de lectura en el objeto Oportunidad para el usuario
  • Permisos de campo (FLS) para Amount y AccountId (s铆, incluso los campos utilizados en la cl谩usula SOQL WHERE se verifican para FLS) para el usuario
  • Acceso a nivel de registro (como valores predeterminados de toda la organizaci贸n y reglas de colaboraci贸n) en el objeto Oportunidad para el usuario

Para obtener m谩s ejemplos, consulte la clase SOQLRecipes de la aplicaci贸n apex-recipes.

Aplicar CRUD/FLS y reglas de uso compartido para SOQL din谩mico

Los nuevos m茅todos Database (ver documentos ) ahora admiten un par谩metro AccessLevel que le permite ejecutar operaciones de base de datos en modo de usuario en lugar de en el modo de sistema predeterminado. Veamos un c贸digo de ejemplo para ejecutar un SOQL din谩mico en el modo de usuario.

<dx-code-block title language code-block="String query = 'SELECT ID, Name FROM Account LIMIT 1';
List lstAccounts = Database.query(query, AccessLevel.USER_MODE);禄>

En el ejemplo anterior, el modo de usuario se aplicar谩 de manera similar al ejemplo de SOQL est谩tico que vimos en la secci贸n anterior.

Para obtener m谩s ejemplos, consulte la clase DynamicSOQLRecipes de apex-recipes. Hemos actualizado todos los m茅todos de la clase para usar el par谩metro AccessLevel .

Hacer cumplir CRUD/FLS y reglas de uso compartido para SOSL

WITH USER_MODE o WITH SYSTEM_MODE tambi茅n son compatibles con declaraciones SOSL (Lenguaje de b煤squeda de objetos de Salesforce).

Veamos un ejemplo de una instrucci贸n SOSL est谩tica.

<dx-code-block title language code-block="String keyword = 'Alaska';
List<List> searchResults = [ FIND :keyword IN Name FIELDS RETURNING Account(Name), Contact(LastName, Account.Name) WITH USER_MODE ];禄>

En el ejemplo anterior, al usar la palabra clave WITH USER_MODE , la consulta respeta estas restricciones de seguridad:

  • Permisos de lectura en los objetos Cuenta y Contacto para el usuario
  • Permisos de campo (FLS) para el campo Nombre en Cuenta y campo Apellido en Contacto para el usuario
  • Acceso a nivel de registro (como valores predeterminados de toda la organizaci贸n y reglas de colaboraci贸n) en los objetos Cuenta y Contacto para el usuario

Para Dynamic SOSL, los nuevos m茅todos Search (ver documentos ) tambi茅n admiten el par谩metro AccessLevel similar a los nuevos m茅todos Database . A continuaci贸n se muestra un ejemplo de c贸mo usar el par谩metro AccessLevel para ejecutar SOSL en el contexto de los usuarios.

<dx-code-block title language code-block="String query = 'FIND 'Edge*' IN ALL FIELDS RETURNING Account(ID,Name), Contact, Lead'; List<List> searchResults = Search.query(query, AccessLevel.USER_MODE);禄>

Hacer cumplir CRUD/FLS y reglas de uso compartido para DML

Las operaciones de la base de datos pueden especificar el modo de usuario o sistema utilizando las palabras clave as user o as system .

El siguiente es un c贸digo de ejemplo que ejecuta DML en el modo de usuario aplicando CRUD/FLS y reglas de uso compartido.

Para Dynamic DML, los desarrolladores pueden utilizar el par谩metro AccessLevel para ejecutar operaciones de base de datos en el modo de usuario o en el modo de sistema.

Echemos un vistazo a un ejemplo de la aplicaci贸n apex-recipes para ver c贸mo puede dise帽ar m茅todos para que sean gen茅ricos, de modo que el consumidor del m茅todo pueda decidir ejecutar el c贸digo en el modo de usuario o de sistema.

El fragmento de c贸digo siguiente muestra c贸mo invocar este m茅todo en el modo de usuario.

El siguiente fragmento de c贸digo muestra c贸mo invocar este m茅todo en el modo de sistema.

Para obtener m谩s ejemplos, consulte la clase DMLRecipes de la aplicaci贸n apex-recipes.

Consideraciones importantes

  1. Las operaciones de la base de datos en modo usuario generan excepciones de seguridad si se encuentra una infracci贸n CRUD/FLS. Si tiene un requisito para evitar excepciones y a煤n aplicar la seguridad, use el m茅todo Security.stripInaccessible() (consulte los documentos ). Consulte la clase StripInaccessibleRecipes (ver documentos ) de la aplicaci贸n apex-recipes para ver ejemplos de c贸digo.
  2. Si usa la palabra clave WITH SECURITY_ENFORCED en sus declaraciones SOQL para hacer cumplir CRUD/FLS, ahora le recomendamos que use la palabra clave WITH USER_MODE en su lugar debido a las siguientes razones:
    1. La consulta SOQL que usa la palabra clave WITH USER_MODE admite muchas innovaciones nuevas, como reglas de restricci贸n, reglas de alcance y cualquier otra operaci贸n de seguridad para el acceso a datos y CRUD/FLS, que la plataforma puede agregar en el futuro, por lo que es una especie de prueba del futuro
    2. La consulta SOQL que usa la palabra clave WITH USER_MODE maneja casos de uso de seguridad complejos mucho mejor. Por ejemplo, WITH USER_MODE es compatible con SOSL y consultas polim贸rficas .
    3. Las declaraciones SOQL que usan la palabra clave WITH USER_MODE manejan CRUD/FLS para los campos usados en la cl谩usula where y order by o campos usados en la consulta de relaci贸n o b煤squeda polim贸rfica
    4. Las consultas SOQL que utilizan la palabra clave WITH USER_MODE funcionan mucho mejor en comparaci贸n con el uso WITH SECURITY_ENFORCED
  3. El modo de usuario anula la configuraci贸n de nivel de clase para la consulta SOQL o DML escrita en modo de usuario. Exploremos esto con el siguiente c贸digo de ejemplo.

<dx-code-block title language code-block="public without sharing ExampleCls { public static List getAccount() { String query = ‘SELECT Id FROM Account Limit 1’; return Database.query(query, AccessLevel.USER_MODE); } }禄>

En el ejemplo anterior, aunque la clase Apex est谩 configurada para ejecutarse en el contexto del sistema (sin la palabra clave compartida), la consulta SOQL se ejecuta en el modo de usuario, lo que refuerza la seguridad. El modo de usuario para la operaci贸n (SOQL/SOSL o DML) anula el uso compartido a nivel de clase.

2. Pasar din谩micamente variables de vinculaci贸n a consultas SOQL

Spring '23 agreg贸 nuevos m茅todos como Database.queryWithBinds , Database.getQueryLocatorWithBinds y Database.countQueryWithBinds .

Estos m茅todos proporcionan los siguientes beneficios:

  • Anteriormente, si los desarrolladores usaban variables de vinculaci贸n en SOQL din谩mico (usando el m茅todo Database.query ) que est谩n fuera de contexto, la consulta no pod铆a resolver las variables. Con queryWithBinds , las variables de vinculaci贸n de la consulta se resuelven directamente desde un par谩metro Map con una clave en lugar de variables de c贸digo de Apex.
  • Con Database.queryWithBinds , los ataques de inyecci贸n SOQL se evitan autom谩ticamente.

Echemos un vistazo a un ejemplo de c贸digo para comprender el segundo punto con m谩s profundidad.

<dx-code-block title language code-block="public static List simpleBindingSoqlQuery(Map bindParams) { String query = ‘SELECT Id, Name ‘ + ‘FROM Account ‘ + ‘WHERE name = :name’; return Database.queryWithBinds( query, bindParams, AccessLevel.USER_MODE );
}禄>

El c贸digo anterior ejecuta un SOQL din谩mico en el modo de usuario. El m茅todo acepta un par谩metro Map y se puede llamar usando el c贸digo a continuaci贸n.

<dx-code-block title language code-block="String accountName = 'Codey And Co';
Map nameBind = new Map{‘name’ => accountName};
List accounts = simpleBindingSoqlQuery(nameBind);
System.debug(accounts);禄>

Tenga en cuenta que no es necesario que nos aseguremos de que el nombre de la variable est茅 en el mismo 谩mbito de m茅todo que la consulta din谩mica. Adem谩s, no es necesario usar el m茅todo String.escapeSingleQuotes para el valor en la variable name cuando se usa queryWithBinds .

Para obtener m谩s ejemplos de c贸digo, consulte esta solicitud de incorporaci贸n de cambios en nuestro repositorio de GitHub apex-recipes.

3. Especifique un retraso en la programaci贸n de trabajos en cola

Otra caracter铆stica importante que lanzamos en Spring '23 es la capacidad de especificar demoras para trabajos programados que se pueden poner en cola.

Puede ser beneficioso ajustar el tiempo antes de que se ejecute el trabajo en cola en los siguientes casos de uso:

  • Si el sistema externo tiene una velocidad limitada y puede sobrecargarse con trabajos en cola encadenados que realizan llamadas r谩pidas
  • Al sondear los resultados, y ejecutar demasiado r谩pido puede provocar el uso desperdiciado de los l铆mites diarios de Apex as铆ncrono

Usa el m茅todo System.enqueue(queueable, delay) (ver docs ) para especificar retrasos. Los retrasos pueden variar de cero a 10 minutos. Veamos un ejemplo para comprender mejor esta funci贸n.

El ejemplo anterior agrega un trabajo para la ejecuci贸n asincr贸nica retrasada al pasar una instancia de la implementaci贸n de su clase de la interfaz Queueable para la ejecuci贸n. Hay un retraso m铆nimo de cinco minutos antes de que se ejecute el trabajo.

Especificar un retraso predeterminado en toda la organizaci贸n en la programaci贸n de trabajos en cola

Actualmente, si tiene un trabajo en cola de Apex, utiliza el tiempo est谩ndar en cola sin demoras adicionales. Los administradores pueden definir un retraso predeterminado en toda la organizaci贸n para todos los trabajos en cola que no especifican retraso usando
System.enqueue(queueable, delay) . Este es principalmente un mecanismo para manejar trabajos fuera de control que podr铆an estar ejecut谩ndose demasiado r谩pido.

Importante consideraci贸n

Cuando establece el retraso en 0 (cero), el trabajo en cola se ejecuta lo m谩s r谩pido posible. Con trabajos en cola encadenados, implemente un mecanismo para ralentizar o detener el trabajo si es necesario. Sin un mecanismo a prueba de fallas de este tipo, puede alcanzar r谩pidamente el l铆mite de Apex as铆ncrono diario.

Tambi茅n hay una pr贸xima funci贸n Beta en la versi贸n Summer '23 (planificada para estar disponible el 10 de junio de 2023 en todas las organizaciones) que permite a los desarrolladores controlar la profundidad de los trabajos en cola encadenados.

4. Obtenga el SObject de origen de una instancia DescribeFieldResult usando el nuevo m茅todo getSObjectType

El m茅todo getSObjectType (ver documentos ) en el objeto DescribeFieldResult (ver documentos ) es un m茅todo de mejora de la calidad de vida del desarrollador que se implement贸 en Spring '23.

Anteriormente, los desarrolladores ten铆an que hackear y escribir c贸digo adicional para obtener el objeto de origen de la informaci贸n del esquema de campos obtenida a trav茅s de la descripci贸n del campo. Puede consultar las soluciones anteriores a trav茅s de esta publicaci贸n de stackexchange .

A continuaci贸n se muestra un ejemplo de c贸digo de c贸mo usar el nuevo m茅todo getSObjectType .

Con el m茅todo getSObjectType , los desarrolladores ya no tienen que pasar el nombre del objeto como una cadena. Consulte un ejemplo m谩s completo en las notas de la versi贸n de Spring '23.

Actualizaciones de herramientas

Hemos actualizado el servidor de idioma de Apex para admitir las 煤ltimas adiciones de sintaxis, como insert as user, insert as system y mucho m谩s. Y ahora admitimos las 煤ltimas adiciones de sintaxis en el lanzamiento reciente de las Extensiones de Salesforce para VSCode .

Tambi茅n quiero agradecer a Dang Mai por actualizar el complemento m谩s bonito para Apex (usado para formatear el c贸digo Apex autom谩ticamente) para admitir todas las palabras clave introducidas para las operaciones de la base de datos en modo usuario.

Conclusi贸n

En conclusi贸n, la versi贸n Spring '23 de Salesforce incluye varias actualizaciones. Mediante el uso de estas nuevas funciones, los desarrolladores pueden crear aplicaciones m谩s eficaces y seguras para sus organizaciones.

Los equipos de productos de Apex no se detienen ah铆 y hay m谩s innovaciones en la hoja de ruta. Puede obtener una vista previa de lo que viene para Apex en Summer '23 (nuestro pr贸ximo lanzamiento) en la vista previa de las notas de la versi贸n . Tambi茅n recomiendo ver la grabaci贸n de la sesi贸n TrailblazerDX '23, Apex: What's New and What's Coming , para aprender m谩s sobre lo que se est谩 cocinando.

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

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

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

脷ltima actualizaci贸n el 12 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • 驴C贸mo generar c贸digo de barras y c贸digo QR en Salesforce?

Objetivos:

Despu茅s de leer este blog, podr谩:

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

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

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

驴Qu茅 son el c贸digo de barras y el c贸digo QR?

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

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

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

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

驴Beneficios de usar c贸digo de barras y c贸digo QR?

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

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

驴C贸mo generar c贸digo de barras y c贸digo QR?

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

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

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

Pr谩ctica guiada (nosotros hacemos):

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

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

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

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

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

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

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

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

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

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

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

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

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

Tabla de contenido

Una vez que haya decidido automatizar la gesti贸n de proyectos en Salesforce, la pregunta es 驴Qu茅 automatizamos ?

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

Lanzar proyectos autom谩ticamente con un flujo de Salesforce

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Costura de plantilla

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

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

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

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

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

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

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

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

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

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

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

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

Automatizaci贸n de Notificaciones

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

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

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

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

Automatizaci贸n de KPIs y Reportes

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

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

KPI en Inspire PlannerKPI en Inspire Planner

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

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

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

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

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

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

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

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

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

Automatizar carteras de proyectos

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

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

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

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

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

Calcule los niveles de prioridad de riesgos y problemas

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

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

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

Registro de riesgos del proyecto en Inspire Planner

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

Cu谩ndo y por qu茅 deber铆a automatizar la gesti贸n de proyectos en Salesforce

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

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

Ahorre tiempo en tareas repetitivas

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

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

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

Reducir el error humano

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

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

Administre autom谩ticamente varias plantillas/escenarios

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

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

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

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

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

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

Seguir leyendo

Buscar el siguiente d铆a h谩bil a partir de una fecha espec铆fica

Buscar el siguiente d铆a h谩bil a partir de una fecha espec铆fica

脷ltima actualizaci贸n el 7 de abril de 2023 por Rakesh Gupta Gran idea o pregunta duradera: no queremos trabajar los fines de semana o d铆as festivos, 隆todos lo entendemos! Si es as铆, 驴cree que nuestros clientes o prospectos lo hacen? Si tiene dudas, intente enviar un correo electr贸nico a

La publicaci贸n Buscar el siguiente d铆a h谩bil a partir de una fecha espec铆fica apareci贸 por primera vez en Automation Champion .

Seguir leyendo

隆M煤ltiples acciones programadas dentro de un solo flujo!

隆M煤ltiples acciones programadas dentro de un solo flujo!

脷ltima actualizaci贸n el 2 de abril de 2023 por Rakesh Gupta Gran idea o pregunta duradera: 驴C贸mo se programan varios correos electr贸nicos con Salesforce Flow? Objetivos: En este art铆culo, el lector aprender谩 lo siguiente: C贸mo usar Salesforce Flow para enviar m煤ltiples alertas por correo electr贸nico usando rutas programadas y mucho m谩s Negocios

La publicaci贸n 隆M煤ltiples acciones programadas dentro de un solo flujo! apareci贸 por primera vez en Automation Champion .

Seguir leyendo

C贸mo conectar Salesforce con Google Analytics y Google Ads

C贸mo conectar Salesforce con Google Analytics y Google Ads

脷ltima actualizaci贸n el 27 de marzo de 2023 por Rakesh Gupta Google Analytics y Google Ads son dos soluciones ampliamente utilizadas por el equipo de marketing para atraer clientes potenciales a su sitio web y analizar el comportamiento y la conversi贸n en l铆nea de los clientes potenciales. Si bien es muy f谩cil analizar c贸mo se convierte cada inversi贸n al vender productos en l铆nea,

La publicaci贸n C贸mo conectar Salesforce con Google Analytics y Google Ads apareci贸 primero en Automation Champion .

Seguir leyendo

Lightning Experience con Lightning Speed (驴Ya llegamos?) 鈽侊笍

Obtenga una mirada m谩s detallada al rendimiento de Lightning Experience, conozca las 谩reas de mejora y los pr贸ximos pasos planificados en los pr贸ximos lanzamientos.

La publicaci贸n Lightning Experience with Lightning Speed (驴Ya llegamos?) apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Los mejores eventos de Salesforce para asistir en 2023

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

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

Seguir leyendo

驴Qui茅n tiene el control del presupuesto de tecnolog铆a? No es el CIO, y est谩 bien

Los l铆deres empresariales que no son de TI tienen una mayor influencia sobre la tecnolog铆a utilizada para mejorar la experiencia del cliente.

Seguir leyendo

Lograr una CLI de Salesforce de c贸digo abierto 鈽侊笍

Consulte la tercera y 煤ltima publicaci贸n de blog de nuestra serie que relata el viaje de la CLI de sfdx hacia el c贸digo abierto, ahora con confiabilidad mejorada.

La publicaci贸n Lograr una CLI de Salesforce de c贸digo abierto apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Mejore el rendimiento del c贸digo con el analizador de c贸digo de Salesforce 鈽侊笍

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

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

Seguir leyendo

3 formas en que la IA generativa remodelar谩 el servicio al cliente

驴Qu茅 significar谩 esta tecnolog铆a emergente para los equipos de servicio? Aqu铆 est谩n los primeros pensamientos.

Seguir leyendo

Exploraci贸n de un marco de Apex as铆ncrono combinado 鈽侊笍

驴Qu茅 marco de Apex as铆ncrono deber铆a usar? Este blog muestra una soluci贸n que elige autom谩ticamente Apex por lotes o en cola por usted.

La publicaci贸n Explorando un marco Apex as铆ncrono combinado apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Las 8 m茅tricas que importan en el servicio de campo: c贸mo puede mejorarlas

Si no ve el tipo de rendimiento que desea, o si busca mejorar la eficiencia, vigile estas m茅tricas importantes.

Seguir leyendo

Desmitificando Net Zero Cloud

A menudo veo confusi贸n en torno a esta nube, y con el cambio de nombre y las muchas mejoras que ha tenido con respecto a los lanzamientos, pens茅, 驴por qu茅 no tratar de arrojar algo de luz? 驴Por qu茅 yo? Para los que no lo sepan, adem谩s de todo lo relacionado con Salesforce y Agile, mi enfoque es ayudar a las organizaciones a reducir el desperdicio. Residuos Lea m谩s acerca de Desmitificar Net Zero Cloud[鈥

Seguir leyendo

D茅 forma al futuro de la construcci贸n y el desarrollo en Salesforce 鈽侊笍

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

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

Seguir leyendo

La gu铆a para desarrolladores de TrailblazerDX '23 鈽侊笍

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

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

Seguir leyendo

Cuando una carrera completa el c铆rculo…

Cuando una carrera en Salesforce cierra el c铆rculo…

Seguir leyendo

脷nase al ecosistema en crecimiento con la trayectoria profesional de desarrollador de Salesforce 鈽侊笍

Developer Career Path prepara a cualquiera para ser un desarrollador con las herramientas y los recursos que necesitan para tener 茅xito en el ecosistema de Salesforce.

La publicaci贸n 脷nase al ecosistema en crecimiento con la trayectoria profesional de desarrollador de Salesforce apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

隆Lanzamiento Spring'23 de las diez gemas principales de Salesforce Lightning Experience!

脷ltima actualizaci贸n el 9 de enero de 2023 por Rakesh Gupta Con cada lanzamiento, Salesforce agrega muchas funcionalidades nuevas a Lightning Experience, lo que lo hace m谩s productivo y lo ayuda a brindar una mejor experiencia al cliente. Actualmente, el lanzamiento de Spring'23 se encuentra bajo el programa de prelanzamiento. Si no has le铆do el 570 completo

La publicaci贸n 隆Lanzamiento Spring'23 de las diez mejores gemas de Salesforce Lightning Experience! apareci贸 primero en Automation Champion .

Seguir leyendo