Formato para condicionar la eliminación de registros

From ABCD Wiki
Jump to: navigation, search

Las condiciones para la eliminación de registros se establecen en un formato especial que permite determinar si un registro puede, o no, ser eliminado de la base de datos.

Se almacena en la carpeta pft/xx de la base de datos activa, bajo el nombre recdel_val.pft

Si el formato existe, se aplica sobre el registro antes de eliminarlo y si devuelve algún mensaje entonces se cancela la eliminación del registro. Si el formato no existe, no procede la validación de la eliminación

En el esquema de manejo de la base de datos Marc en ABCD, la validación de la eliminación de registros puede utilizarse para asegurar la consistencia entre las bases de datos de registro bibliográfico, copias, objetos de préstamo, usuarios y transacciones de préstamo

centro

A No se debe eliminar un registro bibliográfico si tiene copias

B No se deben eliminar copias si están habilitadas para préstamo

C No se deben eliminar las copias habilitadas para préstamo si tienen transacciones pendientes

D No se deben eliminar usuarios si tienen transacciones pendientes

No eliminar el registro bibliográfico si tiene copias

La base de datos bibliográfica tiene definido un campo Número de control el cual se transfiere a la base de datos de copies, conjuntamente con el nombre de la base de datos activa, cada vez que se agrega una nueva copia al registro bibliográfico. En la FST de la base de datos copias existe una clave de indización que contempla el número de control y el nombre de la base de datos. Esta clave relaciona las copias con los registros biblográficos con los cuales están vinculados.

centro

Para validar la eliminación del registro bibliográfico puede construirse el siguiente formato:

   if npost(['copies'],'CN_biblo_'v2)>0  or
      npost(['loanobjects'],'CN_'v10'_'v1)>0 then 'Error' 
   fi/

En el cual se verifica si hay registros vinculados en la base de datos copies o en la base de datos loanobjects. Tanto copies como loanobjects deben estar incluídas en el archivo .par de la base de datos activa.

El formato recdel_val.pft se almacena en la carpeta pfts de la base de datos bibliográfica activa. El archivo .par de la base de datos activa debe incluir los caminos de acceso hacia las bases de datos copies y loanobjects, de la siguiente manera:

     copies.*=%path_database%copies/data/copies.*
     loanobjects.*=%path_database%loanobjects/data/loanobjects.*


No eliminar las copias si están habilitadas para préstamo

La base de datos loanobjects contiene, para cada registro bibliográfico, un registro contentivo de las copias que están habilitadas para préstamo. En esta base de datos las copias habilitadas se expresan en la forma de un campo repetible con subcampos. Si existe en loanobjects un registro con igual número de inventario que la copia que se desea eliminar, entonces no debe proceder la eliminación de la copia. Note que no nos sirve hacer la validación por el número de control ya que un registro de loanobjects referencia todas las copias habilitadas para préstamo y tenemos que determinar la información para una copia en específico.

centro

Para validar la eliminación de las copias puede construirse el siguiente formato de validación:

         if  npost(['loanobjects'],'IN_'v30)>0 then 'Error' fi/

El formato recdel_val.pft debe estar localizado en la carpeta pfts de la base de datos copies. El archivo .par de la base de datos copies debe contener el camino de acceso a la base de datos loanobjects, de la siguiente manera:

       loanobjects.*=%path_database%loanobjects/data/loanobjects.*


No eliminar las copias habilitadas para préstamo si tienen transacciones pendientes

Si una copia habilitada para préstamos (loanobjects) está prestada a algún usuario (trans), no puede proceder su eliminación hasta que se produzca la devolución del préstamo

centro

En la base de datos de transacciones el campo 1 indica la situación del préstamo:

    P=prestado 
    X=devuelto.

Entonces, para que la eliminación de un registro de loanobjects pueda realizarse, no puede haber ningún registro prestado con el número de control del registro que se quiere eliminar. Por ello el formato de validación:

    if  npost(['trans'],"ON_P_"v1)>0 then 'Error' fi/Nos determina si existen registros prestados en la base de datos de transacciones con el número de control del registro de loanobjects que deseamos eliminar. Este formato se almacena en la carpeta def de la base de datos loanobjects, bajo el nombre recdel_val.pft. Se debe incluir en el archivo loanobjects.par el camino de acceso hacia la base de datos trans, en la forma:      trans.*=%path_database%trans/data/trans.*

No eliminar usuarios si tienen transacciones pendientes

Para eliminar un usuario debe verificar primero si tiene préstamos pendientes

centro

Para estos efectos se puede acceder el archivo de transacciones, utilizando como clave aquella que refleja los préstamos pendientes por código de usuario. Bajo estas condiciones, el formato de validación sería:

      If npost(['trans'],'TRU_P_'if p(v20) then v20 else v35 fi)>0 then 'Error'  fi/

Este formato de validación debe estar incluido en la carpeta pfts de la base de datos users bajo el nombre recdel_val.pft. Además, en users.par debe incluirse el camino de acceso hacia la base de datos de transacciones, en la forma: trans.*=%path_database%trans/data/trans.*