Migracion.-Externos-Matricula - alumnos -periodo_insc null

Estoy migrando de sistemas externos
Version 3.15.1
Modulo Matriculas
archivo mig_alumons.csv

Quiero agregar un alumno de la licenciatura en Seguridad Publica
Adjunto LSP-2012,jpg donde se ven las 2 versiones del plan.
La que va es la version 02.

Luego la busco en BD, (Adjunto LSP-2012-PV.jpg), del que obtengo que el plan_version es 7

Luego en el archivo mig_alumnos.csv tanto en plan_version_ingreso como en plan_version_actual coloco el 7

Pero al momento de migrar, me sale el siguiente error


2018/11/06 14:30:33 - migracion_alumnos - Entrada de comienzo [alumnos]
2018/11/06 14:30:33 - alumnos - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Ocurrió un error al ejecutar esta entrada de trabajo: 
2018/11/06 14:30:33 - alumnos - Couldn't execute SQL: SELECT * FROM ext.mig_alumnos()
2018/11/06 14:30:33 - alumnos - 
2018/11/06 14:30:33 - alumnos - ERROR: el valor null para la columna «periodo_insc» viola la restricción not null
  Detail: La fila que falla contiene (5142, 5157, null, 2015, 1, 7, P, 1, 2016-02-10, 2016-02-10 00:00:00-03, null, null, null, N, null, 2, null, 83288, null, null, 0).
  Where: sentencia SQL: «INSERT INTO sga_propuestas_aspira (propuesta_aspira, persona,periodo_insc,anio_academico,propuesta,plan_version,modalidad,ubicacion,fecha_inscripcion,fecha_alta,situacion_asp)		
2018/11/06 14:30:33 - alumnos - 		     VALUES(cursor1.propuesta_aspira, _persona,_periodo_insc,cursor1.anio_academico,cursor1.propuesta,
2018/11/06 14:30:33 - alumnos - 			        cursor1.plan_version_ingreso,
2018/11/06 14:30:33 - alumnos - 					cursor1.modalidad,cursor1.ubicacion,cursor1.fecha_inscripcion,cursor1.fecha_inscripcion,
2018/11/06 14:30:33 - alumnos - 		            CASE cursor1.estado_inscripcion
2018/11/06 14:30:33 - alumnos - 		              WHEN 'P' THEN 1  
2018/11/06 14:30:33 - alumnos - 		              WHEN 'A' THEN 2  
2018/11/06 14:30:33 - alumnos - 		              WHEN 'R' THEN 3  
2018/11/06 14:30:33 - alumnos - 		            END
2018/11/06 14:30:33 - alumnos - 		            )»
función PL/pgSQL ext.mig_alumnos() en la línea 53 en sentencia SQL
2018/11/06 14:30:33 - migracion_alumnos - Finalizó la entrada de trabajo [alumnos] (resultado=[false])

Revisando en la funcion mig_alumnos()
veo la siguiente consulta


		SELECT f.periodo_insc 
		  INTO _periodo_insc 
		  FROM sga_periodos_inscripcion_propuesta as p, 
		       sga_periodos_inscripcion_fechas as f,
		       sga_periodos_inscripcion_aplanado as pia
		WHERE
		       p.anio_academico      = cursor1.anio_academico AND
		       p.periodo_insc_tipo IN (1,3) AND  
		       f.periodo_inscripcion = p.periodo_inscripcion AND
		       pia.periodo_insc      = f.periodo_insc AND
		       pia.plan_version      = cursor1.plan_version_ingreso
		       LIMIT 1;

Modificando la consulta con los datos del archivo, no me trae resultados


		SELECT f.periodo_insc 
--		  INTO _periodo_insc 
		  FROM sga_periodos_inscripcion_propuesta as p, 
		       sga_periodos_inscripcion_fechas as f,
		       sga_periodos_inscripcion_aplanado as pia
		WHERE
		       p.anio_academico      = 2015 AND
		       p.periodo_insc_tipo IN (1,3) AND  
		       f.periodo_inscripcion = p.periodo_inscripcion AND
		       pia.periodo_insc      = f.periodo_insc AND
		       pia.plan_version      = 7
		       LIMIT 1;

