Skip to content

Etiqueta: API REST

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

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

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

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

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

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

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

隆Es f谩cil empezar!

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

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

Introducci贸n

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

Componentes web Lightning

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

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

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

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

M贸vil sin conexi贸n

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

Integraci贸n de plataforma

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

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

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

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

Innovaciones entre nubes

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

Mula Suave

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

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

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

Cuadro

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

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

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

Flojo

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

Aprende MOAR

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

Sobre el Autor

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Actualmente se enfoca en el desarrollo de Lightning Web Components y Slack. Puedes seguirla en Twitter o Linkedin .

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Sube de nivel tus habilidades Apex 鈽侊笍

Sube de nivel tus habilidades Apex 鈽侊笍

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

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

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

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

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

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

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

Introduzca Apex invocable.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tome este ejemplo de consulta muy b谩sico:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

= 200 && response.getStatusCode()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Aplicaci贸n de muestra Apex Recipes en Github

Gu铆a para desarrolladores de Apex

Gu铆a de referencia de idiomas de Apex

Centro de desarrolladores de Apex

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Eliminaci贸n definitiva de registros con Salesforce Flow

Eliminaci贸n definitiva de registros con Salesforce Flow

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

Gran idea o pregunta duradera:

  • 驴C贸mo eliminar registros de Salesforce utilizando Flow?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Comprender la anotaci贸n @InvocableMethod
  • M谩s informaci贸n sobre el m茅todo database.emptyRecycleBin
  • Configurar la acci贸n de Apex para eliminar registros de forma permanente de Flow
  • Configurar el flujo de pantalla con el elemento Eliminar registro
  • Y mucho m谩s

驴Qu茅 es la eliminaci贸n completa?

La eliminaci贸n definitiva es la eliminaci贸n permanente de los registros especificados de la Papelera de reciclaje. Cuando los datos se eliminan de forma permanente, es casi imposible recuperarlos. Esto generalmente se logra a trav茅s de los m茅todos Database.EmptyRecycleBin .

Al vaciar los contenedores de reciclaje, tenga en cuenta las siguientes reglas y pautas:

  • Una vez que los registros se eliminan de la Papelera de reciclaje mediante esta llamada, se pueden consultar mediante queryAll() durante alg煤n tiempo. Por lo general, este tiempo es de 24 horas, pero puede ser m谩s corto o m谩s largo.
  • Una vez que los registros se eliminan mediante la llamada Database.EmptyRecycleBin , no se pueden recuperar.

Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). En GoC est谩n utilizando Salesforce Flow para optimizar los procesos de ventas. Warren tiene un requisito para eliminar clientes potenciales sin correo electr贸nico. Est谩 construyendo un flujo de pantalla:

  1. Descubra todos los clientes potenciales sin correo electr贸nico
  2. Eliminar definitivamente tales clientes potenciales

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

Si bien esto se puede resolver con varias herramientas de automatizaci贸n como Apex Trigger y otras, usaremos Salesforce Flow y llamaremos a un m茅todo de Apex . Para llamar a un m茅todo de Apex , agregue el elemento Acci贸n a su Flujo de Salesforce y seleccione una clase de Apex con una anotaci贸n @InvocableMethod .

En este art铆culo, usaremos la llamada clase de base de datos EmptyRecycleBin . Con Database.EmptyRecycleBin es posible borrar los registros de Salesforce. El m茅todo EmptyRecycleBin() elimina los registros de la papelera de reciclaje inmediatamente. A partir del lanzamiento de Summer'23 , no es posible acceder directamente al m茅todo EmptyRecycleBin desde Flow, por eso estamos usando la clase Apex Invocable.

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

Comencemos a construir este proceso de automatizaci贸n.

Pr谩ctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito comercial de Warren usando Screen Flow . Debemos:

  1. Cree una clase de Apex y una clase de prueba para eliminar registros de forma permanente de la Papelera de reciclaje.
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue un elemento Obtener registros para encontrar todos los clientes potenciales sin direcci贸n de correo electr贸nico
    3. Agregue un elemento de decisi贸n para verificar los clientes potenciales encontrados o no (del paso 2)
    4. Agregue el elemento Eliminar registros para eliminar clientes potenciales
    5. Agregar acci贸n: llame a Empty RecycleBin Invocable Apex Class

Paso 1: Cree una clase de Apex y una clase de prueba

