Skip to content

Etiqueta: twitter

驴Quieres mejores respuestas de la IA Generativa? Escriba mejores preguntas

No importa si eres un experimentado ingeniero de prompt o si est谩s empezando con la inteligencia artificial generativa, sigue estos consejos para sacar el m谩ximo partido a esta nueva plataforma tecnol贸gica.

Seguir leyendo

TrailblazerDX 2024: Gu铆a completa para desarrolladores 鈽侊笍

TrailblazerDX 2024: Gu铆a completa para desarrolladores 鈽侊笍

Vea lo que TrailblazerDX 2024 tiene preparado para los desarrolladores de Salesforce, tanto si se une a nosotros en San Francisco como si lo hace en Salesforce+

The post Gu铆a para desarrolladores de TrailblazerDX 2024 appeared first on Blog de desarrolladores de Salesforce.

Seguir leyendo

Cap铆tulo 2: Ejemplos de transformaci贸n digital

La Transformaci贸n Digital es un concepto que var铆a seg煤n el sector, la vertical, la empresa y la disponibilidad de tecnolog铆a, por lo que no es f谩cil de entender ni existe un 煤nico ejemplo de transformaciones digitales. Para que entiendas mejor c贸mo es la verdadera 芦Transformaci贸n Digital禄, aqu铆 tienes 5 empresas reales que aprovecharon las nuevas tecnolog铆as para transformar digitalmente y evolucionar su negocio.

Seguir leyendo

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

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

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

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

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

Seguir leyendo

C贸mo Manejar Tu D铆a a D铆a Sin Enloquecer

Si el mundo ha cambiado, la forma de trabajar tampoco puede seguir siendo la que era antes de la revoluci贸n digital. El mundo de hoy no tiene nada que ver con el mundo en que vivieron los grandes creativos que admiramos. Para ellos era m谩s sencillo evitar las distracciones y trabajar en relativa paz y concentraci贸n. En la era de internet y los smartphones, es m谩s dif铆cil encontrar el entorno ideal para desarrollar nuestros proyectos personales. Encuentra en este resumen del libro Manage Your Day -to- Day de Jocelyn Glei, 

A menudo cuando hablamos de problemas en nuestro proceso creativo, no hablamos de problemas en la generaci贸n de ideas, sino en la ejecuci贸n de nuestra idea.

LA ERA DEL TRABAJO REACTIVO

A veces podemos gastar gran parte del d铆a trabajando de forma reactiva: controlamos el correo electr贸nico, visitamos nuestro perfil en Instagram, Facebook, Twitter, Telegram, echamos un ojo a whatsapp, alguna tarea rutinaria, y ya no queda tiempo para nada m谩s.

Estar siempre conectado trae muchas ventajas, pero tambi茅n desventajas: s贸lo tenemos tiempo para contestar y reaccionar, y no nos queda tiempo para pensar y actuar.

LA IMPORTANCIA DE UNA RUTINA

El trabajo creativo requiere de mucho tiempo para llegar a un buen resultado.

lo que te permite lograr ese resultado es la rutina.

Es por esto que, por ejemplo, Ernest Hemingway escrib铆a 500 palabras todas las ma帽anas.

Y de eso hablaba Picasso cuando dec铆a que la musa sol铆a encontrarlo trabajando.

Una rutina efectiva te ayuda a entrar en el flow sin perder tiempo y sin gastar mucha fuerza de voluntad.

Gracias a una rutina de trabajo optimizada puedes poner en marcha tu flujo de trabajo de forma autom谩tica.

No tienes que esperar la inspiraci贸n, tienes que crear un entorno y un sistema que la favorezca.

EL S脥NDROME 芦INBOX ZERO禄

驴Has intentado alguna vez 鈥渁delantar trabajo鈥?

Y 驴cu谩ntas veces te has conseguido adelantar todo el trabajo posible, y has tenido por fin tiempo libre para dedicarte a ese proyecto que ten铆as abandonado?

Me temo que pocas veces.

Adem谩s, hay veces que adelantas trabajo para que luego te cambien el briefing, y lo que has hecho ya no vale: hubiera sido mejor no hacer nada鈥

驴Te suena?

La verdad es que adelantar trabajo es a menudo una gilipollez falacia.

Es meterse en la rueda del h谩mster y empezar a correr, sin parar nunca.

De la misma forma, las ganas de despejar el camino te pueden llevar a abrir el correo a primera hora de la ma帽ana: sin darte cuenta acabar谩s por entregar tu tiempo a las prioridades de otras personas.

Que a veces no coinciden exactamente con tus prioridades鈥

LUCHANDO CONTRA EL E-NEMIGO

Si la ma帽ana es el momento donde tu creatividad y productividad est谩n a tope, malgastarla as铆 es un crimen.

Pero no es as铆 para todo el mundo: hay quien trabaja mejor por las noches.

As铆 que te toca identificar cu谩les son tus horas m谩s productivas.

Esto a menudo quiere decir invertir la forma de trabajar: empezar con el trabajo importante y no urgente, y dejar el trabajo reactivo para despu茅s.

Muchas veces hacemos al rev茅s y nos ocupamos de tareas simples, para tener la ilusi贸n de ser productivos.

Hace falta fuerza de voluntad para resistir a la inc贸moda 鈥 y enga帽osa 鈥 sensaci贸n que hay clientes esperando.

Pero es mejor decepcionar a unos pocos sobre cosas no esenciales, que renunciar a tus sue帽os para tener la bandeja de entrada vac铆a.

Seg煤n un estudio de 2012, los trabajadores gastan de promedio el 28% de su tiempo escribiendo, leyendo o contestando a correos.


驴Un peque帽o truco para llegar a inbox cero en pocos minutos? Archiva todos tus correos en la carpeta de 芦archivados禄 y ya tendr谩s la bandeja vac铆a. En Gmail ya tienes esa carpeta por defecto, pero si no la tienes la puedes crear. Si quieres acceder a tus correos, los seguir谩s viendo en esa carpeta. En tu bandeja de entrada s贸lo tendr谩s los 煤ltimos mensajes.


No sacrifiques tu potencial por una ilusi贸n de profesionalidad.

El email es como una extensi贸n de nuestro cerebro. Lo malo es cuando pretendemos estar a la altura de ese yo digital, que puede manejar mucha m谩s informaci贸n que nuestro yo real.

A menudo tenemos la tentaci贸n de guardar muchos correos just in case, por si volvemos a leerlos, por si es algo 煤til, para acordarnos de una posible idea o herramienta,鈥

Sin embargo, tenemos que aceptar que al ritmo al que fluye la informaci贸n, es dif铆cil que eso pase. Y aunque volvi茅ramos a mirarlo en un futuro, es posible que para cuando lo hagamos las cosas hayan cambiado, y ya exista otra herramienta, otra manera de hacer las cosas,鈥

Para hacer una limpieza con criterio, tenemos que tener claros nuestro objetivos. Si los tenemos por escrito, mejor.

La regla m谩s importante para que tu bandeja de entrada te ayude a lograr tu objetivo es esta: las oportunidades que te distraen tienen que morir para que tus objetivos m谩s importantes puedan sobrevivir.  

No hay sitio para todo.

El mundo laboral actual nos obliga a vivir en una paradoja permanente: para avanzar, tenemos al mismo tiempo que luchar contra las distracciones y ceder frente a ellas (mirando por ejemplo nuestro buz贸n de correo).

Seguro que pensar谩s que necesitas mirar tu buz贸n para poder realizar tu trabajo: emails de clientes, del jefe, de tus compa帽eros de trabajo, noticias sobre tu sector,鈥

Pero todas esas comunicaciones solo te ayudan, o te cortan el ritmo y te distraen?

驴Cu谩l es el coste de esa p茅rdida de foco?

Lo que en realidad buscamos es la gratificaci贸n aleatoria que proporcionan los buzones de entrada del correo o cualquier red social.

Adem谩s, somos yonkis de la comodidad.

Hemos elegido ser esclavos de la comodidad y eso tiene un precio.

En todos los trabajos se tiende a abusar del email y los correos de grupo: consideramos s贸lo la comodidad y posibles ventajas, sin pensar a lo que pueden costar en t茅rminos de productividad.

El hecho de que pueda existir un beneficio nos parece suficiente para justificar la pr谩ctica.

En el sector de los conocimientos no tenemos unas m茅tricas claras que nos ayuden a medir los costes.

Nuestras conductas se miden entonces sobre la conveniencia a corto plazo m谩s que sobre el valor a largo plazo.  

Eliminar 10 mensajes de nuestra bandeja de entrada nos da la impresi贸n de progresar, cuando si lo pensamos detenidamente eso no est谩 para nada claro.

DESCUBRIENDO TU RITMO PRODUCTIVO.

Tenemos que recordarnos a nosotros mismos que no somos una m谩quina.

A veces parece que los textos sobre productividad quieren entrenarnos para volvernos r铆gidos y eficientes como m谩quinas.

Los seres humanos no somos m谩quinas 鈥 los creativos menos todav铆a 鈥 y seguir esos consejos s贸lo nos provocar谩 frustraci贸n.

Tenemos que aprender a reconocer y seguir nuestros ciclos de productividad.

Eso es f谩cil de hacer, aunque requiere de fuerza de voluntad para ponerlo en marcha: simplemente hay que apuntar durante una semana la horas en la que trabajamos m谩s a gusto.

Necesitamos identificar si conseguimos mejores resultados por la ma帽ana, la tarde o la noche, y apuntar cu谩nto tiempo podemos trabajar a tope antes de que nos entren ganas de desconectar.

Es dif铆cil que sea m谩s de 1 hora. Cuando identifiquemos esos ratos, sabremos cada cu谩nto tiempo necesitamos descansar, y qu茅 momentos dedicar al trabajo m谩s importante.

En mi caso, 50 minutos es la extensi贸n ideal para trabajar del tir贸n. Luego mi concentraci贸n baja y me entran ganas de distraerme.

La mente humana est谩 m谩s preparada para trabajar en sprints que en maratones.

Nuestra eficiencia y creatividad vuelven a recargarse si alternamos trabajo creativo y trabajos reactivo.

Y tambi茅n es importante aprender a desconectar de la conexi贸ncuando nos conectamos a la red, nos desconectamos de nosotros mismos, perdiendo una oportunidad para reflexionar.

Y en el caso de un trabajo creativo esto puede significar perder la oportunidad para tener una voz personal, y seguir lo que hacen los dem谩s.

Nada tiene que tener m谩s influencia sobre nosotros que nuestra propia intuici贸n.

En esta era de la constante conexi贸n, la capacidad para desconectar y pararse a pensar es otra ventaja competitiva.

EL INCRE脥BLE PODER DE LA REPETICI脫N

驴Conoces esta frase?

Tenemos la tendencia a sobrestimar lo que podemos lograr en el d铆a, y a subestimar lo que podemos lograr en un a帽o禄

Para que esa frase sea cierta, es necesario que se cumpla una condici贸n: que trabajemos de forma consistente.

A largo plazo, el trabajo constante impulsa nuestra productividad y creatividad.

La repetici贸n o frecuencia nos proporciona unas grandes ventajas.

LAS 3 GRANDES VENTAJAS DEL TRABAJO DIARIO

  1. Trabajar todos los d铆as en tu proyecto hace que sea m谩s f谩cil empezar.

驴Has notado que a veces, aunque tengas tiempo, no lo aprovechas para trabajar en tu proyecto personal?

Y que cada vez que tienes que arrancar un proyecto nuevo te cuesta horrores, sin embargo al cabo de unos d铆as, cuando por fin ya has arrancado, trabajas sin problemas?

Empezar un proyecto nuevo es duro, y tambi茅n lo es volver a ello tras una pausa.

Eliminar esas pausas te ayuda a mantener las ganas y la motivaci贸n.

2) Trabajar todos los d铆as en tu proyecto te quita presi贸n.

Si trabajas en tu proyecto solo de vez en cuando, cuando lo haces sientes presi贸n por sacar algo de mucha calidad.

Si trabajas todos los d铆as no tienes esa sensaci贸n: si un d铆a no obtienes resultados, no pasa nada. Tienes el d铆a siguiente para hacerlo mejor.

3) Trabajar todos los d铆as en tu proyecto te ayuda a trabajar todos los d铆as en tu proyecto

Si no dejas pasar muchos d铆as sin trabajar en tu proyecto, no necesitar谩s tiempo para volver al flow, podr谩s empezar enseguida.

Y esa puede ser una ventaja tremenda: no necesitar谩s de mucho tiempo para lograr avances.

Es esto un concepto que, si lo pones en pr谩ctica, te puede transformar en un arma de creaci贸n masiva.

A veces aparcamos nuestro proyecto porque sentimos que no tenemos nunca un tiempo suficientemente extendido como para lograr algo.

芦S贸lo tengo media hora禄, nos decimos. 芦Eso no me alcanza para nada禄.

Si trabajamos media hora al mes eso es verdad: no avanzaremos nada, ni siquiera ser谩 suficiente  para concentrarnos y volver al punto donde lo dejamos.

Si trabajamos todos los d铆as, nos concentramos casi al instante.

Y avanzaremos paso a paso, podremos ver nuestros progresos y eso nos ayudar谩 a ser m谩s productivos porque veremos que s铆 somos realmente capaces de hacerlo.

Sin embargo, la ansiedad que produce postergar hace que cada vez sea m谩s dif铆cil arrancar.

Lo que haces cada d铆a es m谩s importante de lo que haces de vez en cuando禄

D铆a tras d铆a, construimos nuestra vida. D铆a tras d铆a, podemos transformar nuestra idea en realidad.

Todo eso es lo que dice la famosa frase de Arist贸teles:

Somos lo que hacemos repetidas veces. La excelencia por lo tanto no es un acto, sino un h谩bito禄

Puede haber d铆as donde nos digamos a nosotros mismos que no vamos a trabajar en nuestro proyecto porque no nos sentimos inspirados.

Ser creativos cuando la inspiraci贸n acompa帽a es f谩cil, sin embargo s贸lo podemos ser 鈥減ros鈥 de la creatividad si trabajamos tambi茅n cuando no nos sentimos inspirados.

LA SOLEDAD DEL CREATIVO

Reservar momentos para estar solos, sin aparatos e internet, tambi茅n tiene ventajas.

Es esencial aprender a reconocer nuestro impulso de interrumpir el trabajo o hacer multitasking, y resistirlo.

驴Porqu茅 muchos recomiendan meditar?

La pr谩ctica de la meditaci贸n ayuda a reconocer los pensamientos que llegan a nuestra cabeza y a no interactuar con ellos.

Lo mismo habr铆a que hacer con el impulso de cambiar de tarea o mirar el m贸vil: tendr铆amos que tomar conciencia del impulso, y no caer en tentaci贸n.

(Nota: estuve 365 d铆as meditando 15 minutos todos los d铆as. Resultado: ninguno. El 煤ltimo d铆a lo hac铆a igual de mal igual que el primero: sin conseguir ralentizar la mente y contener la ola de pensamientos. Uno de estos d铆as volver茅 a intentarlo鈥)

FOCO Y DISTRACCIONES: LA PARADOJA DE LA PRODUCTIVIDAD

La informaci贸n consume la atenci贸n del receptor. Una abundancia de informaciones crea escasez de atenci贸n禄

Esta frase es de 1971, pero describe muy bien el mundo de hoy: tenemos una fuente de infinitas distracciones instalada en nuestro medio de trabajo (nuestro ordenador), y otra en nuestro bolsillo鈥.

La atenci贸n es uno de nuestros bienes m谩s preciados.

Si piensas que las compa帽铆as m谩s grandes del mundo 鈥 Google, Facebook, Netflix 鈥 ganan m谩s dinero cuanto m谩s consiguen distraernos y conquistar nuestra atenci贸n, tienes una idea de la magnitud del problema.

Nuestra capacidad de atenci贸n es nuestra ventaja competitiva: quien mejor la sabe salvaguardar ser谩 el que conseguir谩 resultados, mientras los dem谩s se quedar谩n consumiendo entretenimiento.

FOCUS BLOCKING

Quiz谩s ya est茅s familiarizado con la t茅cnica del Time Blocking.

Podemos a帽adir a eso el enfoque que Cal Newport llama 芦Focus Blocking禄.

El Focus Blocking consiste en marcar en el calendario las horas de trabajo creativo y otorgarles el mismo peso que las horas dedicadas a reuniones: las interrupciones no est谩n permitidas.

Tenemos que empezar con bloques peque帽os e ir ampliando poco a poco.

No podemos admitir ni la m谩s m铆nima interrupci贸n.

Para eso, es mejor quitar las notificaciones y el acceso a internet.

Cuando es posible, lo mejor ser铆a poder trabajar con papel y l谩piz para evitar las distracciones de internet y trabajar en un lugar dedicado espec铆ficamente para estos trabajos sin distracciones. Adem谩s, es conveniente trabajar en una tarea espec铆fica identificada de forma previa.

Tenemos que convencer nuestra mente de que no est谩 permitida ni la m谩s m铆nima distracci贸n.

Si miramos Facebook o Instagram aunque solo por unos minutos, deber铆amos cancelar la sesi贸n e intentarlo en otro momento.

EL MITO DEL MULTITASKING

El multitasking no existe.

S贸lo se pueden hacer dos cosas a la vez si una de las dos es realmente autom谩tica, como por ejemplo caminar.

De lo contrario, no estar谩s haciendo multitasking sino simplemente task switching, pasando de una tarea a otra. En este caso, la bajada de la productividad es asegurada.

Resistir a la tentaci贸n de mirar el m贸vil o el correo merma nuestra concentraci贸n y fuerza de voluntad.