Que mas debería revisar?


LSP-2012.jpg

LSP-2012.png

LSP-2012-PV.jpg

LSP-2012-PV.png

Según el mensaje, no hay un período de inscripción a propuesta para el año 2015 y esa versión de plan de estudios.
Estos períodos de inscripción se debieron registrar junto con la migración de los años académicos en el módulo anterior (Calendario Académico) en el script 1. (01_migrar_anios_acad_per_insc.sql)
En ese script de migracion, por cada año académico se genera un perìodo de inscripcion y se asocian todas las versiones de planes de estudios activas (vigentes o no vigentes).
¿Podes ver que recupera esta consulta?

SELECT *  FROM vw_periodos_insc_propuesta WHERE anio_academico = 2015

Y si hay versiones de planes de estudios asociados a esos períodos de inscripcion:

SELECT * FROM sga_periodos_inscripcion_aplanado WHERE periodo_insc IN (SELECT periodo_insc  FROM vw_periodos_insc_propuesta WHERE anio_academico = 2015);

Respecto al periodo de inscripción me basé en los prerequisitos del modulo que dice
Períodos de inscripción Este dato lo creará en forma automática el proceso de migración en el caso de no existir creado en la base de datos

La primer consulta me devuelve:
48;“E”;“2014-10-01 00:00:00-03”;“2015-08-31 00:00:00-03”;“”;“S”;0;51;“2015 - IUGNA”;“2015 - Escuela Superior de Gendarmería Nacional Gral. de Brig. D. M”;;4;2015;“2018-08-22”;3;“Todos”;“Inscripción, Reinscripción y Pre-inscripción a Propuestas”

La segunda me devuelve 35 registros, pero ninguno para el plan_version = 7

De todas maneras voy a revisar de migrar el periodo de inscripción.

Gracias

Hola Alejandro
Hice el ejercicio con los scripts nuevos de migración 3.16.0, y me sigue dando el mismo problema.

Revisando el script de calendario académico que me indicas veo que los Períodos de inscripcion a cada año academico se hacen en aquellos años academicos que se migren y no existan en g3.
En esta oportunidad se da el caso que el año academico 2015 ya existe y eso es porque una unidad academica venia trabajando en g3.
Los datos que estamos migrando son de otra unidad academica, con sus propios planes y propuestas. Que corresponden al mismo año, por eso no hace las diferentes inserciones para años nuevos.

Que deberia hacer en este caso?
Teniendo en cuenta, que luego vamos a migrar datos de una tercer unidad academica?

Debería hacer las inserciones de forma manual de las tablas? (que son las que estan en el script)

  • sga_anios_academicos_fechas
  • sga_anios_academicos_ra
  • sga_periodos_inscripcion
  • sga_periodos_inscripcion_propuesta
  • sga_per_insc_modalidad
  • sga_per_insc_ubicacion

Gracias

Entonces el problema es que esas versiones de planes de estudios que estan migrando no estan registradas para los períodos de inscripcion a propuesta de los años académicos que ya existen en la base.
¿Ese año 2015 tiene creado un período de inscripcion a propuesta?
Si es asi, entonces fijate de completar la tabla sga_periodos_inscripcion_aplanado con las versiones de planes de estudio faltantes para el período de inscripcion a propuesta del año academico 2015 (y los que falten).
Para el año academico 2015 correr lo siguiente:

INSERT INTO sga_periodos_inscripcion_aplanado (periodo_insc, plan_version)
SELECT pip.periodo_insc, pv.plan_version
   FROM sga_planes_versiones as pv,vw_periodos_insc_propuesta as pip
WHERE pv.estado IN ('A','V')
 AND pip.anio_academico = 2015
EXCEPT
SELECT periodo_insc, plan_version FROM sga_periodos_inscripcion_aplanado


Entendido y solucionado

Gracias