Liquidador de sueldos legacy en la nube | Intway
Inicio / Casos de éxito / Tecnología para RR. HH. · Plataforma multi-país
Caso de éxito

De Internet Explorer a una plataforma cloud de nómina para Latinoamérica

Modernizamos un core en Visual Basic y pantallas ASP Classic para operar nóminas regionales desde una plataforma cloud segura, auditable y escalable.

Modelo SaaS multi-tenant · Alcance Latinoamérica · Procesos Nóminas mensuales, quincenales y semanales · Canales Aplicación web · APIs · archivos · Infraestructura Amazon Web Services · Sistema anterior Visual Basic · ASP Classic · Internet Explorer cliente reservado
TECNOLOGÍA PARA RR. HH. · PLATAFORMA MULTI-PAÍS

DE INTERNET EXPLORERA UNA PLATAFORMA CLOUDDE NÓMINA PARA LATINOAMÉRICA

Modernizamos un core en Visual Basic y pantallas ASP Classic para operar nóminas regionales desde una plataforma cloud segura, auditable y escalable.

SISTEMA LEGACY
Microsoft Visual Basic
ASP Classic
e Internet Explorer
PLATAFORMA CLOUD DE NÓMINA
Motor de
nómina
Reglas
por país
Multiempresa
y vigencia
Auditoría y
trazabilidad
Seguridad
Escalabilidad
GO Go
NestJS
N Next.js
PostgreSQL
aws AWS
Amazon SQS
Multi-país liquidación regional
(reglas por país, empresa
y vigencia)
0% trazabilidad por concepto
(entrada, fórmula, versión
y resultado)
Sin IE operación web moderna
(Chrome, Edge, Firefox
y Safari)
¿Tu liquidador todavía depende
de tecnología legacy?
Podemos modernizarlo de forma progresiva,
preservando las reglas acumuladas y sin
poner en riesgo los próximos cierres.
HABLEMOS

El desafío: un sistema crítico condicionado por tecnología legacy

La plataforma administraba liquidaciones de sueldos para operaciones distribuidas en Latinoamérica. Su núcleo de cálculo había sido desarrollado en Visual Basic y las interfaces utilizaban ASP Classic. Para trabajar, los usuarios necesitaban versiones antiguas de Internet Explorer o navegadores configurados en modo de compatibilidad.

Durante años, el sistema había acumulado fórmulas, impuestos, convenios y excepciones por país. Ese conocimiento era indispensable, pero estaba concentrado en una arquitectura monolítica en la que las pantallas, los procesos por lotes y las reglas de negocio evolucionaban juntos. Una modificación regulatoria podía afectar varios componentes y requería extensas verificaciones manuales.

El problema no se resolvía cambiando solamente la interfaz. Había que conservar el comportamiento funcional, independizar el cálculo de la experiencia web y migrar sin interrumpir cierres de nómina con fechas que no podían postergarse.

La solución: una liquidación completa, trazable y preparada para toda la región

El flujo comienza cuando el analista ingresa desde un navegador moderno, selecciona la empresa, el país, el período y el tipo de nómina. La aplicación desarrollada con Next.js adapta las acciones a su rol. NestJS recibe las novedades desde archivos o APIs y valida empleados, conceptos, formatos, períodos y duplicados antes de permitir el cálculo.

Pantallas de configuración y validación de una liquidación regional
Preparación de la liquidaciónEl analista carga las novedades y corrige únicamente los registros observados.

Los errores se muestran por registro y no obligan a repetir una importación completa. Cuando la validación termina, la plataforma crea una fotografía inmutable de los datos utilizados. Así puede reconstruir una liquidación aunque posteriormente cambien un maestro, una fórmula o una regla regulatoria.

NestJS envía el trabajo a una cola y el motor desarrollado en Go toma la versión de reglas correspondiente al país, la empresa y la fecha de vigencia. El cálculo se divide en unidades independientes para procesar empleados en paralelo. Cada ejecución posee una clave de idempotencia: si un trabajo debe reintentarse, no duplica movimientos ni genera dos veces el mismo resultado.

Al finalizar, el analista recibe una simulación con haberes, descuentos, impuestos, aportes, contribuciones y netos. La plataforma compara cada resultado con el período anterior y destaca variaciones o conceptos fuera de rango. Desde una fila puede abrir el detalle y consultar el dato de entrada, la fórmula, su versión y el valor calculado.

Resultados preliminares con detalle trazable de un concepto salarial
Cálculo explicableCada importe conserva la regla, los datos de entrada y el recorrido que produjo el resultado.

Un ajuste manual requiere motivo y queda asociado al usuario, la fecha y el valor anterior. Después interviene el responsable de revisión, que resuelve las excepciones y aprueba o rechaza los cambios. Cuando todos los controles están completos, un usuario autorizado cierra el período y los resultados quedan bloqueados.