La 煤nica alternativa real que tenemos es la de eliminar las tentaciones de ra铆z.

Para poder pasar a otra tarea, deber铆amos llegar primero a un punto donde no nos queda nada pendiente. De lo contrario nuestro cerebro seguir铆a d谩ndole vueltas, mermando nuestra capacidad de atenci贸n y productividad. Es lo que se conoce como 芦attentional residue effect.

Para no perder el foco y evitar las tentaciones del multitasking, es 煤til tener constancia de nuestros avances.

El problema es que en el trabajo digital a veces esto es complicado: si estamos trabajando en un texto, siempre tendremos delante nuestro la versi贸n actual, y eso hace que sea dif铆cil visualizar los avances.

Tendremos entonces que establecer nuestros propios 芦indicadores de progreso禄. Por ejemplo, podr铆amos empezar cada d铆a una versi贸n nueva del mismo documento.

SOCIAL MEDIA MINDFULNESS

Tenemos a menudo la tentaci贸n de ojear las redes sociales para desconectar un rato.

Cuando lo hacemos, a veces nos despertarnos del trance media hora despu茅s 鈥 o m谩s 鈥 sin saber muy bien c贸mo hemos acabado all铆.

Es dif铆cil resistir a la tentaci贸n: es m谩s fuerte el miedo a perdernos algo (FOMO) y el mono de un buen chute de endorfinas鈥 Los impulsos a resistir son muchos.

Para luchar contra eso podemos acercarnos a las redes con mindfulness: tenemos que darnos cuenta de las razones por las cuales estamos a punto de enchufarnos, y decidir de antemano qu茅 queremos lograr. Si navegamos sin un objetivo, es m谩s f谩cil correr el riesgo de quedarnos atrapados.

Tambi茅n puede ser conveniente seleccionar con cuidado a quienes seguimos en las redes: estamos dejando que esas personas entren en nuestro cerebro y modifiquen nuestros pensamientos.

El smartphone en manos de malos jefes y malos compa帽eros es c贸mo una correa electr贸nica.

Nos hace perder la distinci贸n entre lo importante y lo urgente y lo importante: todo parece urgente.

Y cuando elegimos dedicar nuestro tiempo en lo urgente, estamos dando m谩s importancia a las prioridades de otras personas en lugar que las nuestras.

Ocuparse de esas tareas urgentes es el camino m谩s f谩cil.

Y el camino m谩s f谩cil siempre es una trampa.

C脫MO IMPULSAR TU CREATIVIDAD Y SUPERAR BLOQUEOS

Es imposible ser creativo y superar problemas exclusivamente a base de fuerza de voluntad.

Es por eso que es importante configurar una rutina para salirse de la rutina, trabajar en proyectos personales por simple diversi贸n, callar nuestro cr铆tico interior y las tendencias al perfeccionismo.

Muchos de los que tienen un trabajo creativo trabajan para clientes o empresas para ganarse un sueldo.

El problema es que en ese papel s贸lo utilizamos una parte de nuestras posibilidades creativas.

Para ir m谩s all谩, es fundamental trabajar para la audiencia m谩s importante: nosotros mismos.

No esperemos que nuestro trabajo para otros satisfaga todos nuestros deseos creativos: eso no va a ocurrir.

LA CREACI脫N INNECESARIA

Para satisfacer nuestras aspiraciones creativas necesitamos la Creaci贸n Innecesaria.

La Creaci贸n Innecesaria nos permite:

  • Tener la libertad de experimentar nuevas posibilidades
  • Tomar riesgos
  • Desarrollar nuevas habilidades (esto puede ser dif铆cil en el trabajo remunerado donde suelen pagar para obtener resultados predecibles)
  • Lograr tener una voz propia (la presi贸n del mundo corporativo nos empuja a mirar lo que est谩n haciendo otros en lugar de buscar caminos personales)

Dedicar tiempo a un proyecto personal parece una elecci贸n poco eficiente porque de hecho, es una elecci贸n ineficiente.

Sin embargo, cada elecci贸n que hagas tiene un coste de oportunidad.

Consideremos por lo tanto cu谩l puede ser el coste de vivir nuestra vida eligiendo el pragmatismo: podemos gastar nuestro tiempo satisfaciendo las expectativas de los dem谩s en lugar de avanzar en el descubrimiento de nuestras capacidades creativas.

Si queremos empezar un side project, deber铆amos hacerle sitio: lo mejor ser铆a agendarlo en nuestro calendario. De lo contrario, tendremos la tentaci贸n, cuando tengamos un rato de tiempo, de procrastinar y hacer otras tareas m谩s f谩ciles.

Necesitamos tomar conciencia:

A menudo no tenemos tiempo porque es m谩s conveniente no tenerlo. Quiz谩s no queramos desafiarnos a nosotros mismos禄
Stefan Stegmeister

El Arte de la Discusi贸n Productiva

驴T煤 y tu pareja pelean sobre las mismas cosas una y otra vez? 驴Eres la clase de persona que evade los conflictos? De cualquier modo, no has aprendido el arte de la discusi贸n productiva. La pelea no siempre tiene que ser mala. Si lo haces bien, pelear puede realmente unir m谩s a ti y a tu pareja. Por lo tanto, 驴c贸mo tienes una discusi贸n productiva? Prep谩rate para aprender todo sobre el arte del desacuerdo productivo.聽

El Arte De Pelear

Tener una pelea es como sacar la malezas en tu jard铆n. No importa que frecuente tratas de liberarte de ellas, siempre vuelven. Es por eso que la mayor铆a de las peleas que tenemos son improductivas: no se centran en las causas ra铆ces de las peleas, sino solo en el conflicto superficial. 

Si podemos aprender a tener peleas productivas podemos cambiar nuestras vidas diarias para mejor. Nos sentimos m谩s seguros, aprendemos m谩s sobre el mundo a nuestro alrededor, nos acercamos a la gente que por lo general peleamos y desarrollamos un pensamiento colaborativo.

Antes de mirar como los desacuerdos pueden convertirse en algo productivo aclaremos brevemente tres conceptos err贸neos sobre las peleas:

  1. Las peleas son malas, 
  2. LAs peleas cambian mentes, y
  3. Las peleas finalizan.

Comencemos con el primero, Las peleas son malas. Las peleas nunca son malas sino que pueden ser improductivas. 

De hecho una relaci贸n necesita pelea. De acuerdo al investigador de matrimonios el Dr. John Gottman, una relaci贸n debe tener una proporci贸n de 5:1 encuentros positivos y negativos. Tener solo encuentros positivos significa que no hay suficiente comunicaci贸n en la relaci贸n. 

La gente es mas feliz y los grupos funcionan mejor cuando el flujo de desacuerdos necesatios es abierto y tienen una oportunidad honesta de ser escuchados. 

Observado el segundo concepto err贸neo: las peleas cambian las mentes. Este tema se refiere a lo que es una pelea. Una pelea es una diferencia inaceptable entre dos perspectivas. Muchos deciden que el modo m谩s f谩cil de resolver un conflicto es cambiando la mente de la otra persona. Con frecuencia cuando tratamos de hacerlo sucede lo contrario, la otra persona clava el pu帽al mucho m谩s profundo.

Imagina que durante horas tu jefe te dice que tienes que abstenerse del alcohol y los cigarrillos para tener una cabeza clara para el trabajo. Si estos son vicios comunes para tii, las oportunidades son que vas a complacerlo incluso m谩s de lo que t铆picamente lo har铆as, verdad? Eso Benson lo denomina el efecto backfire.鈥 Para tener una pelea productiva es importante comprender que la 煤nica mente que puedes cambiar es la propia. 

El concepto err贸neo final es que las peleas finalizan. No es verdad. De hecho por lo general tienen ra铆ces profundas y volver谩n una y otra vez es por eso que es 煤til mirar cu谩les son las peleas m谩s comunes 

Tres Reinos De Desacuerdos

Existen tres reinos de desacuerdos: la cabeza (que es verdadero? ), el coraz贸n (lo que es significativo?) y las manos (Lo que es 煤til?)/ Para tener un desacuerdo productivo pregunta a tu pareja de conversaci贸n si est谩s peleando sobre que es verdadero, que es significativo y que es 煤til. 

Una discusi贸n en el reino de la cabeza es sobre la pregunta 驴Que es verdad?, estos desacuerdos no pueden solucionarse con informaci贸n, datos y evidencia. Una discusi贸n en este campo puede ser sobre quien mira mas tu, por ejemplo y puede ser f谩cilmente contestado registrando las horas de esto. 

Una discusi贸n en el mundo del coraz贸n se refiere a la pregunta que es significativa? Esto puede ser un conflicto sobre preferencias, valores y gustos personales. Dicho conflicto puede ser sobre si un show de tv vale la pena ser visto o no por ejemplo. 

Finalmente, una discusi贸n en el mundo de las manos se refiere a que es 煤til> Este tipo de clase de conflictos puede ser solo resuelto viendo c贸mo las cosas juegan un papel en el futuro o por un estr茅s. Por ejemplo, esto puede ser una discusi贸n sobre c贸mo mejor equilibrar el tiempo de la tv con otras obligaciones.

Con frecuencia, discutimos sobre niveles m煤ltiples por lo tanto preguntamos primero si hace mucho m谩s f谩cil resolver un conflicto dirigiendose un tema despu茅s de otro. Pero existe un cuarto marco. A veces no discutimos con otra persona, realmente proyectamos nuestros temores y ansiedades. Cuando discutimos con alguien, siempre asegurate que es la persona con la que est谩s en desacuerdo y no tu propia imaginaci贸n, realmente somos muy malos en comprender lo qu茅 otra persona siente o piensa!

Ansiedad

Muchas peleas tienen su ra铆z en un destello de ansiedad. Por ejemplo de un Many arguments are rooted in a spark of anxiety. Por ejemplo una foto de bagels posteada en  Twitter. En la foto las bagels fueron cortadas verticalmente como una rebanada de pan no horizontalmente. Los comentarios revelaron la ansiedad que la foto hab铆a disparado en mucha gente desde 鈥淥ficial , quiero declarar un crimen a Quien te dijo que eso estaba bien? 

