Duplicidad de registros con secuencias numéricas Continuas

Hola a todos,

Hoy vamos a tratar uno de los problemas recurrentes (e importantes) que nos encontramos en el equipo de soporte. La duplicidad de registros en las secuencias numéricas de tipo Continuo.

Se ha podido demostrar que en ocasiones, secuencias numéricas de tipo Continuo ofrecen duplicidad de registros en ciertas operaciones cuando esto no debería ser así (como por ejemplo con el número de asiento de un diario).

Tras varias investigaciones por parte del equipo de desarrollo de Dynamics AX, se ha podido determinar en cierta medida el porqué de esta duplicidad y se nos ha ofrecido una configuración que permite evitar en gran medida que estas situaciones se vuelvan a producir en el futuro.

Propongamos el siguiente ejemplo:

Base -> Configurar -> Secuencias numéricas -> Secuencias numéricas

Como se puede observar en la foto número 2, esta secuencia numérica está marcada como Continua, lo cual nos “habilita” automáticamente la funcionalidad de Limpieza de Secuencias Numéricas (3 pestaña).

Tal y como se puede leer en el texto de la herramienta de limpiado en sí:

“Cuando se selecciona la casilla de verificación Continuo, el sistema garantiza de forma automática que no se pierde ningún número de la secuencia numérica actual. El sistema, además, comprueba si los números se devuelven a la lista y si se producen fallos en una actualización o si dicha actualización no finaliza de la forma esperada.

En casos de fallo de alimentación, caídas del sistema u otro tipo de factores inesperados, el sistema no podrá devolver los números de forma automática. La razón está en que el proceso de cliente se detiene, con lo que no se deja tiempo para la eliminación de los números seleccionados necesaria. La eliminación completa buscará esos números perdidos de forma temporal y los devolverá a la lista con el estado Libre.

Para ejecutar la eliminación completa de forma manual, haga clic en Limpiar. También se ejecutar la eliminación completa de forma automática con un intervalo de tiempo especificado. Para hacer esto, seleccione la casilla de verificación Limpiar y especifique un intervalo (en horas) de frecuencia de realización de la limpieza.”

El valor por defecto del campo Intervalo es 24, significando que la herramienta de limpieza se ejecuta 1 vez cada 24 horas, liberando y limpiando aquellos registros que se hayan podido quedar “falsamente” utilizados.

Para ciertas operaciones (como creación de diarios automáticas en diferentes procesos donde el número de diario debe ser continuo siempre y sin ningún posible salto, el Intervalo de 24 horas resulta un período excesivo.

El valor mínimo que se puede rellenar en el campo intervalo es de 0,01. De acuerdo con nuestros cálculos, introduciendo este valor, el sistema realizará un chequeo y limpieza de la secuencia numérica cada 36 segundos. Como se puede apreciar, se reduce en mucho el Espacio de tiempo en el cual se podría producir un registro duplicado, solucionando la mayoría de los escenarios. Sin embargo, ésta configuración conlleva un coste negativo en el rendimiento global del sistema.

Lamentablemente no nos es posible ofreceros un estudio acerca de cuanto se puede ver perjudicado el sistema después de realizar este cambio, lo que sí nos han contado personas que rebajan en el departamento de rendimiento de AX es que no es recomendable utilizar este valor de 0,01 en más de 3, 4 o 5 secuencias numéricas al mismo tiempo en el sistema, ya que la degradación de rendimiento del mismo puede llegar a ser severa.

Para casos Extremos donde sea necesaria una limpieza aún mayor de la secuencia numérica en cuestión, de acuerdo con la Ayuda On-line del sistema, hay una posibilidad, que es dejar el Campo Intervalo EN BLANCO. Cuando dicho campo se queda en blanco el sistema realizará una limpieza de la secuencia numérica CADA vez que dicha secuencia numérica sea utilizada. Ya en la propia ayuda se avisa que el rendimiento será penalizado en gran medida (y más dependiendo de si el uso de dicha secuencia numérica es masivo). No tenemos reportado ningún caso en el que alguien haya optado por esta opción, así que recomendamos en la medida de lo posible limitarla enormemente y hacer pruebas de rendimiento exhaustivas antes de habilitarla.

Espero que esta información os sea de utilidad y os ayude a entender de una manera más clara las Secuencias numéricas en AX y cómo evitar en la medida de lo posible uno de los problemas más recurrentes con ellas.

Un cordial saludo,

Antonio