Ahora, tenemos que comprender una nueva anotaci贸n de Apex, es decir, @InvocableMethod . Esta anotaci贸n nos permite usar un m茅todo de Apex como algo que se puede llamar desde Flow y Apex. Los m茅todos invocables se llaman con la API REST y se usan para invocar un solo m茅todo de Apex. Los m茅todos invocables tienen valores de entrada y salida din谩micos y admiten llamadas de descripci贸n.

La anotaci贸n InvocableVariable identifica una variable de clase utilizada como par谩metro de entrada o salida para la acci贸n invocable de un m茅todo InvocableMethod. Si crea su propia clase personalizada para usarla como entrada o salida de un m茅todo invocable, puede anotar variables de miembros de clase individuales para que est茅n disponibles para el m茅todo.

La anotaci贸n de variable invocable admite los modificadores que se muestran en este ejemplo.


@InvocableVariable(label='variableLabel' description='variableDescription' requerido=(verdadero | falso))

La clase EmptyRecycleBin contiene dos variables, una para eliminar un solo registro y otra para manejar la eliminaci贸n de varios registros. Si茅ntase libre de pasar el valor a una o ambas variables seg煤n sea necesario. Cree la siguiente clase en su organizaci贸n.


clase p煤blica EmptyRecycleBin { @InvocableMethod(label='Papelera de reciclaje vac铆a' description='Eliminar permanentemente los registros de la Papelera de reciclaje.' iconName='slds:est谩ndar:record_delete' categor铆a = 'Acciones de Apex personalizadas') ejecuci贸n de vac铆o est谩tico p煤blico (Lista <Solicitudes> lista de solicitudes) { List<SObject> recordstoDelete = New List<SObject>(); para (Solicitudes req: lista de solicitudes) { if(req.obj != null){ recordstoDelete.add(req.obj); } if(req.listofSObjects != null){ recordstoDelete.addAll(req.listofSObjects); } } if(registrosparaEliminar.tama帽o()>0){ Database.emptyRecycleBin(registrosparaEliminar); } } Solicitudes de clases p煤blicas{ @InvocableVariable (descripci贸n ='Aceptar un registro de tipo SObject.' requerido=falso) objeto p煤blico SObject; @InvocableVariable (descripci贸n ='Aceptar m煤ltiples registros de un tipo SObject.' requerido=falso) public List<SObject> listofSObjects; }
}

Copie el c贸digo de GitHub o inst谩lelo usando esta URL .

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuraci贸n .
  2. En el cuadro B煤squeda r谩pida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   opci贸n y haga clic en Crear y configurar el flujo.
  5. Se abrir谩 el dise帽ador de flujo para usted.

Paso 2.2: Adici贸n de elementos Obtener registros para encontrar clientes potenciales sin correo electr贸nico

El siguiente paso es usar el objeto Prospecto para encontrar los prospectos sin direcci贸n de correo electr贸nico.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completar谩 autom谩ticamente.
  3. Seleccione el objeto Prospecto de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Correo electr贸nico
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.EmptyString}
  6. Cu谩ntos registros almacenar:
    1. Seleccionar todos los registros
  7. C贸mo almacenar datos de registro:
    1. Elija la opci贸n para Almacenar autom谩ticamente todos los campos .

Paso 2.3: uso del elemento de decisi贸n para verificar la variable de recopilaci贸n de registros (del paso 2)

Ahora usaremos el elemento Decisi贸n para comprobar la Variable de recopilaci贸n de registros del paso 2 para saber si devuelve el cliente potencial o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisi贸n .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completar谩 autom谩ticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completar谩 autom谩ticamente.
  4. Requisitos de condici贸n para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Leads}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    2. Haga clic en Listo .

Paso 2.4: Agregar acci贸n: eliminar registros para eliminar clientes potenciales

El siguiente paso es eliminar los clientes potenciales que encontramos en el Paso 2.2 . Para ello utilizaremos el elemento Eliminar Registros .

  1. En Flow Designer, debajo del nodo S铆 , haga clic en el icono + y seleccione el elemento Eliminar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completar谩 autom谩ticamente.
  3. Para C贸mo encontrar registros para eliminar, seleccione Usar los ID almacenados en una variable de registro o una variable de colecci贸n de registros .
  4. Selecciona el   {!Get_Leads} de la lista desplegable.
  5. Haga clic en Listo.