{Por supuesto, sentir algo de ansiedad o disonancia cognitiva con la foto del bagel no tiene consecuencias serias en el mundo real. Pero sentimos ansiedad cada vez que nuestros valores y perspectivas se encuentran con alguien o algo que las cuestiona. La ansiedad nos alerta que algo importante para nosotros est谩 siendo amenazado. 

Sentir ansiedad es 煤til y normal/. pero tener una discusi贸n de la ansiedad crea encuentros improductivos. Por lo tanto existen 4 modos en los cuales pueden detener tu ansiedad de caer en una discusi贸n:

  1. Respira y da un paso atr谩s. 驴Est谩s ansioso sobre lo que es verdadero, lo que es significativo o lo que es 煤til? 
  2. Luego pregunta a la otra parte la misma pregunta, 
  3. Ambas partes deben narrar y explicar lo que los pone ansiosos. Ver si esto lleva a nuevas conexiones entre ambos. 
  4. Ver si uno de los dos desea conversar sobre lo que lo pone ansioso al otro. 驴Qui茅n necesita m谩s ayuda para resolver su conflicto interno? 
  5. Cuando consideres quien es m谩s afectado por el conflicto es 煤til considerar la desacuerdo cognitivo. En el caso de los bagels cortados verticalmente por ejemplo los neoyorquinos pueden tener un desacuerdo cognitivo fuerte ya que ver铆an esto como una violacion de sus amadas bagels. La gente en los grupos neutrales se sentir铆an poco a nada de diferencia cognitiva y la gente viviendo en St Lous probablemente no sentirian absolutamente nada de discordancia cognitiva ya que las bagels cortadas verticalmente son una tendencia local all铆. 

Las Voces en tu cabeza

Cuando nuestra ansiedad es disparada tenemos unas pocas reacciones de propuesta  disponibles. Piensa sobre un tema candente como las vacunas. Si crees que todos deber铆an vacunarse o no, probablemente tiendes a demonizar a la gente que represente el otro lado de tu argumento. 

Esto sucede con frecuencia en peleas pero 驴por qu茅 nuestros cerebros recurren a esta t茅cnica? El economista y psic贸logo Daniel Kahneman llama esto un pensamiento r谩pido y lento. De acuerdo a elm tenemos dos sistemas cerebrales:

El sistema 1 es el lado r谩pido, instintivo y emocional del cerebro mientras que

El sistema 2 es el lento, racional y deliberado. 

Ya que el sistema 1 es m谩s r谩pido, define nuestras reacciones. Las voces internas se elevan e instintivamente nos dicen qu茅 hacer. 

Si aprendemos a escuchar aquellas voces internas, podemos aprender a dar un paso atr谩s desde una discusi贸n y dar una respuesta m谩s medida que proviene del Sistema 2. Tenemos cuatro voces internas: la voz del poder, de la raz贸n de la evasi贸n y de la posibilidad. 

Las primeras tres vienen de nuestra cultura. La voz del poder es la principal de todas: quiere resolver conflictos cerr谩ndose, diciendo cosas como :mi modo o la autov铆a. La voz de la raz贸n, sin embargo busca dar una raz贸n para cerrar una discusi贸n,, diciendo cosas como 鈥減ruebalo o eso no agrega nada. Finalmente la voz de la evasi贸n trata de escapar de una discusi贸n diciendo cosas como sacame de esta: 

Todas esas tres voces pueden detener una discusi贸n a corto plazo. Pero como las malezas la discusi贸n va a resurgir eventualmente. Es por eso que para solucionar de manera productiva un conflicto necesitas escuchar a la voz de la posibilidad que pregunta 鈥溌縬u茅 me estoy perdiendo? Fomenta una conversaci贸n significativa con tu pareja y puede finalizar el conflicto de una vez por todas. 

Hacer esta pregunta puede reunir ideas opuestas, si piensas en el debate sobre la vacunaci贸n, ambos lados podr铆as pedir razones porque la otra persona piensa del modo que ellos lo hace, y luego utilizar esta informaci贸n como un punto de comienzo para construir un argumento.

Desarrolla bias honestas

Para navegar de manera exitosa por nuestro mundo alrededor confiamos en trucos cerebrales o sesgos cognitivos. Los dos m谩s comunes que nuestro sistema de pensamiento del sistema 1 despliega son la disponibilidad heur铆stica y el favoritismo en grupo.

La capacidad heur铆stica significa que tomamos decisiones basadas en lo que viene a la mente lo m谩s f谩cil. Si ponemos esto en el contexto de las interacciones humanas esto significa que las opciones que parecen obvias para nosotros pueden ser m谩s f谩ciles para otras personas. Esto puede llevarnos a pensar que la otra persona intencionalmente evito la mejor opci贸n y esto podr铆a disparar un conflicto.

El favoritismo en grupo significa que damos m谩s peso a las opiniones de la gente cuando pertenecen al mismo grupo que nosotros, y sea que es porque votaron por la misma persona o apoyan el mismo club de f煤tbol;, Tambi茅n tendemos a vernos a nosotro mismos y aquellos fuera de nuestro grupo como transparentes y simples. 

Obviamente, estos sesgos alteran nuestro juicio y no conducen a un argumento productivo. Sin embargo, tristemente no podemos apagar las. 

Necesitamos estos sesgos para procesar las cantidades de informaci贸n que somos confrontados a diario por lo tanto la 煤nica cosa que podemos hacer es aceptar que tenemos aquellas sesgos y comenzar a reconocerlos. S贸lo entonces puedes comenzar a desarrollar sesgos honestos. 

As铆 de importante como atravesar un conflicto lo m谩s imparcial posible es conducir un conflicto en un entorno neutral. Necesitas un c贸digo claro de conducta para evitar cosas como llamar un nombre, y necesitas estar en el mismo nivel de poder como tu pareja de conflicto conflicto 

Notas Finales

Las peleas no tienen que ser malas o desagradables. Una vez que aprendes a aceptar tus propias imparcialidades y alejarte del aspecto emocional de una pelea, puedes utilizar estas t茅cnicas para comprender mejor y empatizar con tu oponente. 

Nadie puede evadir un conflicto pero todos podemos aprender c贸mo discutir mejor y movernos de manera productiva. 

La pr贸xima vez que te enojas durante una pelea respira hondo y preguntare: 驴es este conflicto sobre mi cabeza, mi manos o el coraz贸n? 

Lleve sus modelos de IA de Google Vertex a la nube de datos 鈽侊笍

Lleve sus modelos de IA de Google Vertex a la nube de datos 鈽侊笍

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.

Lleve sus modelos de IA de Google Vertex a la nube de datos | Blog de desarrolladores de Salesforce

Model Builder, parte de Einstein Copilot Studio, es una plataforma f谩cil de usar que le permite crear y poner en funcionamiento modelos de IA en Salesforce. Model Builder es capaz de integrarse profundamente con plataformas de IA externas, como Google Cloud Vertex AI y Amazon SageMaker, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos de Salesforce Data Cloud.

Salesforce anunci贸 previamente el lanzamiento de Model Builder con Amazon SageMaker en agosto de 2023. Hoy, nos complace anunciar que los modelos de Google Vertex AI ahora est谩n disponibles de forma general en Model Builder. Como parte de esta 煤ltima versi贸n, Model Builder ahora admite la autenticaci贸n mediante las credenciales de la cuenta del servicio de Google, as铆 como la ingesti贸n de datos en streaming.

Estamos entusiasmados con esta nueva innovaci贸n de la asociaci贸n ampliada de Salesforce con Google Cloud, que consideramos que tiene un enorme potencial para los desarrolladores. Como enfatiz贸 Kaushal Kurapati, vicepresidente senior de Producto, IA y B煤squeda de Salesforce:

鈥淐on esta asociaci贸n con Google Cloud, Model Builder ofrece una manera conveniente para que los clientes aprovechen sus modelos Vertex AI en sus fuentes de datos, flujos de trabajo y aplicaciones de Salesforce y brinden experiencias personalizadas, continuando con la visi贸n de construir una plataforma abierta de Salesforce AI con un ecosistema modelo robusto鈥.

驴Qu茅 es la capacidad de traer su propio modelo (BYOM)?

Model Builder le permite conectarse f谩cilmente a modelos predictivos externos, como los de un proveedor de modelos externo o su propio modelo propietario, y utilizarlos en el flujo de trabajo en Salesforce. Por ejemplo, puede utilizar modelos predictivos para calificar clientes potenciales, recomendar productos o detectar la deserci贸n.

La capacidad BYOM de Model Builder le permite integrar f谩cilmente su modelo con Data Cloud para acceder a predicciones e informaci贸n en tiempo real, y utilizar esa informaci贸n de varias maneras, como enriquecer perfiles de clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales.

驴Por qu茅 traer su propio modelo a Data Cloud?

Estos son algunos de los beneficios de usar un modelo de Google Cloud Vertex AI con datos de Data Cloud en Model Builder:

  • Le brinda acceso a datos altamente seleccionados, armonizados y casi en tiempo real en Customer 360, en Vertex AI
  • Elimina trabajos de ETL tediosos, costosos y propensos a errores; El enfoque de federaci贸n de copia cero para los datos reduce los gastos generales de gesti贸n de copias de datos y los costos de almacenamiento, y mejora la eficiencia.
  • Le permite crear, entrenar, probar y ajustar modelos r谩pidamente en una 煤nica plataforma y conectarlos con Data Cloud.
  • Admite la ingesta de datos en tiempo real, streaming y por lotes para impulsar resultados de IA relevantes
  • Aprovecha las predicciones de Vertex AI para automatizar procesos comerciales en Salesforce Data Cloud con Flow y Apex

Para obtener m谩s informaci贸n, mire nuestro breve v铆deo .

Flujo de trabajo de la aplicaci贸n para usar Model Builder con Vertex AI de Google Cloud

En esta secci贸n, analizamos brevemente el flujo de trabajo de la aplicaci贸n utilizando Model Builder.

En el flujo de trabajo que se muestra arriba, el conector Python brinda a Vertex AI acceso seguro a los objetos de Salesforce Data Cloud. Despu茅s de la autenticaci贸n, los especialistas en datos pueden explorar y preparar datos, y realizar tareas de ingenier铆a de caracter铆sticas para el desarrollo y la inferencia de modelos de IA utilizando la plataforma Vertex AI.

Tenga en cuenta que si se realiza una autenticaci贸n basada en clave API, se necesita una puerta de enlace API delante del punto final de Vertex AI.

NUEVA caracter铆stica: Autenticaci贸n mediante credenciales de cuenta de servicio de Google

La versi贸n m谩s reciente de Model Builder ahora permite utilizar las credenciales de la cuenta del servicio de Google para la autenticaci贸n. Esto se suma a los m茅todos de autenticaci贸n JWT y basados en claves existentes. Para utilizar un flujo de token al portador JWT, ingrese su correo electr贸nico de la cuenta de servicio, ID de clave privada y clave privada de su cuenta de Google Cloud como se muestra a continuaci贸n.

NUEVA caracter铆stica: Ingesti贸n de datos en streaming

La 煤ltima versi贸n de Model Builder le permite activar autom谩ticamente una inferencia cuando los datos asignados a la variable de entrada del modelo se cambian en el objeto del modelo de datos de origen (DMO). Tambi茅n ofrecemos inferencia por lotes, pero debe hacer clic en el bot贸n Actualizar manualmente para activar nuevas inferencias. Con la inferencia de transmisi贸n, las nuevas inferencias se activan solo cuando hay un cambio en la variable de entrada.

Para habilitar la inferencia de transmisi贸n, deber谩 marcar la casilla S铆 en 驴Actualizar modelo cuando se actualizan los datos? Como se muestra abajo.

Tambi茅n puede especificar cu谩les de las funciones de entrada deben actualizarse seleccionando S铆 en el men煤 desplegable Actualizar puntuaci贸n .

C贸mo consumir predicciones de tu modelo en Salesforce

Hay dos formas de consumir predicciones: usar acciones invocables en Flow y Apex, o usar Query API para realizar an谩lisis ad hoc.

Utilice Flow Builder y Apex para obtener predicciones

A continuaci贸n se muestra un ejemplo de c贸mo utilizar acciones invocables para modelos de Model Builder en Flow. Una vez que tenga un modelo activado en Model Builder, seleccione Nueva acci贸n 鈫 Nube de datos y luego haga clic en el nombre del modelo deseado.

La captura de pantalla siguiente muestra un flujo de ejemplo que utiliza una acci贸n invocable para crear recomendaciones de productos para un cliente. Aqu铆, un administrador usa Flow Builder para recorrer los registros individuales unificados y verificar si se realiz贸 una compra reciente. Si se realiz贸 la compra, la acci贸n invocable obtiene la inferencia del modelo de Model Builder y recomienda el siguiente mejor producto a un cliente.

Esta acci贸n invocable tambi茅n se puede invocar en Apex. Vea el ejemplo a continuaci贸n.

<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('param_variable_1', '10');
action.setInvocationParameter('param_variable_2', '20');
action.setInvocationParameter('param_variable_3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} 芦>

Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .

Utilice Query API para obtener predicciones

Query API es otra forma r谩pida de obtener puntuaciones de predicci贸n para datos que residen en Data Cloud. Con Query API, puede utilizar el punto final de inferencia y llamar a funciones de predicci贸n para probar el punto final. Vea el ejemplo a continuaci贸n.

Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consulte la Ayuda de Salesforce .

Conclusi贸n

Model Builder es una plataforma de IA f谩cil de usar que permite a los equipos de ingenier铆a y ciencia de datos crear, entrenar e implementar modelos de IA utilizando plataformas y datos externos en Data Cloud. Las plataformas externas incluyen Google Cloud Vertex AI, Amazon SageMaker y otros servicios de IA predictivos o generativos. Una vez que est茅 listo, podr谩 utilizar los modelos de IA en tiempo real para impulsar cualquier aplicaci贸n de ventas, servicios, marketing, comercio y otras aplicaciones en Salesforce.

Para obtener m谩s informaci贸n sobre c贸mo puede mejorar su estrategia de IA utilizando Model Builder, asista a nuestro seminario web gratuito con expertos en IA de Salesforce y Google Cloud.

Recursos adicionales

Sobre los autores

Daryl Martis es el director de producto de Salesforce de Einstein. Tiene m谩s de 10 a帽os de experiencia en planificaci贸n, creaci贸n, lanzamiento y gesti贸n de soluciones de clase mundial para clientes empresariales, incluidas AI/ML y soluciones en la nube. S铆guelo en LinkedIn o Twitter .

Ashish Thapliyal es director s茅nior de producto en Salesforce y actualmente dirige varias 谩reas de productos de la plataforma Einstein AI. S铆guelo en LinkedIn o Twitter .

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

Desmitificando Light DOM y sus casos de uso 鈽侊笍

Desmitificando Light DOM y sus casos de uso 鈽侊笍

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.

Desmitificando Light DOM y sus casos de uso | Blog de desarrolladores de Salesforce

Light DOM es una funci贸n de Lightning Web Components que ha estado disponible de forma general en Lightning Experience, Experience Cloud, LWC OSS (c贸digo abierto) y todas las versiones de la aplicaci贸n m贸vil Salesforce desde Summer '23 .

Los componentes web Lightning, de forma predeterminada, se representan en DOM oculto , lo que proporciona una encapsulaci贸n y seguridad s贸lidas para sus componentes. Sin embargo, al mismo tiempo, evita el estilo global y bloquea las integraciones de terceros que introspeccionan el interior de sus componentes. Light DOM es una caracter铆stica que se puede habilitar de forma granular en componentes seleccionados, de modo que Shadow DOM no los afecte.

驴C贸mo funciona el DOM ligero?

Usemos un componente web Lightning muy simple como ejemplo.

holaCodey.html

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

Hello Codey!

芦>

holaCodey.js

En el ejemplo anterior, el DOM oculto predeterminado del componente evita que una regla CSS definida en el componente principal o el host alcance el elemento <p> . Adem谩s, no permite que el c贸digo JavaScript externo al componente consulte el elemento <p> mediante las API de consulta del navegador.

Para activar el DOM ligero para un componente, debe especificar el renderMode ligero en su archivo JavaScript y la directiva de plantilla lwc:render-mode en la etiqueta <template> del componente. Ambos cambios son necesarios debido a la forma en que se compilan los componentes web Lightning.

holaCodey.html

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

Hello Codey!

芦>

holaCodey.js

Cuando activa el DOM claro en un componente, el marcado del componente se adjunta al elemento anfitri贸n en lugar de a su 谩rbol de sombra. Luego puede acceder al marcado desde otros componentes de la p谩gina como cualquier otro contenido en el host del documento que no est茅 protegido por Shadow DOM.

Los componentes DOM ligeros permiten el uso de API de consulta de navegador est谩ndar como querySelector y querySelectorAll . En este caso, en lugar de usar this.template.querySelector , debes usar this.querySelector .

holaCodey.js

O m谩s simplemente, a menudo puedes usar la directiva lwc:ref en ambos casos (componentes DOM sombreados y claros) y omitir el querySelector .

holaCodey.html

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

Hello Codey!

芦>

holaCodey.js

Cu谩ndo usarlo y cu谩ndo no usarlo

Light DOM es una opci贸n para cada componente individual. Sus efectos no se aplicar谩n a otros componentes a menos que tambi茅n opten por participar. Tenga en cuenta que los componentes base siempre se representan en DOM oculto.

Recomendamos habilitar DOM ligero si tiene bibliotecas que necesitan acceder a los componentes internos mediante API de consulta de navegador est谩ndar, aplicar estilos globales o necesita m谩s flexibilidad para implementar las mejores pr谩cticas de accesibilidad, siempre y cuando el componente no exponga datos confidenciales. Cubriremos estos casos de uso con m谩s profundidad en la siguiente secci贸n.

No recomendamos habilitar DOM ligero para un componente si ese componente aparece o funciona con datos confidenciales. El uso de DOM ligero elimina la encapsulaci贸n de DOM en sombra y expone los componentes al raspado de DOM. Por lo tanto, tenga en cuenta esta importante consideraci贸n.

Casos de uso habilitados por DOM ligero

Light DOM permite varios casos de uso que anteriormente no eran compatibles.

1) Soporte de bibliotecas que necesitan acceso a las partes internas de un componente

Light DOM permite el uso de bibliotecas que necesitan acceso a los componentes internos. Un buen ejemplo de esto son las bibliotecas de an谩lisis utilizadas en los sitios de Experience Cloud, como Google Analytics, ya que necesitan acceso a los componentes internos para obtener mejores resultados.

Podemos probar este caso de uso, incluido el componente helloCodey anterior, en un componente principal mascotChanger de la siguiente manera.

mascotChanger.html

<dx-code-block title language="html" code-block="
芦>

mascotChanger.js

Tenga en cuenta que, aunque el p谩rrafo consultado pertenece al componente helloCodey , podemos acceder a 茅l con this.template.querySelector , porque pertenece al DOM ligero secundario. Sin embargo, si el componente helloCodey no tuviera habilitado el DOM ligero, querySelector habr铆a devuelto null .

Tambi茅n puede acceder a los componentes internos del DOM ligero desde un script que se carga como un recurso est谩tico en la p谩gina, siempre y cuando todos los componentes ancestros est茅n habilitados para el DOM ligero. Por ejemplo, en un sitio LWR Experience Cloud, que es DOM completamente ligero, puede agregar un recurso est谩tico de JavaScript que encuentre los componentes internos helloCodey de la siguiente manera.

myJSResource.js

2) Implementaci贸n m谩s sencilla de componentes profundamente anidados

Otro ejemplo en el que esto puede resultar 煤til es implementar componentes complejos y profundamente anidados. En ese caso, es posible que prefiera tener un 煤nico componente DOM de sombra en el nivel superior y componentes DOM claros dentro para evitar gastos generales. Por ejemplo, un componente de tabla de datos personalizado puede tener solo un gran componente DOM de sombra alrededor de todo, en lugar de una sombra para cada fila y celda de la tabla.

Esta implementaci贸n facilita la consulta de sus propios elementos desde el componente de nivel superior de su jerarqu铆a y tambi茅n la implementaci贸n de la accesibilidad. Adem谩s, hay una ligera mejora en el rendimiento en algunos casos de uso al usar DOM claro sobre DOM sombreado, lo que se debe principalmente a la sobrecarga de simplemente crear nodos de sombra adicionales.

3) Estilo global

Light DOM tambi茅n facilita el estilo global, ya que permite que los estilos CSS caigan en cascada en el marcado del componente. Por ejemplo, un componente DOM ligero puede establecer un estilo que se carga y luego se aplica una vez para todos los componentes DOM ligeros de la p谩gina. La inyecci贸n de estilos globales a trav茅s de DOM ligero solo se admite en sitios de Experience Cloud, editor de contenido CMS o Sales Enablement.

Por ejemplo, definamos un componente colorChanger de la siguiente manera.

colorChanger.html

<dx-code-block title language="html" code-block="
芦>

colorChanger.js

colorChanger.css

El color de fondo azul se aplicar谩 a los p谩rrafos de todas las instancias del componente helloCodey en la p谩gina, ya que est谩 habilitado para DOM claro.

En la mayor铆a de los casos, no querr谩s que tu estilo se filtre a otros componentes. Eso todav铆a es posible para componentes DOM ligeros. Solo necesita colocar esas reglas de estilo en un archivo *.scoped.css , para que tengan como alcance el componente DOM ligero. El CSS con alcance est谩 escrito exactamente igual que el CSS normal, pero solo se aplicar谩 a ese componente sin filtrarse.

Tenga en cuenta que si las reglas de estilo se cargan globalmente como recursos est谩ticos en una p谩gina de Lightning Experience o un sitio de Experience Cloud, se les quitar谩 el alcance y se aplicar谩n tanto a los componentes DOM claros como tambi茅n a los componentes DOM de sombra, ya que la sombra sint茅tica no evitar谩 que se filtren. Esta es una limitaci贸n que se solucionar谩 una vez que la sombra nativa sea totalmente compatible (actualmente en Developer Preview ). Cuando la sombra nativa est谩 habilitada, solo los componentes habilitados para DOM claro heredar谩n los estilos globales.

4) Implementaci贸n m谩s flexible de las mejores pr谩cticas de accesibilidad

Light DOM permite que un componente haga referencia a la i d un elemento que vive en otro componente separado habilitado para Light DOM. Esto le permite vincular dos elementos utilizando los atributos i d y aria , lo que le otorga flexibilidad adicional para implementar las mejores pr谩cticas de accesibilidad en sus proyectos. Mejoremos nuestro componente mascotChanger para demostrar esto.

mascotChanger.html

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

芦>

mascotChanger.js

mascotaNombreInput.html

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

芦>

mascotaNombreEtiqueta.html

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

芦>

Tenga en cuenta que Salesforce est谩 trabajando actualmente con el W3C para agregar nuevos est谩ndares, de modo que el DOM oculto nativo pueda participar en estos patrones de accesibilidad. Esto significa que, en el futuro, este caso de uso ligero de DOM no ser谩 necesario. Como parte de nuestros esfuerzos de accesibilidad, tambi茅n patrocinamos a Igalia para implementar parcialmente ARIA Element Reflection , que ahora es totalmente compatible con Safari y parcialmente con Chrome. Si quieres saber m谩s sobre este tema, echa un vistazo a nuestra propuesta cross-root-aria , el repositorio para el grupo de trabajo Modelo de objetos de accesibilidad .

La siguiente tabla resume los casos de uso y d贸nde se admiten.

Experiencia en la nube Experiencia rel谩mpago Aplicaciones m贸viles de Salesforce LWC OSS/LWR en Node.js*
Soporte de bibliotecas que necesitan acceso a las partes internas de los componentes. S铆 S铆 S铆 S铆
Implementaci贸n m谩s sencilla de componentes profundamente anidados S铆 S铆 S铆 S铆
Estilo global S铆 No No S铆
Implementaci贸n m谩s flexible de las mejores pr谩cticas de accesibilidad S铆 S铆 S铆 S铆

*Si se utiliza DOM de sombra nativo en lugar de sombra sint茅tica . La sombra nativa es la opci贸n predeterminada para LWC OSS y LWR en Node.js.

Otras Consideraciones

Cuando se trabaja con DOM ligero, hay algunas consideraciones adicionales a tener en cuenta, entre ellas:

  • Los eventos no se reorientan con DOM ligero. Lea m谩s en la gu铆a para desarrolladores .
  • No hay soporte de navegador para espacios fuera del DOM oculto, por lo que se emula. Esto implica que algunas funciones, como los enlaces de ciclo de vida, no est谩n disponibles en ellos. Eche un vistazo a la documentaci贸n para saber m谩s.
  • Por ahora, los componentes ligeros habilitados para DOM no se pueden empaquetar.

Conclusi贸n

En esta publicaci贸n de blog, revisamos qu茅 es el DOM ligero, los casos de uso que permite y las consideraciones a tener en cuenta para decidir qu茅 componentes habilitar谩n la funci贸n. Todos los ejemplos que se muestran en este blog se encuentran en un repositorio de GitHub que puedes probar t煤 mismo.

