Dudas con la Migración de Folios

Hola, cómo están?

Estamos migrando a Guaraní 3.15 desde un sistema externo y nos encontramos con algunas dudas al migrar actas. Nuestro sistema externo maneja 250 folios por cada acta, es decir, se puede tener mismos nro de folio por cada acta. Al cargar el folio en la tabla de staging(mig) actas_examen_detalle, vemos que el folio se migra correctamente. Pero al insertar en la tabla final sga_actas_detalle, ocurre lo siguiente:

  • Probamos migrar nuestro valor de folio con el campo folio_fisico, pero nos dice que los valores no pueden ser duplicados.
  • También intentamos migrarlo con el campo folio, dejando folio_físico en NULL y nos inserta todo con el valor 1, sin darle importancia al valor real del folio.

Espero que se entienda el escenario.

Muchas gracias!
Saludos.

¿Como es este tema de 250 folios por acta? ¿Tienen actas hasta con 250 folios o es el libro el cual puede tener hasta 250 folios?

¿El dato del folio fisico lo tienen actualmente en cada acta?

Si registran por cada acta el folio fisico, los alumnos se registraran en el acta por cada folio fisico diferente registrado en cada acta y en sga_actas_folios deberian registrarse esos folios fisicos del acta.

¿Podrias enviar en una solicitud por el GDS el archivo de datos que llena la tabla ext.mig_actas_examen_detalle ?
Quisiera ver en base a eso los controles que hay (por ejemplo de que no existan valores duplicado de folio fisico).
Para un mismo libro de actas, no podria haber un mismo nro de folio fisico asignado a dos actas diferentes.

Hola! gracias por la respuesta:

¿Como es este tema de 250 folios por acta? ¿Tienen actas hasta con 250 folios o es el libro el cual puede tener hasta 250 folios?
El libro es el que tiene 250 folios. A su vez, el folio tiene 55 renglones.

¿El dato del folio fisico lo tienen actualmente en cada acta?
Cada acta tiene un conjunto de libros y folios. Pero no sabemos a qué se refieren en Guaraní con el concepto de folio_físico y folio que está en la DB.

¿Podrias enviar en una solicitud por el GDS el archivo de datos que llena la tabla ext.mig_actas_examen_detalle ?
Sí, te lo enviamos.

saludos!

El libro es el que tiene 250 folios. A su vez, el folio tiene 55 renglones.
De acuerdo a esto entonces en el campo [b]renglones_folio[/b] de la tabla [b]ext.mig_actas_examen[/b] deben definir el valor [b]55[/b]. Esto hace que al migrar las actas, vaya creando cada folio con 55 alumnos cada uno. Respecto a que por cada libro no se supere la cantidad de 250 folios, eso lo tendran que tener en cuenta al momento de definir cada acta en que libro va. Como es migración de actas existentes entonces se supone que ese dato lo tienen y esta bien sin superar los 250 folios de actas por libro.
Cada acta tiene un conjunto de libros y folios. Pero no sabemos a qué se refieren en Guaraní con el concepto de folio_físico y folio que está en la
¿Un acta tiene un conjunto de libros? ¿Te referis al acta y sus rectificativas que podrian estar en otros libros diferentes al libro del acta original?

O un acta que tiene 5 folios podría estar en diferentes libros, es decir los 2 primeros folios en el libro A, el folio 3 en el libro B y los folios 4 y 5 en el libro C ?

Folio = Es el nro correlativo de folio dentro de un acta. Si un acta X tiene alumnos en 3 folios, tendra los folios 1, 2 y 3.
Folio Físico = Es el número de folio dentro de un libro de actas. Del ejemplo anterior, el folio 1 del Acta X podria ser el folio físico 20 (folio nro 20 dentro del libro), el folio 2 del acta el folio físico 21 y el folio 3 del acta el folio físico 22 del libro.

El dato de folio y renglon no es un dato obligatorio en la migracion, si este dato no va entonces los alumnos dentro del acta se ubicarán en orden por apellido y nombre, que en este caso al llegar a los 55 alumnos, se incrementará en uno el dato del folio y comenzará nuevamente hasta los 55 alumnos y completar un nuevo folio y asi sucesivamente hasta terminar el acta.
El folio físico tampoco es dato obligatorio, pero si viene entonces se creará un folio por cada folio físico del acta.
Del ejemplo anterior, seria algo asi:
Acta X - Alumno 1 - Folio Fisico 20
Acta X - Alumno 2 - Folio Fisico 20

Acta X - Alumno 55 - Folio Fisico 20
Acta X - Alumno 56- Folio Fisico 21

Acta X - Alumno 110- Folio Fisico 21
Acta X - Alumno 111- Folio Fisico 22

Acta X - Alumno 120- Folio Fisico 22

Los alumnos 1 a 55 quedaran en el folio 1 del acta, los alumnos 56 a 110 en el folio 2 del acta y los alumnos 111 al 120 en el folio 3 del acta.

