Script para la migración de la base BINAM de CEPAL a MARC21 (Biblioteca Nacional de Maestros).
/* ------------------------------------------------------------------
* Programa para la migraci¢n de la base BINAM de CEPAL a MARC21
* ------------------------------------------------------------------
* Biblioteca Nacional de Maestros - Abril 2001/Enero 2002
* ------------------------------------------------------------------
*
* Este programa utiliza algunas bases auxiliares (IDIO, PAIS,
* ROLES, JURISD, etc.), y los formatos v245c-p.pft, v245c-i.pft,
* que generan las menciones de responsabilidad personales e
* institucionales respectivamente.
*
* Modo de empleo:
* mx g:\ptec\binam\migra\binam proc=@cepal2marc.pft
* proc=@elim.pft
* proc='s'
*
* (en el directorio donde est‚n los archivos auxiliares)
*
* Copiar base nueva en g:\ptec\binam\marc\marc
* ------------------------------------------------------------------
*/
mpl,
/* IMPORTANTE: correr el mxf0 y estudiar campos "raros" */
/* eliminamos todos los campos de CEPAL */
'd*',
/* tags de CEPAL que se reutilizan (por si desactivamos la linea previa) */
'd001','d005','d020','d040','d080','d100','d110','d130','d240','d610','d659',
/* =================================================================
* De acuerdo al nivel del registro (MONOGRAFICO o ANALITICO),
* seleccionamos los autores (v9016, v9017) y el t¡tulo (v9018) que
* usaremos en el resto del programa.
* Aprovechamos para normalizar los espacios alrededor de ':' en
* los t¡tulos.
* =================================================================
*/
if v6.1='m' then /* NIVEL MONOGRAFICO */
proc(
,(,'a9016%',v16,'%' ,),
,(,'a9017%',v17,'%' ,),
,(,'a9018%',replace(replace(v18,' : ',': '),': ',' : '),'%' ,),
)
else /* NIVEL ANALITICO */
proc(
,(,'a9016%',v10,'%' ,),
,(,'a9017%',v11,'%' ,),
,(,'a9018%',replace(replace(v12,' : ',': '),': ',' : '),'%' ,),
)
fi,
/* testeo de lo anterior */
/*
/'MFN:'mfn/
(|AP-A:|v10/)(|AI-A:|v11/)(|TI-A:|v12/)#
(|AP-M:|v16/)(|AI-M:|v17/)(|TI-M:|v18/)#
(|AP-*:|v9016/)(|AI-*:|v9017/)(|TI-*:|v9018/),
break,
*/
/* =================================================================
* Determinamos el encabezamiento principal (Main entry), de
* acuerdo con la tabla de prioridades.
* =================================================================
*/
/* 7001 : n£mero de autores sin ^f */
proc('a7001%',f(nocc(v9016)-size(v9016^f.1),1,0),'%'),
/* 7000 : encabezamiento principal */
proc('a7000%',
if p(v130) then '130'
else if p(v9017) AND p(v240) then '110'
else if val(v7001)>=1 AND val(v7001)<=3 then '100'
else if p(v9017) then '110'
else if p(v53) then '111'
fi,fi,fi,fi,fi,
'%',
),
/* si ninguna de las condiciones anteriores se cumple, quedan ausentes
los campos 100, 110, 111 y 130 ("asiento bajo t¡tulo") */
proc('d7001'),
/* ===================================================================
* Cabecera (leader)
* (Solo la informaci¢n que est en BINAM y que depende del registro)
* ===================================================================
*/
'a999%',
/* 05 : Record status */
'?',
/* 07 : Bibliographic level */
if v6.1='m' OR p(v18) AND a(v12) then 'm'
else if v6.1='a' OR p(v12) then 'a' fi,
fi,
/* 17 : Encoding level */
select v05
case '1':'z',
case '2':'5',
case '3':'3',
case '4':'7',
case '5':'9',
endsel,
/* 19 : Linked record requirement ??? */
if p(v12) then 'r' else ' ' ,fi,
'%',
/* ===============================================================
* Campo 001
* N£mero de control
* ===============================================================
*/
'a001%',
/* 00-02 */ 'BNM'
/* 03-08 */ mfn(6),
'%',
/* ===============================================================
* Campo 005 (CEPAL v97)
* Fecha y hora de la £ltima transacci¢n
* ===============================================================
*/
'a005%',v97,'000000.0%',
/* ===============================================================
* Campo 008 (CEPAL varios)
* ===============================================================
*/
'a008%',
/* 00-05 */ if size(v97)=8 then v97*2, else s(date)*2.6 fi,
/* 06 */ if a(v43) OR v43:'s.f.' then 'n' else 's' fi,
/* 07-10 */
/* s.f. */ if a(v43) OR v43:'s.f.' then ' ',
/* 9999 */ else if not v43:'-' AND NOT v43:'[' then v43,
/* [ca. 9999] */ else if v43:'ca.' then v43*5.4,
/* [99--] */ else if v43:'--]' then v43*1.2,'00',
/* [999-] */ else if v43:'-]' then v43*1.3,'0',
/* [1111-9999] */ else if v43:'-' then v43*1.4,
/* [9999] */ else if v43:'[' then v43*1.4,
,fi, fi, fi, fi, fi, fi, fi,
/* 11-14 */ if v43:'-' AND not v43:'[' then right(v43,4) else ' ' fi,
/* 15-17 */ if a(v40) then ' ' else '#'v40, fi,
/* 18-28 */ '|||||||||||',
/* 29 */ if p(v53) then '1' else '0' fi,
/* 30-31 */ '00',
/* 32 */ ' ', /* posici¢n no definida */
/* 33 */ '|',
/* 34 */ if v80:'BIOGRAF' then 'd' else ' ' fi,
/* 35-37 */ if a(v64)
then '|||'
else if nocc(v64)>1
then 'mul'
else if l(['IDIO']v64) > 0 then
ref(['IDIO']l(['IDIO']v64),v2),
else,
'xxx' /* A REVISAR */
fi,
,fi,
,fi,
/* 38 */ '|',
/* 39 */ '|',
'%',
/* ===============================================================
* Campo 020 (CEPAL v47)
* ISBN
* ===============================================================
*/
if p(v47) then
,(,
'a020% ^a',v47,'%',
,),
fi,
/* ===============================================================
* Campo 040
* Biblioteca catalogadora
* ===============================================================
*/
'a040% ^aBNM','%',
/* ===============================================================
* Campo 080 (CEPAL v03)
* CDU
* ===============================================================
*/
if p(v03) then
if l(['DIGITOS']v3.1) > 0 AND NOT v3*1.2='-E'
then 'a080%',
' ^a',mid(v3,1,instr(v03,' ')-1),
'%',
else if l(['PREFST']mid(v03,1,instr(v03,' ')-1)) > 0
then 'a080%',
' ^a',
mid(mid(v03,instr(v03,' ')+1,size(v03)),
1,
instr(mid(v03,instr(v03,' ')+1,size(v3)),' ')-1
),
'%',
,fi,
,fi,
fi,
/* ===============================================================
* Campo 100 (CEPAL v10/v16)
* Autor personal
*
* Corregir manualmente (luego de migrar): Papas, Santos, Abates,
* Kirk-Greene (al v700)
* ===============================================================
*/
if v7000='100' then
/* ¨Qu‚ ocurrencia de v9016 va al v100 ? La primera que no posea ^f */
proc('a7002%',(if v9016^f='' then f(iocc,1,0), break, fi),'%'),
'a100%',
,(,
if iocc<>val(v7002[1]) then continue else
if v9016^*:',' then '1' else '0', fi,
' ^a',
/* ¨M s de una coma? A partir de la segunda se reemplazan por ^c */
if v9016^*:',' AND mid(v9016^*,instr(v9016^*,',')+2,size(v9016^*)):','
then mid(v9016^*,1,instr(v9016^*,','))
replace(mid(v9016^*,instr(v9016^*,',')+1,size(v9016^*)),', ','^c'),
else v9016^*,
,fi,
replace(v9016,v9016^*,''),
if v9016^f>'' then
,if v9016^f:' y ' then
ref(['ROLES']l(['ROLES']
mid(v9016^f,1,instr(v9016^f,' y ')-1)),
'^e'v2),
ref(['ROLES']l(['ROLES']
mid(v9016^f,instr(v9016^f,' y ')+3,1000)),
'^e'v2),
else
ref(['ROLES']l(['ROLES'] v9016^f), '^e'v2),
fi,
fi,
fi,
,),
'%',
fi,
/* ===============================================================
* Campo 110 (CEPAL v11, v17)
* Autor institucional
*
* Actualizar la base JURISD al momento de la migracion
* ===============================================================
*/
if v7000='110' then
'a110%',
if v9017[1]:'^b' AND l(['JURISD']v9017^*[1]) > 0
then '1',
else '2',
,fi,
' ',
'^a',v9017[1],
'%',
fi,
/* ===============================================================
* Campo 111 (CEPAL v53, v54, v55, v56)
* Conferencia
* ===============================================================
*/
if v7000='111' then
'a111% ^a',
if v53:', ' AND
l(['DIGITOS']mid(v53,instr(v53,', ')+2,1)) > 0 then
replace(v53,', ','^n'), /* numero */
else
if v53:'. ' AND
l(['DIGITOS']mid(v53,instr(v53,'. ')+2,1)) > 0 then
replace(v53,'. ','^n'), /* numero */
else v53,
fi,fi,
/* lugar (ciudad, pais) */
if p(v54) OR p(v55) then '^c',
v54,
if p(v55) then ', ',ref(['PAIS']l(['PAIS']v55),v3), fi,
fi,
/* fecha */
if p(v56) then v56, fi,
'%',
fi,
/*===============================================================
* Campo 130 (ya migrado manualmente a v130)
* T¡tulo uniforme
* ===============================================================
*/
if v7000='130' then
'a130% ^a',v130,'%',
fi,
/*===============================================================
* Campo 240 (ya migrado manualmente a v240)
* T¡tulo uniforme
* ===============================================================
*/
if p(v240) then
,(,
'a240% ^a',v240,'%',
,),
fi,
/* ===============================================================
* Campo 245 (CEPAL v10, v11, v12, v16, v17, v18)
* T¡tulo y menci¢n de responsabilidad
*
* ^n, ^p:
* Ej: En busca del tiempo perdido. 5: la prisionera --> ^n5^pla prisionera
* Buscar:
* /[Tomo|Tome|T[.|:]|Parte|Part|P[.|:]|Volumen|Vol|V[.|:]|Secci[o|¢]n|Section] ?[\d|I|V|X|L|C]/i
*
* Candidatos al v111:
* /[conf.r.nc|sal.n|congr.s|jornada|reuni.n|simposio|encuentro|taller|workshop|]/
* ===============================================================
*/
if p(v9018) then
'a245%00^a',
/* ******* SUSPENDIDO POR EL MOMENTO EL USO DE ^n ******* */
/* v1201 : primera posicion donde aparece '. '+digito */
/*
if v9018[1]:'. 0' then proc('a1200%',f(instr(v9018[1],'. 0'),1,0),'%'), fi,
if v9018[1]:'. 1' then proc('a1200%',f(instr(v9018[1],'. 1'),1,0),'%'), fi,
if v9018[1]:'. 2' then proc('a1200%',f(instr(v9018[1],'. 2'),1,0),'%'), fi,
if v9018[1]:'. 3' then proc('a1200%',f(instr(v9018[1],'. 3'),1,0),'%'), fi,
if v9018[1]:'. 4' then proc('a1200%',f(instr(v9018[1],'. 4'),1,0),'%'), fi,
if v9018[1]:'. 5' then proc('a1200%',f(instr(v9018[1],'. 5'),1,0),'%'), fi,
if v9018[1]:'. 6' then proc('a1200%',f(instr(v9018[1],'. 6'),1,0),'%'), fi,
if v9018[1]:'. 7' then proc('a1200%',f(instr(v9018[1],'. 7'),1,0),'%'), fi,
if v9018[1]:'. 8' then proc('a1200%',f(instr(v9018[1],'. 8'),1,0),'%'), fi,
if v9018[1]:'. 9' then proc('a1200%',f(instr(v9018[1],'. 9'),1,0),'%'), fi,
*/
/* regeneramos el v9018, colocando '^n' */
/*
if p(v1200) then
proc('a1201%',f(rmin(v1200+| |),1,0),'%'),
proc('d9018',
'a9018%',mid(v9018[1],1,val(v1201)-1), '^n', mid(v9018[1],val(v1201)+2,size(v9018[1])), '%',
(, if iocc=1 then continue else 'a9018%',v9018,'%' fi ,),
),
proc('d1200','d1201'),
fi,
*/
/* v1202 : primera posicion donde aparece un ':' o un '=' */
,if v9018[1]:':' then
proc('a1200%',f(instr(v9018[1],':'),1,0),'%'), /* pos. del 1er ':' */
fi,
,if v9018[1]:'=' then
proc('a1201%',f(instr(v9018[1],'='),1,0),'%'), /* pos. del 1er '=' */
fi,
proc('a1202%',f(rmin(v1200,x1,v1201),1,0),'%'), /* pos. del primero de ambos */
/* colocamos '^b' en la posici¢n indicada por v1202 (el signo '=' se conserva) */
if v1202=v1201 then mid(v9018[1],1,val(v1202)-1), else mid(v9018[1],1,val(v1202)-2), fi,
if s(v1200,v1201)>'' then
'^b', mid(v9018[1], val(v1202)+2, size(v9018[1])),
else v9018[1],
fi,
/* y si hay m s de un t¡tulo... */
if nocc(v9018)>1 then
' ;',
if val(v1202)=0 then '^b' else ' ', fi,
,(, if iocc>1 then v9018+| ; |, else continue fi ,),
fi,
proc('d1200','d1201','d1202'),
/* ========== MENCIONES DE RESPONSABILIDAD ========== */
/*
if s(v9016,v9017) > '' AND
( a(v130) AND a(v240)
OR a(v130) AND p(v240) AND nocc(v9017) > 1
OR a(v130) AND p(v240) AND p(v9016) ) then
'^c',
if p(v9016) then ,@v245c-p.pft, fi,
if p(v9017) AND a(v240) OR p(v240) AND nocc(v9017) > 1 then
,if p(v9016) then ' ; ', fi,
,@v245c-i.pft,
fi,
fi,
*/
/* Begin porcion extraida de la version de nov/01 */
if p(v16) or p(v17) then ' /^c[' ,fi
if p(v16)
then (
if iocc>1
then ', ',
fi,
if v16^*:', '
then mid(v16^*,instr(v16^*,', ')+2,size(v16^*)),
' ',
mid(v16^*,1,instr(v16^*,', ')-1),
,else v16^*,
fi,
/*
if p(v16^f)
then ', ', ref(['ROLES']l(['ROLES']v16^f),v2),
fi,
*/
),
fi,
if p(v17) and a(v16)
then (
if iocc>1
then ', ',
fi,
v17^*,
),
,fi,
if p(v16) or p(v17) then ']' ,fi
/* End porcion de nov/01 */
'%',
fi, /* p(v9018) */
/* ===============================================================
* Campo 250 (CEPAL v41)
* Edici¢n
* ===============================================================
*/
if p(v41) then
'a250% ^a',v41,'%',
fi,
/* ===============================================================
* Campo 260 (CEPAL v39, v38, v43)
* Publicaci¢n: Lugar, editor y fecha
* ===============================================================
*/
/* Revisar luego el archivo 260efg.txt */
if v6.1='m' OR a(v12) AND p(v18) then
'a260% ',
if s(v39,v38)='[S.l.][s.n.]' OR s(v39,v38)='' then '^a[S.l.^bs.n.]'
else
if a(v39) then '^a[S.l.]',
else
if nocc(v38)=1 AND v38:'^f' AND nocc(v39)=1 then '^e', v39,
else
if nocc(v39)=1 OR nocc(v38) > 1 then |^a|v39, /* quedan todas */
else
/* Varios lugares & una editorial:
* Si Bs. As. es la 1ra occ --> queda s¢lo Bs.As.
* Si Bs. As. est en otra occ --> queda la 1ra + Bs. As. y nada m s
* Si Bs. As. est ausente --> queda s¢lo la 1ra.
*
*/
if not v39:'Buenos Aires' or v39[1]:'Buenos Aires' then '^a',v39[1]
else
'^a',v39[1],
,(,
if v39:'Buenos Aires' then '^a',v39, break, fi,
,),
fi,
fi,
fi,
fi,
if a(v38) then '^b[s.n.]',
else ,(, if v38^f='' then '^b' fi, v38 ,),
fi,
fi,
if nocc(v38)=1 AND v38:'^f' then '^g' else '^c', fi,
if a(v43) then '[s.f.]' else v43 fi,
'%',
fi,
/* ===============================================================
* Campo 300 (CEPAL v14, v20, v42)
* P ginas y descripci¢n f¡sica
* ===============================================================
*/
if p(v20) or p(v14) or p(v42) then
'a300% ',
if p(v14)
then '^a',v14,
else if p(v20) then '^a',v20, fi,
fi,
if p(v42) then
if v42.1<>'+' then '^b', fi,
replace(replace(v42,' + ','^e'),'+ ','^e'),
,fi,
'%',
fi,
/* ===============================================================
* Campo 440 (CEPAL v21, v25, v30, v32)
* Colecci¢n/serie: t¡tulo, subt¡tulo, volumen
*
* ¨¨¨ v30, v32 ???
* ===============================================================
*/
/* atencion: estamos suponiendo que nocc(v25)=nocc(v21), pero p.ej. en
104169, 107697, esto no ocurre */
if p(v25) then
(,
'a440% 0',
'^a',replace(v25,'^s','^p'),
if p(v21) then '^v',v21, fi,
'%',
),
fi,
if p(v30) then
(,
'a440% 0',
'^a',replace(v30,'^s','^p'),
if p(v32) then '^v',v32, fi,
'%',
),
fi,
/* ===============================================================
* Campos 500, 504 (CEPAL v68)
* Nota general, nota de bibliograf¡a
* ===============================================================
*/
if p(v68) then
(,
if v68:'ibliograf' then 'a504' else 'a500' fi, '% ^a',v68,'%',
),
fi,
/* ===============================================================
* Campo 521 (CEPAL v81)
* Nivel de audiencia
*
* Los subcampos de v81 deben desaparecer?
* ===============================================================
*/
if p(v81) then
,(,
'a521% ^a',v81,'%',
,),
fi,
/* ===============================================================
* Campo 530 (CEPAL v95)
* Digitalizaci¢n
* ===============================================================
*/
if p(v95) then
'a530% ^a',v95,'%',
fi,
/* ===============================================================
* Campo 536 (CEPAL v52)
* Nota de patrocinador
/* ===============================================================
if p(v52) then
,(,
'a536% ^a',replace(v52,'^b','. '),'%',
,),
fi
/* ===============================================================
* Campo 600 (Cepal v99)
* Nombres personales como identificadores
* ===============================================================
*/
if p(v99) then
,(,
'a600%',
if v99^*:',' then '1' else '0', fi,
' ^a',v99,
'%',
,),
fi,
/* ===============================================================
* Campo 610
* Nombres institucionales como identificadores
* ===============================================================
*/
if p(v610) then
(,
'a610%',
if v610:'^b' AND l(['JURISD']v610^*) > 0
then '1'
else '2'
,fi,
' ^a',v610,'%',
),
fi,
/* ===============================================================
* Campo 650 (CEPAL v76)
* Descriptores
* ===============================================================
*/
if p(v76) then
,(,
'a650%',
if NOT p(v76^p)
then ' 4^a',v76^*,
else ' ^9',v76^p,
fi,
'%',
,),
fi,
/* ===============================================================
* Campo 659 (CEPAL v80, ya migrado a v659)
* Categor¡a tem tica (Cat logo)
* ===============================================================
*/
if p(v659) then ,(, 'a659%',' ',' ',v659,'%' ,), fi,
/* ===============================================================
* Campo 700 (CEPAL v10, v16)
* Entrada secundaria: Autor personal
* ===============================================================
*/
if p(v9016) then
,(,
if iocc=val(v7002[1]) then continue, else
'a700%',
if v9016^*:',' then '1' else '0' fi,
' ^a',
/* ¨hay doble coma? ponemos ^c en el lugar de la segunda */
if v9016^*:',' AND mid(v9016^*,instr(v9016^*,',')+2,size(v9016^*)):','
then mid(v9016^*,1,instr(v9016^*,','))
replace(mid(v9016^*,instr(v9016^*,',')+1,size(v9016^*)),', ','^c'),
else v9016^*,
,fi,
replace(replace(v9016,v9016^*,''),s('^f',v9016^f),''),
/* ATENCION: ESTA PORCION DE CODIGO HACE QUE EL GRUPO REPETIBLE SE
* EJECUTE AL MENOS DOS VECES, AUN CUANDO SOLO HAY UNA OCC DEL CAMPO
* 9016. PARA ELIMINAR LOS CAMPOS 700 VACIOS QUE SE CREAN POR ESTE
* PROBLEMA, AGREGAMOS "proc=(if v700^a='' then 'd700/'f(iocc,1,0), fi)"
*/
if v9016^f>'' then
,if v9016^f:' y ' then
ref(['ROLES']l(['ROLES']
mid(v9016^f,1,instr(v9016^f,' y ')-1)),
'^e'v2),
ref(['ROLES']l(['ROLES']
mid(v9016^f,instr(v9016^f,' y ')+3,1000)),
'^e'v2),
else
ref(['ROLES']l(['ROLES'] v9016^f), '^e'v2),
fi,
fi,
'%',
,fi,
,),
,fi,
/* ===============================================================
* Campo 710 (CEPAL v11, v17)
* Entrada secundaria: Autor institucional
* ===============================================================
*/
if p(v9017) then
,(,
if iocc>1 OR v7000[1]<>'110' then
'a710%',
if v9017:'^b' AND l(['JURISD']v9017^*) > 0
then '1',
else '2',
,fi,
' ^a',v9017,
'%',
,fi,
),
,fi,
/* ===============================================================
* Campo 711 (CEPAL v53, v54, v55, v56)
* Entrada secundaria: Conferencia
* ===============================================================
*/
if p(v53) AND v7000<>'111' then
'a711% ^a',
if v53:', ' AND
l(['DIGITOS']mid(v53,instr(v53,', ')+2,1))>0 then
replace(v53,', ','^n'), /* numero */
else v53,
fi,
/* lugar (ciudad, pais) */ if p(v54) OR p(v55) then '^c',v54,", "v55, fi,
/* fecha */ if p(v56) then v56, fi,
'%',
fi,
/* ===============================================================
* Campo 800 (CEPAL v23)
* Autor personal - Colecci¢n
* ===============================================================
*/
if p(v23) then
,(,
'a800%',
if v23^*:',' then '1' else '0' fi,
' ^a',v23^*,
replace(replace(v23,v23^*,''),s('^f',v23^f),''),
if v23^f>'' then
,if v23^f:' y ' then
ref(['ROLES']l(['ROLES']
mid(v23^f,1,instr(v23^f,' y ')-1)),
'^e'v2),
ref(['ROLES']l(['ROLES']
mid(v23^f,instr(v23^f,' y ')+3,1000)),
'^e'v2),
else
ref(['ROLES']l(['ROLES'] v23^f), '^e'v2),
fi,
fi,
'%',
,),
fi,
/* ===============================================================
* Campo 810 (CEPAL v24)
* Autor institucional - Colecci¢n
* ===============================================================
*/
if p(v24) then
,(,
'a810%',
if v24:'^b' AND l(['JURISD']v24^*) > 0
then '1',
else '2',
,fi,
' ^a',replace(v24,'^f','^e'),
'%',
,),
fi,
/* ===============================================================
* Campo 845 (CEPAL v62)
* Disponibilidad
*
* Ver listado con los valores presentes en el campo 62 (hay rarezas)
* ===============================================================
*/
if v62='P' OR v62='S' then
'a845% ^a',v62,'%',
fi,
/* ===============================================================
* Campo 859 (CEPAL v02, v03, v62, v120)
* Datos de cada ejemplar: inventario, volumen, ubicacion, estado,
* donaci¢n, disponibilidad.
*
* ¨ Ad¢nde van las ocurrencias adicionales de v3 ?
* ===============================================================
*/
if p(v02) then /* una ocurrencia de v859 por cada ejemplar */
(
'a859%',
' ',
'^a',v02^*, /* inventario */
if p(v02^a)
then '^c',v02^a, /* volumen */
fi,
if p(v02^b) OR v03[1]>''
then '^b',
if p(v02^b) then v02^b else v03[1], fi, /* ubicacion */
fi,
if p(v02^c)
then '^k',v02^c, /* estado */
fi,
if p(v02^d) OR v120[1]>''
then '^g',
if p(v02^d) then v02^d else v120[1] fi, /* donacion */
fi,
if v62[1]>'' then '^d',v62[1], fi, /* disponibilidad */
/* nuevos subcampos : l,m,n */
if v03:' ' AND l(['PREFCDU']mid(v3,1,instr(v3,' ')-1)) > 0
then '^l', mid(v3, 1, instr(v3,' ')-1),
'^m', mid(v3, instr(v3,' ')+1, instr(mid(v3,instr(v3,' ')+1,size(v3)),' ')-1)
'^n', mid(v3, instr(mid(v3,instr(v3,' ')+1,size(v3)),' ')+1, size(v3))
else if l(['DIGITOS']v3.1) > 0
then '^m', mid(v3, 1, instr(v3,' ')-1),
'^n', mid(v3,instr(v3,' ')+1,size(v3)),
else '^l',v3,
fi,fi,
'%',
),
fi,
/* ===============================================================
* Campo 959 (CEPAL v91, v97)
* Catalogador, fecha de catalogaci¢n.
*
* ¨Con qu‚ ocurrencia del v91 asociamos el v97? Con la ultima.
* ===============================================================
*/
if p(v91) OR p(v97) then
(
'a959% ',
'^e',v91, /* catalogador */
if p(v97) AND iocc=nocc(v91) then '^f',v97 fi, /* fecha de catalogaci¢n */
'%',
),
fi,
/* ===============================================================
* Campo 960 (Notas internas [ex-Marcas])
* ===============================================================
*/
if p(v102) then
,(,
'a960% ^i',v102,'%',
,),
fi,
/* ===============================================================
* Campo 900
* MFN al momento de la migraci¢n (link con el backup de CEPAL)
* ===============================================================
*/
'a900%',mfn(6),'%',
/*break,*/
/* ===============================================================
* Campo 901
* LINK a MONOGRAFIA (para ANALITICAS)
* ===============================================================
*/
if v6.1='a' OR p(v12) then
'a901%',
if l(['g:\ptec\binam\migra\binam']'ST='v3[1]'~M')=0
OR v3[1]:'NO DISPONIBLE' then '!MONOGRAFIA NO ENCONTRADA',
else
ref(['g:\ptec\binam\migra\binam']l(['g:\ptec\binam\migra\binam']'ST='v3[1]'~M'),mfn(6)),
fi,
'%',
fi,
/* ============================= THE END ============================= */
migracion marc cepal