Paso 2.5: Adici贸n de una acci贸n para llamar a una clase de Apex invocable

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acci贸n .
  2. Seleccione la clase de Apex invocable EmptyRecycleBin .
  3. Ingrese un nombre en el campo Etiqueta : el nombre de la API se completar谩 autom谩ticamente.
  4. Establecer valores de entrada:
    1. Objeto para 鈥渓istofSObjects鈥 (Entrada) : Lead
    2. Objeto para "obj" (Entrada) : Plomo
  5. Almacenar valores de entrada
    1. listofSObjects : {!Get_Leads}
  6. Haga clic en Listo .

Al final, Warren's Flow se ver谩 como la siguiente captura de pantalla:

Una vez que todo se vea bien, guarde el flujo.

Prueba de concepto

  1. Cre茅 201 clientes potenciales sin una direcci贸n de correo electr贸nico para probar el flujo anterior.
  2. Ahora ejecute el flujo de pantalla y espere a que se complete el flujo.
  3. Vuelva a la Papelera de reciclaje para asegurarse de que los clientes potenciales se hayan eliminado definitivamente.

Evaluaci贸n formativa:

隆Quiero saber de ti!

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

Seguir leyendo

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

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

Una actualizaci贸n importante de nuestro plan de jubilaci贸n Legacy API 鈽侊笍

Una actualizaci贸n importante de nuestro plan de jubilaci贸n Legacy API 鈽侊笍

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.

Una actualizaci贸n importante de nuestro plan de jubilaci贸n Legacy API | Blog de desarrolladores de Salesforce

En 2021, anunciamos unplan para retirar las versiones heredadas de la API de la plataforma anualmente, de modo que nuestros equipos de ingenier铆a pudieran centrar sus esfuerzos de desarrollo en mejorar las 煤ltimas versiones de la API para mejorar la experiencia general de Salesforce al crear funciones personalizadas a trav茅s de aplicaciones. En esta publicaci贸n, compartiremos una actualizaci贸n importante del plan de retiro de la API heredada, algunos consejos sobre c贸mo identificar el uso de la API heredada y c贸mo actualizar esas solicitudes de API.

Actualizaci贸n importante del plan de jubilaci贸n de la API heredada

La 煤ltima fase del plan de retiro de la API heredada se anunci贸 a principios de 2022 y entr贸 en vigencia durante el lanzamiento de Summer '22. Con esta versi贸n, dejamos de usar las versiones SOAP, REST y Bulk API que van de la 21.0 a la 30.0. Como parte de nuestro plan original, estas versiones de API ya no ser铆an compatibles, pero permanecer铆an disponibles hasta que las retiremos en la versi贸n Summer '23.

Luego de consultar con la comunidad y nuestros socios, decidimos retrasar el pr贸ximo retiro de la API al lanzamiento de Summer '25 para garantizar una transici贸n sin problemas (consulte el art铆culo de conocimientos ). Debido a esta extensi贸n, las versiones de API 21.0 a 30.0 a煤n no son compatibles, pero seguir谩n estando disponibles hasta el lanzamiento de Summer '25.

Desde Summer '21 , cada vez que realiza una llamada a una API heredada con REST o Bulk API, ver谩 un encabezado Warning en la respuesta con un mensaje que describe el problema como este:

Una vez que las versiones heredadas de la API se retiren en Summer '25, las solicitudes a esas versiones fallar谩n con los siguientes errores:

  • La API REST devolver谩 el estado HTTP 410: GONE
  • La API SOAP devolver谩 el estado HTTP 500: UNSUPPORTED_API_VERSION
  • La API masiva devolver谩 el estado HTTP 400: InvalidVersion

Ahora que conoce el 煤ltimo plan, veamos c贸mo puede identificar si se ve afectado y c贸mo.

Identificar el uso de la API heredada

Puede verificar las llamadas API heredadas usted mismo en cualquier momento, y hay varias formas de hacerlo.

Todas las transacciones de la API de Salesforce se registran en los registros de Monitoreo de eventos. El monitoreo de eventos normalmente requiere una licencia espec铆fica, pero hemos expuesto el evento Uso total de la API ( ApiTotalUsage ) a todos los clientes de forma gratuita, para que pueda monitorear el consumo de la API heredada e identificar los clientes y las integraciones que deben actualizarse. Las organizaciones habilitadas para API tienen acceso gratuito a los archivos de registro de eventos de uso total de API con retenci贸n de datos de 1 d铆a. Con el Monitoreo de eventos habilitado, puede acceder a este y a todos los dem谩s tipos de archivos de registro de eventos con una retenci贸n de datos de 30 d铆as.

