Estimados, al querer generar los datos me sale el error de que no recupera la duracion en años, estamos en la version 2.9.5 adjunto los datos de la tabla sga_planes y sga_titulos. Gracias
error_duracion_carrera.zip (12.9 KB)
Estimados, al querer generar los datos me sale el error de que no recupera la duracion en años, estamos en la version 2.9.5 adjunto los datos de la tabla sga_planes y sga_titulos. Gracias
error_duracion_carrera.zip (12.9 KB)
Por favor si me podrian dar una respuesta, todavia no hemos podido avanzar …gracias
Hola Lorena, podes hacer un debug en la ventana w_informacion_academica_becas, en la funcion wf_duracion_plan.
Fijate cuando intente consultar la duración de ese plan de estudios, si da error la query o porque devuelve el valor 0 o nulo para ese plan.
Hola Alejandro, si lo habia hecho me olvide de comentarlo y me devuelve 0 el resultado de esa función pero no logro saber el motivo…
La funcion devuelve 0, pero la query que esta dentro de esa funcion? Pudiste verificar si es que la query da algun error (por ejemplo que no tiene permisos de lectura la tabla sga_planes) o que el plan que se consulta es otro y tiene definido el valor 0 en ese campo?
Buen dia, envio capturas del debug y como esta la informacion en sga_planes
carrera 088.zip (57.1 KB)
Lorena, estas consultando en la misma base?
La variable is_unidad_academica llega con el valor UACO?
¿Te fijaste si sale con error por SQLCA.SQLCode = -1 ?
Alejandro, todas las respuestas son Si, te envio captura con los valores de las variables que mencionas
Entonces por favor fajate la variable global transaction SQLCA, y de esta el mensaje, del porque falla, quizas no tenes permisos de lectura sobre esa tabla.
O alli adentro pone el siguiente mensaje:
Messagebox('Error al consultar la tabla sga_planes', 'Código: ' + String(SQLCA.SQLDBcode) + ' - ' + SQLCA.SQLErrText, Exclamation!)
No se si hice bien, reemplace return duracion_años por el mensaje
Messagebox(‘Error al consultar la tabla sga_planes’, 'Código: ’ + String(SQLCA.SQLDBcode) + ’ - ’ + SQLCA.SQLErrText, Exclamation!)
el resultado lo adjunto
Podes verificar si el campo “duracion_numerica” de la tabla “sga_planes” tiene el tipo de datos decimal(5,2) ?
¿Que datos devuelve la siguiente consulta?
SELECT coltype, collength
FROM syscolumns WHERE colname = 'duracion_numerica'
AND tabid in (SELECT tabid FROM systables WHERE tabname = 'sga_planes')
COLTYPE
Code indicating the data type of the column:
0 = CHAR
1 = SMALLINT
2 = INTEGER
3 = FLOAT
4 = SMALLFLOAT
5 = DECIMAL
6 = SERIAL 1
7 = DATE
8 = MONEY
9 = NULL
10 = DATETIME
11 = BYTE
12 = TEXT
13 = VARCHAR
14 = INTERVAL
15 = NCHAR
16 = NVARCHAR
17 = INT8
18 = SERIAL8 1
19 = SET
20 = MULTISET
21 = LIST
22 = ROW (unnamed)
23 = COLLECTION
40 = LVARCHAR fixed-length opaque types 2
41 = BLOB, BOOLEAN, CLOB variable-length opaque types 2
43 = LVARCHAR (client-side only)
45 = BOOLEAN
52 = BIGINT
53 = BIGSERIAL 1
2061 = IDSSECURITYLABEL 2, 3
4118 = ROW (named)
Hola, si el campo duracion_numerica tiene el formato decimal (5,2)
La consulta devuelve lo siguiente:
5 1282
Lorena, no puedo reproducir ese error. Probe con un plan definiendo 5.5 en duración numerica, y al hacer el Integer(5.5) devuelve 6. Pero no logro que de ese error que mencionas.
El código de esa funcion es como este? ¿La variable “duracion” esta definida como decimal?
Decimal duracion
Integer duracion_anios
duracion = 0
SetNull(duracion_anios)
SELECT duracion_numerica INTO :duracion
FROM dba.sga_planes
WHERE unidad_academica = :is_unidad_academica
and carrera = :carrera
and plan = :plan
USING SQLCA;
IF SQLCA.SQLCode = -1 then
MessageBox('Error al recuperar duraciòn teórica','Carrera: ' + carrera + ' - Plan: ' + plan + char(13) + &
'Error: ' + String(SQLCA.SQLDBcode) + ' - ' + SQLCA.SQLErrText,Information!)
Return duracion_anios
END IF
// Retorno en integer
duracion_anios = Integer(duracion)
Return duracion_anios
6
Si esta igual la funcion…
¿Son muchos registros en esa tabla de planes de estudio?
Porque podes editarlo y definir el valor que corresponda a cada plan. (No es la solucion al error, pero para salir del paso si necesitan informar!)
Ah dale buenisimo! me fijo si puedo hacerlo sino ya me estare contactando…Gracias!
En que tabla deberia editar ? en int_cone_planes? porque me dice que no existe
No, lo haces sobre el archivo planes_estudio.txt que se genera desde esa operación.
Si lo editas veras algo como lo siguiente:
895|349|10296|34|5
895|450|10196|37|5
895|450|2|32|5
895|1310|104|8|3
El último dato de cada fila (plan de estudios) es el que corresponde a la duración en años de la carrera.
Ah pense que con ese problema no se llegaban a generar los txt, creo que tengo un problema con la ventana porque no esta el boton siguiente, nosotros descargamos de colab los componentes pero quizas no sean los correctos, por favor me podrias enviar el enlace con la ultima version ? Gracias