Error en nueva Regla

Buenos días, agregamos una nueva regla para una UA y al momento de ejecutar la misma nos tira el error:

“No se encuentra el parámetro de contexto: elemento.”

La regla se maneja con 2 parámetros de contexto: Alumno y Elemento por lo tanto en la misma le agregamos el punto de control 3. Al momento de ejecutar la regla mediante la operación, ésta valida de manera perfecta.
La regla debe verificar que el alumno posea un promedio mayo a 6.5 para poder inscribirse en una materia. El alumno se pudo inscribir pero al momento de acceder a
Cursadas » Actas » Generar Actas de Promocionales Al seleccionar un estudiante nos muestra el error

“No se encuentra el parámetro de contexto: elemento.”

Voy a php, agrego un echo y me muestra que los dos parámetros los estoy recuperando sin problemas y devuelvo True a la regla para que siga con la ejecución, no termino de entender el porque del error que genera el Guarani.

No comprendo qué parte de la regla es la que genera el error.
Les paso el archivo de log.

Estamos en la versión 3.19.1

Saludos


sistema.rar (3.27 KB)

Hola Javier,

Cuál es el resultado de ejecutar la siguiente consulta SQL?

SELECT		sga_reglas.regla,
			sga_reglas_param_contexto.parametro,
			par_puntos_control_parametros.tipo_de_dato,
			par_puntos_control_parametros.descripcion
FROM		sga_reglas,
			sga_reglas_param_contexto,
			par_puntos_control_parametros
WHERE		sga_reglas.regla = '1008' AND
			sga_reglas_param_contexto.regla = sga_reglas.regla AND
			par_puntos_control_parametros.parametro = sga_reglas_param_contexto.parametro;

Saludos, Florencia.

Flor, gracias por la pronta respuesta, te paso los datos.


reglas.png

reglas.png

Podes adjuntar los datos para la creacion del requisito y esa regla?
El requisito lo tenes que haber creado en el punto de control 3 (Alumno - Actividad) que se usa en las operaciones del módulo de cursadas:
Este punto de control recibe: alumno , elemento, fecha, plan_version
Podes tomar como ejemplo el requisito nro 65.

INSERT INTO sga_requisitos_x_punto_control (pto_control, requisito, orden) VALUES (3, 1008, 99); 

Luego agregarlo en la accion Cursadas:

INSERT INTO sga_requisitos_validos (accion, requisito) VALUES (1, 1008); -- Cursadas

Luego, a la regla que implementa ese requisito, supongamos que la regla tambien tiene el id 1008, debes registrar estos datos de los parametros del punto de control:

INSERT INTO sga_reglas_param_contexto (regla, parametro) VALUES ( 1008,'alumno');
INSERT INTO sga_reglas_param_contexto (regla, parametro) VALUES ( 1008,'elemento');
INSERT INTO sga_reglas_param_contexto (regla, parametro) VALUES ( 1008,'plan_version');
INSERT INTO sga_reglas_param_contexto (regla, parametro) VALUES ( 1008,'fecha');

Seguramente agregaste el requisito en otro punto de control que no espera recibir el dato “elemento”

Recordá que podes probar las reglas desde el editor de Toba

2

Alejandro, gracias por tu respuesta. Te adjunto los datos requeridos, lo raro es que en la tabla sga_requisitos_x_punto_control tengo que el punto de control asociado es el 1. En las capturas que te mande podrás ver que el relacionado es el 3, por lo que no entiendo porqué aparece el 1.

Como le había comentado a Florencia, cuando yo ejecutaba el control de Reglas desde el toba editor, este funcionaba de manera correcta.

Ahora voy a hacer un update en la tabla mencionada cambiando el 1 por el 3.


archivos.rar (57.9 KB)

Sacalo del punto de control 1, por eso te da error del parámetro “elemento”, porque este parametro no existe en ese punto de control nro 1 Los parametros de este punto son persona y operacion.

Agrega el requisito en el punto de control 3 como te indique en el mensaje anterior, ademas de registrar el parámetro fecha y plan_version. Si es que se valide este requisito en cualquier inscripción a actividad.
¿Que sucede con las actividades de primer año para los ingresantes, tienen controlado que este requisito no se evalúe? O solo se evalúa cuando el alumno al menos tenga una actividad aprobada; sea por promoción, examen final o equivalencia?

Ya hicimos el cambio del punto de control. En cuanto a lo que planteas sobre los alumnos de primer año, estos no deberían poder inscribirse dado que es una materia del último año.

La regla la dimos de alta mediante la operación Administrar Requisitos, y como te mandé en las capturas estaba asociado el punto de control 3, no entiendo porque se registro el 1. Las reglas se deberían dar de alta desde los INSERT en la base de datos o debería ser lo mismo?

Saludos

Ya hicimos el cambio del punto de control. En cuanto a lo que planteas sobre los alumnos de primer año, estos no deberían poder inscribirse dado que es una materia del último año.
El problema es que al estar asociado este requisito a un punto de control, este requisito se va a evaluar para todas las materias en las que se inscriban los alumnos; a menos que dentro de la regla que implementa este requisitos estés evaluando si la actividad es de 1er año no evaluar y que salga con resultado satisfactorio. Porque de no hace esta diferenciación no va a permitir ni inscribir a la 1er materia a un ingresante.