Los registros contienen campos clave que gu铆an sus investigaciones:

  • Los clientes proporcionan CLIENT_NAME opcionalmente, pero es especialmente 煤til para identificar aplicaciones e integraciones que realizan llamadas API que requieren investigaci贸n y ajustes. Compartiremos m谩s sobre este campo en la 煤ltima secci贸n de esta publicaci贸n.
  • CONNECTED_APP_ID le dice qu茅 aplicaci贸n conectada est谩 en el origen de las llamadas a la API.
  • USER_ID y CLIENT_IP son 煤tiles para identificar el origen de las llamadas API heredadas, pero existe la posibilidad de que estos valores se compartan entre varias aplicaciones en caso de que se realice una cuenta t茅cnica de usuario/sistema (ID de usuario compartido) o llamadas desde una ubicaci贸n de oficina f铆sica ( direcci贸n IP compartida). Compartiremos c贸mo usar la nueva licencia de usuario de integraci贸n para abordar los problemas de usuarios compartidos en la 煤ltima secci贸n de esta publicaci贸n.
  • Los campos API_FAMILY , API_VERSION , API_RESOURCE , URI y HTTP_METHOD le brindan pistas valiosas sobre el tipo de operaciones que realizan los clientes API.

Compartimos varias herramientas para acceder a los registros en nuestra publicaci贸n anterior , y tambi茅n puede usar herramientas de terceros para automatizar esta tarea. Compartiremos una opci贸n adicional que puede ser relevante para los usuarios preocupados por ejecutar c贸digo de terceros con acceso API a su organizaci贸n.

Uso de Postman para identificar el uso de la API heredada

Puede utilizar la colecci贸n Postman de las API de la plataforma de Salesforce para inspeccionar sus registros de Salesforce con estos pasos:

  • Configure la colecci贸n Postman y autent铆quese en su organizaci贸n .
  • Enumere los archivos de registro que rastrean el acceso a la API:
    1. Seleccione REST > Solicitud de consulta .
    2. Reemplace el valor del par谩metro de consulta q con la siguiente consulta SOQL: SELECT LogFile, EventType, CreatedDate FROM EventLogFile WHERE EventType IN ('API', 'RestApi', 'BulkApi', 'ApiTotalUsage')
    3. Haz clic en Enviar.
    4. Recupere los ID del archivo de registro de la respuesta.

  • Para cada archivo de registro devuelto en el paso anterior, recupere y escanee el contenido del registro:
    1. Seleccione REST > Registros > Obtener solicitud de archivo de registro de eventos .
    2. Establezca el ID del archivo de registro en el valor de la variable de ruta id .
    3. Haz clic en Enviar.
    4. Lea el contenido del archivo de registro en la respuesta. Puede moverse a la pesta帽a Respuesta sin procesar y guardarla como un archivo CSV o usar la pesta帽a Visualizar para obtener una vista previa del contenido directamente en Postman.
    5. Mire la columna URI o API_VERSION y verifique las versiones de API heredadas (versiones 30.0 y anteriores).

Despu茅s de identificar que est谩 llamando a versiones de API heredadas, el siguiente paso es actualizar estas dependencias a versiones de API heredadas.

Actualizar dependencias a versiones de API heredadas

El procedimiento de actualizaci贸n depende del tipo de API que est茅 utilizando, pero aqu铆 hay una breve descripci贸n general de lo que se requiere:

  • Para llamadas API basadas en SOAP, genere un nuevo WSDL e incorp贸relo a la integraci贸n afectada
  • Para puntos finales REST, actualice el n煤mero de versi贸n en el URI a la versi贸n principal actual
  • Aunque puede actualizar de manera similar los URI para puntos finales /async en el caso de Bulk API, la forma m谩s gratificante de actualizar las llamadas heredadas es adoptar Bulk API 2.0 y disfrutar del flujo de trabajo m谩s simple y los l铆mites mejorados.

Tenga en cuenta que las aplicaciones (p. ej., el cargador de datos) y los paquetes tambi茅n pueden estar realizando llamadas API heredadas debido a bibliotecas obsoletas (conectores de servicios web, kit de herramientas AJAX, interfaz COM SForceOfficeToolkit o kit de herramientas Force.com para PHP, solo por nombrar algunos) . Aseg煤rate de actualizarlos tambi茅n.

Y recuerda: no importa el cambio, aseg煤rate de realizar pruebas de regresi贸n para asegurarte de que todo funciona como se esperaba.

Prepar谩ndonos para el futuro

