Cada código de contador debe ser único. No obstante, puede haber varios tipos de documentos asignados al mismo código de contador. Asegúrate de no duplicar la estructura de los tipos de documentos, ya que sus claves deben ser únicas. Esto podría causar la cancelación de la transacción.
Para definir el valor inicial del contador, marca la casilla Reinicializar (ZERO). También puedes indicar el valor inicial de cada componente del contador en la función Valores de contadores (MODCPT). También puedes definir el siguiente contador por orden cronológico, lo que facilita la recuperación de datos si se reinicia el sistema.
Si se reinicia el sistema o un nuevo módulo, se recomienda suprimir la función Valores de contadores (MODCPT) del menú. De esta manera, los contadores permanecerán en orden cronológico.
Consulta la documentación de Puesta en marcha
La función "Estructuras" contiene una única pantalla en la que se muestran los distintos elementos clave del contador.
Presentación
Cada bloque representa un elemento clave que debes definir para el contador. El bloque Componentes es variable. Este bloque permite definir los componentes que forman la estructura del contador de tu organización.
Cerrar
Campos
Los campos siguientes están presentes en esta pestaña :
Bloque Número 1
| Este código identifica el contador al que se hace referencia cuando se genera el número automático del documento. Un contador es un campo alfanumérico de 1 a 20 caracteres. El valor del contador está formado por una serie de componentes concatenados de izquierda a derecha. |
| Introduce la descripción de la ficha correspondiente. Esta descripción larga se utiliza como título en las pantallas y los informes. |
Nivel definición
| Utiliza este botón de selección para indicar si el contador está disponible para todo el dossier, para una única sociedad o para una única planta.
|
Nivel reinic.
| Utiliza este botón de selección para determinar si el contador contiene un valor único en un momento determinado o, por el contrario, es mensual, anual, por ejercicio o por periodo. Para evitar duplicados, se asume que el contador contiene los componentes adecuados, especialmente el año, el mes, el día o la semana. Este campo se puede utilizar junto con el campo Nivel definición, mediante un Complemento, para definir el número de secuencias de numeración que hay que asignar al contador (la secuencia debe ser única para cada mes, planta y complemento). En función de estos dos valores, se pueden introducir componentes para evitar problemas de duplicados. Si, por ejemplo, defines un nivel de reinicialización anual, el año debe ser un componente del contador. De la misma forma, si el contador se define por sociedad, la planta o la sociedad deben ser componentes del contador. |
Tipo
| Un contador siempre genera claves alfanuméricas. Si seleccionas el valor Numérico en el campo Tipo, se suprimirán los ceros al inicio del valor. Por lo tanto, un contador declarado numérico con 6 cifras comenzará por el valor "1" y un contador alfanumérico con 6 cifras comenzará por el valor "000001".
|
Tabla Componentes
| Número de la línea. |
| Define cada tipo de componente de la estructura del contador. |
| Consulta la explicación sobre cada componente de la estructura del contador. Cada componente contiene una longitud máxima o predefinida:
|
| Introduce una cadena de caracteres fija. Puedes introducir caracteres alfanuméricos, incluyendo caracteres especiales como / o %. No utilices comillas simples o dobles alrededor del valor. |
Bloque Número 6
| Es recomendable seleccionar el valor Normal. Para más información sobre este campo, consulta la documentación de los Tipos de secuencias. |
| Este campo contiene un valor cuando el Tipo de secuencia definido es Secuencia BD. Muestra el nombre de la tabla asociada a los números. |
| Este campo contiene un valor cuando el Tipo de secuencia definido es Agrupado. Muestra la cantidad de números que se asignan de forma simultánea. |
Varios
| Marca esta casilla para activar el control cronológico de los documentos cuya legislación requiera números fechados por orden cronológico. Es un requerimiento en algunas legislaciones, como la italiana.
|
| Este campo muestra la longitud máxima permitida en el contador. |
| Marca esta casilla para reinicializar el valor inicial del contador. El primer contador generado comenzará por 1. |
| Este campo muestra el código de legislación del país. Por ejemplo, FRA para la legislación francesa. Este código, asociado a una sociedad, permite asignar las reglas y parámetros predefinidos que se necesitan para responder a los requerimientos legales del país. Este código puede incluir reglas de cálculo, informes legales, declaraciones legales, gestión de impuestos, etc. Las legislaciones están definidas en la tabla varia 909. También puede haber parámetros generales definidos a nivel legislación. |
Cerrar
Tipo componente | Explicación |
Constante | Cadena de caracteres fija. Este valor se introduce en la columna Fórmula. No utilices comillas simples o dobles alrededor del valor. |
Año | Longitud = 1 corresponde a la última cifra del año (0-9). |
Mes | Longitud = 2 corresponde al número del mes (00-12). |
Semana | Longitud = 2 corresponde al número de la semana (00-53). |
Día | Longitud = 1 corresponde al número del día de la semana (1-7). |
Sociedad | Código de la sociedad a la que se ha asignado el movimiento (1-5 caracteres). |
Planta | Código de la planta a la que se ha asignado el movimiento (1-3 caracteres). |
Contador | Parte incremental de la estructura del contador. Este valor se incrementa en 1. El valor inicial es 1. |
Complemento | Componente adicional. Este valor depende del módulo en el que se utilice el componente del contador. |
Ejercicio | El número de ejercicio se define con 1-3 cifras (valor 1 para el primer ejercicio abierto). Esta numeración es especialmente útil cuando se trabaja con ejercicios desfasados. En este caso, se produce una ruptura en la numeración cuando se cambia de año. Puede ocurrir a mitad de ejercicio. |
Periodo | El número de periodo se define con 1-3 cifras (valor inicial 1, hasta el número máximo de periodos del ejercicio). |
Fórmula | La fórmula indicada se añade a la estructura del contador. Se trata, básicamente, de una serie de caracteres independientes que se insertan en la estructura de contador generada. La fórmula puede ser alfanumérica, numérica o una fecha y está limitada a 20 caracteres. Los caracteres alfanuméricos se convertirán a mayúscula y se formatearán al número exacto de caracteres previsto. |
El código de complemento permite definir un segmento de contador en función del contexto, sin tener que definir dos contadores. En este caso, hay que tener en cuenta que se aplica una secuencia cronológica a cada valor asignado al campo Complemento.
El uso del campo Complemento depende del contexto de cada función.
En las funciones de Supervisor, el complemento se puede utilizar para el contador de los números de lote en el espacio de almacenamiento temporal de importación/exportación. Contiene el código del modelo de importación/exportación utilizado.
La lista de los complementos disponibles en los módulos comerciales está definida en una documentación anexa.
En los demás casos, no se asigna el número de complemento. No obstante, puedes utilizar un punto de entrada determinado para asignar un valor al número de complemento en un contexto específico.
También puedes integrar el código de complemento en una secuencia de numeración sin utilizar una secuencia diferente por valor de contador. Para ello, utiliza un componente de tipo Fórmula con la fórmula [L]COMPLEMENTO (COMPLEMENTO) como la variable local reconocida por el subprograma de numeración que almacena el valor actual del complemento.
El Tipo de secuencia es importante para las instalaciones de cliente con un gran número de estaciones de trabajo y, por lo tanto, con un gran número de creaciones del mismo tipo de documento. Según el tipo de secuencia utilizado, puede haber conflictos transaccionales vinculados a la obtención de números de contadores.
La asignación del número, normalmente cuando se crea un documento (pedido, asiento, factura, etc.), se realiza en la propia transacción de creación. Esto significa que, aunque la transacción se revierta (rollback), el número no se pierde. No obstante, mientras no finalice la transacción de creación (que puede durar algunos segundos), cualquier transacción simultánea de creación del mismo tipo de documento no podrá obtener un número y fallará. A continuación, se realizará un rollback de dicha transacción simultánea, seguido de un nuevo intento (que se lanzará correctamente si la primera transacción ha finalizado).
El número de intentos sucesivos que se realizan debido a este tipo de bloqueo antes de la cancelación de la transacción con errores se puede parametrizar en el parámetro ROLLBACK del capítulo SUP. Si se produce un conflicto, puedes aumentar el valor de este parámetro. No obstante, hay que tener en cuenta que el consumo de recursos del servidor de datos puede aumentar en detrimento del rendimiento. En ese caso, también puedes adaptar el tipo de secuencia.
Por el contrario, el contador normal garantiza el orden secuencial en el tiempo: dos llamadas sucesivas en el tiempo a un contador determinado proporcionarán números crecientes, ya que todas las condiciones vinculadas a la estructura del contador (sociedad, planta, periodo, complemento) son iguales. Asimismo, no se puede perder ningún número debido a un bloqueo. Por lo tanto, este contador se recomienda para los documentos legales para los que se requieren secuencias estrictas sin brechas de numeración.
Los números se asignan por grupo de N números (donde N corresponde a una definición). La contención, por lo tanto, es menos relevante, puesto que solo una asignación de N puede causar una contención. Las demás asignaciones utilizan un número disponible.
Por el contrario, la asignación secuencial de números no está garantizada y puede ocurrir que se pierdan números en los contadores que dependan del mes o del periodo. Si, por ejemplo, el valor de N es 10, que los números del 1 al 8 ya estén asignados y que haya 3 transacciones de creación en proceso. El primero se asigna al número 9; el segundo, al número 10; el tercero no encuentra ningún número disponible en el primer intervalo de 10 números. A continuación, se creará el intervalo del 11 al 20 y el primer número asignado será el 11. Si, mientras tanto, la primera transacción ha fallado por otros motivos, el número 9 estará disponible para una nueva transacción. Si no se lanza ninguna otra transacción, se utilizan todos los números del 1 al 11, excepto el 9, y los próximos números por asignar serán (por orden) el 9, el 12, etc. Por lo tanto, no se respeta rigurosamente el número de secuencia. Si ya no se crean más documentos durante ese día y se crea uno al día siguiente, habrá un documento con fecha del día D y número 11 y otro documento con fecha del día D + 1 y número 9. Por último, si los contadores incorporan el número del mes y esta situación se produce a final de mes, habrá una brecha en la numeración (pero sigue siendo trazable, puesto que el número se encuentra en la lista de números por asignar).
La asignación del número se realiza fuera de la transacción, es decir, no hay ninguna contención, pero no hay vuelta atrás (si el número no se utiliza, se pierde definitivamente). Este tipo de contador se basa en una secuencia de la base de datos (BD) . Safe X3 crea, para cada tabla de la base de datos, una secuencia que se suele asociar para obtener un número técnico. Hay que tener en cuenta que esta numeración nunca se reinicializa (de modo que hay que prever un gran número de cifras asociado a la secuencia de numeración en el contador). Esta numeración también es estrictamente secuencial (el orden de los números asignados siempre es creciente), pero la secuencia puede presentar brechas sin justificarlas o recuperarlas. Esta característica facilita los casos en los que se requiere un número técnico sin necesidad de justificar las brechas en la secuencia.
La siguiente tabla resume las ventajas y los inconvenientes de los distintos tipos de contadores:
Tipo de contador | Secuencia creciente | Pérdida de números | Conflictos con varios usuarios |
Normal | Siempre | Nunca | Importante |
Agrupado | No siempre | Al final del periodo, pero justificable (lista de números perdidos) | Medio (especialmente cuando N es elevado) |
Secuencia BD | Siempre | Sí, sin justificación | Ninguno |
Haz clic en la acción Copia para copiar el código y la estructura del contador en otro dossier. |
Además de los mensajes genéricos, los mensajes siguientes de error pueden aparecer durante la captura :
Has intentado definir un contador con dos componentes de tipo N.º secuencia (solo se permite un número de secuencia por contador).
La longitud solicitada no es compatible con el parámetro (por ejemplo, un año de 8 cifras o un mes de 5 caracteres).
La longitud total del contador supera los 20 caracteres o la suma de las longitudes de los componentes es distinta a la longitud total.
La sintaxis de la fórmula de cálculo introducida es incorrecta.
Un contador basado en una secuencia depende de una tabla del dossier en curso. No es el caso de este tipo de tabla.
Un contador basado en una secuencia de base de datos solo permite una secuencia de numeración (a nivel del dossier) y no se puede reinicializar.