Skip to content

Etiqueta: extensiones

10 preguntas frecuentes sobre la implementaci贸n de Salesforce Einstein

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

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

Seguir leyendo

Introducci贸n a los agentes aut贸nomos 鈽侊笍

Introducci贸n a los agentes aut贸nomos 鈽侊笍

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

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

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

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

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

驴Qu茅 son los agentes aut贸nomos?

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

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

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

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

驴C贸mo funcionan los agentes?

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

Este marco consta de una serie de pasos:

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

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

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

Este agente de gesti贸n de pedidos dispone de seis herramientas que puede utilizar 鈥渄entro de su dominio de conocimiento鈥:

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

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

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

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

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

Mantener a un humano informado

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

驴Qu茅 significa esto para el futuro de Salesforce?

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

驴C贸mo se compara Einstein Copilot con un agente de IA?

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

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

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

Estudio Einstein Copiloto

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

Actualmente existen tres herramientas dentro de Einstein Copilot Studio:

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

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

La capa de confianza de Einstein

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

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

Resumen

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

Sobre el Autor

Stephan Chandler-Garc铆a es el director de contenido estrat茅gico de Salesforce. Ha estado en el ecosistema de Salesforce durante m谩s de 10 a帽os como cliente, socio e ISV. Puede encontrar a Stephan en persona en un grupo comunitario Trailblazer o en una de nuestras conferencias en todo el mundo. Alternativamente, s铆galo en X (Twitter) o GitHub .

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

A帽adir a holgura Suscr铆bete a RSS

Seguir leyendo

Comenzando con Acciones Externas 鈽侊笍

Comenzando con Acciones Externas 鈽侊笍

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

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

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

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

驴Qu茅 son las Acciones Externas?

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

Por este motivo, las acciones externas se empaquetan en una extensi贸n de aplicaci贸n de marketing. En el momento de escribir este art铆culo, las actividades externas a煤n no se pueden empaquetar, pero eventualmente tambi茅n se empaquetar谩n en la extensi贸n de la aplicaci贸n de marketing.

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

驴Cu谩les son algunos buenos casos de uso para las acciones externas?

Bueno, si me preguntan, 隆dir铆a absolutamente todo! Puede que est茅s pensando: 鈥溌laro, todo el mundo dice eso!鈥. Sin embargo, las posibilidades que desbloquean las acciones externas son realmente amplias. Si alguna vez ha dicho: "Me gustar铆a que cuando un prospecto llegue a este paso, yo pudiera <insertar deseo aqu铆>", entonces deseaba una acci贸n externa.

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

驴Qu茅 constituye una acci贸n externa?

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

驴Qu茅 habilidades necesito para trabajar con Acciones Externas?

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

SLDC de Salesforce

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

Documentaci贸n de la API REST

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

Implementaci贸n de Apex y Apex

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

Flujo de Salesforce (opcional)

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

驴C贸mo debo configurar mi entorno de desarrollador?

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

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

Patr贸n b谩sico para llamadas API REST con acciones externas

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

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

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

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

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

Poniendo a prueba tus acciones externas

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

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

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

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

Errores comunes

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

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

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

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

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

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

驴Que estas esperando? 隆Empiece hoy!

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

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

Recursos

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Las extensiones Open VSX ahora son compatibles con Code Builder 鈽侊笍

Las extensiones Open VSX ahora son compatibles con Code Builder 鈽侊笍

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

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

Las extensiones Open VSX ahora son compatibles con Code Builder | Blog de desarrolladores de Salesforce

Nos complace anunciar que Code Builder ahora le permite agregar extensiones desde Open VSX Registry , que brinda acceso de c贸digo abierto a las extensiones de VS Code. Con esta nueva funcionalidad, puede personalizar Code Builder con extensiones de la comunidad y de terceros para satisfacer sus necesidades m谩s r谩pido y ser m谩s productivo. En esta publicaci贸n de blog, aprender谩 sobre los beneficios que Open VSX aporta a Code Builder, c贸mo usarlo y c贸mo compartir sus comentarios con nosotros.

驴Qu茅 es el generador de c贸digo?