Ya sea que se haya visto afectado por el plan de jubilaci贸n heredado o no, debe planificar el futuro retiro de la versi贸n API. Le dejaremos algunas pr谩cticas recomendadas para el gobierno de API.

Aproveche las licencias de usuario de la integraci贸n de Salesforce

En Spring '23, presentamos un nuevo tipo de licencia dedicado a las integraciones: la licencia de usuario de Integraci贸n de Salesforce . Esta nueva licencia se basa en el principio de acceso con privilegios m铆nimos y le permite crear usuarios solo de API para integraciones de sistema a sistema con derechos de acceso espec铆ficos. La principal ventaja de este nuevo tipo de licencia es la seguridad, pero tambi茅n permite un mejor seguimiento de las acciones de integraci贸n, ya que podr谩 asignar distintos usuarios solo de API a la integraci贸n y relacionar las llamadas de API de integraci贸n con ID de usuario espec铆ficas en sus registros.

Se incluyen cinco licencias de usuario de Integraci贸n de Salesforce en cada organizaci贸n Enterprise, Unlimited y Performance Edition. Tambi茅n puede comunicarse con su ejecutivo de cuenta si necesita m谩s.

Especifique un nombre de cliente al crear integraciones de API REST

Al crear nuevas integraciones con la API REST, aseg煤rese de especificar un nombre de cliente utilizando el encabezado de solicitud Sforce-Call-Options de la siguiente manera:

Sforce-Call-Options: client=myClientName

El nombre del cliente que especifique en el encabezado estar谩 visible en los registros en el campo CLIENT_NAME . Esto le ayuda a depurar y auditar las llamadas a la API de integraci贸n.

palabras de cierre

Esperamos que este retraso adicional en nuestro plan de retiro de API heredado permita una transici贸n sin problemas, y lo alentamos a que comience hoy, independientemente de la nueva fecha l铆mite. Migrar a versiones de API m谩s nuevas siempre es una apuesta segura para obtener acceso a nuevas capacidades y mejorar el rendimiento y la seguridad.

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Configurar el tama帽o de lote para el activador de eventos de plataforma

Configurar el tama帽o de lote para el activador de eventos de plataforma

脷ltima actualizaci贸n el 30 de abril de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • 驴C贸mo configurar el usuario y el tama帽o del lote para Platform Event Trigger?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Comprender el tama帽o del lote para el activador de eventos de la plataforma
  • Anular el usuario de ejecuci贸n predeterminado para el desencadenador de eventos de la plataforma
  • Cree PlatformEventSubscriberConfig a trav茅s de la API REST
  • y mucho m谩s

Jestilla Zetkin trabaja como arquitecta de Salesforce en Gurukul On Cloud (GoC) . Recientemente, enfrent贸 desaf铆os mientras trabajaba con eventos de plataforma, principalmente l铆mites de gobernadores. Quiere aprender a configurar el tama帽o del lote para el activador de eventos de la plataforma. En este ejercicio, configuraremos el tama帽o del lote para lo siguiente:

  1. Activador de v茅rtice
    1. LeadGenerationEventTrigger en Lead_Generation__e
    2. Tama帽o del lote: 50
    3. Usuario ejecutor: Usuario de integraci贸n

驴Qu茅 es Plataforma de Eventos?

Las arquitecturas basadas en eventos se han vuelto muy populares en los 煤ltimos a帽os, y por una buena raz贸n. Se basa en el patr贸n de fuego y olvido . Activar un evento y dejar que cada sistema maneje la l贸gica empresarial le permite mantener los sistemas no relacionados desacoplados y puede ayudar a simplificar la arquitectura.

Los eventos de la plataforma le permiten entregar notificaciones de eventos seguras, escalables y personalizables dentro de Salesforce o desde fuentes externas. Las aplicaciones pueden publicar y suscribirse a eventos de plataforma en la plataforma de Salesforce mediante Apex, Flow o en un sistema externo mediante CometD. Si desea obtener m谩s informaci贸n sobre el evento de plataforma, consulte el m贸dulo de Trailhead .

驴Cu谩l es el tama帽o de lote predeterminado para el desencadenador de eventos de plataforma?

De forma predeterminada, el disparador de eventos de la plataforma se ejecuta como el usuario del sistema de procesos automatizados con un tama帽o de lote de 2000 mensajes de eventos. A veces es necesario cambiar el usuario y el tama帽o del lote para eludir los l铆mites del gobernador u otros desaf铆os.

