Categories
Developers Tutoriales de Salesforce

Las funciones y herramientas más recientes de LWC para dispositivos móviles ☁️

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 funciones y herramientas más recientes de LWC para dispositivos móviles | Blog de desarrolladores de Salesforce

El objetivo de Mobile Platform Experience es facilitar que los desarrolladores tengan éxito al crear aplicaciones para dispositivos móviles. Es por eso que estamos tan emocionados de que el lanzamiento de Spring '23 esté lleno de innovaciones para hacer que sus componentes web Lightning (LWC) brillen en teléfonos móviles y tabletas. También hacen que la experiencia de desarrollo de esos LWC sea mucho más fácil. ¡Sigue leyendo para aprender más!

Resumen rápido de las innovaciones anteriores a Spring '23

En primer lugar, hagamos un resumen rápido de las herramientas, características y prácticas recomendadas de LWC para dispositivos móviles que se han publicado en versiones recientes. Puede que no los conozcas, ¡y podemos decirte que son geniales!

Si no está familiarizado con estas funciones, mire codeLive: LWC para dispositivos móviles para verlas en acción.

A continuación, sigamos hablando de las novedades de Spring '23.

Mejoras en el complemento BarcodeScanner

Los complementos de Nimbus le permiten usar capacidades nativas de dispositivos móviles en sus componentes web Lightning. Los complementos permanecen inactivos en el escritorio y cobran vida en las aplicaciones móviles. Por ejemplo, algunos clientes ya están utilizando los complementos de Nimbus para escanear códigos de barras para casos de uso como verificar el inventario de productos, etiquetar la ubicación de un trabajador de campo para una orden de trabajo del cliente, importar contactos desde un dispositivo a una cuenta de Salesforce y sincronizar eventos de calendario hacia y desde Salesforce. .

Tenemos complementos de Nimbus ya disponibles o que se están agregando actualmente a las aplicaciones creadas por Salesforce, incluida la aplicación Salesforce Mobile (con Health Cloud y Retail Experience), Salesforce Field Service y Mobile Publisher para Experience Cloud. Hemos priorizado el soporte de los diferentes casos de uso de dispositivos nativos implementados en las diferentes aplicaciones móviles en función de los comentarios de los clientes. Consulte la siguiente tabla para obtener más información.

Característica Servicio de campo de Salesforce Editor móvil para Experience Cloud Aplicación móvil Salesforce Aplicación Salesforce+ (sin conexión)
Escáner de código de barras Invierno planeado '24 Disponible Disponible Disponible
Servicio de localización Disponible Disponible Futuro Disponible
Servicio de geocercas No estaba planeado Disponible Futuro Futuro
ContactosServicio No estaba planeado Disponible Futuro Futuro
CalendarioServicio No estaba planeado Disponible Futuro Futuro

La compatibilidad y los requisitos de los complementos de Nimbus cambian constantemente, y puede encontrar la información más actualizada en la Guía del desarrollador de LWC debajo de cada complemento.

En Summer '22, pusimos a disposición nuestro complemento BarcodeScanner. Agregamos un ejemplo de implementación a nuestra aplicación de muestra Dreamhouse y publicamos una publicación de blog sobre cómo usarla. En Spring '23, el complemento BarcodeScanner se mejoró para manejar mejor el escaneo de múltiples códigos de barras, ya que esta era una función muy solicitada por los clientes.

Las nuevas mejoras incluyen:

  • Se puede habilitar un cuadro delimitador para resaltar el código de barras particular que se escaneará
  • La confirmación manual permite al usuario confirmar qué código de barras/código QR escanear cuando hay varios en la vista
  • La vista previa de los datos capturados permite que el escáner obtenga una vista previa de los datos capturados en el escaneo incluso antes de salir de la pantalla de escaneo

Consulte la documentación de BarcodeScanner para obtener más información.

Utilidad de cambio de tamaño de imagen para lightning-input

Hemos agregado una biblioteca de compresión y cambio de tamaño de imágenes ( mediaUtils ) que puede usar con el componente base lightning-input para mejorar el rendimiento de la carga de imágenes. Esto es especialmente importante para los dispositivos móviles. Para facilitar la comprensión de la función, hemos actualizado la implementación de nuestro carrusel de imágenes de la aplicación de muestra Dreamhouse . Ahora, el componente usa lightning-input en lugar de lightning-file-upload . Tenga en cuenta que este último es más fácil de usar si no necesita manipular las imágenes antes de cargarlas.

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

En el código JavaScript del componente, importamos processImage desde lightning/mediaUtils . Esto le permite manejar el cambio de tamaño y la compresión de imágenes sin escribir todo ese código usted mismo. Ver el ejemplo completo para más información.

Validación fuera de línea de LWC

Para los clientes móviles, permitir que los usuarios finales trabajen sin conexión (sin conexión a la red o conectividad limitada) es una necesidad clave. Los trabajadores de campo realizan trabajos de reparación, visitan tiendas, visitan pacientes en el hogar y más. En estos casos, necesitan hacer su trabajo independientemente de la conectividad de la red. Ahora, puede crear LWC que se ejecuten en este tipo de escenarios gracias a LWC Offline.

LWC Offline es un entorno de tiempo de ejecución avanzado para componentes web Lightning. Disponible solo para dispositivos móviles, reemplaza el tiempo de ejecución estándar de los componentes Lightning y lo aumenta con funciones diseñadas específicamente para uso móvil y sin conexión. Para admitir LWC Offline y Briefcase en la aplicación Salesforce Mobile, Salesforce App+ estuvo disponible como un programa piloto cerrado en el lanzamiento de Winter '23 y pasará a la versión beta cerrada en Spring '23. LWC sin conexión está generalmente disponible (GA) como una mejora opcional para la aplicación móvil Salesforce Field Service. Obtenga más información revisando el artículo Creación de aplicaciones móviles listas para usar sin conexión con Salesforce .

Característica Servicio de campo de Salesforce Editor móvil para Experience Cloud Aplicación móvil Salesforce Aplicación Salesforce+ (sin conexión)
LWC fuera de línea Disponible No estaba planeado No estaba planeado Disponible

Para los desarrolladores que crean LWC que deberían funcionar sin conexión, pueden aprovechar nuestro complemento VS Code ESLint más nuevo, eslint-plugin-lwc-graph-analyzer . Este validador utiliza el analizador estático de Komaci, que lo ayuda a asegurarse de que las dependencias de código y los datos que necesita su componente puedan prepararse cuando hay una conexión de red disponible, haciendo que el componente y sus datos estén disponibles sin conexión cuando la red tiene conectividad limitada o nula. Con el complemento instalado, obtiene comentarios instantáneos sobre la preparación sin conexión a medida que construye sus LWC. El validador también proporciona punteros a las descripciones de los errores de validación y cómo solucionarlos. Para obtener más información sobre la instalación y el uso del complemento ESLint para VSCode, consulte la Guía para desarrolladores móviles sin conexión .

Arnés de prueba móvil para aplicaciones fuera de línea

Mobile Offline Test Harness (Test Harness, para abreviar) es una aplicación liviana de prueba y depuración que puede instalar en su emulador de Android o simulador de iOS. Con la aplicación Test Harness, puede confirmar que sus LWC funcionan como se esperaba antes de que estén listos para la prueba de integración dentro de una aplicación móvil de Salesforce habilitada sin conexión (Salesforce Field Service y Salesforce App+ a partir de hoy). El arnés de prueba incluye:

  • Un flujo de aplicaciones rápido y conveniente centrado en el lanzamiento de acciones rápidas de LWC con un SObject seleccionado
  • Una cola de borrador dedicada para ver el estado de las operaciones de modificación de datos pendientes
  • Una consola de depuración integrada en la aplicación para obtener una vista amplia de las tareas en curso y una inspección granular de los mensajes de registro
  • Recargas de aplicaciones inmediatas y bajo demanda para reiniciar rápidamente y volver a ejecutar sus últimos cambios de código LWC
  • La capacidad de adjuntar depuradores de navegador para ver más errores y advertencias específicos del desarrollador desde la vista web de LWC

Test Harness se ejecuta en una versión constantemente compatible de LWC Offline, por lo que puede esperar tiempos de respuesta rápidos y un entorno de prueba y depuración siempre actualizado.

Para obtener más información sobre la instalación y el uso del arnés de prueba móvil sin conexión, consulte la guía Desarrollar LWC listos para usar sin conexión con el arnés de prueba móvil sin conexión .

UTAM para Móvil

El modelo de automatización de pruebas de interfaz de usuario (UTAM) se basa en el popular patrón de diseño del modelo de objeto de página que se usa comúnmente en las pruebas de interfaz de usuario. Para usar UTAM, un desarrollador debe crear un objeto de página para cada componente de la interfaz de usuario para encapsular las interacciones en un solo lugar. UTAM proporciona una gramática JSON para escribir objetos de página y un compilador para generar código ejecutable en Java o JavaScript.