Code Builder es un entorno de desarrollo moderno basado en la web que est谩 optimizado para Salesforce. Actualmente en Beta, Code Builder le permite implementar un entorno de desarrollo integrado (IDE) con todas las funciones en su navegador desde su organizaci贸n de Salesforce, con solo presionar un bot贸n.

Las funciones clave, como la finalizaci贸n y refactorizaci贸n de c贸digo, ayudan a aumentar la productividad del desarrollador, mientras que las herramientas de apuntar y hacer clic dentro de Code Builder, como SOQL Builder, y la compatibilidad con todos los lenguajes y marcos de trabajo de Salesforce, facilitan el desarrollo de cualquier forma que desee. me gusta

Finalmente, con Code Builder, que se basa en AWS, puede acceder a las mismas extensiones de Salesforce y CLI que est谩n disponibles en el escritorio.

Mejor juntos: Code Builder + Open VSX

Cuando inicia Code Builder desde una organizaci贸n, viene precargado con las herramientas de Salesforce que necesita, incluido todo el paquete de extensiones de Salesforce y la CLI de Salesforce. Sin embargo, como parte del proceso de su equipo, es posible que necesite otras herramientas para realizar el trabajo. Ah铆 es donde Open VSX Registry puede ayudar.

Por ejemplo, tomemos el control de fuente. Code Builder ya tiene acceso a Git y GitHub, pero quiz谩s su equipo use algo diferente. Si su equipo trabaja con Jira y BitBucket, puede agregar las extensiones de Jira y Bitbucket en su entorno personal de Code Builder, lo que le permite trabajar con historias y control de fuente sin problemas dentro de Code Builder.

Con casi 3000 extensiones y 1600 editores diferentes en Open VSX, hay muchos otros complementos para elegir para personalizar su entorno Code Builder.

Salesforce y Open VSX

En Salesforce, estamos comprometidos con el c贸digo abierto . Dentro de las organizaciones que fomentan y adoptan el c贸digo abierto, los beneficios para los desarrolladores son claros:

  • C贸digo de mayor calidad: el c贸digo fuente abierto generalmente exhibe las mejores pr谩cticas de dise帽o de software; est谩 escrito de forma modular y limpia, y tambi茅n est谩 bien documentado, ya que los desarrolladores de todo el mundo necesitan entender c贸mo funciona.
  • Mejora de habilidades blandas: trabajar en c贸digo abierto lo lleva a aprender naturalmente c贸mo ser un gran compa帽ero de equipo y colaborador. Tambi茅n aprende de otros desarrolladores expertos siguiendo las pautas de contribuci贸n y revisando el c贸digo.
  • Innovaci贸n: La inteligencia colectiva es extremadamente poderosa. Al tener diferentes cerebros con diferentes antecedentes y mentalidades trabajando juntos, nuevas funciones e ideas innovadoras pueden surgir r谩pidamente.

Open VSX es una gran representaci贸n de la colaboraci贸n de c贸digo abierto. Dado su continuo crecimiento, la Fundaci贸n Eclipse ha formado un grupo de trabajo para guiar la evoluci贸n del Registro Open VSX . Salesforce es patrocinador y miembro del grupo de trabajo para ayudar a garantizar que nuestros usuarios tengan las herramientas y funciones necesarias para construir en nuestra plataforma.

Pr贸ximos pasos

Code Builder se encuentra actualmente en versi贸n beta abierta y est谩 disponible para que cualquiera lo pruebe. Si desea encontrar m谩s recursos, o si tiene preguntas o comentarios, consulte el grupo de la comunidad Code Builder Trailblazer . 隆Esperamos sus comentarios!

Tenga en cuenta que tambi茅n puede acceder a las extensiones de Salesforce en Open VSX, por lo que est谩n disponibles en cualquier lugar donde las necesite.

Sobre los autores

Stephanie Maddox es directora del equipo de gesti贸n de productos de Salesforce. Puedes seguirla en LinkedIn o Twitter .

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Herramientas para desarrolladores desde cero (Parte 1 de 2) 鈽侊笍

Herramientas para desarrolladores desde cero (Parte 1 de 2) 鈽侊笍

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

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

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

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