Para obtener m谩s informaci贸n sobre DOM ligero en la plataforma Salesforce, lea la documentaci贸n o, si est谩 trabajando fuera de la plataforma, lea la documentaci贸n OSS .

Si decide seguir adelante y transformar sus componentes DOM ocultos en componentes DOM claros, consulte esta herramienta creada por Salesforce Engineering para simplificar la migraci贸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 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

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

Preparaci贸n para el examen de arquitecto de datos certificado de Salesforce

Preparaci贸n para el examen de arquitecto de datos certificado de Salesforce

Ha estado en mi mente por un tiempo, ya que para m铆 esta certificaci贸n era la 煤ltima que me faltaba por adquirir en la ruta de Arquitecto de Aplicaciones (da la casualidad de que tambi茅n tengo el certificado "opcional" de Experience Cloud).

Tener muchas cosas sucediendo en este momento y anhelar algo de espacio mental fue el detonante que el otro d铆a me hizo decir: 鈥淏ueno, tambi茅n puedo intentarlo; Ojal谩 se me quite de la cabeza de una vez por todas鈥. Aprender铆a de cualquier manera, 隆eso es seguro!

Y esto pas贸鈥

隆Uf!

Algunas personas se han acercado para preguntar sobre la preparaci贸n para el examen y la orientaci贸n, por eso escribo esto aqu铆 para tratar de ayudar a otros.

El contexto es clave

Cualquier certificaci贸n de examen que hago est谩 dentro de contexto, con eso me refiero a haber trabajado ya durante alg煤n tiempo en el producto en cuesti贸n.

"Somos lo que hacemos repetidamente. La excelencia, entonces, no es un acto sino un h谩bito." -Arist贸teles

As铆 es como funciona mi cerebro; de lo contrario, lo encuentro como una actividad abstracta que depende principalmente de la memoria m谩s que de la experiencia. Y bueno, despu茅s de todo, soy un Scrum Master, 隆el empirismo existe!

"Salesforce recomienda encarecidamente una combinaci贸n de experiencia laboral, asistencia a cursos y autoestudio para maximizar sus posibilidades de aprobar el examen". 鈥擟omienzo del sendero

Gu铆a de examen

La oraci贸n anterior proviene de la gu铆a del examen; sol铆a ser un PDF, pero ahora el contenido est谩 integrado en Trailhead.

La gu铆a del examen es SIEMPRE tu punto de partida, me sorprende cu谩nta gente no usa este recurso (隆algunos ni siquiera saben que existe! 隆驴C贸mo?!).

La gu铆a del examen est谩 dise帽ada para ayudarlo a evaluar SI est谩 listo para completar con 茅xito el examen. Y le brinda un desglose de todas las secciones y temas que se cubrir谩n, y tambi茅n de lo que se espera de usted. Por ejemplo en este en particular:

La credencial de Arquitecto de datos certificado de Salesforce est谩 destinada al arquitecto que eval煤a el entorno y los requisitos de la arquitectura; y dise帽a soluciones s贸lidas, escalables y de alto rendimiento en la plataforma Customer 360. El Arquitecto tambi茅n tendr谩 experiencia trabajando con lo siguiente:

  • Modelado de datos y dise帽o de bases de datos
  • Gesti贸n de datos maestros
  • Gesti贸n de datos de Salesforce
  • Dato de governancia
  • Consideraciones sobre grandes vol煤menes de datos
  • Migraci贸n de datos

El arquitecto tiene experiencia en comunicar soluciones y dise帽ar compensaciones a empresas y partes interesadas de TI.

Incluso tienes el esquema del examen donde puedes ampliar cada secci贸n (aqu铆 es donde est谩 lo bueno):

Recursos

驴Mencion茅 la gu铆a del examen?鈥 隆脷sala en serio! https://trailhead.salesforce.com/help?article=Salesforce-Certified-Data-Architect-Exam-Guide

Literalmente cre茅 mi propio documento a partir de 茅l y desglos茅 cada elemento, defin铆 la l贸gica y las consideraciones, escribir y estructurar me ayuda a digerir y reforzar algunos conceptos. Por ejemplo, escrib铆 este art铆culo disponible p煤blicamente para Pardot hace bastantes a帽os, solo para darle una idea.

Hablando de empirismo, en general, mi mejor recurso es… 隆una organizaci贸n de edici贸n para desarrolladores! 隆Donde pruebo todo y m谩s! Practica, practica, practica: soy un poco de la vieja escuela en eso: toma el desglose de la gu铆a de certificados para cada elemento, define la l贸gica y luego juega con ella.

Algunos de los contenidos de este en particular pueden ser un poco m谩s complicados, como grandes vol煤menes de datos, pero afortunadamente he estado en algunos proyectos relevantes incluso recientemente, lo que siempre ayuda. Tambi茅n el a帽o pasado con el Sr. Agente Gill 馃槈

Aunque se escribi贸 hace bastante tiempo, este art铆culo sigue siendo una lectura muy relevante https://developer.salesforce.com/blogs/engineering/2013/06/extracting-large-data-volume-ldv-in-force-com, y que le permitir谩 revisar PK Chunking y Bulk API.

Siguiendo con m谩s contenido de la vieja escuela de "anta帽o", consulte la serie de Extreme Force.com, aqu铆 est谩 la Parte 1: https://developer.salesforce.com/blogs/engineering/2013/02/extreme- carga-de-datos-de-salesforce-parte-1-ajuste-su-modelo-de-datos

Probablemente tambi茅n sugerir铆a ignorar sus patrones de dise帽o de integraci贸n, lo que le ayudar谩 a guiar algunas decisiones de respuesta: https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_intro_overview.htm

Hacer una combinaci贸n de escribirlo yo mismo, probar los conceptos, luego ver algunos videos sobre el mismo concepto y leer m谩s me ayud贸 a mantenerme concentrado.

Consejos

Como sabe, no puedo darle ning煤n detalle, eso ser铆a una violaci贸n de los t茅rminos y condiciones del programa de certificaci贸n y tiene consecuencias graves, tanto para quienes comparten como para quienes utilizan cualquier informaci贸n expuesta del examen.

Lo que te puedo decir es que deber铆as revisar:

  • Cu谩ndo o cu谩ndo no usar Cuentas personales (esa es la vista de Salesforce, por encima de su opini贸n)
  • C贸mo mejorar la calidad de los datos en toda su pila tecnol贸gica
  • Cu谩ndo o cu谩ndo no utilizar Rollups
  • Qu茅 API usar cuando
  • C贸mo manejar grandes vol煤menes de datos (es decir, carga, rendimiento, exportaci贸n, cosas como compartir, bloqueos, etc.)
  • Cu谩ndo o cu谩ndo no utilizar relaciones maestro-detalle
  • Qu茅 tipo de integraci贸n usar y cu谩ndo
  • C贸mo capturar y gestionar metadatos
  • Cu谩ndo y cu谩ndo no utilizar objetos grandes y objetos externos
  • Gesti贸n de datos maestros
  • Gobernanza: cumplimiento y funcionalidad relacionada

Seguramente me he perdido algo, pero eso es lo m谩s importante en este momento. Consulte y trabaje con su gu铆a de examen: https://trailhead.salesforce.com/help?article=Salesforce-Certified-Data-Architect-Exam-Guide

驴Qu茅 est谩s haciendo?

Recuerde tambi茅n: el objetivo no es simplemente aprobar un examen, sino demostrar que ya tiene el conocimiento y la experiencia.

Ahora es tu turno: 驴Para qu茅 certificaci贸n est谩s trabajando? 驴Cu谩l es su enfoque?

隆Cu茅ntanos y etiqu茅tanos para que podamos celebrar contigo!

Seguir leyendo

La gu铆a para desarrolladores de Salesforce para Dreamforce 2023 鈽侊笍

La gu铆a para desarrolladores de Salesforce para Dreamforce 2023 鈽侊笍

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.

La gu铆a del desarrollador de Salesforce para Dreamforce 2023 | Blog de desarrolladores de Salesforce

隆Llamando a todos los desarrolladores de Salesforce! 驴Est谩s listo para experimentar la magia de AI + Datos + CRM en Dreamforce 2023? Hemos preparado una experiencia repleta de tres d铆as como ninguna otra, as铆 que prep谩rate para aprender, conectarte, divertirte y retribuir rodeado de compa帽eros innovadores en la conferencia de tecnolog铆a m谩s grande del mundo.

Sabemos que est谩 contando ansiosamente los d铆as hasta que comience Dreamforce, as铆 que siga leyendo para comenzar a planificar su experiencia Dreamforce perfecta, desde conferencias magistrales hasta sesiones en Developer Track y demostraciones pr谩cticas en acci贸n en Developer Grove.

Vea la 煤ltima tecnolog铆a en la conferencia magistral sobre el futuro del desarrollo

AI + Data + CRM est谩n cambiando r谩pidamente el futuro de los negocios y los desarrolladores est谩n a la vanguardia. 脷nase al presidente y director de ingenier铆a, Srini Tallapragada, y a invitados especiales para aprender todo sobre el futuro del desarrollo y c贸mo puede aprovechar la IA en su trabajo.

Si asistir谩 a Dreamforce en persona, aseg煤rese de agregar la conferencia magistral a su agenda . Si lo seguir谩 desde casa, vea la conferencia magistral completa mientras se transmite en vivo en Salesforce+ .

馃搮 Marque sus calendarios: jueves 14 de septiembre, de 1:30 a 2:20 p. m., hora del Pac铆fico
馃帳 Oradores destacados: Srini Tallapragada, Alba Rivas, Adam White, Kat Holmes, Chris Peterson, Avanthika Ramesh
A帽adir a tu agenda

Descubra los aspectos m谩s destacados de la versi贸n para desarrolladores en Developer Preview Live

Eche un primer vistazo a las principales funciones, herramientas e innovaciones para desarrolladores de la versi贸n Winter '24. Vea demostraciones en vivo de interesantes innovaciones de productos y haga preguntas a nuestros expertos en productos. Hay tantas innovaciones nuevas para los desarrolladores en esta versi贸n que 隆no querr谩s perderte esto!

馃搮 Marque sus calendarios: jueves 14 de septiembre, de 2:30 a 3:30 p. m., hora del Pac铆fico
馃帳 Oradores destacados: Aditya Naag Topalli, Mohith Shrivastava, Ewald Hofman, Danielle Larregui, Greg Whitworth, Akshata Sawant, Sarah Welker
A帽adir a tu agenda

Mejora tus habilidades en la ruta de desarrollador

Developer Track ofrece una combinaci贸n de sesiones de teatro de 20 minutos en Developer Theatre y sesiones de trabajo de 40 minutos. Espere asimilar las mejores pr谩cticas, consejos y mucha inspiraci贸n. 隆Y hay algo para todos, sin importar los temas que te apasionen! Tenemos sesiones para todos los niveles (principiante, intermedio, avanzado) en todas las funciones y temas: IA generativa, nube de datos, DevOps Center, MuleSoft, Code Builder, Apex, AppExchange, Lightning Web Components, Slack, seguridad, accesibilidad y m谩s.

馃搷 Las sesiones de calentamiento se ubicar谩n en todo Trailblazer Forest: en Developer Theatre junto a Developer Grove, Redwood Theatre, Einstein Theatre, Data Cloud Theatre y Olympic Theatre. Las sesiones de trabajo de Developer Track se llevar谩n a cabo en el segundo y tercer piso de Moscone West. Aseg煤rese de consultar su agenda para conocer la ubicaci贸n exacta de las habitaciones.

Para encontrar estas sesiones en el cat谩logo de sesiones de Dreamforce , seleccione Funci贸n en la navegaci贸n izquierda y marque Desarrollador para ver todas las sesiones etiquetadas para desarrolladores.

Algunas sesiones imperdibles para agregar a tu agenda 鉁忥笍

Descubra el poder de Einstein GPT para desarrolladores
Qu茅 esperar: La IA generativa ha arrasado en el mundo de la tecnolog铆a. Conozca las capacidades m谩s recientes de Einstein GPT y c贸mo los desarrolladores pueden utilizar la tecnolog铆a para crear sus propias aplicaciones impulsadas por IA en Salesforce.
Oradores destacados: Stephan Chandler-Garc铆a, Ananya Jha
A帽ade esta sesi贸n a tu agenda

Comprensi贸n de la nube de datos para desarrolladores de Salesforce
Qu茅 esperar: aprenda qu茅 significa Data Cloud para los desarrolladores, c贸mo se exponen sus artefactos como metadatos de plataforma familiares y c贸mo ingerir e interactuar con sus datos mediante SQL, Apex, Flows, API y SDK.
Oradores destacados: Aditya Naag Topalli, Danielle Larregui
A帽ade esta sesi贸n a tu agenda

驴Quieres un mejor c贸digo? Einstein GPT y Code Analyzer pueden ayudar
Qu茅 esperar: Impulse el desarrollo de Salesforce con el d煤o din谩mico de Einstein GPT para desarrolladores y Code Analyzer. Aprenda c贸mo optimizar la generaci贸n y validaci贸n de c贸digo directamente desde las experiencias IDE.
Oradores destacados: Gordon Bockus, Vivek Chawla
A帽ade esta sesi贸n a tu agenda

Componentes web Lightning: novedades y novedades
Qu茅 esperar: aprenda c贸mo puede utilizar Lightning Web Components para hacer que el desarrollo en Salesforce sea m谩s f谩cil y eficiente. Vea las 煤ltimas funciones disponibles para LWC y lo que se avecina en la hoja de ruta.
Oradores destacados: Alicia Teo, Alice Oh, Leo Balter
A帽ade esta sesi贸n a tu agenda

Hoja de ruta de Apex: novedades y novedades
Qu茅 esperar: Los gerentes de producto de Salesforce profundizar谩n en las funciones lanzadas recientemente y en el futuro en la hoja de ruta de Apex, incluido Einstein GPT para desarrolladores.
Oradores destacados: Daniel Ballinger, Chris Peterson
A帽ade esta sesi贸n a tu agenda

Aumente la productividad de los desarrolladores con GraphQL e IA generativa
Qu茅 esperar: Sum茅rgete en la nueva API GraphQL, donde las consultas y mutaciones se pueden combinar en una sola solicitud, ganando rendimiento y flexibilidad. Eche un vistazo a c贸mo redactar consultas con IA generativa.
Oradores destacados: Juli谩n Duque, Ben Sklar
A帽ade esta sesi贸n a tu agenda

Desarrollar componentes web Lightning para dispositivos m贸viles sin conexi贸n
Qu茅 esperar: 驴 Usuarios m贸viles sin conexi贸n? Aprenda c贸mo habilitarlos con componentes web Lightning personalizados para mostrar e incluso actualizar registros mientras un dispositivo m贸vil est谩 desconectado de Internet.
Oradora destacada: Angela Le
A帽ade esta sesi贸n a tu agenda

Gestionar dependencias y conflictos en el Centro DevOps
Qu茅 esperar: profundice en c贸mo los desarrolladores utilizan DevOps Center para gestionar el ciclo de vida del desarrollo de software. Comience con DevOps Center y aprenda a solucionar los problemas m谩s comunes, como la resoluci贸n de conflictos.
Oradores destacados: Gilson Canario, Francisco Sammartino
A帽ade esta sesi贸n a tu agenda

Cinco cosas que los desarrolladores de Salesforce deben saber sobre MuleSoft
Qu茅 esperar: 脷nase a esta sesi贸n para conocer los conceptos clave de MuleSoft que necesita saber como desarrollador de Salesforce. Nos centraremos en las mejores pr谩cticas, consejos y trucos, antipatrones y m谩s con ejemplos en vivo.
Oradores destacados: Gaurav Kheterpal, Akshata Sawant
A帽ade esta sesi贸n a tu agenda

Pon a prueba tus habilidades en Developer Grove

Developer Grove, ubicado en Trailhead Forest, es el hogar de los desarrolladores durante Dreamforce y el lugar para comenzar su viaje de aprendizaje de tres d铆as .

Nuestra principal atracci贸n este a帽o es una competencia estilo arcade que pone a prueba tus habilidades de ingenier铆a en IA. 隆Completa tantos desaf铆os como puedas en el menor tiempo posible para que tu nombre aparezca en la tabla de clasificaci贸n y puedas presumir de ello!

Visite la estaci贸n de demostraci贸n que cubre nuestras aplicaciones de muestra y recetas de c贸digo, y descubra c贸mo puede utilizarlas en su propio trabajo. Cada estaci贸n contar谩 con empleados de Salesforce que saben lo que hacen y les encanta ayudar a otros a aprender.

鉂桸ovedad de este a帽o: Estaci贸n de consultas 1:1 en Developer Grove. Los desarrolladores de Salesforce pueden registrarse para una consulta individual de 20 minutos con profesionales expertos de Salesforce. Para reservar una consulta individual, visite esta p谩gina y seleccione el tema "Desarrollador de Salesforce". Cuando haya terminado de registrarse, se le enviar谩 una confirmaci贸n por correo electr贸nico y estar谩 disponible en la aplicaci贸n Salesforce Events; desc谩rguela ahora en App Store o Google Play Store .

Otras cosas a tener en cuenta 馃憖

Conferencia principal de Dreamforce

脷nase al director ejecutivo de Salesforce, Marc Benioff, junto con invitados especiales en el discurso principal de Dreamforce para escuchar todo sobre nuestras innovaciones m谩s recientes.

馃搮 Marque sus calendarios: martes 12 de septiembre, de 10 a. m. a 12 p. m., hora del Pac铆fico
A帽ade la keynote a tu agenda

Fiel al foro principal de clientes