El equipo de Salesforce Mobile está trabajando en estrecha colaboración con UTAM para ayudarlo a realizar pruebas de interfaz de usuario en dispositivos móviles. Hoy, puede usar el nuevo inspector móvil de UTAM para identificar objetos de página para dispositivos móviles. Cuando escribe una prueba para una página nativa de una aplicación híbrida de Salesforce Mobile, a menudo es confuso saber qué objetos de página usar. El inspector móvil de UTAM le presenta el conjunto apropiado de objetos de página para la página que está navegando actualmente e identifica qué elementos de página se ven afectados por los métodos en un objeto de página seleccionado.

Próximamente, mejoraremos esta experiencia con herramientas en VSCode para ayudarlo a agregar pruebas UTAM para sus componentes web Lightning en dispositivos móviles.

Empieza ahora

¡Vaya, eso fue mucho! Esperamos que haya disfrutado de esta publicación de blog y que esté ansioso por usar todas esas nuevas capacidades para crear LWC para dispositivos móviles fácilmente y lograr la mejor experiencia de usuario para sus usuarios de dispositivos móviles. Para obtener más información, consulte la Guía del desarrollador de LWC para obtener información sobre todas las herramientas disponibles para la experiencia del desarrollador móvil, o vea los últimos videos, blogs, podcasts e insignias de senderos en el LWC para el Centro de desarrollo móvil .

Sobre los autores

Sue Berry es directora de gestión de productos en Salesforce, donde se centra en Salesforce Mobile. Actualmente está trabajando en Salesforce Mobile SDK y las nuevas herramientas móviles que se presentan en este blog. Lleva más de 15 años creando herramientas para desarrolladores. @suzetteaberry

Alba Rivas trabaja como Principal Developer Advocate en Salesforce. Actualmente se enfoca en el desarrollo de Lightning Web Components y Slack. Puedes seguirla en Twitter @AlbaSFDC .

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

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2023/02/lwc-for-mobiles-newest-features-tools.html

Categories
Developers Tutoriales de Salesforce

¡5 características asombrosas que los desarrolladores pueden no conocer acerca de Heroku! ☁️

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.

En el mundo actual, las aplicaciones son fundamentales para atraer a los clientes y, como resultado, existe una creciente demanda de desarrolladores en todas las industrias. Sin embargo, gran parte del tiempo de un desarrollador se dedica a trabajos no relacionados con el código, como el aprovisionamiento y la administración de servidores, la configuración del alojamiento, la administración de datos y la seguridad.

Afortunadamente, existen plataformas como Heroku que brindan la forma más rápida para que una empresa cree aplicaciones internas y orientadas al cliente. Entonces… ¿qué es Heroku? Heroku es una plataforma de aplicaciones basada en la nube que permite a las empresas crear, entregar, monitorear y escalar aplicaciones.

En esta publicación de blog, compartiremos cinco cosas sorprendentes que los desarrolladores pueden no saber sobre Heroku. En el camino, también discutiremos cómo Heroku brinda una excelente experiencia para desarrolladores y por qué es una plataforma como servicio (PaaS) ideal para desarrolladores de aplicaciones.

1) Ponga en marcha su aplicación en la nube en un instante

Crear una aplicación en Heroku es extremadamente rápido y fácil. Todo lo que necesita hacer es darle un nombre (único a nivel mundial) y elegir una región. ¡En serio, eso es todo!

Una vez que haga clic en Crear aplicación , tendrá una aplicación en la nube casi al instante. Es una de las soluciones PaaS más rápidas, lo que permite a los desarrolladores crear e implementar aplicaciones rápidamente.

Con Heroku, los desarrolladores pueden concentrarse en crear excelentes aplicaciones en lugar de preocuparse por configurar servidores o infraestructura. El proceso de implementación, configuración, escalado, ajuste y administración de aplicaciones se hace lo más simple y directo posible. También hay un nivel Gratis y Aficionado , que brinda a los desarrolladores una forma gratuita o de bajo costo de experimentar y comenzar, al tiempo que tienen la opción de escalar fácilmente a niveles de producción para uso empresarial.

Además, si tiene un repositorio público en GitHub, puede permitir fácilmente que otros desarrolladores implementen rápidamente su código en su aplicación Heroku con el aprovisionamiento con un solo clic mediante los botones de Heroku . Esto permite una configuración e implementación superrápidas de componentes, bibliotecas y aplicaciones de patrones de terceros. Por ejemplo, esta plantilla de GitHub de Introducción a Python de muestra le permite implementar rápidamente una aplicación de Python de muestra con Django, todo con solo hacer clic en un botón.

Ver la implementación en Heroku botón con un círculo rojo en la captura de pantalla a continuación.

2) Implementar automáticamente en una gran variedad de idiomas

Por lo general, los desarrolladores tienen que instalar diferentes software y componentes para que su aplicación funcione. Pero los desarrolladores que implementan en Heroku pueden desarrollar fácilmente su aplicación usando cualquiera de los ocho lenguajes admitidos oficialmente, a saber, Node.js , Ruby , Python , Java , PHP , Go , Scala y Clojure , sin tener que preocuparse por instalar o configurar la pila. .

¡Heroku hace todo esto mágicamente en nombre del desarrollador! Una vez que se implementa el código, Heroku detecta automáticamente el código utilizado en su aplicación y, posteriormente, utiliza el paquete de compilación adecuado. Tomemos, por ejemplo, Django es un marco de aplicación web de Python ampliamente utilizado por los desarrolladores en la actualidad, y a menudo se usa junto con SQLite como motor de base de datos. Como puede ver aquí, Heroku detecta automáticamente que la aplicación está ejecutando Python y la plataforma instala automáticamente todos los paquetes y dependencias apropiados.

Aquí hay otro ejemplo. Si es un desarrollador que prefiere alojar aplicaciones web dinámicas en PHP, es posible que esté familiarizado con la popular pila LAMP, que generalmente se instala y configura, e incluye un grupo de software de código abierto, como el sistema operativo Linux. sistema, servidor web Apache, base de datos MySQL para procesar PHP (por lo tanto, "LAMP").


Y como puede ver aquí, una vez que Heroku detecta el paquete de compilación que necesita, también instala automáticamente los paquetes de plataforma requeridos, como apache, php, composer, nginx, etc.

Si los desarrolladores quieren usar un lenguaje o marco diferente de los ocho admitidos oficialmente, pueden encontrar un paquete de compilación de terceros para admitirlo . Heroku permite a los desarrolladores aprovechar fácilmente la fortaleza de cualquiera de sus idiomas preferidos para crear una combinación de aplicaciones en una variedad de idiomas, o elegir el idioma que mejor se adapte a su zona de confort o requisitos únicos.

Los desarrolladores pueden aprovechar fácilmente la fortaleza de cualquiera de sus idiomas preferidos para crear una combinación de aplicaciones en una variedad de idiomas, o elegir el idioma que mejor se adapte a su zona de confort o requisitos únicos.

Con eso, los desarrolladores pueden concentrarse solo en escribir código y, cuando se implementa en Heroku, la plataforma puede detectar los detalles de la aplicación y la descripción de la dependencia. El código fuente de su aplicación, junto con el archivo de dependencia, brinda suficiente información para que la Plataforma Heroku construya su aplicación, lo que le permite producir algo que se puede ejecutar muy rápido.

3) Agregue fácilmente componentes a su aplicación

Agregar nuevas funciones y componentes a una aplicación puede llevar mucho tiempo y ser complejo. Los complementos de Heroku son componentes que amplían una aplicación con servicios adicionales, como almacenamiento de datos, supervisión, análisis, procesamiento de datos y más. Los complementos de Heroku son completamente mantenidos por un proveedor externo o por Heroku. Permiten a los desarrolladores agregar rápida y fácilmente nuevas funciones y componentes a su aplicación, para que puedan concentrarse en su propio código y lógica de aplicación sin la complejidad adicional de mantener los servicios de soporte a plena capacidad de producción.

Por ejemplo, en este caso, los desarrolladores pueden agregar fácilmente una base de datos MySQL a su aplicación simplemente buscándola en la pestaña Recursos en su Tablero de Heroku. ¡Imagínese lo fácil que es activar una aplicación y experimentar con diferentes servicios adicionales para probar nuevas ideas!

4) Sincronice a la perfección los datos de Salesforce y Heroku

Con las aplicaciones modernas, hay muchos casos en los que sería extremadamente útil utilizar los datos de Salesforce dentro de la experiencia de la aplicación. Esto se puede lograr muy fácilmente usando uno de los increíbles complementos de Heroku: Heroku Connect. Este complemento permite a los desarrolladores configurar fácilmente una sincronización de puente de datos bidireccional entre Heroku Postgres de la aplicación base de datos (que también se puede aprovisionar fácilmente como complemento de Heroku) y objetos de Salesforce. Como puede ver en este ejemplo, los desarrolladores pueden decidir fácilmente qué campos de objetos en Salesforce asignar a la base de datos de Postgres. Lo mejor de Heroku Connect es que los datos sincronizados no afectan los límites de la API de Salesforce porque Heroku es parte de la Plataforma de Salesforce.


Con los cambios de datos sincronizados bidireccionalmente entre Salesforce y Postgres, los conectores de datos de transmisión de Heroku también son otra gran herramienta que permite a los desarrolladores aprovechar Heroku para aumentar el valor de los datos a través de una arquitectura basada en eventos. Los conectores de transmisión de datos permiten que los cambios de datos en Heroku Postgres se transmitan fácilmente a otras tiendas y aplicaciones dentro e incluso fuera de Salesforce para la integración con otras fuentes de datos, como un lago de datos de Snowflake o una cola de AWS Kinesis.

Estos son solo algunos casos de uso en los que los desarrolladores están creando valor comercial con Heroku Connect y Heroku Streaming Data Connectors:

  1. Combine datos de varias organizaciones de Salesforce para habilitar ventas cruzadas/aumentadas entre organizaciones para mejorar las eficiencias internas y vender más. Heroku Connect sincroniza los datos de Oportunidades de varias organizaciones de Salesforce con una base de datos Postgres de Heroku y los replica en la organización principal o "principal", que sirve como única fuente de información para todas las oportunidades. Esto facilita el uso de funciones, como Salesforce Connect, para virtualizar los datos de oportunidades en las organizaciones secundarias o ejecutar análisis desde una organización.
  2. Aproveche millones de interacciones de clientes para impulsar la personalización en aplicaciones, conocimientos y experiencias a partir de registros de aplicaciones, secuencias de clics o cualquier fuente de eventos para ofrecer experiencias omnicanal y vender más. Los conectores de datos de transmisión y Apache Kafka para Heroku facilitan más que nunca la combinación de datos de eventos de transmisión en un solo bus de eventos y convierten los datos transaccionales en un flujo de eventos.
  3. Cree experiencias de consumo, aplicaciones, notificaciones y conocimientos receptivos en tiempo real con transmisión de datos y una arquitectura basada en eventos unificada con Customer 360 para aumentar la adquisición, el compromiso, la adopción y la retención de clientes. Aloje datos de transmisión en Apache Kafka para Heroku y use conectores de datos de transmisión para convertir datos transaccionales en una transmisión de eventos e integrar estas experiencias con su instancia de Customer 360.
  4. Conecte las aplicaciones heredadas a las experiencias de aplicaciones modernas sin tener que reescribirlas para aumentar la agilidad de TI. Utilice conectores de datos de transmisión para convertir los datos transaccionales de Heroku Postgres en un flujo de eventos e integrarlos con Customer 360.
  5. Impulse la hiperautomatización con activadores de transmisión en todo el ecosistema de aplicaciones . Imagine que su producto activa un evento en el bus de eventos (Apache Kafka en Heroku) cada vez que se registra un nuevo usuario. Este evento activaría la creación de cuentas en Salesforce, la facturación en CPQ, un recorrido de marketing en Marketing Cloud y procesos de incorporación en Service Cloud.

5) Facilite DevOps con Heroku Pipelines

DevOps es un aspecto importante del trabajo de un desarrollador porque es un enfoque de operaciones y desarrollo de software que permite un desarrollo más rápido de nuevos productos y un mantenimiento más sencillo de las implementaciones existentes. Heroku hace que DevOps sea extremadamente fácil con Heroku Pipelines .

Una canalización es un grupo de aplicaciones de Heroku que comparten la misma base de código. Cada aplicación en la canalización representa una de las siguientes etapas en un flujo de trabajo de entrega continua : desarrollo, revisión, puesta en escena y producción.

La página de descripción general de una canalización ilustra las etapas de este flujo y proporciona información sobre el estado de cada etapa. Con un vistazo, los desarrolladores pueden ver en este tablero que el entorno de prueba se ejecuta de manera diferente a la producción. Por ejemplo, los hash 95961120 y 749f1b2c son diferentes. La página de descripción general también permite a los desarrolladores promocionar fácilmente a producción con solo un clic, ¡sin causar ningún tiempo de inactividad en la aplicación!


Además, si los desarrolladores colaboran usando GitHub, pueden habilitar las aplicaciones de revisión de Heroku para mejorar aún más la experiencia de DevOps:

  1. Cuando un desarrollador crea una solicitud de extracción para realizar un cambio en el código base en GitHub, Heroku crea automáticamente una aplicación de revisión para la solicitud de extracción, lo que permite a los desarrolladores probar el cambio.
  2. Cuando se determina que el cambio está listo, se fusiona con la rama maestra de la base de código y los desarrolladores pueden optar por destruir automáticamente las aplicaciones de revisión obsoletas.
  3. La rama maestra se implementa automáticamente en la aplicación de prueba de la canalización para realizar más pruebas.
  4. Cuando se certifica que el cambio en el entorno de prueba está listo, un desarrollador promueve la aplicación de prueba a producción y la pone a disposición de los usuarios previstos.

¿Qué más puedo hacer con Heroku como desarrollador de Salesforce?

Si bien estas son mis cinco funciones favoritas de Heroku, hay muchas más cosas emocionantes que Heroku tiene para ofrecer, ¡especialmente para los desarrolladores de Salesforce! Con las funciones de Salesforce (lanzadas recientemente), los desarrolladores ahora tienen la opción de ejecutar código y ampliar la plataforma Customer 360 con una lógica empresarial escalable elásticamente personalizada. Con Salesforce Functions, los desarrolladores también tienen la opción de aprovechar fácilmente los datos de Heroku en el conjunto de servicios de datos de Heroku , que incluyen las ofertas de Postgres, Redis y Kafka de Heroku.

Los desarrolladores de Salesforce pueden crear una función para iterar fácilmente a través de los datos en Heroku Postgres, incluidos los datos administrados por Heroku Connect. Otros casos de uso incluyen la producción de mensajes en un flujo de Apache Kafka en Heroku, lo que facilita la implementación de Apache Kafka en Heroku como una capa de orquestación para microservicios en la plataforma Heroku, o compartir una cola de trabajo o caché basado en Heroku Data para Redis .

Conclusión

Heroku fue diseñado para desarrolladores, por desarrolladores. Esto significa que su interfaz de usuario y su experiencia son simples y fáciles de usar, tal como lo esperaría un desarrollador. Esperamos que al utilizar algunas de estas características menos conocidas dentro de la Plataforma Heroku, los desarrolladores puedan aumentar su productividad y crear aplicaciones atractivas que satisfagan las demandas actuales.

Sobre el Autor

Terence Lim es un evangelista de desarrolladores de Salesforce con un enfoque en el desarrollo de aplicaciones móviles y la plataforma de Salesforce. Conocido por su naturaleza altamente enérgica, le encanta trabajar con personas y nada lo emociona más que poder inspirar y empoderar a otros a través de la tecnología. Ha hablado frecuentemente en conferencias alrededor del mundo. Le encanta conocer gente nueva y aprender cosas nuevas, y tiene muchas historias increíbles de sus viajes para compartir. ¡A él también le encantaría escuchar tu historia! Echa un vistazo a sus proyectos de GitHub @terlim-sfdc.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/07/5-amazing-features-that-developers-may-not-know-about-heroku.html

Categories
Developers Tutoriales de Salesforce

Dentro de una aplicación móvil React Native con Tableau Embedded ☁️

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.

Como se discutió en una publicación de blog anterior, los desarrolladores buscan cada vez más opciones nativas para ampliar y personalizar sus aplicaciones de línea de negocio. Al mismo tiempo, los enfoques basados en datos son clave para la toma de decisiones efectiva y el impulso de las empresas.

En esta publicación, compartiremos cómo desarrollamos una aplicación móvil React Native + Expo utilizando herramientas de código abierto con un enfoque en cuadros y paneles interactivos integrados. Usaremos Tableau Embedded Analytics, una solución fácil de personalizar, integrar e implementar en aplicaciones, productos e incluso portales web.

Conozca Eureka Finance, una aplicación React Native para ejecutivos

Esta demostración de la aplicación móvil (que llamamos "Eureka Finance") tiene como objetivo mostrar un caso de uso simple: el liderazgo senior de una empresa busca acceder a datos comerciales cruciales para facilitar la toma de decisiones ejecutivas. Si bien elaboramos nuestro ejemplo para un negocio financiero, este caso de uso es aplicable a cualquier industria. Esperamos que nuestra experiencia le muestre el "arte de lo posible" al crear sus propias aplicaciones móviles personalizadas con React Native y traer conjuntos de datos útiles para sus propias aplicaciones comerciales.


En nuestra aplicación de demostración Eureka Finance, hemos incluido algunas características clave. La pantalla de inicio proporciona una vista de tablero de las métricas más importantes que pueden ayudar a los líderes sénior a comprender la salud de su negocio. La pantalla de Clientes se centra en las métricas más importantes de sus clientes, y la pantalla de Tendencias brinda a los líderes empresariales algunos conocimientos críticos.

El poder de Tableau Embedded Analytics

La aplicación Eureka Finance utiliza Tableau Embedded Analytics, que brinda a los usuarios la opción de implementar e integrar Tableau en su infraestructura, en las instalaciones o en la nube, en Windows o Linux, y en una aplicación web o móvil, y llevar experiencias de análisis a su propios productos y aplicaciones. Esto también permite a la comunidad de desarrolladores de datos dar rienda suelta a su creatividad con una plataforma flexible para ayudar a más personas a ver y comprender los datos.

La combinación de Tableau con una aplicación móvil personalizada como Eureka Finance puede ser excelente para las partes interesadas tanto internas como externas. Para las partes interesadas internas, puede ayudar a los empleados y equipos a centrarse en ofrecer productos y servicios con información basada en datos. En el caso de las aplicaciones destinadas a clientes y audiencias externas, aquellas con análisis pueden aumentar la adherencia del usuario y disminuir la probabilidad de que los usuarios cambien a una aplicación de la competencia.

La plataforma Tableau Embedded Analytics le permite concentrarse en crear su producto, ahorrándole tiempo, recursos y dinero. Aprenda cómo puede empoderar a sus clientes e impulsar el compromiso del producto con análisis integrados, interactivos y visuales en el siguiente video aquí:

VER EL VÍDEO

El siguiente diagrama muestra una integración entre la aplicación Eureka Finance y Tableau Online con funciones de autenticaciónJWT (también conocida como autenticación basada en token) para admitir la mayoría de los casos comerciales en integraciones de aplicaciones web y móviles.

Incrustar Tableau en React Native

Como se diseñó específicamente, es bastante simple incrustar contenido de Tableau en React Native. Vamos a discutir esto con más detalles. El primer paso que debemos hacer es configurar Tableau Connected Apps para habilitar el SSO para el contenido incrustado. Para hacer esto, cree una aplicación conectada desde la página de configuración de Tableau Online. Deberá ser administrador del sitio para tener acceso a la función Aplicaciones conectadas.

En el cuadro de diálogo Crear aplicación conectada, siga estos pasos:

  1. En el cuadro de texto Nombre de la aplicación conectada, ingrese un nombre para la aplicación conectada.
  2. En el menú desplegable Se aplica a, seleccione Todo el proyecto o Solo un proyecto para controlar qué vistas o métricas se pueden incrustar. Si selecciona la opción "Solo un proyecto", seleccione el proyecto específico.
  3. En la lista de dominios permitidos, especifique los dominios usando las reglas descritas en Formato de dominio para controlar dónde se pueden incrustar vistas o métricas.
  4. Cuando haya terminado, haga clic en Crear .

Una vez que haya creado la aplicación conectada, tenga en cuenta que deberá habilitarla porque una nueva aplicación conectada está configurada como "Deshabilitada" de manera predeterminada (por motivos de seguridad). Junto al nombre de la aplicación conectada, haga clic en el menú Acciones y seleccione Habilitar .


Para obtener más detalles, consulte el artículo Creación de una aplicación conectada en el sitio web de Tableau.

Reaccionar código de muestra nativo

Una vez que haya recuperado la ID secreta de la aplicación conectada, la ID del cliente y la clave secreta, puede proceder a firmar el token JWT, que se usará para autenticarse en Tableau. Puede configurarlo usando una variable de la siguiente manera.

Usamos la biblioteca react-native-uuid que generará un identificador único universal (UUID) que podemos complementar en el jti (JWT ID) en la carga útil. También importamos la biblioteca jwt-encode , que usaremos para firmar el token JWT, y la biblioteca moment para la gestión del tiempo.

 importar uuid desde "react-native-uuid";
const sign = require("jwt-encode");
const momento = require("momento"); export const connectedAppSecretId = "<SU ID SECRETO>";
export const connectedAppClientId = "<ID DE CLIENTE DE SU APLICACIÓN CONECTADA>";
exportar const conectadoAppSecretKey = "<LA CLAVE SECRETA DE SU APLICACIÓN CONECTADA>";

A continuación, cree un objeto de carga útil que contendrá los reclamos del token JWT. Si desea obtener más información sobre las propiedades de estas afirmaciones, consulte Introducción a los tokens web JSON .

Tenga en cuenta que para exp (tiempo de caducidad), utilizaremos la biblioteca de moment , y tiene que estar en el tiempo de época de Unix. Además, el jti (JWT ID) se genera utilizando la biblioteca react-native-uuid y sub (asunto) será la dirección de correo electrónico/ID de usuario del usuario de Tableau que se está autenticando en el tablero. Los paneles y el contenido que se presentan en WebView se basarán en los permisos asignados a este usuario por el administrador de Tableau.

 // configurar los detalles de JWT y firmar el token carga útil constante = { iss: ID de cliente de aplicación conectada, exp: momento.utc().add(3, "minutos").unix(), jti: uuid.v4(), aud: "cuadro", sub: "<DIRECCIÓN DE CORREO ELECTRÓNICO>", scp: ["tableau:views:incrustar", "tableau:métricas:incrustar"], };

Cree un objeto de encabezados que contendrá al kid (identificador clave) e iss (emisor) a los que se hace referencia con el ID secreto de la aplicación conectada y el ID del cliente de la aplicación conectada respectivamente, que obtuvo anteriormente de la consola de administración de Tableau.

 encabezados constantes = { niño: conectadoAppSecretId, iss: ID de cliente de aplicación conectada, };

Una vez que tenga los objetos de carga útil y encabezados respectivos, proceda a firmar el token usando la biblioteca jwt-encode . Si está más en línea con su estrategia, puede asignar el token JWT como un estado para su aplicación. Para mí, usé el useState en React Native para actualizar el estado del token cuando se firma.

 JwtToken = firmar (carga útil, conectadoAppSecretKey, encabezados));

Con el token, aquí está el código de muestra que puede usar para WebView. Tenga en cuenta que una de las propiedades de Tableau tableau-viz contendría el token JWT (en negrita), que admitirá la autenticación de los paneles de Tableau. Finalmente, puede devolver WebView e incluir el código HTML en un JSX de la siguiente manera.

 dejar htmlCode = "<html><cabeza>" + "<title>Demostración de integración integrada de Tableau</title>" + '<script tipo="módulo" src="https://embedding.tableauusercontent.com/tableau.embedding.3.0.0.min.js"> </script>' + `<cuerpo> <tableau-viz id="tableauViz" src=${customer_dashboard_url} barra de herramientas="falso" iframeSizedToWindow="verdadero" ficha="${JwtToken}" > </tableau-viz> </cuerpo>` + "</cabeza></html>";
 devolver ( <Ver estilo={estilos.contenedor}> <WebView origenLista blanca={["*"]} fuente={{ html: código html, }} cacheEnabled={falso} /> </Ver> );
};

Para obtener más información sobre cómo creamos la aplicación de demostración, consulte el código fuente completo de la aplicación Eureka Finance en Github.

Si está creando una aplicación con Python, puede consultar este ejemplo de código para generar tokens JWT con Python en GitHub.

Diferencias entre la aplicación Tableau Mobile y Eureka Finance

Una pregunta común es: una aplicación Tableau Mobile lista para usar también está disponible en la tienda de aplicaciones Apple o Google Play, entonces, ¿en qué se diferencia Eureka Finance?

¡Gran pregunta! El equipo de Tableau proporciona la aplicación Tableau Mobile para permitirle verificar sus datos en cualquier momento para comprender lo que sucede a su alrededor y tomar mejores decisiones. Si bien la aplicación Tableau Mobile puede ser una excelente ventana al sitio de Tableau Server o Tableau Online de su organización, Eureka Finance es una aplicación creada a medida desde cero, lo que brinda más flexibilidad. Tiene la opción de crear otros componentes y pantallas dentro de la aplicación, así como integrar múltiples servicios, incluido el pago y el procesamiento de transacciones financieras. Esto se convierte efectivamente en una plataforma de aplicación de comunicación y comercio autónoma que abarca muchos aspectos de la vida personal y comercial.

Conclusión y recursos adicionales

Con el poder de Salesforce Platform y Tableau Embedded Analytics, es bastante sencillo integrar Tableau en una aplicación móvil personalizada como Eureka Finance. Esta es una manera increíble de llevar información basada en datos a sus aplicaciones comerciales.

Para obtener más orientación con la visualización integrada de Tableau en aplicaciones móviles, consulte los recursos a continuación. Incluyen enlaces para demostrar cómo comenzar, conectarse y permanecer conectado a Tableau Online, cómo insertar visualización y cómo utilizar la API integrada v3.X para insertar contenido de Tableau dentro de la aplicación Eureka Finance.

Cuadro en línea
Analítica integrada de Tableau
Código Github para la aplicación Eureka Finance
Códigos de muestra de Github para generar tokens JWT

Sobre los autores

Terence Lim es un evangelista de desarrolladores de Salesforce con un enfoque en el desarrollo de aplicaciones móviles y la plataforma de Salesforce. Conocido por su naturaleza altamente enérgica, le encanta trabajar con personas y nada lo emociona más que poder inspirar y empoderar a otros a través de la tecnología. Ha hablado frecuentemente en conferencias alrededor del mundo. Le encanta conocer gente nueva y aprender cosas nuevas, y tiene muchas historias increíbles de sus viajes para compartir. ¡A él también le encantaría escuchar tu historia! Echa un vistazo a sus proyectos de GitHub @terlim-sfdc.


Vijay Kadervel es un ingeniero de soluciones de Salesforce que se especializa en análisis integrados, integraciones de API, análisis de datos y detección de valores atípicos. Tiene una amplia experiencia como arquitecto de soluciones técnicas que respalda a los equipos de ventas desde una perspectiva de preventa, incluidas demostraciones, presentaciones, pruebas de concepto, asistencia de RFI/RFP e iniciativas de atención al cliente. En su función actual, Vijay apoya a los clientes con iniciativas de análisis integradas en toda la región APAC.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/05/inside-a-react-native-mobile-app-with-tableau-embedded.html

Categories
Developers Tutoriales de Salesforce

AMPscript para nuevos desarrolladores y administradores de Marketing Cloud ☁️

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

El enlace a la publicación original, lo encontrarás al final de este artículo.

AMPscript es el lenguaje de secuencias de comandos patentado de Marketing Cloud que ayuda a los especialistas en marketing a mejorar la forma en que se comunican con los clientes. Se puede incrustar en correos electrónicos HTML, correos electrónicos de texto, páginas de destino, mensajes SMS y notificaciones automáticas de MobilePush . Puede usar AMPscript para recuperar datos, como información de producción o de clientes, desde extensiones de datos para usar en el cuerpo de mensajes de correo electrónico y páginas de destino para brindar a los destinatarios una experiencia personalizada.

Esta publicación de blog explicará los conceptos básicos de AMPscript, las variables y las extensiones de datos, y le mostrará cómo crear un mensaje de correo electrónico personalizado aprovechando el poder de AMPscript y las extensiones de datos. Al final, verá un mensaje de correo electrónico personalizado completamente renderizado. A continuación se muestra un ejemplo de cómo se ve AMPscript en Content Builder de Email Studio.

¿Qué son las extensiones de datos?

Una extensión de datos es una tabla dentro de la base de datos de Marketing Cloud que contiene sus datos. Puede usar extensiones de datos con Marketing Cloud Email Studio para almacenar datos que desea aprovechar en sus mensajes de correo electrónico. Con las extensiones de datos, puede:

  • Importe información de otros sistemas a Email Studio
  • Enviar un mensaje a los suscriptores en una extensión de datos
  • Excluir suscriptores en una extensión de datos de un envío de mensajes
  • Incluir información específica del cliente de una extensión de datos en un mensaje
  • Recopile la información de suscriptor de las personas que activan un envío activado
  • Cree contenido dinámico usando datos almacenados en una extensión de datos en un área de contenido de correo electrónico

A continuación se muestra una extensión de datos de membresía de Hiking Club de muestra que creé para esta publicación. Contiene la información de suscripción de los miembros actuales de nuestro club de senderismo.

¿Qué son las variables?

Si está familiarizado con otros lenguajes de programación, es posible que ya sepa qué es una variable. Para aquellos que no lo son, una variable en AMPscript es una ubicación de almacenamiento para la información a la que desea hacer referencia más adelante dentro de una instrucción o función de secuencia de comandos.

Las variables se declaran en su código usando la palabra clave Var seguida de uno o más nombres de variables delimitados por comas. Una vez declaradas, las variables en AMPscript se asignan mediante la palabra clave Set seguida del nombre de la variable, el signo igual y el valor. El valor de una variable puede ser una constante o un atributo. Los nombres de variables deben comenzar con @ e incluir al menos otra letra, número o guión bajo.

 %%[ Var @nombre, @apellido, @cumpleaños Establecer @firstName = Nombre
Establecer @apellido = Apellido
Establecer @cumpleaños = Cumpleaños ]%%

Uso de un bloque de contenido de fragmento de código

Para comenzar a crear nuestro correo electrónico personalizado, agreguemos un bloque de contenido de fragmento de código a nuestro mensaje de correo electrónico. Un bloque de contenido de fragmento de código nos permite escribir nuestro AMPscript sin que se envuelva en ningún HTML adicional. Los bloques de contenido HTML se pueden usar para almacenar su AMPscript, pero también pueden agregar contenedores HTML adicionales a su código que no desea en su mensaje de correo electrónico. El uso de un bloque de contenido de fragmento de código evita que ocurra ese posible problema y preserva su código.

Dentro del bloque de fragmentos de código, creemos el contenedor para nuestro AMPScript creando corchetes de apertura y cierre: %%[ el código va aquí ]%%. A continuación, declararemos nuestras variables usando la palabra clave Var y separando cada variable con una coma. Usaremos el comando Establecer para dar a las variables el valor de la información tomada de las columnas en nuestra extensión de datos de ejemplo.

 %%[ Var @memberId, @firstName, @lastName, @preferredName, @properCaseFirstName, @properCaseLastName, @properCasePreferredName, @mailingAddress, @city, @state, @zipCode, @birthday, @birthdayFormatted, @membershipLevel, @membershipExpiration, @membershipExpirationFormatted, @automaticRenewal Establecer @memberId = MemberID
Establecer @firstName = Nombre
Establecer @apellido = Apellido
Establecer @preferredName = PreferredName
Establecer @properCaseFirstName = ProperCase(@firstName)
Establecer @properCaseLastName = ProperCase(@lastName)
Establecer @properCasePreferredName = ProperCase(@preferredName)
Establecer @mailingAddress = MailingAddress
Establecer @ciudad = ciudad
Establecer @estado = estado
Establecer @zipCode = ZipCode
Establecer @cumpleaños = Cumpleaños
Establezca @birthdayFormatted = FormatDate(@birthday, "s") Establecer @membershipLevel = MembershipLevel
Establecer @membershipExpiration = MembershipExpiration
Establecer @membershipExpirationFormatted = FormatDate(@membershipExpirationDate, "s") Establecer @automaticRenewal = AutomaticRenewal ]%%

La función v

Exploraremos más las funciones en una publicación de blog posterior, pero por ahora, repasemos la función v. Esta función toma una variable como entrada y luego genera el valor de la variable. En nuestro ejemplo, usaremos esta función para tomar los valores que establecemos en nuestro AMPscript y mostrarlos en el cuerpo de nuestro correo electrónico. Para generar los valores de las variables que configuramos en nuestro bloque de fragmentos de código, utilizaremos un bloque de contenido de texto .

Representando una vista previa de nuestro correo electrónico

Finalmente, usaremos la función de prueba y vista previa de suscriptor de Email Studio para obtener una vista previa de nuestro mensaje de correo electrónico y asegurarnos de que nuestro AMPscript esté funcionando y que no haya errores. Aquí hay una vista previa de nuestro mensaje de correo electrónico, presentado con datos de suscriptor de nuestra extensión de datos de Membresía de Hiking Club.

[contenido incrustado]

Que sigue

En esta publicación, aprendiste sobre las extensiones de datos: qué son y cómo usarlas para almacenar los datos de tus suscriptores. También aprendió cómo usar variables para transferir los datos de suscriptor desde sus extensiones de datos y cómo generar sus variables en un mensaje de correo electrónico. En publicaciones futuras, exploraremos casos de uso adicionales para AMPscript, pero mientras tanto, lo desafío a acelerar su aprendizaje utilizando los siguientes recursos:

Sobre el Autor

Danielle Larregui es promotora sénior de desarrolladores en Salesforce y se centra en la plataforma Marketing Cloud. Le gusta el marketing digital, el diseño de experiencia de usuario, el diseño de interfaz de usuario y el desarrollo móvil. Puedes seguirla en Twitter @DnLarregui .

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/04/ampscript-for-new-marketing-cloud-developers-and-admins.html

Categories
AppExchange Salesforce Tutoriales de Salesforce

Reforzar y fortalecer la gestión de proyectos de TI para maximizar la eficiencia

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.

(Esta es la Parte 8 de una serie de varias partes de Passage Technology : Reinventing Your Business, Reimagining Your Salesforce ; consulte la Parte 1 , Parte 2 , Parte 3 , Parte 4 , Parte 5 , Parte 6 y 7. En otras entradas para este serie, profundizaremos en temas como cómo los administradores de Salesforce pueden emplear nuevos enfoques y empoderar a sus socios comerciales. Además, cómo las empresas pueden agilizar las operaciones y evolucionar objetivamente la toma de decisiones estratégicas, asegurando la participación del grupo y la productividad. innovación. Y, finalmente, cómo ejecutar una planificación de proyectos eficiente en el entorno de Salesforce, para ser ágil y lograr sus objetivos de reinvención).

La gestión de proyectos toca casi todos los aspectos de cómo las organizaciones logran sus objetivos y puede tener un gran impacto en los costos. El estado de la gestión de proyectos 2020 informa que los desafíos de la gestión de proyectos cuestan a las empresas $ 109 millones por cada $ 1 mil millones invertidos en un proyecto (aproximadamente el 11% de todos los costos del proyecto), y uno de cada seis proyectos de TI tiene un costo excedente del 200%.

Uno de los principales factores que influyen en la gestión de proyectos es la comunicación. El informe muestra que, cada año, una mala comunicación puede costar a las empresas con hasta 100 empleados aproximadamente $ 420,000 y a las empresas con una plantilla de más de 100,000 empleados más de $ 62 millones . Y la posibilidad de costosas fallas de comunicación aumenta a medida que se expande la fuerza laboral remota.

La buena noticia es que puede mejorar la comunicación estableciendo plazos, objetivos y responsabilidades del proyecto con el software de colaboración del equipo de gestión de proyectos. Un estudio de Pulse of the Profession del Project Management Institute encontró que las empresas que han implementado una estructura de gestión de proyectos experimentan un 38% más de éxito con proyectos que aquellas sin una estructura establecida. *

Gestión de proyectos en Salesforce

¿Está incorporando nuevos empleados? ¿Integrando sistemas? ¿Lanzar un nuevo sitio web o abrir una nueva oficina? Fuerza de ventas puede realizar un seguimiento de todas las entradas individuales y los puntos de datos que entran en su proyecto, y las aplicaciones de AppExchange pueden ayudar a ampliar las capacidades de gestión de proyectos de Salesforce. Las aplicaciones de gestión de proyectos como Milestones PM + , disponibles en AppExchange, pueden ayudarlo a transformar su organización de Salesforce en una plataforma de ejecución de proyectos.

A medida que los equipos de tecnología internos implementan nuevos procesos comerciales y mejoran o integran sistemas, necesitan documentar su trabajo y mantenerse al día en términos de presupuestación, programación y transferencia de conocimientos.

¿Se ha documentado la funcionalidad deseada? ¿Tiene un plan de prueba para asegurarse de que los usuarios no experimenten errores o problemas de usabilidad? Ya sea que un proyecto de tecnología implique la gestión de proyectos de Salesforce, la gestión de proyectos de desarrollo de aplicaciones móviles o la creación de una nueva comunidad de clientes, cada proyecto tendrá hitos y tareas dentro de ellos que deben completarse y seguirse.

Al crear un proyecto en Salesforce para cada tipo de proyecto de TI utilizando las plantillas Milestones PM +, puede preparar a su equipo para que el éxito logre sus objetivos al tiempo que facilita la eficiencia, la colaboración y garantiza una transición sin problemas para la adopción por parte del usuario. A continuación se muestran ejemplos de cómo las organizaciones utilizaron Milestones PM + de Passage Technology para lograr sus objetivos con proyectos técnicos.

Desafío del proyecto n. ° 1: integrar sistemas y procesos comerciales centrales en la plataforma Salesforce

Una de las principales empresas de energía de Gran Bretaña, nPower necesitaba una herramienta para gestionar proyectos en múltiples flujos de trabajo para integrar todos sus procesos de ventas internos. También estaban implementando su sistema de crédito en Salesforce, que incluía una integración con Experian y Attradius.

La capacidad de configuración de Milestones PM + les permitió adoptar un enfoque iterativo y controlado para mejorar la gobernanza del programa. Al ayudarlos a aplicar la estructura a sus procesos de desarrollo de Salesforce, la aplicación les permitió ajustar sus procesos de gestión de proyectos para adaptarse al crecimiento de la producción sin la pérdida de rendimiento o calidad.

Desafío del proyecto n. ° 2: los datos históricos y los sistemas de varias empresas se integran en una organización de Salesforce

Uniti Fiber es el segmento de infraestructura de fibra de Uniti, un Fideicomiso de Inversión en Bienes Raíces (REIT) que cotiza en bolsa. Como resultado de la expansión, el equipo de Operaciones de Sistemas de Uniti Fiber estaba equilibrando el desafío de manejar una afluencia de solicitudes de funciones de todos los departamentos mientras integraba nuevas empresas con muchos otros sistemas. También habían triplicado su número de usuarios de Salesforce en solo tres años a 600 y estaban en proceso de conversión a Lightning en su organización de Salesforce.

Comprender los costos es fundamental cuando se construye fibra óptica y Milestones PM + ayudó a Uniti Fiber a rastrear y agregar los costos de administración. También utilizaron Rollup Helper de Passage Technology , que es gratuito en AppExchange, para agregar montos en dólares. Con Rollup Helper y Milestones PM +, pudieron realizar un seguimiento de los costos de varios departamentos y comprender los ahorros de costos recurrentes mensuales.

Conclusión

El uso de una aplicación de administración de proyectos de Salesforce como Milestones PM + le brinda el poder de transformar su organización de Salesforce en una plataforma de ejecución de proyectos, ya sea que esté administrando proyectos de TI a gran escala, abriendo nuevas ubicaciones , incorporando nuevos empleados o administrando proyectos de marketing .

Para obtener más información sobre las aplicaciones y los servicios de Passage Technology, comuníquese con nosotros o visite las páginas de descripción general de Milestones PM + y Rollup Helper.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://medium.com/inside-the-salesforce-ecosystem/strengthening-it-project-management-to-maximize-efficiency-c039a2fbc2a3?source=rss—-9444ec5b02eb—4

Categories
Developers Enterprise Software Tutoriales de Salesforce

¿Qué hay de nuevo en el SDK móvil 9.0?

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.

Estoy muy contento de anunciar que la nueva versión del SDK móvil de Salesforce ya está disponible. Mobile SDK 9.0 se centra en la productividad del desarrollador y del usuario final. Independientemente de si está creando aplicaciones para iOS, Android o aplicaciones multiplataforma, a usted y a sus usuarios finales les encantarán las mejoras de esta versión.

Sus usuarios finales multitarea saltarán de alegría con nuestro soporte para múltiples ventanas para iPadOS. Gestiona diferentes cuentas, registros y casos de uso en paralelo.

Habéis hablado, os hemos escuchado. Basándonos en los comentarios de los desarrolladores, hemos añadido un ID externo para eliminar la duplicación de registros tras un reinicio de la sincronización para la información de padres e hijos. No es necesario que codifiques esto tú mismo, lo hemos hecho por ti.

Y… destacamos el poder del código abierto. ¡Hemos incorporado TypeScript para React Native con la ayuda de una contribución de la comunidad! Ahora, los desarrolladores de React Native pueden aprovechar las características de depuración y detección de errores de TypeScript desde el principio y con frecuencia durante el desarrollo de aplicaciones móviles.

Si ésta es su primera introducción al SDK para móviles de Salesforce, diríjase directamente a Trailhead y consulte la ruta Desarrollar con el SDK para móviles para empezar hoy mismo.

También puede revisar las notas de la versión para SDK para iOS y SDK para Android para ver todos los cambios de esta versión.

Destacados de la versión

  • SDK para iOS
    • Soporte de múltiples ventanas para iPadOS
    • Mejoras en el paisaje para los dispositivos iOS
  • SDK para iOS
  • SDK para React Native
    • TypeScript para React Native
    • Plantillas modernizadas
  • Sistema de gestión de la información para React Native
  • Generalidades
    • Identificación externa para la sincronización de padres e hijos
    • Actualización del sistema operativo y de la biblioteca
  • Se trata de un sistema de gestión de la información

SDK para iOS

Salesforce + Apple = Mejor juntos. Ofrezca experiencias de cliente impactantes aprovechando el mejor hardware de Apple, las últimas funciones del SDK para móviles y el CRM líder en el mundo de Salesforce. En esta versión, el SDK móvil amplía nuestra asociación con Apple al ser totalmente compatible con las funciones de Apple iOS 14 y iPadOS 14, añadiendo compatibilidad con varias ventanas y realizando mejoras en la orientación horizontal. Actualice sus aplicaciones a la última versión para aprovechar las capacidades de iOS 14 y iPadOS 14.

Para obtener más información sobre el desarrollo para Salesforce & Apple iOS, revise Cómo empezar a desarrollar aplicaciones para iOS.

Apple iOS 14

A partir de Mobile SDK 8.3, podrás aprovechar todas las novedades de Apple iOS 14. Cree clips de aplicaciones, widgets, realidad aumentada y mucho más. Más información sobre las funciones de Apple iOS 14 para desarrolladores aquí.

Actualizaciones del SO y de las librerías
El SDK base de iOS es ahora el 14 (en lugar del 13) y la versión min es el 13 en lugar del 12.

Apple iPadOS 14

Con el SDK móvil 9.0, puedes aprovechar las nuevas características de Apple iPadOS y, en concreto, de iPadOS 14. Con el último SDK móvil, los desarrolladores pueden aprovechar características como copiar/pegar, multitarea, vista dividida y más cuando se construye para el iPad, todo ello sin hacer cambios adicionales en sus aplicaciones.

Para añadir compatibilidad con múltiples ventanas a las aplicaciones para iPadOS, tendrás que utilizar los nuevos métodos del SDK móvil 9.0. Obtenga más información en la siguiente sección. Más información sobre las características de Apple iPadOS para desarrolladores aquí.

Soporte de múltiples ventanas para iPadOS

Apple añadió soporte para múltiples ventanas en el iPad a partir de iOS 13. Esto significa que una sola aplicación puede tener dos ventanas que se ejecuten una al lado de la otra y que cada ventana haga lo suyo.

En el SDK móvil 9.0, ahora proporcionamos soporte para múltiples ventanas para las aplicaciones de iPadOS. La activación de esta función en su aplicación permite a sus usuarios finales ser más productivos. Por ejemplo, un usuario final puede trabajar en dos registros diferentes simultáneamente y copiar/pegar de una ventana a la otra. Las ventajas de la multitarea son infinitas.

Apple iOS tiene el concepto de escenas, que en última instancia permite la función de múltiples ventanas. Cada escena está asociada a una sesión de escena que tiene un identificador único. Para el resto de esta sección, la función de «ventana» se denominará «escena».

Para implementar esta función en aplicaciones nuevas o existentes del SDK para móviles, los desarrolladores deben utilizar nuevos métodos para gestionar adecuadamente el flujo de inicio de sesión. Mobile SDK se encarga del resto.

Aprenda más sobre las ventanas múltiples para iPadOS aquí.

Inicio de sesión
Para los usuarios finales, el flujo de inicio de sesión es muy sencillo. La aplicación mostrará una pantalla de inicio de sesión si el usuario aún no se ha autenticado en ningún sitio. Una vez que el usuario final completa un inicio de sesión exitoso en una escena, Mobile SDK lo aplica a todas las escenas y activa el bloque de finalización de inicio de sesión de cada escena. El cierre de sesión de una escena también se aplica a todas las escenas. Puede ver un ejemplo de esto en la siguiente imagen.

SFSDKAuthHelper proporciona una forma estándar y recomendada de hacer el flujo de inicio de sesión – y esta clase se ha mejorado con nuevos métodos que toman un parámetro de escena. Los desarrolladores tendrán que utilizar estos nuevos métodos para gestionar adecuadamente múltiples escenas en el flujo de inicio de sesión.

Además, RestAPIExplorer tiene ahora un delegado de escena que utiliza estos métodos.

El siguiente ejemplo muestra dos de los métodos en uso.

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } self.window = UIWindow(frame: windowScene.coordinateSpace.bounds) self.window?.windowScene = windowScene AuthHelper.registerBlock(forCurrentUserChangeNotifications: scene) { self.resetViewState { self.setupRootViewController() } } self.initializeAppViewState() AuthHelper.loginIfRequired(scene) { self.setupRootViewController() } }

IDP
Si estás usando autenticación avanzada con IDP, los delegados de escena tienen un método para abrir URLs similar a un delegado de aplicación, por lo que una aplicación cliente de IDP con múltiples escenas necesitaría usar el delegado de escena y pasar el identificador persistente de la escena. El código siguiente proporciona un ejemplo de esto.

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { if let urlContext = URLContexts.first { UserAccountManager.shared.handleIdentityProviderResponse(from: urlContext.url, with: [UserAccountManager.IDPSceneKey: scene.session.persistentIdentifier]) }
}

Nuevos métodos en SFSDKAuthHelper

Como he mencionado, hay cuatro nuevos métodos para el soporte de escenas en SFSDKAuthHelper. Tendrás que utilizarlos para gestionar adecuadamente el flujo de inicio de sesión para múltiples escenas.

  • (*void*)loginIfRequired:(UIScene *)scene completion:(*nullable* *void* (^)(*void*))completionBlock;
    • Iniciar un flujo de inicio de sesión si el usuario no ha iniciado ya la sesión en Salesforce y si el indicador `shouldAuthenticate` de la configuración de la aplicación está establecido en false.
  • (*void*)handleLogout:(UIScene *)scene completion:(*nullable* *void* (^)(*void*))completionBlock;
    • Maneja el cambio de usuario o la presentación de una pantalla de inicio de sesión para la escena.
  • (*void*)registerBlockForCurrentUserChangeNotifications:(UIScene *)scene completion:(*void* (^)(*void*))completionBlock;
    • Activa el flujo de cierre de sesión para la escena dada al recibir una notificación y registra un bloque para que se ejecute al cambiar de usuario.
  • (*void*)registerBlockForLogoutNotifications:(UIScene *)scene completion:(*void* (^)(*void*))completionBlock;
    • Activa el flujo de cierre de sesión para la escena dada al recibir una notificación.

Para obtener más información sobre cómo se utilizan estos métodos, revisa la Guía para desarrolladores del SDK para móviles.

Habilitar en la configuración del proyecto de XCode
Además de los métodos anteriores, también tendrás que actualizar la configuración del proyecto de tu aplicación en XCode. Una aplicación habilita múltiples escenas a través de los ajustes generales del objetivo de la aplicación en la sección «Deployment Info».Limitaciones conocidas
Hay algunas limitaciones que hay que tener en cuenta a la hora de habilitar múltiples escenas para tu aplicación.

  • El código de acceso de la aplicación no es compatible actualmente con las ventanas múltiples, por lo que si una aplicación utiliza el código de acceso, no debería habilitar las ventanas múltiples.
  • Una limitación a la simplicidad de inicio de sesión es la imposibilidad de que un usuario inicie sesión en su entorno de caja de arena en una escena y en el entorno de producción en otra escena.

Mejoras en el paisaje para dispositivos iOS

El SDK para dispositivos móviles es compatible con el modo horizontal desde hace un tiempo. Sin embargo, hemos recibido comentarios de los clientes de que los usuarios finales estaban experimentando casos en los que el iPhone o el iPad cambiaban inesperadamente al modo vertical. El inicio de sesión es un ejemplo de cuando el cambio a vertical ocurrió.

Para el SDK móvil 9.0, hemos cambiado nuestros controladores de vista para que sean compatibles con todas las orientaciones de los dispositivos en lugar de estar codificados en modo vertical en determinados casos. También nos hemos asegurado de que el tamaño sea correcto justo después de la rotación.

Todo lo que tienes que hacer aquí es actualizar tu aplicación Mobile SDK a la versión 9.0.

SDK para React Native

Nuestro SDK para React Native tiene unas cuantas actualizaciones impresionantes en esta versión para ayudar a aumentar la productividad de los desarrolladores.

Actualizaciones del SO y de las librerías
React Native está ahora en la versión 0.63.4 (que soluciona algunos problemas de XCode 12)

TypeScript para React Native

TypeScript es un lenguaje de programación de código abierto creado por Microsoft para ayudar a los desarrolladores a construir y mantener aplicaciones JavaScript de nivel empresarial. Es un superconjunto de JavaScript que proporciona principalmente tipado estático opcional, clases e interfaces. TypeScript ha ganado popularidad en los últimos años entre los desarrolladores de frontend por su capacidad para ayudar a detectar errores antes, su consistencia de código y sus capacidades de depuración.

Para más información ver: https://www.typescriptlang.org/

Para el SDK móvil 9.0, los módulos React Native JavaScript fueron reescritos en TypeScript.

Si ya tienes una aplicación existente de Mobile SDK para React Native, tu aplicación no necesita cambiar.

Si estás creando una nueva aplicación, ahora puedes elegir escribir tu aplicación React Native en JavaScript o TypeScript. Las aplicaciones escritas en TypeScript ahora pueden aprovechar las APIs tipificadas para hacer la validación estática de su código. Consulta los nuevos módulos de TypeScript aquí.

Nueva plantilla: ReactNativeTypeScriptTemplate
Mobile SDK 9.0 también ha añadido una nueva plantilla React Native que utiliza TypeScript llamada ReactNativeTypeScriptTemplate. Recomendamos que los desarrolladores de TypeScript generen su aplicación basándose en esa plantilla para empezar, por lo que hemos hecho que sea la plantilla por defecto.

