[SOLUCIONADO] Error en 3W

Buenas, les hago la siguiente consulta, estamos en la etapa final de pruebas con una UA y al ingresar al siguiente punto del menú

Trámites–>Solicitud de Certificados la página nos muestra el siguiente error (ver adjunto).

Claramente nos está diciendo que nos falta una rutina en la DB, pero no realizamos ningún cambio o personalización que borre dicha rutina.

Nos podrían dar una mano con ese tema. Estamos utilizando G2.9.4 y la última versión para 3W.

Muchas gracias!


Capture.PNG

Capture.PNG_thumb.png

Ese error es que no esta encontrando el procedure.
El procedure tiene 6 parámetros, dodne el ultimo recibe el valor S o N, pero tiene un default con S. Puede ser que la version de informix del cliente o de ese ODBC no soporte este caso de parametros con valor default.

Fijate de correr lo siguiente desde el sqleditor o dbacces y ver si da el mismo error:

execute procedure ctr_ctrlsADisparar('ODONT', 'agcert01', '24', '3', '2', 'S');  

– Se agrega el ultimo parametro.

y asi que es como se esta ejecutando actualmente segun el mensaje de error:

execute procedure ctr_ctrlsADisparar('ODONT', 'agcert01', '24', '3', '2');

El stored procedure debería existir porque sino daria error en cualquier operación donde se esten corriendo controles, como ser en las inscripciones a cursadas y examenes:
Por las dudas fijate si existe ese procedure:

Select * from sysprocedures where procname = 'ctr_ctrlsADisparar';

Alejandro, gracias por tu pronta respuesta. Efectivamente el problema es como vos lo mencionas, el procedure existe y si ejecuto el mismo con los 6 parámetros me devuelve información. Si lo ejecuto con 5 devuelve error. Tenemos el informix en Linux.

La consulta ahora sería, qué debo hacer o cómo debo modificar el SP para salvar esto?

Muchas gracias!

Este problema no lo tuvieron en la inscripción a examen o inscripción a cursadas? Porque alli se esta ejecutando este control tambien.
Lo mismo desde la interfaz de Gestion.

¿Cambiaron algo en el cliente de informix o donde esta instalado el Guarani 3w?

Quiero ver si es problema de la version del cliente informix que no soporta este tema de parametros con valor default en los procedures o es un problema particular de esa operacion. Lo raro que este codigo es unico para todas las operaciones…

Proba modificar lo siguiente. Archivo \src\siu\modelo\datos\db\sistema.php
Reemplazar:
function controles_activos_punto($parametros)
{
$sql = "execute procedure ctr_ctrlsADisparar({$parametros[‘_ua’]}, ".
“{$parametros[‘operacion’]},”.
“{$parametros[‘evento’]},”.
“{$parametros[‘_interfaz’]},”.
“{$parametros[‘punto_control’]})”;
$datos = kernel::db()->consultar($sql, db::FETCH_NUM);
return $datos;
}
Por:
function controles_activos_punto($parametros)
{
$sql = "execute procedure ctr_ctrlsADisparar({$parametros[‘_ua’]}, ".
“{$parametros[‘operacion’]},”.
“{$parametros[‘evento’]},”.
“{$parametros[‘_interfaz’]},”.
"{$parametros[‘punto_control’]},".
“‘S’)”;

$datos = kernel::db()->consultar($sql, db::FETCH_NUM);
return $datos;
}

Alejandro, el problema es que todavía no hicimos inscripciones ya que estamos capacitando al personal y surgió este tema, así que no sabría decirte bien.

Pruebo y te aviso.

Gracias!!

Hola

Me gustaria verificar que el procedure tiene un valor default para el ultimo parametro. Para eso seria necesario ejecutar el comando: dbschema -d nombre_base nombrebase.sql

luego editar el archivo nombrebase.sql y en la creacion del procedure ctr_ctrlsADisparar, ver si los parametros tiene valor default.

Si esta creado con valor default, tenemos que seguir buscando donde esta el problema

Si no esta creado con valor default, ese seria el problema.

saludos
Ignacio

Ignacio, esto es lo que nos aparece con el dbschema.

pSoloActivos LIKE sga_conf_controles.activo

No debería ser tipo

char(1) DEFAULT ‘S’

Espero tus comentarios.

Muchas gracias!!


ctr_ctrlsADisparar.txt (3.72 KB)

Fijate de agregarle el default y volverlo a crear:

– Creating procedure
CREATE PROCEDURE ctr_ctrlsADisparar(
pUnidadAcademica LIKE sga_conf_controles.unidad_academica,
pOperacion LIKE sga_conf_controles.operacion,
pEvento LIKE sga_conf_controles.evento,
pInterfaz LIKE sga_conf_controles.interfaz,
pPuntoControl LIKE sga_conf_controles.punto_de_control,
pSoloActivos LIKE sga_conf_controles.activo DEFAULT ‘S’)

RETURNING

Alejandro / Ignacio, se cambio el SP como nos comentaron y funciona de manera correcta.

Muchas gracias por la asistencia y por favor tengan en cuenta el cambio para las próximas versiones.

Saludos

Javier, ese procedure se creo en la version 1.10.0 y solo tuvo un cambio en la version 2.8.0 pero que no tiene que ver con ese parametro. Siempre estuvo definido asi con el default.
¿Es la 1era vez que usan la interfaz de autogestion de alumnos?

Alejandro, es la primera vez que la utilizamos contra una base instalada en Linux. En otras instalaciones se utiliza hace rato la interfaz de autogestion.