Salesforce le permite anular el usuario de ejecuci贸n predeterminado y el tama帽o de lote de un desencadenador de Apex de evento de plataforma con PlatformEventSubscriberConfig en la API de herramientas o la API de metadatos para configurar el desencadenador.

Puede especificar cualquier usuario activo en la organizaci贸n de Salesforce. El activador se ejecuta en un contexto de sistema con privilegios para acceder a todos los registros independientemente de los permisos de nivel de campo y de objeto del usuario. Puede especificar un tama帽o de lote personalizado de 1 a 2000. El tama帽o del lote es el n煤mero m谩ximo de mensajes de eventos que se pueden enviar a un disparador en una ejecuci贸n.

Comprender el objeto PlatformEventSubscriberConfig

Hagamos una pausa aqu铆, familiar铆cese con el objeto de la API de herramientas PlatformEventUsageMetric en Salesforce. Representa los ajustes de configuraci贸n para un disparador de Apex de evento de plataforma, incluido el tama帽o del lote y el usuario que ejecuta el disparador.

Nombre del campo
Detalles
Tama帽o del lote Un tama帽o de lote personalizado, de 1 a 2000, para el desencadenador Apex del evento de plataforma. El tama帽o del lote corresponde al n煤mero m谩ximo de mensajes de eventos que se pueden enviar a un disparador en una ejecuci贸n. El tama帽o de lote predeterminado es 2000 para activadores de eventos de plataforma.
Nombre del desarrollador El nombre exclusivo del objeto PlatformEventSubscriberConfig.
etiqueta maestra Etiqueta para PlatformEventSubscriberConfig. En la interfaz de usuario, este campo es Configuraci贸n de suscriptor de eventos de plataforma.
PlatformEventConsumerId El ID del desencadenador de Apex del evento de plataforma que se va a configurar.
ID de usuario El ID del usuario con el que se ejecuta el desencadenador de Apex del evento de plataforma. De forma predeterminada, el disparador de eventos de la plataforma se ejecuta como la entidad de proceso automatizado. Establecer el usuario que ejecuta a un usuario espec铆fico tiene estos beneficios:

  • Los registros se crean o modifican como este usuario.
  • Los registros con campos OwnerId tienen sus campos OwnerId completados para este usuario cuando se crean o modifican.
  • Este usuario crea los registros de depuraci贸n para la ejecuci贸n del disparador.
  • Puede enviar un correo electr贸nico desde el activador, que no es compatible con el usuario de Proceso automatizado predeterminado.

Los componentes PlatformEventSubscriberConfig tienen el sufijo .platformEventSubscriberConfig y se almacenan en la carpeta PlatformEventSubscriberConfigs .

Este componente PlatformEventSubscriberConfig tiene la etiqueta LeadGenerationEventTriggerConfig . Contiene la configuraci贸n de un disparador de eventos de plataforma, LeadGenerationTrigger , y especifica el tama帽o del lote y el usuario.


<?versi贸n xml="1.0" codificaci贸n="UTF-8"?>
<PlatformEventSubscriberConfig xmlns="http://soap.sforce.com/2006/04/metadatos"> <platformEventConsumer>LeadGenerationTrigger</platformEventConsumer> <tama帽o del lote>50</tama帽o del lote> <masterLabel>LeadGenerationEventTriggerConfig</masterLabel> <usuario>desarrollador@automationchampion.com</usuario> <isProtected>falso</isProtected>
</PlatformEventSubscriberConfig>

Pr谩ctica guiada (nosotros hacemos):

Para agregar una configuraci贸n, realice una solicitud POST como se menciona a continuaci贸n:

  1. Abra Workbench e inicie sesi贸n con su nombre de usuario y contrase帽a de Trailhead Playground .
  2. Aseg煤rese de haber seleccionado la opci贸n Producci贸n para el medio ambiente .
  3. Navegue a la pesta帽a Utilidades y seleccione la opci贸n REST Explorer .
  4. Selecciona las siguientes opciones:
    1. Elija un m茅todo HTTP para realizar en el URI del servicio REST API a continuaci贸n : POST
    2. URL : /services/data/v58.0/tooling/sobjects/PlatformEventSubscriberConfig
    3. Cuerpo : proporcione los valores en el cuerpo de la solicitud. Esta solicitud de ejemplo configura un activador existente con un tama帽o de lote de 50 y especifica el ID de un usuario en ejecuci贸n.
      1. {
        "Tama帽o del lote": "50",
        鈥淣ombre del desarrollador鈥:鈥滾eadGenerationEventTriggerConfig鈥,
        鈥淢asterLabel鈥:鈥滾eadGenerationEventTriggerConfig鈥,
        鈥淧latformEventConsumerId鈥: 鈥01qB0000000Zcug鈥,
        鈥淚D de usuario鈥: 鈥005B00000015gt8鈥
        }
      2. D贸nde:
        1. 01qB0000000Zcug, disparador de Apex en Lead_Generation__e
        2. 005B00000015gt8, es el ID de usuario del usuario de integraci贸n
    4. Haga clic en Ejecutar .
  5. Puede consultar y recuperar las configuraciones en su organizaci贸n con SOQL. Si consulta desde Developer Console Query Editor, aseg煤rese de seleccionar Use Tooling API . Esta consulta de ejemplo recupera todas las configuraciones establecidas en su organizaci贸n de Salesforce.