Hola,
Espero poder ayudar, ya que justamente estoy con ese tema.

Federico, Alejandro te explico muy bien.

Te paso como quedaron los script y se migraron bien los datos.

–ACTAS DE EXAMEN mig_actas_examen.csv
–PARA ARMAR LA CABECERA DEL ARCHIVO
SELECT ‘nro_acta|’+
‘nro_libro|’+
‘nro_tomo|’+
‘renglones_folio|’+
‘anio_academico|’+
‘turno_examen_nombre|’+
‘mesa_examen_nombre|’+
‘actividad_codigo|’+
‘fecha|’+
‘observaciones|’+
‘escala_nota|’+
‘estado|’
from aniolec where anio=1979;

select distinct
‘EM-’+rtrim(anio)+‘-’+rtrim(libro)+‘-’+rtrim(folio) +‘|’ --nro_acta
+‘EM-’+rtrim(anio)+‘-’+Rtrim(libro)+‘|’ --nro_libro
+Rtrim(libro)+‘|’ --nro_tomo
+‘33’+‘|’ --renglones_folio –aqui tendrias que poner 55
+rtrim(anio)+‘|’
+RTRIM(case insmat_event when ‘V’ THEN ‘TE’ when ‘C’ THEN ‘TE’ else ‘TN’ end)+‘-’

  • ltrim(anio)+‘-’+lTRIM(STR(MONTH(ex_fecha)))+‘-’+lTRIM(STR(DAY(ex_fecha))) +‘|’ --turno_examen_nombre
    +ltrim(str(carrera.carrera_id))+‘-’+RTRIM(case materia_id when ‘FN1’ THEN ‘FNI’ else materia_id end)+‘-’+rtrim(libro)+rtrim(folio)+‘|’ --nombre MESA DE EXAMEN
    +‘15_’+RTRIM(case materia_id when ‘FN1’ THEN ‘FNI’ else materia_id end)+‘|’ --actividad codigo
    +rtrim(cast(day(ex_fecha) as char)) + ‘/’+rtrim(cast (month(ex_fecha)as char))+‘/’+rtrim(cast (year(ex_fecha)as char))+‘|’ --|fecha
    +‘’+‘|’ --|observaciones
    +‘108’+‘|’ --escala de notas
    +‘C’+‘|’ --observaciones
    from insmat,carrera
    where insmat_event in (‘L’,‘S’,‘T’,‘X’,‘V’,‘C’)
    and insmat.legajo=carrera.legajo
    and insmat.carrera_id=carrera.carrera_id
    and carrera.carrera_id=95

–PARA ARMAR LA CABECERA DEL ARCHIVO
SELECT ‘nro_acta|’+
‘nro_libro|’+
‘tipo_documento|’+
‘nro_documento|’+
‘propuesta|’+
‘plan_version|’+
‘tipo_inscripcion|’+
‘fecha|’+
‘folio_fisico|’+
‘folio|’+
‘renglon|’+
‘nota|’+
‘resultado|’+
‘observaciones|’
from aniolec where anio=1979;

–REGULARES APROBADOS
select distinct
‘EM-’+rtrim(anio)+‘-’+rtrim(libro)+‘-’+rtrim(folio) +‘|’ --nro_acta
+‘EM-’+rtrim(anio)+‘-’+Rtrim(libro)+‘|’ --nro_libro
+‘0’+‘|’ --tipo_documento|
+rtrim(doc)+‘|’–nro_documento

+‘5’+‘|’ --propuesta
+‘4’+‘|’ --plan version actual
+‘3’+‘|’ – tipo_inscripcion
+rtrim(cast(day(ex_fecha) as char)) + ‘/’+rtrim(cast (month(ex_fecha)as char))+‘/’+rtrim(cast (year(ex_fecha)as char))+‘|’ --|fecha
+rtrim(folio_fisico)+‘|’ --folio_fisico --AQUI SI VA EL FOLIO FISICO QUE VOS TENES
+‘|’ --folio --DEJALO ASI, SIN VALOR. EL SISTEMA VA A CALCULAR AUTOMATICAMENTE,COMO TE DIJO ALEJANDRO
+‘|’ --renglon
+rtrim(nota)+‘|’ --nota
+‘A’+‘|’ --resultado
+‘|’ --observaciones
from insmat,carrera,persona
where insmat_event in (‘X’,‘C’)
and insmat.legajo=carrera.legajo
and insmat.carrera_id=carrera.carrera_id
and carrera.carrera_id=95
and persona.legajo=carrera.legajo
and nota >3
–AND REVISTA=‘A’

Espero que sirva.
Saludos,
Carla.

Gracias Carla por tu respuesta.

Hola !! muchas gracias a ambos! Lo pudimos probar y funcionó.

  • folio en NULL
  • y folio_físico con valor

Saludos!
Federico.