脷nase al cofundador y director de tecnolog铆a Parker Harris en el foro anual de clientes True to the Core. Escuche a los l铆deres de productos compartir los aspectos m谩s destacados de nuestra hoja de ruta de productos. Si nunca ha asistido, esta es una excelente sesi贸n para que los desarrolladores pregunten y escuchen las respuestas de nuestros gerentes de producto. 隆Una cosa que seguir谩 siendo 鈥渃entral鈥 en True to the Core es que habr谩 muchas preguntas!

馃搮 Marque sus calendarios: jueves 14 de septiembre, de 11:30 a. m. a 12:30 p. m., hora del Pac铆fico
A帽ade esta sesi贸n a tu agenda

Conferencia magistral de TI: cree su cliente 360 con IA confiable

Aprenda c贸mo resolver sus desaf铆os de TI m谩s dif铆ciles con IA + Datos + CRM. Escuche c贸mo los pioneros utilizan las 煤ltimas innovaciones de plataforma, nube de datos y MuleSoft para crear entornos de TI de pr贸xima generaci贸n, con potentes capacidades de IA generativa integradas.

馃搮 Marque sus calendarios: martes 12 de septiembre, de 2:30 a 3:20 p. m., hora del Pac铆fico
A帽ade esta sesi贸n a tu agenda

Celebraci贸n pionera de la noche 1

Recuperaremos la diversi贸n la primera noche de Dreamforce. 脷nase a nosotros en Trailblazer Forest de 5 a 6:30 p. m. el martes 12 de septiembre en Admin Meadow, Developer Grove y Community Cove para actividades sociales, comidas ligeras y bebidas.

Pistas de administrador y arquitecto

驴Busca diversificar su agenda en Dreamforce este a帽o? Consulte todas las sesiones de c贸digo y de c贸digo bajo en la secci贸n de administraci贸n y en la secci贸n de arquitecto . Para obtener m谩s informaci贸n sobre cada uno, lea la Gu铆a del administrador de Dreamforce 2023 .

Obtenga a煤n m谩s contenido de Dreamforce 2023 en Salesforce+

驴No puedes asistir a Dreamforce en persona? Durante los tres d铆as, las conferencias magistrales y las sesiones seleccionadas se transmitir谩n en vivo en Salesforce+. Habr谩 dos canales y 72 horas de transmisi贸n en vivo. Adem谩s de la experiencia en vivo, m谩s de 120 episodios bajo demanda estar谩n disponibles para verlos despu茅s de que finalice Dreamforce en cualquier momento y lugar.

Reg铆strese en Salesforce+ ahora para obtener acceso a todo el contenido exclusivo.

Empieza ahora

隆Dreamforce 2023 estar谩 aqu铆 antes de que te des cuenta! Siga estos pasos para prepararse:

  1. Reg铆strese para asistir a Dreamforce si a煤n no lo ha hecho.
  2. Agregue el discurso de apertura sobre el futuro del desarrollo y la vista previa de la versi贸n para desarrolladores a su agenda.
  3. Complete Road to Dreamforce 2023 Trailhead Quest antes de las 11:59 p. m. (hora del Pac铆fico) del 11 de septiembre de 2023 para desbloquear una insignia comunitaria exclusiva y participar para tener la oportunidad de ganar* una de las 25 codiciadas sudaderas con capucha Trailblazer o una de las 50 camisetas Dreamforce.* Se aplican las reglas oficiales . Consulte la p谩gina Trailhead Quests para obtener todos los detalles.
  4. Descargue la aplicaci贸n Salesforce Events en App Store o Google Play Store para realizar un seguimiento de todo lo que hay en su agenda en un lugar de f谩cil acceso.
  5. Con茅ctese con sus pares en el grupo comunitario Salesforce Developers Trailblazer.
  6. Si no asiste en persona, aseg煤rese de registrarse para la experiencia Salesforce+.
  7. Seguir @salesforcedevs en Twitter y LinkedIn para obtener m谩s actualizaciones.

Sobre el Autor

Kaitlin Benz es especialista s茅nior en marketing de desarrolladores en Salesforce. Lo que m谩s le apasiona es la narraci贸n de historias, los podcasts y la comida vegana. Encu茅ntrala en LinkedIn .

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

Re煤na todos los datos de sus clientes en Data Cloud 鈽侊笍

Re煤na todos los datos de sus clientes en Data Cloud 鈽侊笍

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.

Re煤na todos los datos de sus clientes en Data Cloud | Blog de desarrolladores de Salesforce

En nuestras publicaciones de blog anteriores, exploramos a alto nivel qu茅 es Data Cloud para los desarrolladores. Tambi茅n exploramos algunas caracter铆sticas interesantes de Data Cloud para desarrolladores . Le mostramos c贸mocrear conocimientos calculados , c贸mo usar Apex y c贸mo cargar datos mediante programaci贸n usando la API de ingesta . En esta publicaci贸n de blog, cubriremos caracter铆sticas a煤n m谩s incre铆bles que Data Cloud tiene para ofrecer.

La nube de datos est谩 activa

Data Cloud es m谩s que un lago de datos. Es una plataforma de datos activa. Los desarrolladores pueden traer datos desde cualquier sistema, canal o flujo de datos, ya sea en flujos continuos o en lotes. Con Data Cloud, puede conectar sus datos a trav茅s de diferentes sistemas que contienen los datos de sus clientes. Data Cloud se basa en nuestra plataforma Hyperforce , lo que significa que Data Cloud puede absorber f谩cilmente grandes vol煤menes de datos. Con Hyperforce, Data Cloud es r谩pido y tambi茅n puede capturar eventos segundos despu茅s de que ocurran.

Si piensa en cu谩ntos clics hace cada cliente, el volumen de datos se expande r谩pidamente. Por ejemplo, a medida que los clientes abren y hacen clic en los correos electr贸nicos, navegan por las p谩ginas de sus aplicaciones m贸viles y miran los productos en su sitio web, puede capturar esos datos de participaci贸n a medida que ocurren. Cuando env铆a un correo electr贸nico u oferta y es relevante para la persona que lo recibe, es mucho m谩s probable que haga clic. Cuando un cliente hace clic, puede capturar la interacci贸n en Data Cloud. A continuaci贸n, puede utilizar esa informaci贸n para averiguar qu茅 les interesa y si es probable que realicen una compra o no.

La nube de datos est谩 integrada

Tener todos estos datos en tiempo real de m煤ltiples fuentes empresariales es excelente. Pero los datos no son significativos a menos que pueda usarlos. Data Cloud se conecta de forma nativa a muchos proveedores de nube, como Google Cloud Storage , Azure Storage y Amazon S3 . Data Cloud tambi茅n se conecta de forma nativa a Salesforce . Despu茅s de solo unos pocos clics, puede conectar cualquier organizaci贸n de Sandbox o de producci贸n de Salesforce a Data Cloud. Luego, Data Cloud puede ingerir cualquier objeto de Salesforce en un flujo de datos .

Despu茅s de que sus datos se ingieran en objetos de lago de datos (DLO) y se asignen a objetos de modelo de datos (DMO), un modelo de datos como el siguiente se integra din谩micamente en Data Cloud. Esto le permite ver visualmente todos los flujos de datos que est谩n creando la vista 煤nica de su cliente.

Atr谩s quedaron los d铆as en que Data Cloud era solo una plataforma de datos para marketing. Los datos almacenados en Data Cloud ahora se pueden usar en muchos sistemas. Los datos de Data Cloud se pueden usar en Amazon Ads y Google Ads mediante activaciones y objetivos de activaci贸n . Tambi茅n puede usar el conector de nube de datos nativo en Tableau para obtener nuevos conocimientos. Los aceleradores de Tableau listos para usar le permiten moverse a煤n m谩s r谩pido usando tableros y libros de trabajo predise帽ados y listos para usar. Con Data Cloud m谩s Tableau, puede cubrir f谩cilmente nuevos conocimientos sobre su negocio al reunir todos sus datos. Los desarrolladores ahora pueden incorporar estos conocimientos impulsados por IA en una aplicaci贸n de su elecci贸n.

La nube de datos est谩 automatizada

Los datos de Data Cloud tambi茅n se pueden enviar a Salesforce mediante acciones de datos y eventos de la plataforma y luego aprovecharse en flujos mediante una variedad de acciones de datos que est谩n disponibles en Salesforce Flow. Los desarrolladores pueden usar Flow para publicar informaci贸n y segmentos calculados, actualizar flujos de datos, ejecutar resoluciones de identidad e incluso activar modelos de predicci贸n. El flujo tambi茅n puede obtener datos de un objeto de modelo de datos y almacenar esa informaci贸n en una variable de colecci贸n para usarla en otras partes del flujo.

La nube de datos est谩 abierta

Data Cloud tiene muchas asociaciones estrat茅gicas con empresas como Amazon, Google, Snowflake y Meta. Estas asociaciones han ampliado la plataforma para permitir mayores posibilidades y ayudar a que sus datos sean m谩s procesables. La mejor noticia es que nuestras asociaciones est谩n creciendo constantemente, 隆y pronto habr谩 nuevas!

Recursos

Sobre los autores

Muralidhar Krishnaprasad (tambi茅n conocido como MK o Murali para abreviar) es el vicepresidente ejecutivo de ingenier铆a que ejecuta datos, ML y an谩lisis dentro de la organizaci贸n de Marketing Cloud. Se uni贸 a Salesforce hace tres a帽os y est谩 a cargo de crear, integrar y hacer crecer varios productos relacionados con datos, ML y an谩lisis. Est谩 liderando la iniciativa para repensar nuestra estrategia general de pr贸xima generaci贸n que re煤ne lo mejor de big data, ML y an谩lisis junto con nuestra plataforma para construir la base para el futuro digital.

Danielle Larregui es promotora s茅nior de desarrolladores en Salesforce, donde se enfoca en la creaci贸n de contenido de Data Cloud y Marketing Cloud. Le encanta la UI/UX, el marketing digital y la codificaci贸n. Danielle tambi茅n disfruta asistir a grupos de usuarios, conferencias comunitarias y eventos t茅cnicos de Salesforce. Puede seguirla en Twitter @dnlarregui o LinkedIn para mantenerse al d铆a con su contenido t茅cnico.

Dianne Siebold es redactora t茅cnica principal del equipo de Experiencia de contenido en Salesforce. Se especializa en desarrollo, inteligencia artificial y tecnolog铆as de integraci贸n.

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Explore el lanzamiento de Summer '23 Marketing Cloud para desarrolladores 鈽侊笍

Explore el lanzamiento de Summer '23 Marketing Cloud para desarrolladores 鈽侊笍

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

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

Explore la versi贸n Summer '23 Marketing Cloud para desarrolladores | Blog de desarrolladores de Salesforce

El lanzamiento de Summer '23 Marketing Cloud est谩 muy caliente con algunas caracter铆sticas nuevas y geniales para los desarrolladores. Hay muchas innovaciones en todos los canales para mensajes de correo electr贸nico, p谩ginas de destino, aplicaciones m贸viles, datos e inteligencia artificial. En este blog, cubrir茅 mis mejores selecciones y los aspectos m谩s destacados favoritos del lanzamiento.

BuildRowSetFromJSON()

Ha habido mucho revuelo en torno a esta nueva funci贸n de AMPscript en la comunidad, y con raz贸n. Esto significa que no hay manera de que pueda dejar esto fuera de mi lista. La nueva funci贸n AMPscript BuildRowsetFromJSON() permite a los desarrolladores analizar JSON en sus mensajes de correo electr贸nico y p谩ginas de destino. Antes de BuildRowSetFromJSON() , los desarrolladores necesitaban usar Guide Template Language o Server-Side JavaScript para analizar JSON. Ahora, los desarrolladores pueden seguir con AMPscript en lugar de cambiar a otro lenguaje de programaci贸n de Marketing Cloud para analizar su JSON.

API de descarga del historial de viajes

Con la API de descarga del historial de Journey , los desarrolladores pueden descargar hasta 30 d铆as de datos del historial de Journey Builder a trav茅s de la API REST. Algunos de los datos que los desarrolladores podr谩n descargar incluyen detalles sobre los criterios de entrada y salida del viaje, el estado de la actividad y los errores. Puede descargar los datos a trav茅s del formato CSV para casos de uso como resoluci贸n de problemas, reconciliaci贸n de errores, segmentaci贸n avanzada, datos sin procesar para herramientas de visualizaci贸n, campa帽as de retargeting y m谩s. Agregamos esta nueva API a nuestra colecci贸n p煤blica de Postman y lanzamos dos rutas adicionales ( frescura y estimaci贸n ) para ayudarlo a comprender mejor los datos que consulta.

Contenido de error personalizado de CloudPages

A veces ocurren errores, y la forma en que los desarrolladores manejan los errores puede afectar potencialmente a los clientes y su experiencia. Una CloudPage puede encontrar un error porque no est谩 publicada, o puede haber un error debido a un c贸digo personalizado existente que afecta la capacidad de procesamiento de la CloudPage. En CloudPages, los desarrolladores ahora pueden configurar contenido personalizado para los errores, lo que permitir谩 a los desarrolladores dirigir con gracia a sus clientes a activos alternativos en caso de error. La siguiente imagen muestra la nueva capacidad con la opci贸n de configurar el contenido de error personalizado. Dato curioso: 隆esta fue una idea en el intercambio de ideas que se entreg贸 en este lanzamiento!

SDK para m贸viles de fidelizaci贸n

El kit de desarrollo de software m贸vil (SDK) de fidelizaci贸n es un nuevo kit de desarrollo de software que permite a los desarrolladores crear aplicaciones m贸viles para los programas de fidelizaci贸n de su empresa.

La ayuda de Mobile SDK consta de funciones y capacidades nativas, como la inscripci贸n y los detalles del perfil. El SDK est谩 disponible para el desarrollo de iOS y Android . El SDK de Loyalty Mobile se basa en la plataforma principal y utiliza funcionalidades principales. Sin embargo, es parte de la familia Marketing Cloud. Los desarrolladores de Salesforce que ya est谩n familiarizados con la creaci贸n de la plataforma central deber铆an considerar que se trata de un SDK muy nuevo y divertido con el que experimentar. Desarrolladores de Marketing Cloud, 隆esto es algo muy emocionante y nuevo para aprender!

Einstein Studio Traiga su propio modelo de inteligencia artificial (IA)/aprendizaje autom谩tico (ML) a la nube de datos

Los desarrolladores seguramente se divertir谩n, y tal vez un poco de desaf铆o, con el dise帽o de sus propios modelos de IA utilizando Amazon SageMaker y Data Cloud. La integraci贸n de Einstein Studio entre Data Cloud y Amazon SageMaker es nuestra primera asociaci贸n de inteligencia artificial/aprendizaje autom谩tico. Los desarrolladores y los equipos de ciencia de datos pueden crear e incorporar sus propios modelos AI/ML para predicciones de conversi贸n de prospectos, clasificaciones de casos y m谩s. Luego, los especialistas en marketing pueden usar estas predicciones para personalizar cada punto de contacto con sus clientes. Consulte las notas de la versi贸n y la documentaci贸n de ayuda para obtener m谩s informaci贸n.

Espero que haya disfrutado de mis aspectos destacados del lanzamiento de Summer '23 y que est茅 listo para comenzar a desarrollar con las muchas funciones nuevas en la plataforma de Marketing Cloud. Hay muchas m谩s funciones en la versi贸n Summer '23 para desarrolladores que pueden interesarle. Lo animo a consultar las notas de la versi贸n de Marketing Cloud Summer '23 para leer sobre algunas de las otras mejoras incluidas en esta versi贸n.

Recursos

Sobre el Autor

Danielle Larregui es promotora s茅nior de desarrolladores en Salesforce, donde se enfoca en la creaci贸n de contenido de Data Cloud y Marketing Cloud. Le encanta la UI/UX, el marketing digital y la codificaci贸n. Danielle tambi茅n disfruta asistir a grupos de usuarios, conferencias comunitarias y eventos t茅cnicos de Salesforce. Puede seguirla en Twitter @dnlarregui o LinkedIn para mantenerse al d铆a con su contenido t茅cnico.

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

Traiga sus propios modelos de IA a la nube de datos 鈽侊笍

Traiga sus propios modelos de IA a la nube de datos 鈽侊笍

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.

Lleve sus propios modelos de IA a la nube de datos | Blog de desarrolladores de Salesforce

Einstein Studio es una plataforma f谩cil de usar que le permite crear y poner en funcionamiento la IA en Salesforce. La plataforma aprovecha el poder de otras plataformas de IA, como Amazon SageMaker y Google Cloud Vertex AI, para que pueda crear, entrenar e implementar modelos de IA personalizados de forma externa utilizando datos en Salesforce. En este blog, presentamos Einstein Studio y exploramos c贸mo la capacidad de traer su propio modelo (BYOM) generalmente disponible puede generar resultados para su negocio.

Presentamos Traiga su propio modelo (BYOM)

Einstein Studio le permite conectarse f谩cilmente a modelos predictivos o generativos y usarlos en el flujo de trabajo en Salesforce. Por ejemplo, los modelos predictivos se pueden usar para puntuar clientes potenciales, recomendar productos o detectar abandonos. Con modelos generativos, puede crear contenido como res煤menes de casos, respuestas de correo electr贸nico y descripciones de productos. Para obtener m谩s informaci贸n sobre la IA generativa y los modelos de lenguaje extenso (LLM), consulte el blog de Salesforce 360 .

Conectar un modelo con Einstein Studio es simple. Puede integrar f谩cilmente su modelo con Data Cloud para acceder a predicciones e informaci贸n en tiempo real y usar la informaci贸n de varias maneras. Por ejemplo, para enriquecer los perfiles de los clientes, crear segmentos y personalizar la experiencia del usuario final en diferentes canales. Tambi茅n puede usar un modelo generativo para crear campa帽as de correo electr贸nico personalizadas basadas en las preferencias de un cliente y su comportamiento de compra.