Antes de que empieces

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

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

Instalaci贸n de las herramientas de desarrollador

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

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

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

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

Creaci贸n de un proyecto de Salesforce DX

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

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

sf project generate -n myProject

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

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

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

Autorizar y establecer una organizaci贸n como predeterminada

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

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

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

sf org login web -s

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

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

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

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

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

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

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

Implementaci贸n de metadatos en la organizaci贸n

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

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

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

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

sf project deploy start -m ApexClass

Una segunda forma es especificar una carpeta para implementar.

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

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

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

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

Conclusi贸n

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

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Herramientas para desarrolladores desde cero (Parte 2 de 2) 鈽侊笍

Herramientas para desarrolladores desde cero (Parte 2 de 2) 鈽侊笍

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

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

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

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

En la Parte 1 de esta serie , discutimos c贸mo obtener una organizaci贸n gratuita para el desarrollo y c贸mo instalar las herramientas de desarrollo que todo desarrollador de Salesforce deber铆a usar hoy. Le mostramos c贸mo crear un proyecto y autorizarlo con su organizaci贸n y, finalmente, c贸mo implementar metadatos mediante la CLI de Salesforce o VS Code. En esta segunda publicaci贸n de blog, aprender谩 c贸mo recuperar metadatos, trabajar con organizaciones con seguimiento de origen y usar bibliotecas de Node para cuidar la calidad de su c贸digo. Adem谩s, compartiremos otras gemas ocultas de las extensiones de Salesforce para VS Code. 隆Vamos a sumergirnos en 茅l!

Recuperar metadatos de la organizaci贸n

Un pilar del desarrollo de Salesforce es ser eficiente sin reinventar la rueda. Es por eso que hay muchas herramientas de c贸digo bajo disponibles que le permiten crear y modificar metadatos directamente en su organizaci贸n con solo hacer clic. Es posible que vea estas herramientas a las que se hace referencia como herramientas de "apuntar y hacer clic" o herramientas "declarativas". Algunos metadatos t铆picos que crea con clics son p谩ginas, aplicaciones y flujos.

Estos metadatos son algo que puede recuperar en su proyecto local y continuar ampli谩ndolos con c贸digo si es necesario. De hecho, la mejor pr谩ctica es recuperar los metadatos de su organizaci贸n y almacenarlos en un sistema de control de versiones como Git. Pero dejemos este tema para otra entrada del blog.

Si crea o modifica metadatos con clics en su organizaci贸n y conoce el nombre del tipo de metadatos que desea recuperar, puede hacerlo ejecutando este comando:

sf project retrieve start -m FlexiPage

Los nombres de los tipos de metadatos pueden no ser obvios al principio. Afortunadamente, hay algo muy bueno que puede usar para ver todos los metadatos que existen en su organizaci贸n y recuperar lo que necesita: Org Browser. El navegador de la organizaci贸n se agrega a VS Code gracias a las extensiones de Salesforce para VS Code. 脕bralo haciendo clic en el 铆cono de la nube en el panel lateral izquierdo de VS Code, busque los metadatos que necesita y simplemente haga clic en recuperar.

Puede encontrar una lista completa de nombres de tipos de metadatos en la Gu铆a para desarrolladores de la API de metadatos .

Una 煤ltima opci贸n: si los metadatos ya existen en su proyecto local y desea recuperar una versi贸n actualizada, puede hacer clic con el bot贸n derecho en el archivo y seleccionar Retrieve Source from Org .

Un requisito com煤n para las organizaciones existentes ser谩 recuperar todos los metadatos de la organizaci贸n por primera vez y almacenarlos en el proyecto local (y, por lo general, en un sistema de control de versiones). Este es un tema m谩s avanzado, pero si quieres aprender c贸mo hacerlo, te recomiendo ver este video Quick Take .

Trabajar con organizaciones con seguimiento de origen

En esta publicaci贸n de blog, nos hemos centrado en las organizaciones que no tienen activado el seguimiento de fuentes. Esta es la opci贸n predeterminada para las organizaciones y sandboxes de desarrolladores, aunque, en los sandboxes de desarrolladores, se puede activar el seguimiento de origen. Existe otro tipo de organizaci贸n, denominada organizaci贸n borrador, que tiene activado el seguimiento de origen de forma predeterminada.

