RE:¿Como utilizar la regla serial?
Aqui te Mando un Ejemplo:
Si se diseña a la transacción “Facturas” conteniendo un Número de Línea de Factura (atributo FacLinNro) como identificador único del segundo nivel, la estructura de la transacción sería:
FacNro*
CliCod
CliNom
FacFch
FacUltLin
(FacLinNro*
PrdCod
PrdDsc
……)
En este diseño el atributo PrdCod no es identificador único del nivel, sino clave foránea únicamente.
Cada línea tiene un número de línea que la identifica en forma única, y es posible ingresar el mismo producto en distintas líneas.
Podría ser útil asignar por medio del sistema, números correlativos al campo FacLinNro, definiendo la regla:
serial(FacLinNro, FacUltLin, 1);
El primer parámetro de la regla serial define cuál es el atributo a numerar automáticamente, en el segundo parámetro debe indicarse un atributo cuya función es guardar el último valor asignado hasta el momento, y por último el tercer parámetro es para indicar el incremento (en este caso se incrementa de uno en uno).
El segundo parámetro (en el ejemplo FacUltLin) debe pertenecer a una tabla directamente superordinada a la tabla que contiene el atributo que se desea numerar automáticamente (FacLinNro). La regla serial lo requiere así. En el ejemplo, se puede observar que FacUltLin se encuentra en la tabla de clave FacNro*, la cual es directamente superordinada respecto a la tabla que contiene el atributo a numerar (FacLinNro).
Es decir, cada factura tendrá en el cabezal, un atributo que almacenará el último número de línea asignado hasta el momento (FacUltLin). La regla serial está implementada de forma tal que necesita este atributo (para fijarse el último número utilizado, sumarle el incremento, y asignar el próximo número a la nueva línea).
.......................Hugo desde Jujuy Argentina