驴Por qu茅 traer su propio modelo?

Estos son algunos de los beneficios de usar un modelo de Amazon SageMaker con datos de Data Cloud en Einstein Studio.

  • Acceda a datos altamente seleccionados, armonizados y casi en tiempo real en Customer 360 en SageMaker.
  • Elimina la necesidad de trabajos ETL tediosos, costosos y propensos a errores. Este enfoque de federaci贸n de copia cero para los datos reduce la sobrecarga para administrar las copias de datos, los costos de almacenamiento y mejora la eficiencia.
  • Crea modelos r谩pidamente en SageMaker y conecta los modelos en Data Cloud para consumir predicciones para la optimizaci贸n de procesos comerciales.
  • Admite la ingesta de datos en tiempo real, en streaming y por lotes para impulsar los resultados de IA relevantes.
  • Permite el uso sin inconvenientes de modelos y predicciones de SageMaker en Salesforce mediante Flow, un paquete de automatizaci贸n de flujos de trabajo. Flow permite la toma de decisiones impulsada por IA que puede evolucionar en funci贸n de actualizaciones de datos en tiempo real.

Casos de uso

Estos son algunos casos de uso en los que Einstein Studio puede mejorar la experiencia del cliente y agregar un toque personal.

Caso de uso minorista

Un minorista puede crear un modelo de IA personalizado para predecir la probabilidad de que un cliente compre atuendos espec铆ficos en funci贸n de los datos de compromiso, como su historial de compras o actividad en l铆nea. Luego pueden implementar el modelo y utilizar Einstein Studio para ofrecer recomendaciones de productos hiperpersonalizados a los clientes a trav茅s del canal m谩s apropiado, incluido el correo electr贸nico, una aplicaci贸n m贸vil o las redes sociales.

Caso de uso de viaje

Una agencia de viajes puede conectar los datos de CRM, como el historial de reservas del cliente y las preferencias de viaje, con datos que no son de CRM, como rese帽as de destinos y previsiones meteorol贸gicas. Luego pueden implementar modelos de IA predictivos y generativos para predecir qu茅 destinos atraen a clientes espec铆ficos y generar recomendaciones de correo electr贸nico personalizadas para ellos.

Caso de uso automotriz

Una marca automotriz puede usar inteligencia artificial predictiva para determinar cu谩ndo es probable que un autom贸vil necesite mantenimiento y detectar reclamos de seguros fraudulentos. Luego, la IA generativa se puede utilizar para personalizar las campa帽as de marketing de los clientes en funci贸n de las necesidades y preferencias individuales.

Flujo de trabajo de la aplicaci贸n para usar Einstein Studio con AWS SageMaker

En esta secci贸n, analizamos brevemente el flujo de trabajo de la aplicaci贸n con Einstein Studio.

En este flujo de trabajo, el conector de Python otorga a SageMaker acceso seguro a los objetos de Salesforce Data Cloud. Despu茅s de la autenticaci贸n, los especialistas en datos pueden explorar y preparar los datos, y realizar tareas de ingenier铆a de funciones para el desarrollo y la inferencia de modelos de IA mediante la interfaz visual interactiva de SageMaker Data Wrangler .

El flujo de trabajo anterior es espec铆fico de Data Wrangler. Pero, 驴qu茅 sucede si es un cient铆fico de datos y planea usar los cuadernos de SageMaker Studio para desarrollar y preparar sus modelos personalizados? Una vez que se aprueba un modelo en el registro de SageMaker, simplificamos el proceso con una plantilla de proyecto de SageMaker para Salesforce para automatizar la implementaci贸n en un extremo de invocaci贸n.

Este extremo de invocaci贸n se configura como destino en Einstein Studio y se integra con las aplicaciones de Salesforce Customer 360. Para obtener m谩s informaci贸n sobre este flujo de trabajo, consulte el blog de AWS .

C贸mo consumir predicciones de su modelo en Salesforce

Hay dos formas de consumir predicciones. Usando acciones invocables en Flow y Apex, o con an谩lisis ad hoc.

Use Flow Builder y Apex para obtener predicciones

Aqu铆 hay un flujo que usa una acci贸n invocable para crear recomendaciones de productos para un cliente.

En este ejemplo, un administrador usa Flow Builder para separar los registros de individuos unificados para verificar si se realiz贸 una compra reciente. Si se realiz贸 la compra, la acci贸n invocable obtiene la inferencia del modelo de Einstein Studio y recomienda el siguiente mejor producto a un cliente.

Esta acci贸n invocable tambi茅n se puede llamar en Apex. Vea el ejemplo a continuaci贸n.

<dx-code-block title language="apex" code-block="Invocable.Action action = Invocable.Action.createCustomAction('cdpGetMlPrediction', 'EinsteinStudio_model_name');
action.setInvocationParameter('variable_1', '10');
action.setInvocationParameter('variable2', '20');
action.setInvocationParameter('variable3', '30');
List results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) { System.debug(‘Result is: ‘ + results[0].getOutputParameters().get(‘param_score’));
} else { System.debug(‘Error message’ + results[0].getErrors());
} 芦>

Para obtener instrucciones sobre el uso de acciones invocables en Flow y Apex, consulte la Ayuda de Salesforce .

Utilice an谩lisis ad hoc para obtener predicciones

Query API es otra forma r谩pida de obtener puntajes de predicci贸n para los datos que residen en Data Cloud. Con Query API, puede usar el punto final de inferencia y funciones de predicci贸n de llamadas para probar el punto final.

Para obtener instrucciones sobre el uso de acciones invocables en QueryAPI, consulte la Ayuda de Salesforce .

Conclusi贸n

Einstein Studio es una plataforma de IA f谩cil de usar que permite a los equipos de ciencia e ingenier铆a de datos crear, entrenar e implementar modelos de IA utilizando plataformas externas y datos en Data Cloud. Las plataformas externas incluyen Amazon SageMaker, Google Cloud Vertex AI y otros servicios de IA predictivos o generativos. Una vez que est茅 listo, puede utilizar los modelos de IA en tiempo real para impulsar cualquier aplicaci贸n de ventas, servicios, marketing, comercio y otras en Salesforce.

Recursos adicionales

Sobre el Autor

Daryl Martis es el Director de Producto de Salesforce para Einstein. Tiene m谩s de 10 a帽os de experiencia en la planificaci贸n, creaci贸n, lanzamiento y gesti贸n de soluciones de clase mundial para clientes empresariales, incluidas soluciones de inteligencia artificial y aprendizaje autom谩tico y en la nube. Anteriormente trabaj贸 en la industria de servicios financieros en la ciudad de Nueva York. S铆guelo en LinkedIn o Twitter .

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

隆Ya est谩 aqu铆 la CLI sf (v2) de Salesforce! 鈥 Parte 2 鈽侊笍

隆Ya est谩 aqu铆 la CLI sf (v2) de Salesforce! 鈥 Parte 2 鈽侊笍

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

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

隆Ya est谩 aqu铆 la CLI sf (v2) de Salesforce! 鈥 Parte 2 | Blog de desarrolladores de Salesforce

La CLI (interfaz de l铆nea de comandos) de Salesforce es la piedra angular del desarrollo de Salesforce y, como cualquier otra herramienta, evoluciona con el tiempo. Esta publicaci贸n es la segunda de una serie de blogs de dos partes sobre sf (v2), la nueva y mejorada CLI de Salesforce. En la Parte 1 , echamos un vistazo a las novedades de sf (v2) y, en esta parte final, exploraremos los nuevos comandos de estilo sf y patrones de banderas y compartiremos c贸mo puede migrar desde comandos de estilo sfdx y patrones basados en banderas. en nuestra experiencia con aplicaciones de muestra . Si bien la migraci贸n puede parecer intimidante a primera vista, compartiremos algunos consejos sobre c贸mo facilitar la transici贸n.

Conozca los comandos de estilo sf

Si ha estado usando la CLI durante alg煤n tiempo, probablemente comenz贸 a notar una serie de advertencias en los comandos que usa con frecuencia, como este:

sfdx force:source:push
Warning: We plan to deprecate this command in the future. Try using the "project deploy start" command instead.禄>

Estos cambios son el resultado del trabajo continuo en Salesforce CLI Unification que comenz贸 hace varios lanzamientos (m谩s detalles en la primera parte de esta serie).

Desde entonces, cada vez que instala la CLI de Salesforce, obtiene los dos ejecutables ( sfdx y sf ). Puede usar cualquiera de estos ejecutables ya que la mayor铆a de los comandos son interoperables, pero le recomendamos que comience a usar sf en su trabajo diario para prepararse para el futuro.

Debido a que sf cubre m谩s que solo el desarrollo de la plataforma central, ofrece una nueva taxonom铆a de comandos simplificada que refleja el flujo de trabajo de un desarrollador t铆pico en lugar de las marcas, productos o funciones de Salesforce.

Un ejemplo pr谩ctico de esto es el comando sf org create . Con este nuevo comando, la intenci贸n es m谩s clara: llamas a la misma base de comandos con scratch , sandbox , shape , snapshot o user , mientras que en sfdx ten铆as que usar una combinaci贸n de diferentes comandos ( force:org:create , force:user:create ) y flags ( --type=scratch o --type=sandbox ) para obtener el mismo resultado.

Otra caracter铆stica interesante de sf es que incluye m谩s comandos visuales e interactivos, como la creaci贸n de organizaciones con la capacidad de reanudar operaciones de larga duraci贸n en caso de tiempo de espera.

Migrar al ejecutable sf

Adem谩s de simplemente cambiar el nombre del ejecutable de sfdx a sf , hay una serie de cambios que se aplican a los comandos CLI al actualizar sus proyectos. La documentaci贸n de la CLI de Salesforce proporciona una buena descripci贸n general de estos cambios, pero destacaremos los que nos afectaron durante la actualizaci贸n de nuestras aplicaciones de muestra.

Comandos sfdx comunes y sus equivalentes sf

En primer lugar, el tema force se elimin贸 de la mayor铆a de los comandos, lo cual es una buena noticia, ya que acorta los comandos. El otro cambio importante es que los temas, comandos y subcomandos, que antes estaban separados por dos puntos como en sfdx force:org:list , ahora est谩n separados por espacios, como en sf org list .

Mirando m谩s de cerca los comandos que usamos a diario cuando trabajamos en aplicaciones de muestra, aplicamos los siguientes cambios:

Comando sfdx heredado Comando sf equivalente Migraci贸n Comentarios
sfdx force:org:delete -p -u recipes sf org delete scratch -p -o recipes Se debe agregar el subcomando scratch .
El indicador de la organizaci贸n de destino cambia de -u a -o .
sfdx force:org:create -s -f config/project-scratch-def.json -d 30 -a recipes sf org create scratch -d -f config/project-scratch-def.json -y 30 -a recipes Se debe agregar el subcomando scratch .
El indicador "asignar organizaci贸n predeterminada" cambia de -s a -d .
El indicador de duraci贸n de la organizaci贸n borrador cambia de -d a -y .
sfdx force:source:push sf project deploy start Este es un cambio significativo, pero el nuevo comando funciona para todos los formatos de proyecto (fuente o metadatos).
Anteriormente, necesitaba comandos distintos.
sfdx force:user:permset:assign -n recipes sf org assign permset -n recipes El tema cambia de user a org y cambia el orden de los subcomandos.
sfdx force:data:tree:import -p data/data-plan.json sf data import tree -p data/data-plan.json
sfdx force:org:open -p lightning/n/Hello sf org open -p lightning/n/Hello
sfdx force:apex:test:run -c -r human -w 20 sf apex test run -c -r human -w 20

Si est谩 buscando otros comandos, la documentaci贸n de CLI proporciona una lista completa de comandos sfdx con sus equivalentes sf . Cada vez que reemplace un comando, aseg煤rese de revisar sus banderas en busca de cambios, especialmente si usa las banderas de formato corto (un solo car谩cter) ( -o en lugar de --target-org por ejemplo). Puede ejecutar cualquier comando con el indicador -h o --help para obtener su descripci贸n.

Automatice parte de la migraci贸n con expresiones regulares

鈩癸笍 Edici贸n del 27 de julio de 2023: en lugar de expresiones regulares, puede usar un script de migraci贸n como se documenta aqu铆 .

Cuando analizamos la migraci贸n de nuestros proyectos de aplicaciones de muestra , sab铆amos que necesitar铆amos automatizar parte del proceso, ya que hab铆a cerca de 1700 referencias a sfdx en m谩s de 200 archivos. Para obtener los resultados m谩s precisos aqu铆, aseg煤rese de agregar un espacio despu茅s de sfdx en su t茅rmino de b煤squeda y excluya la carpeta node_modules de su b煤squeda, como hicimos aqu铆:

Comenzar con una b煤squeda es un buen primer paso. Le ayuda a darse cuenta de que tendr谩 que migrar sus comandos en un par de lugares, como:

  • Scripts de integraci贸n continua
  • Guiones de desarrollo local
  • Documentaci贸n

Luego puede ir m谩s all谩 experimentando con una b煤squeda y reemplazo de expresiones regulares (RegEx) en VS Code. Este enfoque es una forma r谩pida de iniciar la migraci贸n. Funciona bien para la b煤squeda, pero no es perfecto como reemplazo, ya que algunos comandos requieren actualizaciones manuales. En cualquier caso, siempre pruebe el resultado de sus cambios antes de enviarlos a producci贸n.

Comience ejecutando esta b煤squeda RegEx y reemplace:

Tenga en cuenta el uso de tres grupos de captura encerrados entre par茅ntesis en la expresi贸n de b煤squeda y representados por signos de d贸lar seguidos de un n煤mero en la expresi贸n de reemplazo. Los grupos de captura le permiten retener din谩micamente ciertos valores (palabras como temas, comandos y subcomandos en nuestro caso) mientras realiza cambios en el resto de la l铆nea (reemplazando los separadores de dos puntos con espacios en nuestro caso).

Si desea obtener m谩s informaci贸n sobre este RegEx u otros, le recomiendo que consulte regex101.com , ya que proporciona una explicaci贸n de la sintaxis y un campo de juego para probar expresiones.

Aqu铆 hay un ejemplo de la entrada y salida en VS Code de la expresi贸n anterior (no olvide activar el modo RegEx como lo indica la flecha roja):

Notar谩 que esta primera ronda de b煤squeda y reemplazo no es perfecta ya que obtiene algunos caracteres de espacio adicionales en el texto reemplazado. Puede arreglar esto f谩cilmente ejecutando una segunda operaci贸n RegEx de b煤squeda y reemplazo como esta:

Una vez que ejecute este 煤ltimo RegEx, todav铆a hay un par de cambios manuales que necesitar谩 para operar. Como vimos anteriormente en la tabla de equivalencia de comandos, estas son las cosas clave a tener en cuenta:

  • Algunos comandos usan diferentes temas y subcomandos. Por ejemplo, sf user assign permset es incorrecto: user debe ser reemplazado por org .
  • Algunas banderas necesitan ser cambiadas. Por ejemplo, sf org create scratch -s -f config/project-scratch-def.json -d 30 -a recipes es incorrecto: el indicador -d debe reemplazarse por -y y el indicador -s debe reemplazarse por -d .

Afortunadamente, la mayor铆a de estos cambios no son demasiado dif铆ciles de aplicar y puede migrar con bastante rapidez a los comandos de estilo sf . Lo dejaremos con una vista de diferencias de GitHub que resume todos los cambios que fueron necesarios para migrar una de nuestras aplicaciones de muestra.

palabras de cierre

Eso es un resumen de esta breve descripci贸n general de la migraci贸n de los comandos sfdx -style a los comandos sf -style. Vislumbr贸 el beneficio del ejecutable sf y su nueva sintaxis. Esperamos que se beneficie de nuestra experiencia de migraci贸n y de nuestros consejos al actualizar sus proyectos.

Recursos

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Cargue datos mediante programaci贸n con la API de ingesta 鈽侊笍

Cargue datos mediante programaci贸n con la API de ingesta 鈽侊笍

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.

Cargue datos mediante programaci贸n con la API de ingesta | Blog de desarrolladores de Salesforce

Salesforce Data Cloud ofrece varios conectores predefinidos para la importaci贸n de datos. Estos le permiten conectar otra organizaci贸n de Salesforce, una instancia de Marketing Cloud, almacenamientos de datos como Amazon S3 o cualquier otra fuente admitida por MuleSoft Salesforce Data Cloud Connector . Para conectarse a un sistema de terceros, puede utilizar la API de ingesta .

La API de ingesta es una interfaz RESTful que facilita la carga de datos mediante programaci贸n en Data Cloud. Admite patrones de interacci贸n masiva y de transmisi贸n. El patr贸n de transmisi贸n usa JSON como su formato, cargando datos en micro lotes a trav茅s de la API REST. El patr贸n masivo, por otro lado, emplea el formato CSV y carga datos usando trabajos.

En esta publicaci贸n de blog, analizaremos c贸mo configurar el conector de la API de ingesta y comenzar a cargar datos mediante programaci贸n utilizando los patrones Streaming y Bulk.

Cu谩ndo usar la ingesti贸n Streaming vs Bulk

Ingesti贸n de transmisi贸n Ingesti贸n a granel
Al actualizar peque帽os microlotes de registros casi en tiempo real Al mover grandes vol煤menes de datos en un programa diario, semanal o mensual
Cuando se utilizan sistemas de origen de datos que se basan en arquitecturas de transmisi贸n modernas Al usar sistemas heredados, donde solo puede exportar datos durante las horas de menor actividad
Al crear eventos de captura de datos modificados Al usar una nueva organizaci贸n de Data Cloud que desea rellenar con 30, 60 o m谩s de 90 d铆as de datos
Al consumir datos de webhooks

