Activación del procesamiento paralelo en las pantallas de procesamiento de Acumatica

Kyle Vanderstoep 31 de octubre de 2023
ProcesamientoParalelo

Gestión del crecimiento y de grandes volúmenes de datos

Revisado: Oct, 2023

Acumatica, posicionado como un ERP (Enterprise Resource Planning) de mercado medio, puede implantarse en una amplia variedad de empresas, ya sean grandes, medianas o pequeñas. A medida que las empresas crecen, aumenta la cantidad de datos que necesitan gestionar. Sin embargo, en mi experiencia en el desarrollo de código personalizado en la plataforma Acumatica, me encuentro con un número significativo de organizaciones con las que trabajo que no dan abasto a la hora de gestionar y procesar datos.

Acumatica dispone de una amplia variedad de pantallas de procesamiento para realizar diversas tareas "en masa" y, además, cuenta con un marco sólido pero fácil de seguir para implementar sus propias pantallas de procesamiento. Sin embargo, los registros se procesan de forma secuencial (1,2,3, etc.). Afortunadamente, es posible habilitar el procesamiento paralelo para clientes con grandes necesidades de procesamiento de datos.

Comprender el procesamiento paralelo

El procesamiento paralelo aprovecha el hecho de que las aplicaciones pueden utilizar más de un hilo de procesamiento a la vez. Piense en los días anteriores a los ordenadores, en los que los oficinistas procesaban manualmente las transacciones a mano. ¿Cómo se aceleraba el número de transacciones que se podían registrar? O bien se buscaba por todas partes al empleado milagroso que fuera superrápido, o simplemente se contrataba a más empleados y se repartía el trabajo equitativamente entre ellos. Acumatica puede configurarse de forma similar.

Habilitar el procesamiento paralelo en web.config

Para habilitar el procesamiento paralelo, debes añadir las siguientes claves al archivoweb.config, dentro del nodo Configuration/Appsettings:

Creación de una pantalla de procesamiento básica

Para comprobarlo, añadamos estas claves al archivo web.config y creemos una pantalla de procesamiento básica que procese una lista de registros:

ss01-procesamiento-paralelo

Aunque hayamos añadido las claves, la pantalla de procesamiento sigue devolviendo la lista completa de Lotes GL cuando se selecciona "Procesar todo".

ss02-procesamiento-paralelo

Habilitar el procesamiento paralelo en pantalla

Esto se debe a que las teclas solo establecen una regla general para el procesamiento. Aún es necesario activarla en la propia pantalla personalizada.

Análisis de los resultados

Ahora vamos a intentar procesar el botón todo:

ss03-procesamiento-paralelo

Cuando se mira el resultado de la pantalla de procesamiento, se puede ver que todos los registros han sido procesados a pesar de que ese hilo que cogimos sólo vio 10:

ss04-procesamiento-paralelo

A continuación se muestra un diagrama que ilustra la diferencia entre ambos, y dónde se encuentra el punto de interrupción en el código:

ss05-procesamiento-paralelo

Procesamiento secuencial frente a procesamiento paralelo

Durante el procesamiento secuencial, el hilo (también conocido como «empleado») veía la lista completa de elementos que debía procesar. En el procesamiento paralelo, el hilo solo veía el número máximo de elementos (especificado en el nivel «max» del archivoweb.configy, además, en las opciones de procesamiento paralelo a nivel de pantalla).

El procesamiento paralelo, aunque no es una solución milagrosa, puede aumentar significativamente la capacidad de procesamiento de los usuarios de Acumatica que trabajan con grandes volúmenes de datos. Con solo unos pocos cambios en el archivoweb.config, puedes habilitarlo fácilmente tanto en el código base del ERP como en tu código personalizado. No es necesario gestionar tus propios subprocesos ni lidiar con las demás complejidades que ello conlleva.

Espero que este artículo le ayude con el volumen de procesamiento de datos que aumenta a un ritmo cada vez más rápido en este mundo en transformación digital.

¡Feliz codificación!

Autor del blog

Categorías