Evaluaci贸n formativa:

隆Quiero saber de ti!

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

Seguir leyendo

Use la API REST de Tableau con Postman para dise帽ar integraciones 鈽侊笍

Use la API REST de Tableau con Postman para dise帽ar integraciones 鈽侊笍

La pr贸xima vez que quiera hacer algo con Tableau, pero no pueda encontrar la manera con la interfaz de usuario, vaya a su confiable Postman Collection y pruebe algunos m茅todos a trav茅s de la API REST de Tableau.

La publicaci贸n Usar la API REST de Tableau con Postman para dise帽ar integraciones apareci贸 primero en el blog de desarrolladores de Salesforce .

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

Mejore la disponibilidad en su organizaci贸n 鈽侊笍

Est茅 atento a estos antipatrones comunes y utilice estas estrategias para evitarlos y mejorar la disponibilidad en su organizaci贸n.

La publicaci贸n Mejore la disponibilidad en su organizaci贸n apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Habilite CDN para cargar Lightning Experience m谩s r谩pido 鈽侊笍

Descubra c贸mo una red de entrega de contenido (CDN) puede aumentar su rendimiento y c贸mo puede habilitarla para su organizaci贸n hoy.

La publicaci贸n Activar CDN para cargar Lightning Experience m谩s r谩pido apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Inicie su bot de Einstein en Twitter con el marco del conector del canal de bots de Einstein 鈽侊笍

En nuestra serie API de la plataforma Einstein Bots, hemos profundizado en los aspectos del uso de la API para ayudarlo a aprovecharla al m谩ximo en sus canales digitales.

La publicaci贸n Inicie su bot de Einstein en Twitter con el marco del conector de canal de bots de Einstein apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Account Engagement (Pardot) API v5: Por qu茅 deber铆a actualizar 鈽侊笍

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

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

Seguir leyendo

Servicios externos y actualizaciones de API | Aprende MOAR Primavera '23 鈽侊笍

Puede esperar una gran cantidad de servicios externos y actualizaciones de API en Spring '23, lo que hace que sea a煤n m谩s f谩cil aprovechar Salesforce para automatizar cualquier cosa.

La publicaci贸n Servicios externos y actualizaciones de API | Learn MOAR Spring '23 apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Creaci贸n de un complemento CLI de Salesforce 鈽侊笍

La CLI de Salesforce es una herramienta poderosa y esencial para el desarrollo de Salesforce. Uno de los aspectos m谩s poderosos de la CLI es su extensibilidad a trav茅s de complementos.

La publicaci贸n Creaci贸n de un complemento CLI de Salesforce apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Resumen de 2022: nuevas funciones para desarrolladores del a帽o pasado 鈽侊笍

Cada a帽o, los desarrolladores de Salesforce se encuentran en el extremo receptor de una cinta transportadora de funciones nuevas importantes y, a veces, esenciales de la plataforma de Salesforce.

La publicaci贸n 2022 en revisi贸n: nuevas funciones para desarrolladores del a帽o pasado apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Procesamiento de grandes cantidades de datos con API (parte 2 de 2) 鈽侊笍