Para configurar la API de ingesta, deber谩 seguir cuatro pasos de requisitos previos:

  • Crear un conector de API de ingesta
  • Crear e implementar un flujo de datos
  • Crear una aplicaci贸n conectada
  • Solicitar un token de acceso a la nube de datos

Veamos el proceso de creaci贸n y configuraci贸n de un conector de ingesta para comenzar a cargar datos en Data Cloud.

Creaci贸n de un conector de API de ingesta

Supongamos que tiene acceso a Data Cloud. Para conectar una nueva fuente de API de ingesta mediante el conector de API de ingesta, vaya a Configuraci贸n de nube de datos y seleccione API de ingesta .

Aqu铆 encontrar谩 todos los conectores disponibles en su organizaci贸n. Para crear uno nuevo, haga clic en Conectar y proporcione un nombre. Para nuestra aplicaci贸n de muestra, trabajaremos con una empresa de energ铆a solar ficticia. Estamos interesados en recibir eventos de m茅tricas relacionadas con el rendimiento energ茅tico de sus paneles solares.

Una vez que se haya creado el conector, necesitaremos decirle a Data Cloud qu茅 tipo de datos estamos esperando. Para esto, necesitaremos cargar un archivo de esquema utilizando la especificaci贸n OpenAPI. Este archivo de esquema tiene requisitos espec铆ficos, as铆 que aseg煤rese de consultar la documentaci贸n para obtener m谩s informaci贸n.

A continuaci贸n se muestra un ejemplo del archivo de esquema que cargaremos, que representa un solar_panel_event . Los campos clave a tener en cuenta incluyen event_id , que ser谩 煤nico para cada evento y luego se asignar谩 en Data Cloud como clave principal. Otro es customer_id , que nos ser谩 煤til para mapear el evento con un cliente de nuestra organizaci贸n. Finalmente, date_time representa la hora del evento.

panel_solar_event.yaml

Una vez que carguemos el esquema, podremos obtener una vista previa de sus campos y tipos de datos, y luego guardarlo en nuestro conector.

Ahora que nuestro conector tiene un esquema, podemos decir que est谩 creado. Sin embargo, a煤n no est谩 listo para comenzar a recibir datos. Necesitamos crear un flujo de datos para este prop贸sito.

Nota: Dado que los esquemas pueden evolucionar con el tiempo, tambi茅n puede usar la interfaz del conector de la API de ingesta para actualizar el esquema y agregar nuevos campos a su objeto de datos seg煤n sea necesario.

Creaci贸n e implementaci贸n de un flujo de datos

Ya tenemos listo nuestro conector API de ingesta. Ahora es el momento de establecer una conexi贸n para comenzar a importar datos. Para eso, necesitamos crear un flujo de datos . Una vez que el flujo de datos est谩 activo, podemos comenzar a ingerir datos en Data Cloud y almacenarlos como un objeto de Data Lake.

Para crear un nuevo flujo de datos, vaya a su pesta帽a en la aplicaci贸n Data Cloud, haga clic en Nuevo , seleccione Ingestion API y luego haga clic en Siguiente .

Nota: La opci贸n API de ingesta est谩 deshabilitada si no tiene ninguna fuente de ingesta conectada.

A continuaci贸n, ver谩 los diferentes objetos que est谩n asociados con su esquema. En nuestro caso, seleccione el objeto solar_panel_event y haga clic en Siguiente .

Al crear un flujo de datos, deber谩 seleccionar una categor铆a o tipo de datos en ese flujo de datos. Hay tres categor铆as: Compromiso , Perfil y Otro .

Compromiso Un conjunto de datos que representa un compromiso basado en series de tiempo, como un evento, interacci贸n con el cliente, interacci贸n web, etc.

Cuando se selecciona, el men煤 desplegable Campo de hora del evento aparece en la interfaz de usuario.

Perfil Un conjunto de datos que representa:

鈥 Una lista de consumidores con identificadores, como identificaciones de consumidores, direcciones de correo electr贸nico o n煤meros de tel茅fono

鈥 Una lista de empresas o cuentas con ID de cuenta

鈥 Una lista de empleados o cualquier otra poblaci贸n por la que desee segmentar o utilizar como poblaci贸n inicial del segmento

Otro Un conjunto de datos que no es un compromiso o un perfil, como informaci贸n de productos o tiendas.

Para nuestro ejemplo, dado que estamos planeando recibir eventos, seleccionaremos Compromiso . Mapearemos el event_id como la clave principal y la date_time como el campo de hora del evento.

Ahora que nuestros datos est谩n configurados, es hora de implementarlos. Despu茅s de revisar los flujos de datos que se van a crear, hagamos clic en Implementar para activarlos.

Ahora, echemos un vistazo a la p谩gina de detalles del flujo de datos. Aqu铆 podemos ver el objeto Data Lake que se ha creado en Data Cloud. Puede identificar un objeto de Data Lake por su sufijo __dll . Desde esta misma interfaz, puede comenzar a asignar sus datos a los objetos de su organizaci贸n para crear objetos de modelo de datos (parte del proceso de armonizaci贸n de Data Cloud). Sin embargo, no cubriremos ese tema en esta publicaci贸n de blog, pero tenemos un excelente video con Danielle Larregui que le muestra c贸mo hacerlo.

Nuestro conector API de ingesta est谩 listo para comenzar a recibir datos de sistemas de terceros. Para confirmar, regresemos a la interfaz de configuraci贸n de la API de ingesta, donde puede ver que el estado del conector es En uso .

Creaci贸n de una aplicaci贸n conectada

La API de ingesta admite todos los flujos de OAuth 2.0 admitidos por otras API REST de Salesforce. Para cargar datos mediante la API de ingesta, su aplicaci贸n conectada requiere los siguientes 谩mbitos:

脕mbitos de OAuth requeridos

cdp_ingest_api Acceda y administre sus datos de API de ingesta de nube de datos
API Accede y administra tus datos
refresco_token, acceso_sin conexi贸n Realizar solicitudes en su nombre en cualquier momento

Adem谩s, nuestra aplicaci贸n conectada requerir谩 un certificado digital. Para crear uno, puede ejecutar el siguiente comando usando el comando openssl :

Este comando crear谩 dos archivos, salesforce.key , que es la clave privada, y salesforce.crt , que es la clave p煤blica.

Nota : si no tiene instalado el comando openssl , puede instalarlo desde el sitio web de OpenSSL .

Para saber c贸mo crear una aplicaci贸n conectada, consulte la documentaci贸n oficial.

Solicitud de un token de acceso a la nube de datos

Para este ejemplo, usaremos el flujo de soporte JWT de OAuth 2.0 . Primero, necesitaremos crear un JWT (JSON Web Token) para solicitar un token de acceso.

Para crear un JWT, configurar谩 el encabezado para usar el algoritmo RSA256 .

Encabezado JWT

Luego, configure las siguientes notificaciones, teniendo en cuenta algunas notificaciones importantes:

  • iss: la clave de consumidor de OAuth/ID de cliente de su aplicaci贸n conectada
  • sub: el nombre de usuario de su organizaci贸n de Data Cloud
  • exp: el tiempo de vencimiento del token, expresado como una marca de tiempo de 茅poca

reclamos JWT

Nota : La 茅poca de Unix (o la hora de Unix o la hora POSIX o la marca de tiempo de Unix) es la cantidad de segundos que han transcurrido desde el 1 de enero de 1970 (medianoche UTC/GMT).

A continuaci贸n, deber谩 utilizar el algoritmo JWT para obtener el token completo y verificado.

Pero seamos honestos, no queremos crear un JWT manualmente. Para esto, utilizaremos el sitio web JWT.io para simplificar el proceso. Aseg煤rese de que el mensaje Firma verificada aparezca a continuaci贸n, lo que indica que nuestro JWT es v谩lido.

O puede crearlo program谩ticamente usando el lenguaje de programaci贸n de su elecci贸n. M谩s adelante en este art铆culo, compartir茅 un pr谩ctico script de Node.js para generar el token de acceso a la nube de datos.

Antes de que podamos autenticarnos usando el JWT que generamos, debemos aprobar este consumidor. Puede hacerlo abriendo la siguiente URL en su navegador.

<dx-code-block title language code-block="https://login.salesforce.com/services/oauth2/authorize?response_type=token&client_id=&redirect_uri=禄>

Y luego, inicie sesi贸n y permita el acceso:

Ahora que hemos aprobado nuestro JWT, necesitamos autenticarnos. Este es un proceso de dos pasos. Primero, necesitamos obtener un token de acceso usando el JWT. Para hacer esto, realicemos una solicitud POST HTTP con la siguiente informaci贸n.

<dx-code-block title language code-block="POST https://login.salesforce.com/services/oauth2/token
Content-Type : x-www-form-urlencoded
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&assertion=禄>

Nota: aseg煤rese de reemplazar <JWT> con el token que creamos anteriormente.

Esta solicitud nos dar谩 un token de acceso central y la URL de la instancia de Data Cloud, utilizando nuestra aplicaci贸n conectada. Como se muestra en el alcance , se nos otorgan los alcances cdp_ingest_api y api .

A continuaci贸n, debemos cambiar el token de acceso principal por un token de nube de datos. Para hacer eso, realicemos la siguiente solicitud POST.

<dx-code-block title language code-block="POST /services/a360/token Content-Type : x-www-form-urlencoded grant_type=urn:salesforce:grant-type:external:cdp &subject_token= &subject_token_type=urn:ietf:params:oauth:token-type:access_token禄>

Ahora, estamos autenticados. El token de acceso a la nube de datos resultante es lo que usaremos para realizar solicitudes a la API de ingesta.

Para simplificar el proceso, he creado un script Node.js. Crea el JWT y realiza la autenticaci贸n en dos pasos. Para usarlo, necesitar谩 la clave privada que cre贸 anteriormente, as铆 como un archivo de configuraci贸n similar al siguiente.

config.js

Adem谩s, instale la dependencia jsonwebtoken desde npm ejecutando:

credenciales.js

console.log(auth)) .catch((err) => console.error(err)); 芦>

El m茅todo generateAccessToken devolver谩 el objeto de autenticaci贸n de Data Cloud, incluido el access_token y la instance_url necesarios para comenzar a ingerir datos en Data Cloud.

Ingesta de datos

Tenemos toda la informaci贸n necesaria para comenzar a ingerir datos en la nube de datos. Esto se puede lograr utilizando los patrones Streaming o Bulk.

Transmisi贸n

Para comenzar a transmitir datos en el conector de Ingesti贸n de nube de datos, primero obtenga el nombre del conector y el nombre del objeto de la configuraci贸n del conector de la API de Ingesti贸n. Para hacer esto, puede realizar una solicitud POST como la siguiente.

<dx-code-block title language code-block="POST https:///api/v1/ingest/sources/Solar_Panel_Events/solar_panel_event
Authorization: Bearer
Content-Type: application/json
{ "data": [ {"event_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479","customer_id": "003R00000123456789","battery": 75.2,"dc_current": 9.8,"dc_voltage": 35.6,"mpp_energy": 120.5,"ac_voltage": 220.1,"ac_current": 5.3,"date_time": "2023-07-07T10:15:30.05Z"} ] }禄>

Nota : aseg煤rese de reemplazar <token de acceso a la nube de datos> y <url de instancia> con los valores respectivos que obtuvo del proceso de autenticaci贸n.

Si todo va bien, recibir谩s la siguiente respuesta:

Esto indica que nuestros datos han sido aceptados con 茅xito.

Nota : tambi茅n puede validar los datos con el esquema antes de enviarlos agregando /actions/test al punto final de la API.

A granel

La ingesti贸n masiva implica varios pasos, lo que agrega un nivel de complejidad al proceso:

  • Crear un trabajo: este paso implica crear un trabajo para especificar el tipo de objeto de los datos que se procesan y la operaci贸n que se realizar谩, que puede ser upsert o delete.
  • Cargar los datos en CSV: Despu茅s de crear el trabajo, el siguiente paso es cargar los datos en formato CSV. El archivo CSV debe contener los datos que se procesar谩n, con cada fila representando un registro y las columnas que contienen los valores de campo.
  • Indicar la preparaci贸n de los datos: una vez que se cargan los datos, deber谩 indicar que los datos est谩n listos para ser procesados.
  • Cerrar o cancelar el trabajo: despu茅s de procesar los datos, puede cerrar el trabajo para marcarlo como completado o cancelar el trabajo si es necesario.

Para obtener m谩s informaci贸n sobre c贸mo usar los puntos de conexi贸n masivos, puede consultar la documentaci贸n oficial .

Puede consultar los datos entrantes utilizando el Explorador de datos en Data Cloud. All铆, seleccionar谩 el objeto Data Lake correspondiente al conector de ingesta que cre贸 anteriormente.

Si desea probarlo usted mismo, siempre puede utilizar nuestra colecci贸n Postman de desarrolladores de Salesforce, que incluye las API de Salesforce Data Cloud .

Conclusi贸n

Ahora, est谩 listo para comenzar a cargar datos mediante programaci贸n en Data Cloud mediante la API de ingesta. Siguiendo los pasos anteriores, puede conectarse sin problemas a varias fuentes de datos e importar datos en tiempo real o en masa, y comenzar a aprovechar el poder y la magia de Salesforce Data Cloud.

Adem谩s, si prefiere aprender de un video, mi colega Aditya ha creado un video 煤til que explica lo que hemos cubierto en esta publicaci贸n de blog . Aseg煤rese de ver tambi茅n los otros excelentes videos de la serie Data Cloud Decoded .

Recursos

Sobre los autores

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 @julianduque en Threads, @julian_duque en Twitter, @julianduque.co en Bluesky social o LinkedIn .

Aditya Naag Topalli es una defensora de desarrolladores l铆der certificada 14 veces en Salesforce. Capacita e inspira a los desarrolladores dentro y fuera del ecosistema de Salesforce a trav茅s de sus videos, seminarios web, publicaciones de blog y contribuciones de c贸digo abierto, y tambi茅n habla con frecuencia en conferencias y eventos en todo el mundo. S铆galo en Twitter o LinkedIn y vea sus contribuciones en 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

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

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

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

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

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

Explore la API de la plataforma de eventos con la colecci贸n extendida de Postman | Blog de desarrolladores de Salesforce

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

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

Acerca de la plataforma de eventos de Salesforce

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

Tipos de eventos

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

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

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

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

Canales personalizados

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

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

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

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

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

Relevo de eventos

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

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

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

Actualizaciones de Salesforce Event Platform para la colecci贸n Postman

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

Canales personalizados

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

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

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

Publicar eventos de la plataforma

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

Configuraci贸n de retransmisi贸n de eventos

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

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

esquema de eventos

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

Lo que nos depara la colecci贸n Postman

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

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

palabras de cierre

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

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

Recursos

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

隆Ya est谩 aqu铆 la CLI sf (v2) de Salesforce! 鈥 Parte 1 鈽侊笍

隆Ya est谩 aqu铆 la CLI sf (v2) de Salesforce! 鈥 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.

隆Ya est谩 aqu铆 la CLI sf (v2) de Salesforce! 鈥 Parte 1 | Blog de desarrolladores de Salesforce

La CLI de Salesforce es una de las herramientas de desarrollo m谩s importantes de nuestro ecosistema. La CLI es el compa帽ero diario de los desarrolladores de Salesforce para crear, probar, implementar y m谩s. Adem谩s, la CLI es fundamental para las pr谩cticas de DevOps, como la integraci贸n continua, donde la automatizaci贸n es clave. Despu茅s de siete a帽os de disponibilidad general, ahora estamos entrando en un nuevo cap铆tulo para la CLI de Salesforce.

Esta publicaci贸n es la primera de una serie de blogs de dos partes sobre sf (v2), la nueva y mejorada CLI de Salesforce. En la Parte 1, veremos las novedades de Salesforce CLI sf (v2). Luego, en la segunda parte de la serie, nos sumergiremos en c贸mo puede migrar de comandos y banderas de estilo sfdx a los nuevos comandos y patrones de bandera de estilo sf .

Anuncio de disponibilidad general (GA) de sf (v2)

Hace aproximadamente dos a帽os, el equipo de CLI de Salesforce se embarc贸 en una iniciativa de unificaci贸n con la visi贸n de unificar las diversas experiencias de CLI en todo el ecosistema de Salesforce. Anunciamos la pr贸xima evoluci贸n de nuestra CLI de Salesforce con un nuevo ejecutable llamado sf . La creaci贸n de sf como una CLI separada nos dio la oportunidad de dise帽ar, probar y lanzar no solo una nueva estructura de comando para un r谩pido desarrollo entre nubes, sino tambi茅n una CLI m谩s intuitiva, eficaz y f谩cil de usar.

Hoy, nos complace anunciar la disponibilidad general (GA) de la segunda versi贸n (v2) de sf . Esta es una versi贸n principal de sf CLI que es lo suficientemente inteligente como para comprender todos sus comandos sfdx , as铆 como los comandos sf , con tiempos de instalaci贸n y actualizaci贸n mucho m谩s r谩pidos. La CLI sf (v2) es todo lo que es sf y sfdx . Despu茅s de instalar sf (v2), tendr谩 acceso a todos los comandos sfdx y sf , y podr谩 continuar ejecutando cualquiera de ellos.

Adopte el futuro del desarrollo de Salesforce

La CLI sf (v2) es nuestro camino a seguir. Le permite experimentar actualizaciones e instalaciones m谩s r谩pidas ya que el tama帽o de instalaci贸n/descarga se ha reducido considerablemente.