Flujo de revisión de excepciones y aprobación del cierre de nómina
Revisión y cierre controladoLas excepciones, aprobaciones y reaperturas quedan registradas en una única auditoría.

Con el período cerrado, la plataforma genera recibos y archivos de salida. El operador distribuye los resultados a portales de empleados, sistemas contables, bancos y repositorios regulatorios. Cada entrega informa su estado y, si un destino no responde, se reintenta sin volver a ejecutar la nómina.

Centro de distribución de recibos, archivos bancarios e integraciones
Distribución monitoreadaRecibos, archivos y webhooks se controlan desde el cierre hasta su entrega.

Arquitectura de la plataforma

Next.js se distribuye mediante CloudFront y está protegido por AWS WAF. NestJS concentra las APIs, la autorización, las validaciones y la coordinación del proceso. Los trabajadores de Go ejecutan los cálculos de manera independiente y pueden escalar durante los picos de cierre.

Amazon SQS desacopla los trabajos extensos de la interacción web. Si el usuario pierde la conexión o cierra la pantalla, el cálculo continúa en AWS; al regresar, la aplicación recupera su estado. Las validaciones necesarias para avanzar se resuelven en línea, mientras que los cálculos, documentos y exportaciones se procesan en segundo plano.

PostgreSQL conserva los datos transaccionales y S3 almacena archivos y documentos versionados. El contexto del tenant se valida en la API y en la capa de datos. Cifrado, administración de secretos, copias de seguridad y registros de auditoría protegen la información sensible.

Diagrama de arquitectura de la plataforma de liquidación en AWS
Servicios desacoplados en AWSLa experiencia web, las APIs y el motor de cálculo escalan de forma independiente.

La observabilidad conecta cada solicitud con un identificador de correlación. Esto permite seguir una liquidación entre la interfaz, la API, la cola, el motor y las integraciones, además de generar alertas sobre errores, reintentos y tiempos de procesamiento.

La implementación: modernización progresiva sin un reemplazo abrupto

La migración se organizó por capacidades y países. Primero se documentaron conceptos, fórmulas, dependencias y excepciones del sistema existente. Con liquidaciones históricas anonimizadas se construyó una biblioteca de pruebas que ejecutaba los mismos datos en el motor anterior y en el nuevo.

Los resultados se compararon concepto por concepto antes de habilitar cada etapa. Las nuevas pantallas convivieron inicialmente con funciones legacy mediante una capa de compatibilidad. Luego, cada flujo fue trasladado a los servicios modernos, manteniendo una ruta de contingencia durante los primeros cierres.

La infraestructura se definió como código y los servicios incorporaron pruebas y despliegues automatizados. El resultado fue una plataforma que preserva el conocimiento funcional acumulado, elimina la dependencia de Internet Explorer y permite evolucionar por separado las reglas, las pantallas y las integraciones.

GoNestJSNext.jsPostgreSQLAWSAmazon SQS

Preguntas frecuentes

¿Cómo se moderniza un liquidador sin interrumpir los cierres?

La alternativa más segura es migrar por etapas y ejecutar ambos sistemas en paralelo. Cada país o grupo de empresas se habilita después de comparar sus resultados y conservar una contingencia probada.

¿Se puede migrar un core de Visual Basic a Go?

Sí. Primero se identifican las reglas y excepciones acumuladas. Luego se implementan en un motor desacoplado y se validan con casos históricos antes de reemplazar el procesamiento anterior.

¿Cómo se reemplazan las pantallas ASP Classic?

Las funciones se trasladan progresivamente a Next.js. Una capa de APIs permite que las nuevas pantallas convivan temporalmente con componentes legacy sin exigir un reemplazo total.

¿Por qué separar el motor de la aplicación web?

La separación permite escalar el cálculo durante los cierres, actualizar la interfaz sin modificar fórmulas e integrar otros canales mediante las mismas APIs.

¿Cómo se administran las reglas de distintos países?

Las reglas se versionan por país, empresa y vigencia. Cada liquidación conserva la versión utilizada, lo que permite reconstruir períodos anteriores y aplicar cambios regulatorios sin perder trazabilidad.

¿Cómo se comprueba que el nuevo sistema calcule correctamente?

El sistema anterior y el nuevo procesan los mismos casos históricos anonimizados. Haberes, descuentos, impuestos y redondeos se comparan concepto por concepto antes de habilitar la nueva versión.

Por qué no ves el nombre del cliente

Trabajamos bajo acuerdo de confidencialidad: no publicamos la razón social, ni datos comerciales, ni detalles técnicos que puedan comprometer la operación de nuestros clientes. Las métricas de este caso son reales y están validadas con ellos. ¿Necesitás más detalle para evaluarnos? Podemos ampliarlo bajo NDA.

Pedir más información