Fondo
Corría el año 1995. Intel y AMD estaban en guerra por el título de mejor fabricante de CPU para el ordenador personal. America Online estaba en su apogeo con una red de números de teléfono en todo el país para "marcar" con una conexión a Internet de 56k en el mejor de los casos. La gente utilizaba servicios de tablón de anuncios para compartir archivos, pero un archivo de 1 MB tardaba cinco minutos en descargarse. La película Hackers llegó a la gran pantalla y se popularizó el mundo fantástico de la piratería informática. La tecnología parecía "tan guay" entonces, pero con el paso de los años, gran parte de la tecnología de la película se ha vuelto ridícula, mientras que la amenaza de hackers y estafadores ha eclipsado cualquier cosa que la película pudiera imaginar posible.
Con el paso de los años, mi módem dial-up ha cambiado a Internet de fibra óptica hasta mi casa. El teléfono de mi casa ya no existe, pero todos en casa estamos más conectados que nunca. Incluso cuando dormimos, nuestros teléfonos móviles individuales rara vez están a más de unos pasos de distancia. Con este cambio monumental en la forma en que la tecnología invade nuestras vidas, no es de extrañar que las empresas pasen a aprovechar esta cultura de la información a la carta para seguir siendo competitivas.
Alejándose de la tecnología estancada del pasado, Acumatica se desarrolló sobre la base de un marco moderno (xRP Framework) con una estrategia de cambio a la tecnología emergente para mantener el software preparado para el futuro. Aunque la plataforma xRP de Acumatica puede integrarse con otros sistemas a través de servicios web, Acumatica se ejecuta la mayoría de las veces desde un navegador web de la elección del consumidor. Sin embargo, creo que este enfoque de navegador web para ejecutar Acumatica se basa en una tendencia cultural a utilizar ordenadores de sobremesa y portátiles tradicionales en el hogar y el lugar de trabajo. Si bien esto puede funcionar para la mayor parte de la fuerza laboral actual, la generación más reciente que ingresa al lugar de trabajo ha adoptado la presencia de teléfonos móviles y tabletas a una escala insondable.
La aplicación móvil de Acumatica
Para mejorar la experiencia del usuario, Acumatica ofrece una aplicación móvil gratuita compatible con Android e iOS/iPadOS. Aunque estos mismos dispositivos pueden ejecutar Acumatica a través de una aplicación de navegador para una experiencia de usuario muy rica, la aplicación móvil proporciona una interfaz optimizada y funciones mejoradas que solo empiezan con el acceso a la información esté donde esté. Los usos naturales de la aplicación móvil incluyen adjuntar fotos directamente desde la cámara del dispositivo móvil, leer códigos de barras, capturar firmas y notificaciones y aprobaciones sobre la marcha. Además del acceso a pantallas predefinido en la aplicación móvil, podemos desbloquear estas funciones para pantallas personalizadas con ajustes definidos en un proyecto de personalización. Esto amplía la interfaz de usuario al dispositivo móvil al tiempo que aprovecha la misma lógica empresarial de la que disfruta un usuario de navegador web.
Primeros pasos con la aplicación móvil
El primer paso para empezar sin duda es completar la formación T400 y T410. Estos cursos gratuitos se encuentran en el sitio de Acumatica Open University. A partir de ahí, la experimentación lleva a la comprensión. ¡Aquí es donde las cosas se ponen interesantes!
Un recurso recién grabado para desarrolladores es el episodio 11 de Coffee & Code. En este episodio, César Betances comparte información sobre preguntas frecuentes y consejos relacionados con la configuración de pantallas en la aplicación móvil de Acumatica. El año pasado, tuve la suerte de trabajar con César para identificar una sintaxis no documentada que necesitaba en los nuevos paneles inteligentes de la aplicación móvil. Asegúrese de consultar la publicación del VLOG para obtener más información sobre los paneles inteligentes en la aplicación móvil - VLOG: Los paneles inteligentes llegan a la aplicación móvil en 2021 R1 - Acumatica Cloud ERP.
Pero espere... hay más
Una vez que paso de lo básico, tiendo a "aprender programando por imitación". Para eso, necesito muchos ejemplos. Cuando quiero crear una nueva funcionalidad, a menudo miro hacia atrás a pantallas estándar y otras personalizadas para responder a la pregunta: "¿Cómo se hacía eso antes?". Resulta que Acumatica tiene una funcionalidad en la aplicación móvil que parece no estar documentada pero que es muy útil. La capacidad de "escanear" un código de barras utilizando la cámara integrada de un dispositivo móvil era algo con lo que solía soñar. Hace Acumatica Summit hace unos años, mi VAR me dijo que esa función estaba en desarrollo. Pero, ¿dónde podría encontrar cómo utilizarla?
Para mí, la configuración de pantallas en la aplicación móvil significaba que era hora de buscar ejemplos - montones y montones de ejemplos. Aunque la formación me orientó muy bien sobre cómo leer el código de configuración en el proyecto de personalización, yo quería utilizar funciones que podían o no haberse tratado en la formación. En mi caso, quería desbloquear la capacidad de utilizar mi teléfono para escanear un código de barras 39 o un código de barras QR, pero esto no estaba en el material de formación. En el episodio 11 de Coffee & Code, le pregunté a César dónde podía encontrar una lista de todas las funciones especiales que podíamos desbloquear en la declaración "especial", pero parece que los códigos de barras siguen sin estar incluidos en la ayuda. Sabía que Acumatica tenía muchos ejemplos, pero ¿dónde? Y desde que encontré una pantalla en la que Acumatica aprovechaba el lector de códigos de barras, ¡NECESITABA el ejemplo!
Ejecuto una instancia de desarrollo en mi tableta local (Surface Pro 7). Una de mis herramientas de desarrollo habituales es Microsoft SQL Server Management Studio (MSSMS), que me permite indagar en la base de datos y analizar las sentencias SQL que obtengo de Request Profiler para solucionar problemas. Con esta herramienta, me puse a buscar las pantallas predefinidas de la aplicación móvil. Resultó que la tabla que necesitaba se llamaba intuitivamente MobileSiteMap.
Al conectarme a mi base de datos y ejecutar un script SQL "supercomplejo", pude copiar los resultados y pegarlos en Notepad++ para facilitar su lectura. Empieza abriendo MSSMS, expande tu base de datos y haz clic con el botón derecho en la tabla MobileSiteMap. A continuación, seleccione "Seleccionar los 1000 registros principales" para que el script recupere los registros. Elimine todas las columnas del script excepto la que se llama Script y, a continuación, añada Where CompanyID = 1 para obtener sólo las pantallas Mobile estándar de Acumatica. En el siguiente ejemplo, asegúrese de sustituir [2022R1] por el nombre de su propia base de datos, ¡o no funcionará! Si simplemente crea una nueva consulta utilizando el ejemplo proporcionado, la funcionalidad de copiar/pegar que pone los scripts en Notepad++ no es muy legible. Sin embargo, al generar el script haciendo clic con el botón derecho en la tabla como se describe más arriba, parece que se activa algo en MSSMS que hace que pegue los resultados en algo legible.
GIST: https://gist.github.com/BrianMRO/be9ad997806d696cbdcb9bd76fae54e1
Buscando código de barras en el nuevo documento de Notepad++, encontré "special = BarCodeScan". Esto desbloquea la capacidad de escanear una imagen de código de barras con la cámara y rellenar el campo utilizando esta definición especial. A través de la experimentación, debo añadir que el campo debe ser un campo de texto simple y no un selector. También encontré otros grandes ejemplos de muchas otras características dignas de mención, por lo que compartiré tres en total.
Utilizar lo que encontramos
Para implementar algunos ejemplos que se encuentran en la tabla MobileSiteMap, creé una pantalla sencilla para el seguimiento de paquetes con un código de barras. Añadí una Consulta Genérica (IG) con una función de Escaneado de Código de Barras en la opción Filtro. A continuación, quise navegar a la pantalla de detalles y habilitar la captura de firmas en la aplicación móvil. Aunque la pantalla personalizada y la IG no se explicarán en detalle aquí, se mostrará el código necesario para la aplicación móvil. Una vez creada la pantalla personalizada en Acumatica, era hora de usar lo que aprendí en la capacitación de T400 y T410.
Paso 1 - Mapa del sitio para móviles
Primero, añado la pantalla personalizada (Blog Packages) y GI al menú del Mobile Site Map. El resultado es una nueva línea en la aplicación llamada Blog Packages.
El siguiente GIST muestra el código para añadir una carpeta para Paquetes de Blog al menú principal, incluir una IG, y añadir la pantalla para editar los detalles pero oculta al usuario en el menú.
GIST: https://gist.github.com/BrianMRO/892ed22ccf3d6eb62ca9b198304a90ef
Este código creará el botón de menú en la aplicación móvil que navegará a la IG. Al seleccionar un registro en la IG, se redirigirá a la pantalla de edición. Como la pantalla de edición estaba oculta en el menú, la única forma de llegar a ella es a través de la IG.
Paso 2 - Añadir la pantalla IG
A continuación, añado la pantalla para la IG con el filtro como se muestra en el siguiente gist. En este ejemplo, el filtro para la IG nos permitirá escanear un código de barras para encontrar el registro relacionado.
GIST: https://gist.github.com/BrianMRO/8af727387e7802651fd361291b2fed54
Añadiendo special = BarCodeScan al campo PackageID del filtro, la aplicación nos permitirá abrir una ventana a la cámara del dispositivo móvil y "escanear" un código de barras. Basta con tocar el icono del código de barras que se muestra en la imagen inferior, y aparecerá la vista de la cámara. A continuación, pulse sobre la imagen para "escanear" el código de barras. He probado esta funcionalidad con códigos de barras 39, códigos de barras QR (valor único) y códigos de barras UPC. El siguiente es un UPC para desinfectante sólo para mostrar la funcionalidad. Como puede ver, el valor del código de barras aparece sobre la línea de escaneo en la imagen que muestra el valor seleccionado. De nuevo, este valor se rellena en el campo seleccionado al tocar la imagen.
En la IG, he añadido la acción contenedor EditDetail como se muestra en la parte inferior del código de ejemplo proporcionado que activa la navegación a la pantalla de detalle.
Paso 3 - Añadir la pantalla detallada
Por último, añado la pantalla detallada mediante el código del siguiente GIST.
GIST: https://gist.github.com/BrianMRO/959565bd9803b13c53a16633e5cbf0dd
Para habilitar la función de firma, el CAD debe incluir un campo NoteID que es necesario para admitir cualquier archivo adjunto, no sólo firmas. A continuación, sólo tenemos que añadir la acción de registro SignReport como se muestra en el ejemplo, y el menú mostrará una opción para Firmar.
Algunas de ellas están en la formación y en la ayuda, pero BarCodeScan no estaba en ninguna de ellas. Al extraer las pantallas existentes de la base de datos, las definiciones de pantalla configuradas por Acumatica me proporcionaron la orientación necesaria para demostrar aquí las funciones.
Mi gran hallazgo fue cómo escanear códigos de barras. ¿Qué te ayudará a encontrar tu búsqueda?
¡Feliz codificación!