Esto significa que todas las capacidades nuevas vendr谩n solo a trav茅s de sf (v2) y dejaremos de publicar actualizaciones en sfdx (excepto las correcciones relacionadas con la seguridad). Adem谩s, todas las nuevas correcciones y caracter铆sticas del complemento CLI solo entrar谩n en sf (v2).

Despu茅s de una importante investigaci贸n de UX, hemos introducido nuevos comandos de estilo sf y patrones de bandera para brindar una mejor experiencia de usuario. Sin embargo, si le preocupan los esfuerzos necesarios para migrar de sfdx a sf , 隆tenemos buenas noticias para usted! Todav铆a puede usar los comandos sfdx y la CLI sf seguir谩 respondiendo de la misma manera. Adem谩s, solo tendr谩 un conjunto de complementos CLI en lugar de uno para sfdx y otro para sf (v1). (Nota: si ha instalado complementos, todos los complementos en sf estar谩n disponibles en sf (v2). Sin embargo, los complementos en sfdx no est谩n disponibles autom谩ticamente en sf (v2). Instale los que necesita usando sf plugins install ) .

Comience con la CLI de Salesforce sf (v2)

Para familiarizarse con sf (v2), siga las instrucciones de instalaci贸n , que le mostrar谩n c贸mo pasar a sf (v2) y c贸mo volver a su instalaci贸n CLI actual si es necesario.

Nota sobre la instalaci贸n de Salesforce CLI sf (v2):

Creamos un alias para sfdx dentro de sf (v2), para que no necesite actualizar sus scripts de sfdx a sf . Dado que sf (v2) utilizar谩 el alias sfdx, deber谩 desinstalar sfdx para que ese nombre est茅 disponible para sf (v2)

La CLI sf (v2) no se puede instalar en una m谩quina que tenga sfdx instalado. Seg煤n las instrucciones de instalaci贸n de sf (v2), primero debe desinstalar sfdx . Si no desinstala primero sfdx y, en su lugar, intenta instalar sf a trav茅s del paquete npm @salesforce/cli , que ahora alberga sf (v2), la instalaci贸n fallar谩. Tenga en cuenta que su CI no debe instalar sfdx , solo sf(v2) .

驴Que sigue?

Est茅n atentos para obtener m谩s informaci贸n sobre c贸mo pasar de los comandos sfdx -style a los comandos sf -style en la parte final de esta serie de blogs.

Mientras explora sf (v2), recuerde informar cualquier error, solicitud de funci贸n o comportamiento sorprendente a trav茅s del repositorio CLI GitHub . 隆Estamos emocionados de saber de usted y, como siempre, le agradecemos su apoyo!

Recursos

Sobre los autores

Pooja Reddivari es gerente s茅nior de gesti贸n de productos en la organizaci贸n Herramientas y experiencia para desarrolladores de plataformas en Salesforce. Le apasiona crear productos escalables y resistentes que deleiten a desarrolladores y clientes. Pooja ha trabajado en las verticales de empresa, educaci贸n y fintech con m谩s de 12 a帽os de experiencia como profesional de ingenier铆a y gesti贸n de productos. S铆gala en Twitter @poojasalesforc1 y en LinkedIn .

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Presentamos HowToDev_ 鈽侊笍

Presentamos HowToDev_ 鈽侊笍

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

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

Presentamos HowToDev_ | Blog de desarrolladores de Salesforce

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

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

Descripci贸n general de la plataforma de Salesforce

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

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

隆Vamos a codificar!

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

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

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

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

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

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

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

D贸nde ver HowToDev_

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

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

M谩s recursos

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

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

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

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

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

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

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

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

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

Un repaso a las pruebas unitarias

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

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

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

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

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

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

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

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

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

Presentamos la burla del 谩pice

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

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

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

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

Ejemplo de escenario: pedidos de panader铆a y entrega

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

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

Pasteler铆a.cls

DeliveryService.cls

DeliveryServiceImpl.cls

Confirmaci贸n de pedido.cls

Panader铆a.cls

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

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

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

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

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

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

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

Paso 2: m茅todos de espionaje de trozo

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

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

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

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

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

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

Paso 3: Escribe afirmaciones

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

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

Uniendo el ejemplo completo

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

palabras de cierre

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

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

Sobre los autores

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

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

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Dise帽e una API Swagger con c贸digo para traer datos a Salesforce 鈽侊笍

Dise帽e una API Swagger con c贸digo para traer datos a Salesforce 鈽侊笍

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.

Dise帽e una API de Swagger con c贸digo para llevar datos a Salesforce | Blog de desarrolladores de Salesforce

La integraci贸n de una API externa con su organizaci贸n de Salesforce puede ser una tarea sencilla que no requiere c贸digo si utilizaCredenciales con nombre y Servicios externos . Deber谩 crear una credencial con nombre que apunte a la API y configurar un servicio externo en la interfaz de usuario de configuraci贸n. La clave aqu铆 es proporcionar una especificaci贸n OpenAPI para la API. Si la API no tiene una, puede dise帽arla usted mismo manualmente usando YAML o JSON, usar MuleSoft Anypoint Platform o aprovechar las herramientas y el c贸digo de c贸digo abierto.

En esta publicaci贸n, le presentaremos la especificaci贸n OpenAPI y Swagger, discutiremos los elementos principales de la especificaci贸n y lo guiaremos a trav茅s del dise帽o e implementaci贸n de una API con c贸digo. Usaremos Node.js y Swagger dentro del marco Fastify para esta tarea. Finalmente, integraremos esta API con Salesforce.

OpenAPI y Swagger

OpenAPI es una especificaci贸n para dise帽ar y construir API. Proporciona una forma estandarizada de definir su API para otros, brindando una forma estructurada que incluye puntos finales, tipos de solicitud/respuesta, definiciones de esquema, m茅todos de autenticaci贸n y m谩s. Las especificaciones de OpenAPI est谩n escritas en formatos YAML o JSON, ambos f谩ciles de leer y escribir. Esta especificaci贸n es ampliamente adoptada y respaldada por una variedad de herramientas, lo que la convierte en una opci贸n popular para dise帽ar y documentar API. De hecho, si desea importar una API a Salesforce utilizando servicios externos, deber谩 especificarse con OpenAPI. Adem谩s, Salesforce es miembro de la Iniciativa OpenAPI .

Nota: A la fecha de esta publicaci贸n, la versi贸n actual de la especificaci贸n OpenAPI es 3.1.0.

Swagger , por otro lado, es un conjunto de herramientas ( la mayor铆a de c贸digo abierto ) para implementar la especificaci贸n OpenAPI. Incluye la interfaz de usuario de Swagger, que proporciona una interfaz gr谩fica para comprender y probar las API, y Swagger Codegen, que genera c贸digo SDK de cliente y ap茅ndices de servidor a partir de una especificaci贸n OpenAPI.

La especificaci贸n OpenAPI v2 tambi茅n se conoce como Swagger, pero su nombre cambi贸 cuando se convirti贸 en parte de la iniciativa OpenAPI en 2016.

Estructura b谩sica de la especificaci贸n OpenAPI

La especificaci贸n OpenAPI est谩 organizada en las siguientes secciones clave:

API abierta Define el documento ra铆z y combina la lista de recursos y la declaraci贸n de la API. Requerido
Informaci贸n Proporciona metadatos sobre la API, como el t铆tulo, la descripci贸n, los t茅rminos del servicio, la informaci贸n de contacto, etc. Obligatorio
Servidores Especifica una o m谩s URL base para su API, como producci贸n o preparaci贸n.
Seguridad Define un esquema de seguridad que pueden utilizar las operaciones de la API.
Caminos Describe las rutas y operaciones disponibles para la API. Cada ruta tiene un m茅todo HTTP con los detalles de la operaci贸n.
Etiquetas Agrega metadatos a una sola etiqueta que utiliza el objeto de operaci贸n.
Documentos externos Proporciona una descripci贸n y una URL para la documentaci贸n externa.
Componentes Define un conjunto de objetos reutilizables para diferentes aspectos de la API. Esto puede incluir esquemas, respuestas, par谩metros, ejemplos, cuerpos de solicitud, encabezados, esquemas de seguridad, etc.

Para obtener una explicaci贸n m谩s detallada de cada secci贸n y sus correspondientes definiciones de objeto, consulte la documentaci贸n oficial de la especificaci贸n OpenAPI .

Para fines de demostraci贸n, crearemos una API para administrar una librer铆a. Esta API contar谩 con dos m茅todos HTTP: uno para enumerar los libros disponibles y otro para agregar nuevos libros. A continuaci贸n, encontrar谩 una definici贸n b谩sica de esta API, centr谩ndose en el m茅todo para listar libros ( GET /books ) y sus objetos de respuesta.

Tenga en cuenta que estamos usando tres secciones principales aqu铆: Informaci贸n , Rutas y Componentes . Como se mencion贸 anteriormente, describiremos esta API a medida que la implementemos mediante c贸digo. Para este prop贸sito, utilizaremos Fastify y Fastify Swagger.

Fastify y Fastify Swagger

Fastify es un marco web altamente eficiente y flexible para Node.js. Est谩 dise帽ado para facilitar su uso y ofrecer la m谩xima velocidad sin comprometer la personalizaci贸n. Fastify proporciona una base s贸lida para las aplicaciones web y las API, con funciones como la validaci贸n de solicitudes y respuestas basadas en esquemas, ganchos, complementos y registro autom谩tico. Una de sus principales ventajas radica en su ecosistema, que incluye numerosos complementos centrales y mantenidos por la comunidad.

Uno de estos complementos es fastify-swagger . Este complemento nos permite ofrecer definiciones de Swagger (OpenAPI v2) u OpenAPI v3, que se generan autom谩ticamente a partir de sus esquemas de ruta o de una definici贸n existente de Swagger/OpenAPI. Adem谩s, utilizar谩 fastify-swagger-ui , un complemento que sirve una instancia de Swagger UI dentro de su aplicaci贸n.

Nota: La siguiente demostraci贸n requiere la instalaci贸n de Node.js LTS y, a la fecha de esta publicaci贸n de blog, la 煤ltima versi贸n es v18.16.0.

Comencemos a crear la API de su librer铆a instalando Fastify CLI y generando un nuevo proyecto ejecutando:

Luego, vayamos a la carpeta del proyecto e instalemos las dependencias fastify-swagger y fastify-swagger-ui .

Nota: En esta demostraci贸n, se centrar谩 en tres aspectos principales: agregar compatibilidad con Swagger a Fastify, definir rutas de API y delinear esquemas y tipos de respuesta. No explicaremos c贸mo integrar la API con una base de datos. Si est谩 interesado en explorar la fuente completa del proyecto, est谩 disponible en el repositorio de ejemplos de codeLive.

Agreguemos compatibilidad con Swagger a Fastify editando el archivo app.js , luego importemos Swagger y SwaggerUI y registr茅moslos como complementos.

aplicaci贸n.js

En la configuraci贸n del complemento de Swagger, tiene la opci贸n de pasar toda la definici贸n de especificaci贸n de OpenAPI, o puede aprovechar el enfoque din谩mico que ofrece el complemento. Para esta demostraci贸n, utilizar谩 el enfoque din谩mico. Dado que el 煤nico campo obligatorio es info , definir谩 los metadatos de su API all铆, adem谩s, la secci贸n refResolver se encarga de nombrar las referencias de definici贸n de esquema.

Y para SwaggerUI, solo especifica la ruta donde se alojar谩 el sitio de documentaci贸n.

Ahora vamos a crear una carpeta schemas . Aqu铆 es donde definir谩 los esquemas de su API. Para esta demostraci贸n, definir谩 un esquema book y un esquema error .

esquemas/index.js

Los esquemas representan la estructura de los objetos con los que trabajar谩, tanto para los cuerpos de solicitud como para los de respuesta. Para la especificaci贸n OpenAPI, el complemento Swagger agregar谩 autom谩ticamente estos objetos en el campo components .

Finalmente, definamos las rutas API para GET /books y POST /books usando Fastify. Primero, deber谩 registrar los esquemas dentro de Fastify. Luego, especificar谩 los objetos de respuesta y solicitud para cada ruta que haga referencia a esos esquemas.

rutas/root.js

{ // … look at the code repository for a complete implementation } ) // POST /books fastify.post( ‘/books’, { schema: { description: "Create a book", body: { $ref: ‘book#’, required: [‘author’, ‘title’] }, response: { 201: { description: ‘Returns the book that has been created’, $ref: ‘book#’ }, 500: { description: ‘Returns an error’, $ref: ‘error#’ } } } }, async (request, reply) => { const { title, author } = request.body const id = randomUUID() const client = await fastify.pg.connect() try { const { rows: books } = await client.query( ‘INSERT INTO books(id, title, author) VALUES($1, $2, $3) RETURNING *’, [id, title, author] ) const [newBook] = books reply.code(201).send(newBook) } catch (error) { reply .status(500) .send({ code: 500, message: `An error ocurred: ${error.message}` }) } finally { client.release() } } ) // GET / fastify.get(‘/’, { schema: { hide: true } }, async function (request, reply) { reply.status(301).redirect(‘/api-docs’) })
} 芦>

Analicemos la ruta POST /books :

  • La funci贸n fastify.post define el m茅todo HTTP.
  • El primer argumento especifica la ruta: /books.
  • El segundo argumento especifica el schema , que incluye el body : el objeto de carga 煤til que espera la API. (Tenga en cuenta que es una referencia al esquema del book ). Tambi茅n incluye varios objetos response para esa ruta, que se asignan a los c贸digos de estado HTTP correspondientes 201 y 500 .
  • El tercer argumento es la implementaci贸n de la ruta. En este caso, est谩 insertando el objeto en la base de datos y devolviendo el nuevo objeto. Si este proceso falla, devolver谩 un objeto de error. Es importante tener en cuenta que est谩 utilizando los mismos esquemas que defini贸 anteriormente.

Nota: Tambi茅n tiene la opci贸n de excluir ciertas rutas de la documentaci贸n pasando hide: true en el objeto de esquema de esa ruta espec铆fica, como se demuestra en GET / route.

Su API est谩 lista, as铆 que ejec煤tela localmente para echar un vistazo a la interfaz de SwaggerUI ejecutando:

Y navegue a http://localhost:3000/api-docs para ver las diferentes rutas, su documentaci贸n y tener una forma de probarlas directamente desde la interfaz.

Si desea probarlo e implementarlo en Heroku, aseg煤rese de actualizar el script start en el archivo package.json con lo siguiente.

Adem谩s, aseg煤rese de tener acceso a una base de datos Heroku PostgreSQL y cree el esquema de la base de datos ejecutando:

<dx-code-block title language code-block="heroku pg:psql

Nota: El archivo database.sql est谩 disponible en el repositorio de ejemplos de codeLive.

Luego puede implementarlo ejecutando:

Si desea ver c贸mo se ve implementado, vea mi versi贸n que se ejecuta en Heroku .

Integraci贸n de una API externa con Salesforce

Ahora que tiene una API de acceso p煤blico, integr茅mosla con Salesforce como un servicio externo.

Primero, deber谩 crear una credencial con nombre para esta API. En la interfaz de usuario de configuraci贸n, vaya a Seguridad > Credenciales con nombre y cree una credencial externa con un protocolo de autenticaci贸n personalizado y una entidad de seguridad.

Aseg煤rese de que la credencial externa tenga una entidad principal a la que le haya asignado permisos en Acceso principal de credenciales externas en su conjunto de permisos.

Luego, cree una credencial con nombre que haga referencia a la credencial externa con la URL que apunta a la API p煤blica.

A continuaci贸n, vaya a Integraciones > Servicios externos y agregue un nuevo servicio externo desde una especificaci贸n de API, seleccione la credencial con nombre y configure la ruta relativa a la ruta de especificaci贸n de OpenAPI. En su demostraci贸n, ser谩 /api-docs/json .

Despu茅s de eso, guarde sus cambios y seleccione las operaciones que desea importar a Salesforce, revise las operaciones y finalice.

Como puede ver, las operaciones que ha seleccionado se han importado correctamente, especificando tanto los par谩metros de entrada como los de salida.

Ahora podr谩 invocar este servicio externo desde Flow, Apex, Einstein Bots y OmniStudio.

Conclusi贸n

OpenAPI y los servicios externos de Salesforce brindan una poderosa combinaci贸n para integrar API externas en su organizaci贸n de Salesforce. Al aprovechar el enfoque estandarizado de OpenAPI para definir las API y la capacidad de Salesforce para consumir f谩cilmente estas definiciones e invocarlas desde soluciones de c贸digo bajo y pro-c贸digo, los desarrolladores como usted pueden optimizar el proceso de conexi贸n a servicios externos y mejorar las capacidades de sus aplicaciones de Salesforce.

Si est谩 interesado en obtener m谩s informaci贸n sobre los servicios externos , puede encontrar una lista de recursos de aprendizaje a continuaci贸n, incluidos videos que muestran c贸mo invocarlos desde Flow y Apex.

Recursos de aprendizaje

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

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

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

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

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

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

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

Antes de que empieces

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

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

Instalaci贸n de las herramientas de desarrollador

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

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

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

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

Creaci贸n de un proyecto de Salesforce DX

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

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

sf project generate -n myProject

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

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

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

Autorizar y establecer una organizaci贸n como predeterminada

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

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

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

sf org login web -s

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

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

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

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

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

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

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

Implementaci贸n de metadatos en la organizaci贸n

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

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

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

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

sf project deploy start -m ApexClass

Una segunda forma es especificar una carpeta para implementar.

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

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

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

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

Conclusi贸n

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

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo