SXE/SXF - Control de numeración (números utilizados)
En el Microsiga Protheus existen dos maneras de controlar la numeración automática de las tablas. La primera es por medio del conjunto de tablas SXE y SXF que se presentarán aquí. La segunda manera es por medio del License Server, donde el control por completo queda a cargo del license.
En el sistema, al pedir un número con la función GetSXENUM el sistema seguirá el siguiente flujo:
Solicita número para una clave
¿Para la clave solicitada existe registro disponible en la SXF?¿Existe registro en la SXE?Inserta la numeración en la SXF basada en la última ocurrencia de la clave en la tabla, incrementado de 1 y reserva este registro, en la SXE inserta el siguiente número libre.Reserva el registro encontrado con la numeración en la SXF y retorna el número mantenido por ella.Crea y reserva el registro en la tabla SXF, con el valor de la XE_NUMERO, y actualiza la XE_NUMERO con el siguiente número.FINInicio
SíNoNoSí Al confirmar la reserva con la función ConfirmSX8:
InicioUbica el registro en la tabla SXF correspondiente al último GetSxeNum efectuado y borra el mismo.FIN
Al confirmar la reserva con la función RollBackSx8:
InicioUbica el registro en la tabla SXF correspondiente al último GetSxeNum eliminando la reserva en la tabla SXF, lo que hace que el número quede disponible.FIN
Tabla SXE
Campos |
Tipo |
Descripción |
XE_FILIAL |
Carácter |
Sucursal del sistema |
XE_ALIAS |
Carácter |
Alias del sistema, también puede tener una combinación de campos. |
XE_TAMANHO |
Numérico |
Tamaño de la Clave. |
XE_NUMERO |
Carácter |
Número siguiente que se devolverá si no hay registro libre en la SXF. |
|
|
|
Tabla SXF
Campos |
Tipo |
Descripción |
XF_FILIAL |
Carácter |
Sucursal del sistema |
XF_ALIAS |
Carácter |
Alias del sistema, también puede tener una combinación de campos. |
XF_TAMANHO |
Numérico |
Tamaño máximo. |
XF_NUMERO |
Carácter |
Registro ya utilizado, si está marcado con lock es porque el mismo está en uso, sin el lock es porque ya está liberado por la función rollback. |
|
|
|