Se me presenta el siguiente problema, agregar y borrar campos de la hoja de entrada de datos de koha... muchos campos y subcampos. Entonces haciendo un pequeño análisis podemos hacer una actualización por base de datos ahorrando tiempo y dejando pequeños sql que podemos replicar. Vamos al código:
#buscamos los campos que necesitamos modificar, en este caso vemos el campo 520 con todos los subcampos de la hoja de entrada BKS (libros o books)
SELECT frameworkcode, tagfield, tagsubfield, hidden FROM marc_subfield_structure WHERE frameworkcode = 'BKS' AND tagfield = '520';
De aquí podemos ver que la columna hidden guarda un número que indica la visibilidad del subcampo. Para ver los valores posibles me dirijo al editor de subcampos y veo el inspector de código.
De aquí vemos algunas combinaciones (las que a mi me interesan):
- Campo no visible en el editor(OPAC:1 - Intranet:1 - Editor:0 - Colapsado:0): -6
- Campo visible en el editor(OPAC:1 - Intranet:1 - Editor:1 - Colapsado:0): 0
- Campo visible en el editor, pero colapsado(OPAC:1 - Intranet:1 - Editor:1 - Colapsado:1): -1
Con estos datos ya podemos armar nuestro sql de actualización de subcampos, para el campo 520 me solicitan que:
- subcampos $a y $b estén visibles (hidden:0)
- subcampos $3 y $u estén colapsados (hidden:-1)
- subcampos $2 $6 $8 $c y $z estén ocultos (hidden:-6)
Con lo que quedaría:
UPDATE marc_subfield_structure SET hidden = 0 WHERE frameworkcode = 'BKS' AND tagfield = '520' AND tagsubfield IN ('a' , 'b');
UPDATE marc_subfield_structure SET hidden = -1 WHERE frameworkcode = 'BKS' AND tagfield = '520' AND tagsubfield IN ('3' , 'u');
UPDATE marc_subfield_structure SET hidden = -6 WHERE frameworkcode = 'BKS' AND tagfield = '520' AND tagsubfield IN ('2' , '6', '8', 'c', 'z');
Con esta lógica se pueden actualizar las hojas de entrada de forma masiva.