La principal diferencia con las organizaciones con seguimiento de origen, con respecto a la implementaci贸n y recuperaci贸n de c贸digo, es que los cambios de metadatos se rastrean autom谩ticamente. Eso significa que puede simplificar los comandos de implementaci贸n y recuperaci贸n, simplemente escribiendo:

sf project deploy start

o

sf project retrieve start

La CLI detectar谩 autom谩ticamente todo lo que haya cambiado en su organizaci贸n o en su proyecto local y lo implementar谩 o recuperar谩 en consecuencia. Este es un cambio de juego para los desarrolladores, ya que no tener que especificar los metadatos o la carpeta para recuperar o implementar lo convierte en un desarrollador mucho m谩s productivo. Lea la documentaci贸n para comenzar con el seguimiento de fuentes en Sandboxes u organizaciones Scratch .

Cuidando la calidad del c贸digo con las bibliotecas de Node

Cuando genera un proyecto, tambi茅n contendr谩 un archivo package.json . Este archivo define el proyecto como un proyecto de Node.js. La CLI de Salesforce y la Extensi贸n de Salesforce para su IDE estructuran el proyecto de esta manera, para que pueda ejecutar secuencias de comandos que cuidan la calidad de su c贸digo. Los scripts usan bibliotecas que se definen en la secci贸n devDependencies de package.json y deben descargarse en su proyecto local ejecutando el comando npm install . Ninguna de las bibliotecas de Node se implementar谩 en su organizaci贸n, solo se usar谩n en su m谩quina local.

Aqu铆 hay un resumen de lo que hacen las bibliotecas:

  • Prettier se usa para formatear su c贸digo siguiendo criterios configurables. Esto es extremadamente 煤til cuando varios desarrolladores trabajan en el mismo proyecto, ya que tienen una forma unificada y automatizada de formatear el c贸digo. Tambi茅n proporcionamos un complemento Prettier espec铆fico para formatear las clases de Apex.
  • ESLint lo ayuda a encontrar y solucionar problemas con su c贸digo JavaScript. Adem谩s, proporcionamos un complemento ESLint dise帽ado para filtrar el c贸digo JavaScript de Lightning Web Components.
  • sfdx-lwc-jest se utiliza para escribir y ejecutar pruebas de Jest para sus componentes web Lightning. sa11y es un complemento para escribir pruebas de accesibilidad y asegurarse de que sus componentes sean accesibles.

El punto de entrada para usar las bibliotecas son los scripts definidos en la secci贸n scripts .

Los scripts se pueden ejecutar localmente, bajo demanda y de forma automatizada. Por lo general, estos scripts se ejecutan autom谩ticamente antes de enviar su c贸digo a un repositorio de c贸digo al fusionar su c贸digo con c贸digo desarrollado por otros, o al mover cambios entre entornos en su canalizaci贸n. Esto garantiza que el c贸digo tenga la calidad esperada y que su funcionalidad no se rompa. Este concepto se conoce como integraci贸n continua, y puede ver un buen video de codeLive al respecto.

El uso de estas bibliotecas no es obligatorio, pero recomendamos encarecidamente hacerlo. Para saber m谩s sobre este tema, lee nuestra entrada de blog .

Otras joyas de las Extensiones de Salesforce para VS Code

Eso no es todo sobre las extensiones de Salesforce. Agregan a VS Code muchas m谩s capacidades, como resaltado de sintaxis, finalizaci贸n de c贸digo y validaci贸n de CSS para Lightning Web Components, Aura Components, Apex, SOQL y Visualforce.

Tambi茅n muestran una pesta帽a de prueba que hace que sea mucho m谩s f谩cil ejecutar y escribir pruebas de Apex y Lightning Web Components.

Y, por 煤ltimo, tambi茅n facilitan la depuraci贸n de Apex, gracias a Apex Replay Debugger .