Si el requisito lo definicas como una correlativa solo sobre esa/s materia/s del ultimo año, entonces se va a controlar dentro de las correlativas de esas materias y asi no habrá problemas, pero NO debes configurarlo en ningun punto de control.

La regla la dimos de alta mediante la operación Administrar Requisitos, y como te mandé en las capturas estaba asociado el punto de control 3, no entiendo porque se registro el 1. Las reglas se deberían dar de alta desde los INSERT en la base de datos o debería ser lo mismo?
Debería ser lo mismo.

2

Al recibir el elemento verificamos que sea el que queremos controlar, de otra manera sale por TRUE.

Gracias

Solucionaron este tema?

Así es Alejandro, Gracias

Reabro el planteo, ya que hemos inactivado la regla para la operación “Generar Actas de Promociones” y el error ha vuelto a aparecer.
En el log nos aparece

[DEBUG][guarani] SQL con perfil de datos: select get_regla_mensaje(‘1008’, ‘’) as mensaje
[DEBUG][guarani] SQL con perfil de datos: SELECT sga_reglas.regla,
sga_reglas_param_contexto.parametro,
par_puntos_control_parametros.tipo_de_dato,
par_puntos_control_parametros.descripcion
FROM sga_reglas,
sga_reglas_param_contexto,
par_puntos_control_parametros
WHERE sga_reglas.regla = ‘1008’
AND sga_reglas_param_contexto.regla = sga_reglas.regla
AND par_puntos_control_parametros.parametro = sga_reglas_param_contexto.parametro
;
[ERROR][guarani] No se encuentra el par.metro de contexto: elemento.
[ERROR][guarani] No se encuentra el par.metro de contexto: elemento.
[ERROR][guarani] No se encuentra el par.metro de contexto: elemento.
[ERROR][guarani] No se encuentra el par.metro de contexto: elemento.
[ERROR][toba] guarani_error: No se encuentra el par.metro de contexto: elemento.
[TRAZA]

    regla_nucleo->set_parametros_contexto

Archivo: /usr/local/proyectos/guarani/php/nucleo/_lib/reglas/regla_nucleo.php, lInea 117

lo que no entendemos es porque si la regla está inactiva para la operación, es controlada
Esperamos sus comentarios

Hola Pablo,

Lo desactivaron desde “REQUISITOS » CONFIGURAR REQUISITOS POR OPERACIÓN”? Pueden adjuntar una captura?
Quizás siga estando en los dos puntos de control (1 y 3)?

SELECT * FROM sga_requisitos_x_punto_control WHERE requisito IN (select requisito from sga_requisitos where regla = 1008);

¿Es un requisito que crearon Uds?
¿Que parametros necesita la regla de ese requisito? Porque de esto depende en que punto de control asocian el requisito.

Saludos, Florencia.
2

Hola Florencia

vamos por partes

lo desactivamos desde “Configurar requisitos por operación”, (adjunto imagen imagen1)
El select que hice correr devuelve lo siguiente (adjunto imagen imagen2)
Creamos nosotros el requisitos, los parámetros son alumno, actividad
Saludos


imagen1.png

imagen1.png

imagen2.png

imagen2.png

La regla debe verificar que el alumno posea un promedio mayo a 6.5 para poder inscribirse en una materia. El alumno se pudo inscribir pero al momento de acceder a Cursadas » Actas » Generar Actas de Promocionales Al seleccionar un estudiante nos muestra el error

“No se encuentra el parámetro de contexto: elemento.”


Este error lo da cuando agregan un alumno al acta de promoción desde la opción “Otros Alumnos”, es decir alumnos que no están inscriptos en la comisión?

Pablo,

Nos envían los resultados de ejecutar las siguientes consultas SQL sobre la base de datos de negocio de Guaraní?

SELECT * FROM sga_reglas WHERE regla > 1000;
SELECT * FROM sga_reglas_parametros WHERE regla > 1000;
SELECT * FROM sga_reglas_param_contexto WHERE regla > 1000;
SELECT * FROM sga_requisitos WHERE requisito > 1000;
SELECT * FROM sga_requisitos_validos WHERE requisito > 1000;
SELECT * FROM sga_requisitos_x_punto_control WHERE requisito > 1000;

Saludos, Florencia.

Hola Alejandro,

es así, nos da error al querer incorporar al acta alumnos desde la opción “Otros Alumnos”

Hola Florencia

la consulta
SELECT * FROM sga_reglas_parametros WHERE regla > 1000;

me devuelve vacío
el resto te adjunto los resultados en un zip, los nombres de los archivos se relacionan con las tablas consultadas.


consultasql.zip (3.7 KB)

Pablo,

Parece ser correcta la configuración.
Pueden enviar los logs completos y no sólo la porción donde está el mensaje de error?
Además pueden ejecutar los comandos “svn info” y “svn status” sobre la carpeta de la instalación y adjuntar el resultado?

Saludos, Florencia.

Pablo, la regla es la nro 1008 (UNT - Verifica Promedio PPA - Plan2008 - ARQ | Que el alumno tenga un promedio >= a 6.50).
Esto lo configuraron en el punto de control 3 que recibe el dato de la actividad (elemento) porque necesitan controlar solo a algunas actividades, no?
¿Por algún motivo no no configuraron este requisito como una correlativa a esas actividades?