Preguntas más frecuentes

 

IAH - Interactuar con las páginas del site de la institución

Respuesta suministrada por Ernesto Spinak

La interfaz del OPAC tiene esa posiblidad, que se define en el archivo de configuracion

  C:\ABCD\www\htdocs\iah\scripts\iah.def.php

 [HEADER]
 LOGO IMAGE=logoabcd.jpg
 LOGO URL=^1/site/php/index.php^2/site/php/index.php^3/site/php/index.php^4/site/php/index.php
 HEADER IMAGE=online.gif
 HEADER URL=^1/iah/pt/index.htm^2/iah/es/index.htm^3/iah/en/index.htm^4/iah/fr/index.htm

Si trabajas en español, entonces el ^2 define tu dirección de retorno a la página de biblioteca y/o tu Site


Como importar desde WinIsis convirtiendo los < > a campos repetibles


Acentos en el iah. Donde configurar

Respuesta suministrada por Asael Costa Silva:

La IAH utiliza por defecto la codificación ISO 8859-1 (latin 1) compatible con la ANSI 1252. En ABCD eso puede ter cambiado con las revisiones del sistema.

Mientras tanto, cada pais utiliza una codificación que puede ser mejor adaptada a los costumbres de la región. Al mismo tiempo, los servidores Linux son en general UTF-8.

La configuración del sistema operativo y también del Apache (o otro web server) pueden impedir que el interfaz de IAH logre discubrir cual es la codificación por defecto.

Les pedimos por lo tanto, revisar las configuraciones de su sistema operativo, de su servidor web y también si el navegador no está configurado para asumir siempre una configuración específica, diferente de aquela donde los datos fueron generados y grabados

Solución implementada por Gregorio Castro:

El archivo \ABCD\www\htdocs\iah\scripts\es\ahhead.pft tiene definido

 content="text/html; charset=utf-8; charset=windows-1252"

Lo cambié por

 content="text/html; charset=iso-8859-1"

Ahora se visualizan correctamente los acentos.


Cómo importar un grupo de registros y asignarles el número de control

El número de control es un campo muy importante en ABCD cuando se intenta relacionar registros entre bases de datos tal como sucede con la relación entre un registro bibliográfico y sus copias (ver Mantener las copias de los objetos en la base de datos de copias)

Esta opción del menú de Utilitarios permite asignar el número de control a un grupo de registros que se han cargado por importación o cuya renumeración sea requerida. Para ello se presenta la siguiente hoja de entrada:

centro

El último número de control asignado se extrae del archivo control_number.cn localizado en a carpeta data de la base de datos activa y la numeración correspondiente arrancará sumando 1 al último número de control asignado. Si este valor requiere ser cambiado use el vínculo Restituir el número de control para indicar desde que valor va a comenzar la reasignación. Si va a comenzar el número de control en 1, coloque 0 (cero) como último número de control asignado.

A continuación indique el rango de Mfn a partir del cual va a comenzar la reasignación del número de control. No proporciones rangos muy elevados para evitar que el servidor cancele el proceso por tiempo de ejecución excedido (time-out). Si no se ha llegado al número total de registros ABCD presentará automáticamente un botón que le permitirá continuar recorriendo la base de datos y asignando el número de control

centro


Cambios globales con el MX

Mauricio Brito escribió:

Necesito una mano para corregir datos en unos subcampos de mi base marc en abcd. Deseo cambiar todos los campos que tengan MFC en el campo 900 subcampo k por el dato mfeican, para ello estoy usando un archivo prc que tiene el siguiente script:

  if (v900^k = 'MFC') then
      'd900^k'
      '<900>^kmfeican</900>'
  fi,

Este script me sirve cuando deseo borrar todo el campo, pero no logro hacerlo ejecutar para cando solo deseo cambiar o eliminar un subcampo. Cuando ejecuto este script obtengo el siguiente resultado:

fatal: ^k<900>^kmfeican</900>

Ernesto Spinak responde:

Si la cantidad de registros son muchos, lo recomendable es hacerlo directo en la base desde la línea de comandos

 1) Haz una copia de tu base marc para respaldo, o sea los archivos mst y .xrf por cualquier eventualidad

 2) usaremos un gizmo especial para ese cambio y la instrucción será
 mx marc  gizmo=chmfc,900 copy=marc now -all tel=100

El archivo gizmo lo creas de la siguiente forma interactiva directa en la ventana de comandos

 C:\>mx seq=con create=chmfc now
 ^kMFC|^kmfeican
     mfn=     1
       1  «^kMFC»
       2  «^kmfeican»
     ^Z

Egbert de Smet responde:

Just for ‘academic’ purposes, let me add that a proc would also have worked (ISIS has often several solutions…) :

  1. create a text-file, e.g. mfc.proc :
'd900',
'<900>', replace(v900,'^kMFC','^kmfceikan'),'</900>',

(if you don’t want to risk empty v900 to be created, add a condition, e.g. if p(v900) then … fi or even your original if (v900^k = ‘MFC’) then … fi

  1. then :

    mx marc proc=@mfc.prc replace=marc now -all
    

Cómo destacar un préstamo vencido desde la opción “Transacciones”

  • Edite el formato tbtrans.pft en la carpeta pfts en la subcarpeta correspondiente al lenguaje activo:

    f(mfn,1,0)'|'v1102'|'v1001'|'v1002'|',if v1='X' then 'Devuelto' else 'Prestado' fi, '|'v10,'|',v20'|',v30'|<font size=1>',v35.5,v35*8'|'v40,'|<font size=1>',v45.5,v45*8'|',v70'|',v80'|<font size=1>',mdl,v100/
    
  • Sustituya el despliegue del campo 40 (v40) por la siguiente sentencia:

    if val(S(date).8)>val(v40) then '<font color=red>' fi,v40'</font>'
    

El nuevo formato deberá aparecer como:

f(mfn,1,0)'|'v1102'|'v1001'|'v1002'|',if v1='X' then 'Devuelto' else 'Prestado' fi,'|'v10,'|',v20'|',v30'|<font size=1>',v35.5,v35*8'|' if val(S(date).8)>val(v40) then '<font color=red>' fi,v40'</font>','|<font size=1>',v45.5,v45*8'|',v70'|',v80'|<font size=1>',mdl,v100/

Cómo limitar el número de ocurrencias que se desea almacenar en el campo Operador y fecha cuando se hacen cambios sobre los registros

En la FDT de la base de datos, o en las hojas de entrada, si fuera el caso, coloque bajo la columna filas el número de ocurrencias que quiere conservar en el proceso de actualización de los registros. De esta forma solo se almacenará la información de los últimos filas operadores que actualizaron los registros.

Recuerde también que cuando se definen las hojas de entrada existe la columna Vincular con la FDT para reflejar en ellas, en forma automática, los cambios realizados en la FDT, a excepción de la creación de campos.


Deprecated: Function eregi() is deprecated in ../central/dataentry/inicio_base.php

Se está corriendo una versión vieja de ABCD (anterior a la 1.06) con una nueva versión de PHP y ese comando está eliminado en PHP

Solución: Actualice su versión de ABCD a la versión 1.3t o posterior. Es muy importante que en esta actualización siga las instrucciones relacionadas con la configuración del script config.php y actualización de las tablas de mensajes.

Para una descarga completa de ABCD puede utilizar la página http://abcd.netcat.be/files/

Para descargas parciales puede utilizar el vínculo Descargas de este mismo Wiki

Recuerde leer detenidamente las instrucciones de instalación


Eliminar una cadena al final de un campo usando el MX

Problema: Se quiere eliminar los : al final de un campo

Solución:

Por Ernesto Spinak

before you do the changes, SAVE YOUR FILES, PLEASE !!!

mx biblo "proc=if right(v200,1)=':' then  'd200','<200>', left(v200,size(v200)-1), '</200>'  fi"  copy=biblo now -all tell=1000

Si se quiere eliminar de manera incondicional el último caracter del campo

mx biblo "proc='d200', '<200>',left(v200,size(v200)-1), '</200>' "  copy=biblo now -all tell=1000

Para información acerca del mx ver: Manual de referencia de los utilitarios CISIS

Para información acerca de los comandos proc, left, proc y size ver Manual de referencia del lenguaje de formatos


Fecha y hora incorrecta en ABCD

Para que la hora que utilize ABCD sea la correcta tiene dos opciones:

  1. Cambiando el parámetro date.timezone en el archivo php.ini
  2. Ajustando el parámetro date_default_timezone_set(‘America/Caracas’); en el archivo config.php

La tabla de zonas válidas la puede encontrar en: http://php.net/manual/es/timezones.php


Generar la base de datos de usuarios a partir de una hoja Excel

Experiencia explicada por: Ing. Redel Pérez Pupo

Estoy utilizando el ABCD 1.2 Transitional en un servidor linux Debian6 en nuestra Biblioteca Universitaria, y voy a usar el módulo interno de préstamos, tengo los datos de más de 1600 usuarios en formato .xls de excel, los cuales son:

Identidad
Nombre
Apellidos
Dirección
Carrera
Facultad
Fecha de Matrícula
Sexo

Con estos datos creé un fichero de texto separado por comas con el excel (txt.txt) y luego creé una base (dbname), especificando la coma “,” como separador:

mx "seq=txt.txt," create=dbname -all now

Fui al servidor y convertí la base users del módulo de préstamos a windows con crunchmf para utilizar la misma base que utiliza el ABCD y además no perder los datos que contenía.

./mx users crunchmf target=windows

Descargé la base users a mi estación de trabajo windows 7 32 bits, luego agregé los datos de la base dbname (creada a partir del txt separado por comas), utilizando el parámetro “proc” desde un fichero nombrado prc.prc el cual se corresponde con la estructura utilizada por ABCD, cuyo contenido es el siguiente:

'd*'
'<10>','^aest^bEstudiantes','</10>'
(if v8='Femenino' then
    '<12>','^aF^bFemenino','</12>'
else
    '<12>','^aM^bMasculino','</12>'
fi)
'<15>',v7*8.2,'/',v7*5.2,'/',v7*0.4,'</15>'
'<18>',v7*0.4,v7*5.2,v7*8.2,'</18>'
'<20>',v1,'</20>'
'<30>',v2," ",v3'</30>'
'<35>',v1,'</35>'
'<40>',v6,'</40>'
'<45>',v5,'</45>'
'<110>',v4,'</110>'
'<600>',v2,mfn(1),'</600>'
'<610>',v2,mfn(1),'</610>'

ejecuto:

mx dbname proc=@prc.prc apend=users -all now

luego:

mx users crunchmf target=linux

subo los datos para el servidor y genero el archivo invertido:

./mx users fst=@users.fst fullinv=ansi -all tell=100  now

Hoja de entrada de datos vacía (empty worksheets)

I can see all the records in my CEPAL database and Marc database (in all my database), but when I try to edit any record of any database I have in my ABCD the data sheet of the record comes empty.

Answer by Egbert de Smet

For sure when seeing empty worksheets, the folder of the database concerned is not writeable. We have had this many times and it was always the reason.


It’s normal to get this message when I open my ABCD? CISIS version: http://localhost:9090/cgi-bin/wxis.exe

Yes this is normal, as we will be using different (various) versions of CISIS in version 2.0 of ABCD, to allow for UNICODE and Digital Libraries databases.

So we show the version used, which for the time being is just the ‘normal’ one.


In ABCD 1.3t I cannot begin session with any user name. The message is “User unauthorized”

La versión 1.3t requiere una actualización del archivo config.php por cuanto se han agregado nuevos parámetros.

Si usted sustituyó su archivo config.php por el que se suministra en la instalación debe revisar atentamente los cambios del archivo config.php y prestar atención al párrafo del [log de cambios] donde se indica:

“Nota importante: si copia el nuevo archivo config.php asegurese de modificar los parámetros que hacen referencia a las rutas y modalidades de ejecución en su equipo. Si no quiere copiar el config.php incluya en el suyo los parámetros $ext_allowed, $msg_path y $change_password con los valores correspondientes. En esta distribución del config.php el wxis.exe se invoca por el método EXEC y no utilizando el método POST (ver parámetros $Wxis y $wxisUrl en config.php


ABCD in Linux : problem with immediately expiring session

For those interested in this specific issue : I found the problem and solution. The wonership of the directory, set as ‘session.save_path’ in PHP (php.ini defaults to that if not filled in) was set as root and I had to change it to www-data (the user under which Apache and ABCD run). Another option of course is to put /var/lib/php5 at rights ‘777’ which also allows www-data to write in it, but this is less secure. I have no idea how it got changed before but maybe some system update has introduced this change and caused the problem.

Egbert de Smet Universiteit Antwerpen


Cómo resuelve el mensaje “Falta abcd.def”

  1. Verifique que el config.php el parámetro $db_path esté asignado correctamente
  2. Si está usando la opción de múltiples carpetas de bases de datos verifique que las rutas en el db_path.dat estén asignadas correctamente. La especificacion de la ruta de cada carpeta debe comenzar y terminar con
  3. Verifique que realmente exista el archivo abcd.def en cada una de las rutas de bases de datos

Problema con la ejecución del wxis.exe

  1. Ejecutar el wxis desde el prompt de linux escribiendo directamente:

       _<RUTA_HACIA_LA_CARPETA_CGI-BIN>_/wxis.exe what
    

Si no se ejecuta debe ser problema de permisos.

  1. Si se ejecuta pareciera que el problema se dá cuando se llama el wxis desde PHP.

ABCD utiliza el comando exec para llamar al wxis.exe por el método get y el manual de php dice:

Note: When safe mode is enabled, you can only execute files within the safe_mode_exec_dir. For practical reasons, it is currently not allowed to have .. components in the path to the executable.

Entonces, verificar que en el php.ini el parámetro safe_mode esté en off y reiniciar el apache


Como desplegar las imágenes asociadas a los registros de una base de datos

Respuesta enviada por Egbert de Smet:

the obvious answer is another question : where are your pictures stored ?

There are two options here :

  • either you store in /ABCD/www/htdocs/bases/[yourdb], so this is the ‘DocumentRoot’ (of Apache) followed by the ‘bases’ folder and in there the subfolder named with your database-name

-or you define in the main database-folder for your database (e.g./ABCD/www/bases/[yourdb]) a file named ‘dr_path.def’ (for ‘digital repository path definition’) in which you put the path where you want your ‘repository’ to be, which then can also be outside the DocumentRoot, e.g. your bases-folder itself.

You will see an example of this for the CEPAL (biblo) demo-database.

Let me explain how in the patrons (users) database the picture is shown, without the use of the ‘show_image.php’ script as an alternative :

I created an ‘Alias’ in Apache virtual host configuration for ABCD(actually by copying/editing the example of ScriptAlias in the existing configuration httpd-vhosts-abcd.conf) : Alias /docs/ “/ABCD/www/bases/”

    <Directory "/ABCD/www/bases/">
       AllowOverride None
       Options None
       Order allow,deny
       Allow from all
   </Directory>

After restarting Apache, now it will substitute all occurrences of ‘/docs/’ in the URL by the full path as defined: /ABCD/www/bases/.

So in the PFT now you only have to refer to the pictures by putting ‘/docs/’ followed by the database-name (users) and then the repository subfolder-name, followed finally by the actual name of the picture (which is taken from v620

Thus the PFT becomes :

 '<img src="/docs/users/dr/'v620'"</img>'

where the path for the image will actually be /ABCD/www/bases/users/dr/. NSo you have to put the pictures there. It is outside the Apache DocumentRoot (or domain), but by creating the Alias it can still work (as that is the purpose of Aliases).

I hope this clarifies things and allows you to solve the problem.

Egbert de Smet

Universiteit Antwerpen


Como leer un archivo ISO generado por Koha para importarlo en ABCD

Suministrado por Egbert de Smet

Usar el comando sigiente para convertir una b.d. MARC directamente a ABCD con mx:

mx iso=marc=koha.mrc isotag1=3000 gizmo=sv.gzm create=marc now -all

El fichero ‘koha.mrc’ es un archivo de exportación de KOHA en el formato MARC.

El gizmo (en esto caso ‘sv.gzm’) se usa para convertir los caracteres de separador de los subcampos en KOHA en la ‘^’ de ISIS. Esto se puedo crear con el comando :

mx seq=con create=sv.gzm

y entrar en el unico registro de esta b.d. :

from|to

donde ‘from’ es el caracterio de subcampo usado en KOHA y ‘to’ es el ‘^’.

El parametro isotag1 es para preservar los campos del ‘header’ en los campus con etiquetas 3005, 3006 etc.

Nota aclaratoria de Ernesto Spinak

La versión que debe usarse en las mx1660, porque la mx1030 no exporta todos los bytes del leader, solo algunos como se ve a continuación

mx1030 iso=marc=bdu.mrc isotag1=3000 proc='s'

mfn=     1
  1  «000449187»
  5  «20160425112337.0»
  8  «160425s1975    miu           000 0 eng d»
 40  «  ▼aUY-MoUIE»
100  «1 ▼aGraceras, Ulises»
245  «10▼aInter-generational cleavages and political behavior :▼ba survey study
of the 1971 presidential election in Uruguay /▼cUlises F. Graceras.»
260  «  ▼aEast Lansing :▼bMichigan State University,▼c1975.»
300  «  ▼a183 p.»
500  «  ▼aDisertacion sometida a la Michigan State University en cumplimiento pa
rcial de los requisitos para el grado de Doctor of Philosophy, Department of Soc
iology.»
650  « 4▼aELECCIONES»
650  « 4▼aCONFLICTO DE GENERACIONES»
650  « 4▼aENCUESTAS»
651  « 4▼aURUGUAY»
3005  «n»
3009  «#»
3017  « »
..x

mx1660 iso=marc=bdu.mrc isotag1=3000 proc='s'
mfn=     1
  1  «000449187»
  5  «20160425112337.0»
  8  «160425s1975    miu           000 0 eng d»
 40  «  ▼aUY-MoUIE»
100  «1 ▼aGraceras, Ulises»
245  «10▼aInter-generational cleavages and political behavior :▼ba survey study
of the 1971 presidential election in Uruguay /▼cUlises F. Graceras.»
260  «  ▼aEast Lansing :▼bMichigan State University,▼c1975.»
300  «  ▼a183 p.»
500  «  ▼aDisertacion sometida a la Michigan State University en cumplimiento pa
rcial de los requisitos para el grado de Doctor of Philosophy, Department of Soc
iology.»
650  « 4▼aELECCIONES»
650  « 4▼aCONFLICTO DE GENERACIONES»
650  « 4▼aENCUESTAS»
651  « 4▼aURUGUAY»
3005  «n»
3006  «a»
3007  «m»
3008  «#»
3017  « »
3018  «a»
3019  «#»

Como borrar los subcampos de un campo con el MX

Suministrado por Egbert de Smet:

Hay que primeramente borrar el campo 900 (entero, no parcialmente),

'd900',

entonces agregar los subcampos que tienen que quedar presente, p.e.

'<900>',v900^b,v900^c'</900>'

Getting process not executed when executing Inverted file generation (MX)

The message you get is:

Command line: database: /ABCD/www/bases/zamcom/data/zamcom fst: @/ABCD/www/bases/zamcom/data/zamcom.fst

mx: /ABCD/www/cgi-bin/ Test

uctab: /ABCD/www/bases/isisuc.tab

actab: /ABCD/www/bases/isisac.tab

Query:/ABCD/www/cgi-bin/ /ABCD/www/bases/zamcom/data/zamcom

fst=@/ABCD/www/bases/zamcom/data/zamcom.fst
uctab=/ABCD/www/bases/isisuc.tab
actab=/ABCD/www/bases/isisac.tab
fullinv=/ABCD/www/bases/zamcom/data/zamcom -all now tell=100  

Out: process NOT EXECUTED

Solving procedure:

If you click on thes test link in mx: /ABCD/www/cgi-bin/ Test do you get something like this?:

Testing if the file /ABCD/www/cgi-bin/mx.exe exists OK!! Testing the execution of /ABCD/www/cgi-bin/mx.exe Command line:

/ABCD/www/cgi-bin/mx.exe what CISIS Interface 
v5.2b/PC32/M/32767/16/60/I - Utility MX CISIS Interface 
v5.2b/.iy0/Z/4GB/GIZ/DEC/ISI/UTL/INVX/B7/FAT/CIP/CGI/MX 
Copyright (c)BIREME/PAHO 2006.  [[1]]
(http://www.bireme.br/products/cisis)

If not, try to check if the mx program is located in the folder and with execution rights.

Another cause for this error is when the isisuc.tab and isisac.tab are not found.

If the test of the mx succeds, try to execute the query from the console to see what happens


Problemas con la ejecución de Z39.50

Z39.50 usa un componente llamado YAZ que en las versiones anteriores de PHP ya venía incorporado como extensión. Lamentablemene en las últimas versiones esta facilidad fue eliminada.

En http://abcdwiki.net/ABCofABCDv13t/ch01s02.html#d0e760 consiguirás unas instrucciones muy detalladas desarrolladas por Egbert de Smet sobre como compilar el PHP para incorporar el YAZ. También María Mercedes McLean y Ernesto Spinak tienen experiencia en esta materia.


Número de ocurrencias en campos repetibles

Explicacion cortesía de Ernesto Spinak

La cantidad máxima de ocurrencias no está documentada, pero por experiencias, he visto que por causa de las limitaciones del directorio del registro (leader, directory, data) en la versión estándar 1660, alrededor de 100 repeticiones comienza a dar problemas, y la cantidad de entradas en el directorio es un número que varía en el entorno de 400 tags.

El problema se da en la indización, porque si sumas los tags propios del registro, más los que se crean en forma virtual en el proceso de generación de postings, si se supera ese máximo,se satura el buffer y no crea todos los postings

Eso se nota mejor cuando indizas por palabras; si indizas un registro con muchos campos y repeticiones, entonces no queda lugar para los postings de palabras porque se supera el máximo.

La versión FFI de CISIS tiene limites bastante más elevados pero en ningún momento he podido llegar entre tags+occs +postings a 1.000 elementos virtuales.

Por este motivo J-ISIS usa el Lucene/Solr para indizar las bases de datos

Nota: las FST demasiado largas no garantizan que el registro genere todos los postings que se desea, máxime si se usa indización con técnica 8


How to get a clean list of terms without duplicates

Cortesía de Ernesto Spinak

There is simple and effective way to get a clean list of terms without duplicates using Cisis utitlies from the command line

mxtb is a tabulator, i.e. it can extract all different instances of a data (see the manual)

I’ll do an example using a marc database, to get an author list authors are recorded in v100^a and v700^a (repeatable) so the line would be

mxtb marc create=author  "100:v100^a/(v700^a/)" class=2000 tell=100

it will get out something like

mxtb: 5100 recs in
      1230 tabs
      860 recs out

just in case you have an error return, like the following line, fatal: mxtb/maxhash overflow the problem is that you have more than 2000 instances, then you increase the number to class=3000 or 10000 or …etc

The author database has three fields like the example, one record for each different key

mx author
mfn=     1
  1  «Leite, José Alfredo A. (José Alfredo Américo).»
998  «999999998»
999  «1»

then you export the unique names

mx author "proc='d998d999'" iso=author.iso now -all tell=100

mxtb is case sensitive