Adem谩s de eso, algo muy bueno de VS Code es que puede agregar toneladas de extensiones creadas por desarrolladores de todos los diferentes ecosistemas. Hay extensiones para ayudarlo con el control de versiones y con el an谩lisis est谩tico de c贸digo (como PMD ). Existen extensiones para Prettier y ESLint que te dan avisos cuando el c贸digo no cumple con sus reglas. Hay extensiones para casi todo lo que pueda necesitar, 隆incluso para usar Chat GPT! Eche un vistazo al VS Code Marketplace para ver todas las extensiones disponibles o, mejor a煤n, 隆cree la suya propia!

Conclusi贸n

隆Vaya, eso fue mucho! En esta publicaci贸n de blog, aprendi贸 sobre las herramientas de desarrollador que todo desarrollador de Salesforce debe conocer y utilizar. Al dominar estas herramientas, se convertir谩 en un desarrollador mucho m谩s productivo, r谩pido y feliz. Si quieres aprender todo este contenido en formato de video, mira nuestro episodio de codeLive . Si trabaja con sandboxes, puede ampliar su conocimiento sobre c贸mo trabajar con sandboxes y la CLI de Salesforce leyendo nuestra serie de publicaciones de blog . Y si tiene preguntas, no dude en hacerlas en Salesforce Developers Trailblazer Community . 隆Feliz codificaci贸n!

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

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

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

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

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

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

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

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

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

1. Operaciones de base de datos en modo usuario

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Consideraciones importantes

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

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

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

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

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

Estos m茅todos proporcionan los siguientes beneficios:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Importante consideraci贸n

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

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

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

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

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

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

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

Actualizaciones de herramientas

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

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

Conclusi贸n

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

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

Referencias adicionales

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

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

Lanzamiento de Marketing Cloud Spring '23 para desarrolladores 鈽侊笍

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

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

Seguir leyendo

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

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

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

Seguir leyendo

Automation Studio y SQL en Marketing Cloud 鈽侊笍

Este blog lo ayuda a comprender los casos de uso de las actividades de Automation Studio y SQL Query en Marketing Cloud y brinda orientaci贸n sobre las mejores pr谩cticas.

La publicaci贸n Automation Studio y SQL en Marketing Cloud apareci贸 primero 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

Aprende MOAR en Winter '23 con Release Highlights para desarrolladores 鈽侊笍