Para construir una nueva aplicación basada en esa plantilla, haz lo siguiente:

forcereact create


Plantillas React Native modernizadas

Siempre estamos buscando formas de modernizar el SDK de Mobile e integrar las últimas tecnologías. Además de añadir TypeScript a nuestro SDK de React Native, también hemos modernizado nuestras plantillas de React Native.

A partir de Mobile SDK 9.0, las aplicaciones generadas con forcereact enlazarán automáticamente sus dependencias. Cuando añada una dependencia, sólo tiene que añadirla a su package.json – ya no necesita cambiar el podfile. Las librerías nativas para su dependencia se enlazarán automáticamente en su proyecto.

Actualizaciones generales

Identificación externa para la sincronización padre/hijo

En el SDK móvil 8.0, hemos mejorado la sincronización de un solo registro y de lotes para permitir la sincronización por identificación externa (upserts)

Los upserts son útiles para evitar la duplicación. Si la red se desconecta mientras se realiza una sincronización, un cliente puede no saber si su última petición se ha realizado o no. Reejecutar la sincronización sin usar upsert creará un duplicado si la petición de creación original ha sido realmente recibida por el servidor. Con un upsert, la solicitud reproducida no hará nada (hará una actualización que establece los mismos valores para los campos).

Hemos recibido información de nuestra comunidad de desarrolladores de que algunos de ustedes estaban teniendo problemas con la creación de registros duplicados durante la sincronización padre / hijo. Para ayudar a aliviar este problema y eliminar la necesidad de que los desarrolladores codifiquen su propia solución, el SDK para móviles ha añadido la misma capacidad de ID externo a la sincronización padre/hijo para la versión 9.0.

Cuando se proporcione un nombre de campo de ID externo en la información de padres o hijos, y un registro de padres o hijos creado localmente tenga un valor para ese campo, el motor de Mobile Sync realizará un upsert en lugar de una creación contra el servidor.

Para que este ID externo haga un upsert, debe hacer lo siguiente:

  • Declarativamente: añade campos personalizados de tipo ID externo a los objetos relevantes de tu org.
  • Aplicación móvil: elija entre gestionar la sincronización del ID externo a través de un archivo de configuración de sincronización o de forma programática.

Declarativamente
En su org de Salesforce, cree un campo personalizado en el objeto para la información del padre o del hijo. El campo puede tener cualquier nombre, e incluso puede ser un campo existente. El nombre del campo que especifique aquí tendrá que coincidir con el que ponga en la configuración de sincronización o utilice de forma programada.

En el cliente móvil, en la información de padres e hijos, deben especificar: externalIdFieldName: «the-actual-custom-field-name».

En el ejemplo de configuración de sincronización de abajo, el nombre del campo es:

  • ExternalIdX para el padre.
  • ExternalIdY para los hijos.
{ "syncName": "parentChildrenSyncUp", "syncType": "syncUp", "soupName": "cuentas", "target":{ "iOSImpl": "SFParentChildrenSyncUpTarget", "androidImpl": "com.salesforce.androidsdk.mobilesync.target.ParentChildrenSyncUpTarget", "parent":{ "idFieldName": "IdX", "externalIdFieldName": "ExternalIdX", "sobjectType": "Cuenta", "modificationDateFieldName": "LastModifiedDateX", "soupName": "cuentas" }, "createFieldlist":[ "IdX", "Name", "Descripción" ], "updateFieldlist":[ "Nombre", "Descripción" ], "children":{ "parentIdFieldName": "AccountId", "idFieldName": "IdY", "externalIdFieldName": "ExternalIdY", "sobjectType": "Contacto", "modificationDateFieldName": "LastModifiedDateY", "soupName": "contactos", "sobjectTypePlural": "Contactos" }, "childrenCreateFieldlist":[ "LastName", "AccountId" ], "childrenUpdateFieldlist":[ "FirstName", "AccountId" ], "relationshipType": "MASTER_DETAIL" }, "options":{ "fieldlist":[ ], "mergeMode": "LEAVE_IF_CHANGED" }
}

Programáticamente
En iOS, crea tu parent info y/o children info pasando un externalIdFieldName no nulo a los nuevos métodos de fábrica.

// Desde SFParentInfo.h + (SFParentInfo *)newWithSObjectType:(NSString *)sobjectType soupName:(NSString *)soupName idFieldName:(NSString *)idFieldName modificationDateFieldName:(NSString *)modificationDateFieldName externalIdFieldName:(NSString * __nullable) externalIdFieldName; // De SFChildrenInfo.h + (SFChildrenInfo *)newWithSObjectType:(NSString *)sobjectType sobjectTypePlural:(NSString *)sobjectTypePlural soupName:(NSString *)soupName parentIdFieldName:(NSString *)parentIdFieldName idFieldName:(NSString *)idFieldName modificationDateFieldName:(NSString *)modificationDateFieldName externalIdFieldName:(NSString * __nullable)externalIdFieldName;

En Android, crea tu info padre y/o info hijo pasando un externalIdFieldName no nulo a los nuevos constructores.

// De ParentInfo.java publicParentInfo(String sobjectType, String soupName, String idFieldName, String modificationDateFieldName, String externalIdFieldName) // De ChildrenInfo.java
public ChildrenInfo(String sobjectType, String sobjectTypePlural, String soupName, String parentIdFieldName, String idFieldName, String modificationDateFieldName, String externalIdFieldName)

Actualizaciones del SO y de la biblioteca

Además de todas las nuevas y geniales características están las actualizaciones del SO y de las bibliotecas que se esperan en una nueva versión mayor del SDK para móviles:

  • SDK para iOS
    • El SDK base de iOS es ahora el 14 (en lugar del 13) y la versión min es el 13 en lugar del 12
  • SDK para Android
  • SDK para Android
    • La API de destino de Android es la 30 (en lugar de la 29)
  • SDK para Android
  • SDK para Hybrid
    • Cordova iOS es 6.1.1 (en lugar de 5.1.1) que utiliza WKWebView y puede consumir dependencias de cocoapod de forma nativa (antes teníamos que utilizar plugins de terceros), Cordova Android es 9.0.0 (en lugar de 8.1.0) y Cordova CLI es 10.0.0 (en lugar de 8.1.2)
  • Servicio de desarrollo de software (SDK) para Redova
  • SDK para React Native
    • React Native está ahora en la versión 0.63.4 (que soluciona algunos problemas de XCode 12)
  • Sistema de desarrollo de software (SDK) para React Native
  • General
    • sqlcipher es 4.4.2 (en lugar de 4.4.0)
    • la versión mínima de cocoapod es 1.8 (en lugar de 1.7.5)

Conclusión

El SDK móvil 9.0 tiene algo para todos. Añade la potencia de la multitarea a tus aplicaciones de iPad existentes. Aproveche los identificadores externos para tener la seguridad de que los usuarios no verán registros duplicados, incluso si la sincronización se reinicia para la sincronización padre / hijo. Aprovecha la potente depuración y detecta antes los errores con TypeScript para React Native. Aprovecha estas nuevas características para ti y para los usuarios finales hoy mismo actualizando tus aplicaciones móviles a Mobile SDK 9.0.

Ver Mobile SDK para iOS y Mobile SDK para Android.

Otros recursos

Salesforce proporciona herramientas móviles para ayudar a verificar que sus componentes web Lightning funcionan en todas partes, especialmente en los móviles. Consulte la lista de reproducción Herramientas móviles de Salesforce en el canal de YouTube de los desarrolladores de Salesforce.

Sobre los autores

Sue Berry es directora de gestión de productos en Salesforce, donde se centra en Salesforce Mobile. Actualmente está trabajando en el SDK de Salesforce Mobile y en las nuevas herramientas de Mobile para la depuración de LWC. Lleva más de 15 años creando herramientas para desarrolladores.

Brianna Birman es ingeniera principal del SDK de Salesforce Mobile y ha trabajado en los productos de Salesforce Mobile durante los últimos siete años.

Wolfgang Mathurin es arquitecto en el equipo de Salesforce Mobile Platform y ha trabajado en los productos de Salesforce Mobile durante los últimos diez años. Lleva más de 20 años dedicado al desarrollo.

Estoy muy emocionado de anunciar que la nueva versión del SDK de Salesforce Mobile ya está disponible. Mobile SDK 9.0 se centra en la productividad del desarrollador y del usuario final. Independientemente de si está creando aplicaciones para iOS, Android o aplicaciones multiplataforma, a usted y a sus usuarios finales les encantarán las mejoras de esta versión. Sus usuarios finales multitarea saltarán […]

El post ¿Qué hay de nuevo en Mobile SDK 9.0? apareció primero en Blog de desarrolladores de Salesforce.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/02/whats-new-in-mobile-sdk-9-0.html