Estimados, tengo una situación particular en la inscripción a carrera: En un periodo de inscripción abierto, cuando se inserta un registro nuevo, luego se recuperan los datos de pre inscripción, la aplicación genera el error del asunto cuando se registran los registros de requisitos cumplidos. Si no se registra nada en esa solapa, los datos se graban satisfactoriamente.
Versión: 2.6.2, la operación no está personalizada. El número de inscripción se genera manualmente.
Gracias
Hola Javier:
La persona ya existía en el sistema?
Algun otro dato…
No estoy pudiendo reproducir el error.
Que dato le cargas en requisitos? cumplido, fecha, exceptuado…
Emilio
emilio,
La persona no existe en el sistema. Los pasos para que no emita el error son:
- Se inserta en la operación inscripción a carrera
- Se recupera los datos de pre inscripcion
- No se registra nada en la solapa requisitos
- Se confirma
Resultado: guarda en todas las tablas, pero ningún registro en sga_req_cumplidos
Los pasos para que se reproduzca el error:
- Se inserta en la operación inscripción a carrera
- Se recupera los datos de pre inscripcion
- se registran los requisitos cumplidos / exeptuados en la solapa requisitos
- Se confirma
Resultado: error -3
Saludos
Javier, el error entonces lo da cuando intenta actualizar la información de los requisitos?
Exactamente. Si no se toca nada de la solapa de requisitos. No da error, pero no inserta registros alli tampoco.
Esta operación fue personalizada?
Hola Javier
te recupera la carrera?
o sea en la solapa de inscripcion a carreras te aparece la carrera que eligio el aspirante?
Emilio
Alejandro: La operación es la estandar de SIU
Emilio: Se recuperan todos los datos normalmente. Se guardan todos los datos normalmente, salvo cuando se modifica la dw de requisitos cumplidos. Allí genera el error. Si no se registran requisitos cumplidos, se guarda, pero no inserta en sga_req_cumplidos.
Gracias
Hola Javier
Podrás debuguear la ventana w_inscripcion_persona en el evento ue_insertar_datos_preinscripcion linea 789 en adelante.
Ahi hace el insert de la carrera y
Tab_1.tp[5].Event dynamic trigger ue_alta_carrera(s_wr_sel)
dispara el insert en la solapa de requisitos.
Habría que ver si los inserta o no.
Emilio
Emilio,
Tab_1.tp[5].Event dynamic trigger ue_alta_carrera(s_wr_sel) dispara el insert en la solapa de requisitos. Habría que ver si los inserta o no.No trae registros de la base de preinscripciones:
//otras carreras a las que se inscribe
// armo el select carreras_insc
ls_carreras_insc_sql = "SELECT carrera, sede FROM sga_carreras_insc WHERE id_preinscripcion = " + ident_preinsc[1]
// creo la sintaxis de la dw
ls_carreras_insc = SQLCA_PREINSC.SyntaxFromSQL(ls_carreras_insc_sql, '', ls_errores)
uo_ds_carreras_insc = Create using 'uo_ds'
uo_ds_carreras_insc.Create (ls_carreras_insc, ls_errores)
uo_ds_carreras_insc.SetTransObject(SQLCA_PREINSC)
li_cant_registros = uo_ds_carreras_insc.Retrieve()
// ********************************************************
// Insertar la carrera
// ********************************************************
IF li_cant_registros >0 Then
ds1 = Create uo_ds //DataStore
.....
li_cant_registros tiene valor cero (0)
En la tabla sga_carreras_insc no hay registros en la base de preinscripciones con ningún id_preinscripcion. Eso está bien? o debería haber registros?
Gracias.
Alejandro, tengo los screenshots de la salida de la librería que me enviaste. Servirán de algo? avisame y te los envío.
Gracias
Hola Javier
Esa parte se utiliza cuando una persona se inscribe a múltiples carreras.
El que interesa es el anterior de insertar carreras
// ********************************************************
// Insertar la carrera
// ********************************************************
IF NOT IsNull(carrera_insc) and Trim(carrera_insc) <> '' Then
ds1 = Create uo_ds //DataStore
esa parte toma la carrera desde sga_preinscripcion y debería hacer un insert en carreras y sus requisitos.
Emilio
Si Damian, enviamelos. Es de la dw de requisitos, no?
Alejandro, te adjunto las imágenes. No sé que pueda estar pasando.
Hice el debug del método indicado por Emilio, pero no encontré nada anormal. Aparentemente inserta los registros en sga_req_cumplidos junto con los demás datos de pre inscripción (que se muestran normalmente). Cuando presiono Confirmar es que ocurre el error.
Gracias.
Por alguna razón, ese registro que mostras está como DataModified! cuando debería estar como NewModified!
Como que lo está recuperando de la base.
Emilio
Damian esta correcto que las filas de la dw de requisitos esten con el estado Datamodied. Esto es porqeu el trigger de insert de la tabla de carrera aspira (ver procedure spi_carrera_aspira) genera los registros en la tabla de requisitos cumplidos. Es por ello que al grabar los requisitos, ya estan en la base, por lo que solo se debe hacer un Update y no Insert.
Fijate si podes mirar que requisitos se insertaron en la tabla antes de hacer el Update de la dw de requisitos, para ver si hay algun requisito que no existe en la base.
Hola Damian
Siguen en problemas con los requisitos de ingreso?
saludos
Si Guillermo, estoy preparando la base de datos para que Emilio la pueda copiar y probar.
Gracias, saludos
Guillermo, hoy probamos y funcionó perfecto. La verdad no sé que que habrá sido. Pero, lo bueno es que funcionó.
Gracias a todos por las respuestas