驴Escuchaste? 隆Es la semana de Dreamforce! S铆, nuestra reuni贸n familiar de Trailblazer finalmente est谩 aqu铆, los d铆as son un poco m谩s cortos y los PSL han comenzado a resurgir en los men煤s de cerca y de lejos (eso es "Pumpkin Spice Lattes", pero si ley贸 eso y pens贸 en "Licencias de conjunto de permisos", entonces definitivamente eres uno de nuestra gente!). Todo esto [鈥

La publicaci贸n Learn MOAR in Winter '23 with Release Highlights for Developers apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

C贸mo aprobar el examen de certificaci贸n de administrador avanzado de Salesforce

脷ltima actualizaci贸n el 27 de septiembre de 2022 por Rakesh Gupta Han pasado nueve a帽os desde que aprob茅 el examen de administrador avanzado de Salesforce. En las 煤ltimas semanas, muchas personas se comunicaron conmigo para pedirme orientaci贸n y un camino para convertirme en un administrador avanzado certificado. Eso me da una idea

La publicaci贸n C贸mo aprobar el examen de certificaci贸n de administrador avanzado de Salesforce apareci贸 primero en Automation Champion .

Seguir leyendo

Aprenda MOAR en Winter '23 con acciones externas de Pardot 鈽侊笍

Siga y complete un trailmix de Learn MOAR Winter '23 para administradores o desarrolladores antes del 30 de noviembre de 2022 a las 11:59 p. Se aplican restricciones. Aprenda c贸mo participar y revise las Reglas Oficiales visitando el [鈥

La publicaci贸n Aprenda MOAR en Winter '23 con acciones externas de Pardot apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Aprenda MOAR en Winter '23 con DevOps Center 鈽侊笍

Siga y complete un trailmix de Learn MOAR Winter '23 para administradores o desarrolladores antes del 30 de noviembre de 2022 a las 11:59 p. Se aplican restricciones. Aprende c贸mo participar y revisa las Reglas Oficiales visitando el [鈥

La publicaci贸n Aprenda MOAR en Winter '23 con DevOps Center apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Una introducci贸n a Apex para desarrolladores de Java 鈽侊笍

Si es un desarrollador de Java que explora el ecosistema de Salesforce y se pregunta qu茅 es Apex, 隆esta publicaci贸n es para usted! Apex es el lenguaje de programaci贸n backend de la plataforma Salesforce. Apex, junto con herramientas declarativas como Flows, le permite personalizar la l贸gica empresarial. Apex se basa en la sintaxis de Java optimizada espec铆ficamente para los requisitos de [鈥

La publicaci贸n Una introducci贸n a Apex para desarrolladores de Java apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Cree e implemente extensiones de barra lateral en el editor de contenido de CMS 鈽侊笍

En el CMS mejorado de Salesforce, las extensiones de la barra lateral colocan herramientas de productividad dentro del editor de contenido donde los creadores de contenido las necesitan. Las extensiones de la barra lateral le permiten agregar funciones 煤tiles como correctores ortogr谩ficos, editores de gram谩tica y tono, aplicaciones de recomendaci贸n de contenido, servicios de traducci贸n… y cualquier otra cosa que pueda so帽ar. Con acceso de lectura y escritura a su contenido [鈥

La publicaci贸n Crear e implementar extensiones de la barra lateral en el Editor de contenido de CMS apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

C贸mo aprobar el examen de especialista en correo electr贸nico de Salesforce Marketing Cloud

脷ltima actualizaci贸n el 1 de agosto de 2022 por Rakesh Gupta Despu茅s de temer y demorar un par de veces, finalmente reun铆 el coraje para presentarme al examen de certificaci贸n de Administrador de Marketing Cloud hace unos meses. Y, oh s铆, logr茅 pasarlo en mi primer intento. Entonces, sigue

La publicaci贸n C贸mo aprobar el examen de especialista en correo electr贸nico de Salesforce Marketing Cloud apareci贸 primero en Automation Champion .

Seguir leyendo

Comparando las mejores plataformas de comercio electr贸nico en 2022

El debate contin煤a entre WooCommerce, Shopify, Magento y BigCommerce por la mejor plataforma econ贸mica: lo ayudaremos a encontrar la mejor para usted.

La publicaci贸n Comparaci贸n de las mejores plataformas de comercio electr贸nico en 2022 apareci贸 primero en Groove Blog.

Seguir leyendo

Gu铆a de la plataforma de comercio electr贸nico 2022: WooCommerce frente a Magento

Por un lado, WooCommerce: basado en (gratuito) WordPress, sin cobrarle nada por usar sus servicios. O Magento: creado para grandes empresas, personas con grandes presupuestos y grandes equipos de desarrollo.

La Gu铆a de plataforma de comercio electr贸nico posterior a 2022: WooCommerce vs. Magento apareci贸 por primera vez en Groove Blog.

Seguir leyendo

Cree desde cualquier lugar con Salesforce Code Builder (Beta) 鈽侊笍

Los desarrolladores de Salesforce tienen la desafiante tarea de crear e implementar r谩pidamente aplicaciones en la era del "trabajo desde cualquier lugar". Por lo tanto, necesitan flexibilidad tanto en c贸mo trabajan como en d贸nde trabajan. En Salesforce, nos comprometemos a brindar herramientas para que nuestros desarrolladores sean eficientes y productivos. En el pasado, hemos innovado herramientas para desarrolladores [鈥

La publicaci贸n Crear desde cualquier lugar con Salesforce Code Builder (Beta) apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Gu铆a de plataforma de comercio electr贸nico 2022: BigCommerce vs Magento

Tira una moneda y probablemente no te equivocar谩s. Pero si est谩 aqu铆 porque busca elegir la plataforma adecuada para sus necesidades y presupuesto espec铆ficos, encontrar谩 que las diferencias tampoco son siempre peque帽as.

La Gu铆a de plataforma de comercio electr贸nico posterior a 2022: BigCommerce vs Magento apareci贸 por primera vez en Groove Blog.

Seguir leyendo