Hello all,
En este blog quiero explicar cómo hemos diseñado el Archivado en C4C (disponible desde 2011, consulta esta
Información del Producto) y cómo funciona (no inmediatamente después de activarlo en la Configuración del Negocio 🙂).
También con una actualización para la versión 2208:
Como experimentamos en algunos sistemas de clientes con una carga pesada, optimizamos el rendimiento.
Comencemos con la activación:
Como ya se ha mencionado en la
Información del Producto, primero debes elegir en la Configuración del Negocio para qué Objetos de Negocio deseas activar el Archivado junto con algunos periodos de retención.
Hablaremos más tarde sobre estos periodos de retención.
Ahora esto tiene la siguiente consecuencia:
- Temprano cada mañana se activan 2 trabajos para el Archivado.
- Cada trabajo trabaja en todos los Objetos de Negocio activados consecutivamente.
- El primer trabajo Move2Archive busca candidatos potenciales, los verifica por la aplicación correspondiente, mueve aquellos verificados al archivo y los elimina de la base de datos local.
- El otro trabajo DeleteFromArchive elimina finalmente los datos del archivo.
- Estos temas se aplican a cada Objeto de Negocio individualmente: 2 trabajos por Objeto de Negocio habilitado.
Esto significa que si activas el Archivado por la tarde, debes esperar hasta la mañana siguiente para ver un resultado potencial.
Pero, ¿cuáles son los resultados?
Ahora necesitamos discutir los Periodos de Retención (están muy bien explicados en el blog mencionado anteriormente, pero permíteme repetir):
- Periodo de Retención Antes del Archivado: Esto define la "edad" del registro. Cuánto tiempo no ha sido cambiado (para los técnicos: la Fecha de Último Cambio 🙂), dando una buena estimación de que este registro ya no se utiliza.
- Periodo de Retención Antes de la Eliminación: Normalmente definido por requisitos legales para mantener los datos por razones de verificación.
Este periodo comienza cuando los datos se eliminan localmente.
Me han preguntado sobre los valores máximos y mínimos para los periodos de retención.
El mínimo es fácil: 0. Esto significa que cada registro es un candidato para el Archivado.
El máximo es más complicado: Técnicamente es MAXINT (más de 2 mil millones de días), pero el sistema de calendario fallará en un número tan grande.
Por lo tanto, lo limitamos a 50,000 días, lo que corresponde a más de 137 años.
Entonces, el trabajo Move2Archive recopila todos los registros "antiguos" y los archiva. Estos candidatos se entregan a algunas verificaciones de negocios definidas e implementadas individualmente por cada Objeto de Negocio. En la mayoría de los casos, verifican al menos los valores de estado como Completado, Cerrado, …. Por supuesto, pueden ser aún más sofisticados.
Actualización: para algunos Objetos de Negocio, estas verificaciones de negocios se pueden desactivar.
Se explican con más detalle en este blog separado.
La verificación de negocios no solo devuelve las instancias verificadas, sino que también agrega objetos dependientes relevantes para el archivado (RDO) como documentos de precios para cotizaciones. Estos RDO no pueden existir por sí solos. Necesitan la instancia verificada como una especie de ancla. Por lo tanto, no solo recopilaremos los datos del objeto ancla, sino también del RDO y los colocaremos juntos en el archivo. También se eliminarán juntos, tanto del inquilino local como del archivo.
Esta primera parte del trabajo "Recopilar y Verificar" se ejecuta como máximo durante una hora. Después de ese tiempo (o antes si todas las instancias verificadas), estas instancias verificadas se entregan a una segunda parte "Archivar y Eliminar". La experiencia nos muestra que podemos verificar entre 80,000 y 120,000 instancias durante esta hora.
Ahora todos los datos de una instancia verificada dada junto con su RDO se recopilan, se transforman en JSON, se colocan en un archivo ZIP y se envían al archivo. Esto incluye también los archivos adjuntos.
Por cierto, el "archivo" es actualmente un bucket S3 en el Centro de Datos correspondiente. Este bucket no es accesible directamente.
A continuación, actualizaremos el estado del Archivado de los objetos a Archivado, para que sepas que el proceso de Archivado ha finalizado.
Finalmente, la instancia se eliminará del inquilino local ya que ahora existen en el archivo.
Esto acelerará la búsqueda estándar y limpiará la lista de resultados.
Esta segunda parte del trabajo se ejecuta hasta que todas las instancias entregadas se archivan y eliminan. Normalmente, esto se logra antes del día siguiente. Pero si esta segunda parte sigue en ejecución cuando se programa el primer trabajo del día siguiente, este nuevo trabajo se detendrá inmediatamente para permitir que el trabajo del día anterior finalice.