Cuando trabaje en un entorno empresarial, es posible que deba procesar grandes cantidades de registros de Salesforce utilizando las API de la plataforma. Esta publicaci贸n es la segunda parte de una serie de dos publicaciones que se centran en el procesamiento de datos a escala con API. En la primera parte de la serie, nos enfocamos en operaciones de lectura con la API REST y [鈥

La publicaci贸n Procesamiento de grandes cantidades de datos con API (Parte 2 de 2) apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Procesamiento de grandes cantidades de datos con API (parte 1 de 2) 鈽侊笍

Cuando trabaje en un entorno empresarial, es posible que deba procesar grandes cantidades de registros de Salesforce utilizando las API de la plataforma. En esta serie de dos publicaciones, presentaremos opciones para procesar datos a escala. En esta primera publicaci贸n, nos centraremos en las operaciones de lectura con la API REST y las API masivas. Presentaremos cu谩l es la mejor opci贸n [鈥

La publicaci贸n Procesamiento de grandes cantidades de datos con API (Parte 1 de 2) apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Funciones interesantes de la plataforma de datos de clientes de Marketing Cloud para desarrolladores 鈽侊笍

La plataforma de datos de clientes (CDP) de Marketing Cloud existe desde hace un tiempo. Sin embargo, es posible que a煤n no est茅s familiarizado con 茅l. En nuestra publicaci贸n de blog anterior, discutimos la importancia de CDP en el contexto de Salesforce Genie. Esta publicaci贸n de blog lo guiar谩 a trav茅s de las funciones geniales que CDP tiene disponibles para los desarrolladores. [鈥

La publicaci贸n Caracter铆sticas interesantes de la plataforma de datos de clientes de Marketing Cloud para desarrolladores apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Integraci贸n de Salesforce m谩s f谩cil y escalable con webhooks declarativos

脷ltima actualizaci贸n el 23 de agosto de 2022 por Rakesh Gupta 驴Qu茅 es un webhook? Cada vez que se conectan dos sistemas separados, pueden comunicarse entre s铆 a trav茅s de Internet mediante el env铆o y la recepci贸n de mensajes. Uno de los sistemas puede ser el sistema receptor y el otro el sistema emisor, pero a veces

La publicaci贸n Integraci贸n de Salesforce m谩s f谩cil y escalable con webhooks declarativos apareci贸 primero en Automation Champion .

Seguir leyendo

Redacci贸n de los servicios REST de Apex (y cu谩ndo no hacerlo) 鈽侊笍

Apex es el lenguaje central para personalizar la l贸gica comercial en la plataforma Salesforce y para la integraci贸n con sistemas de terceros. Siempre que necesite exponer datos de la plataforma o l贸gica personalizada a un sistema externo, una de sus opciones es crear un punto final REST de Apex personalizado. En esta publicaci贸n, discutiremos los casos de uso para implementar [鈥

La publicaci贸n Redacci贸n de los servicios REST de Apex (y cu谩ndo no hacerlo) apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Reduzca el consumo de almacenamiento de archivos con las funciones de Salesforce y Amazon S3 鈽侊笍

Salesforce es una plataforma multiinquilino que atiende a m煤ltiples clientes en el mismo hardware. Con este tipo de arquitectura, la Plataforma de Salesforce impone l铆mites para hacer cumplir una distribuci贸n uniforme de recursos entre todos los inquilinos. Dichos l铆mites incluyen el consumo de API, los l铆mites del gobernador de Apex y otros. La mayor铆a de los l铆mites relacionados con los desarrolladores se describen en los L铆mites para desarrolladores de Salesforce [鈥

La publicaci贸n Reducir el consumo de almacenamiento de archivos con las funciones de Salesforce y Amazon S3 apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Eliminar conversaci贸n completa de Chatter mediante Salesforce Flow

脷ltima actualizaci贸n el 22 de junio de 2022 por Rakesh Gupta Gran idea o pregunta duradera: 驴C贸mo se puede permitir que los usuarios eliminen conversaciones de Chatter? Esta es una continuaci贸n de mi art铆culo anterior Eliminar mensajes de Chatter mediante Salesforce Flow, en el que analic茅 una forma que permite a sus usuarios eliminar

La publicaci贸n Eliminar conversaci贸n completa de Chatter mediante Salesforce Flow apareci贸 primero en Automation Champion .

Seguir leyendo

Eliminar mensajes de Chatter mediante Salesforce Flow

脷ltima actualizaci贸n el 17 de junio de 2022 por Rakesh Gupta Gran idea o pregunta persistente: 驴C贸mo se puede permitir que los usuarios eliminen mensajes individuales de Chatter? Objetivos: despu茅s de leer este art铆culo, el lector podr谩: Usar la automatizaci贸n para aumentar los permisos de los usuarios Crear un objeto personalizado para almacenar la identificaci贸n de

La publicaci贸n Eliminar mensajes de Chatter mediante Salesforce Flow apareci贸 primero en Automation Champion .

Seguir leyendo