Integración Guaraní V280 con Kolla 3.4

Hola a todos estamos tratando de integrar las encuestas en guaraní V208 con kolla 3.4.

Los pasos que seguimos fueron:

Creamos primero desde la interface de kolla “Usuarios->Sistemas Externos->Agregar”
Nombre del Sistema: guarani
Estado:Activo

Luego en “Configuración->Definición de Servicios Web->Agregar”

Nombre de Conexión (): guarani
WS URL (
): http://localhost/siu/kolla/servicios.php
Usuario de acceso (): admin (usuario de interface kolla?)
Clave de acceso (
):

Kolla:

cd /usr/local/proyectos/kolla/kolla

mcedit toba/bin/entorno_toba_2.3.sh (camibar a mayuscula toba_dir) (BUG)

./toba/bin/entorno_toba_2.3.sh

cp toba/php/modelo/var/openssl.ini instalacion/

toba servicios_web generar_cert -p kolla -i produccion

Guarani:

cd /usr/local/proyectos/guarani/g3w2/bin

./guarani generar_ssl servicios_web

Kolla:

cp /usr/local/proyectos/kolla/kolla/instalacion/i__produccion/p__kolla/publica.crt /usr/local/proyectos/guarani/g3w2/instalacion/servicios_web/consumidos/kolla.crt

toba servicios_web serv_configurar -p kolla -s habilitaciones -h usuario=ue_guarani -c /usr/local/proyectos/guarani/g3w2/instalacion/servicios_web/publica.crt -i produccion

El error que nos tira es el siguiente:

-o-o-o-o-o-
Fecha: 13-03-2014 09:50:47
Usuario: no_autentificado
Version-PHP: 5.3.3-7+squeeze18
Servidor: 170.210.126.19
URI: /siu/kolla/servicios.php?wsdl
Host: 170.210.126.19

[DEBUG][kolla] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[CRITICAL][toba] toba_error: El contexto no se encuentra inicializado: base indefinida

[TRAZA]exception ‘toba_error’ with message ‘El contexto no se encuentra inicializado: base indefinida’ in /usr/local/proyectos/kolla/kolla/toba/php/modelo/info/toba_contexto_info.php:26
Stack trace:
#0 /usr/local/proyectos/kolla/kolla/toba/php/modelo/info/toba_info_editores.php(313): toba_contexto_info::get_db()
#1 /usr/local/proyectos/kolla/kolla/toba/php/nucleo/toba_solicitud_servicio_web.php(13): toba_info_editores::get_items_servicios_web(‘kolla’)
#2 /usr/local/proyectos/kolla/kolla/toba/php/nucleo/toba_nucleo.php(112): toba_solicitud_servicio_web::mostrar_servicios()
#3 /usr/local/proyectos/kolla/kolla/aplicacion/www/servicios.php(13): toba_nucleo->acceso_servicio()
#4 {main}

-o-o-o-o-o-
Fecha: 13-03-2014 09:50:47
Operacion: Personas - Encuestados
Usuario: admin
Version-PHP: 5.3.3-7+squeeze18
Servidor: 170.210.126.19
URI: /siu/kolla/aplicacion.php?ah=st5321a94162f19&ai=kolla||40000121
Referrer: http://170.210.126.19/siu/kolla/aplicacion.php?ah=st5321a93763495&ai=kolla||40000121
Host: 170.210.126.144

[INFO][kolla] PUNTO MONTAJE: se cargó la clase operaciones/usuarios/importar_personas_g2/ci_importar_guarani_personas.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/kolla/kolla/aplicacion/php
[INFO][toba] componente(40000330): [ callback ] ‘conf__pant_inicial’ no fue atrapado
[INFO][toba] componente(40000330): [ callback ] ‘conf__seleccion_ws’ no fue atrapado

-o-o-o-o-o-
Fecha: 13-03-2014 09:59:10
Usuario: admin
Version-PHP: 5.3.3-7+squeeze18
Servidor: 170.210.126.19
URI: /siu/kolla/servicios.php?wsdl
Host: 170.210.126.144

[DEBUG][kolla] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[INFO][toba] Se detecto cambio de operación. Se limpia la memoria de la operacion
[CRITICAL][toba] toba_error: El contexto no se encuentra inicializado: base indefinida

[TRAZA]exception ‘toba_error’ with message ‘El contexto no se encuentra inicializado: base indefinida’ in /usr/local/proyectos/kolla/kolla/toba/php/modelo/info/toba_contexto_info.php:26
Stack trace:
#0 /usr/local/proyectos/kolla/kolla/toba/php/modelo/info/toba_info_editores.php(313): toba_contexto_info::get_db()
#1 /usr/local/proyectos/kolla/kolla/toba/php/nucleo/toba_solicitud_servicio_web.php(13): toba_info_editores::get_items_servicios_web(‘kolla’)
#2 /usr/local/proyectos/kolla/kolla/toba/php/nucleo/toba_nucleo.php(112): toba_solicitud_servicio_web::mostrar_servicios()
#3 /usr/local/proyectos/kolla/kolla/aplicacion/www/servicios.php(13): toba_nucleo->acceso_servicio()
#4 {main}

-o-o-o-o-o-
Fecha: 13-03-2014 09:59:19
Operacion: Definición de Servicios Web
Usuario: admin
Version-PHP: 5.3.3-7+squeeze18
Servidor: 170.210.126.19
URI: /siu/kolla/aplicacion.php?tm=1&ai=kolla||40000136
Referrer: http://170.210.126.19/siu/kolla/aplicacion.php?ah=st5321a94162f19&ai=kolla||40000121
Host: 170.210.126.144

[INFO][toba] Se detecto acceso desde el menu. Se limpia la memoria de la operacion
[INFO][kolla] PUNTO MONTAJE: se cargó la clase operaciones/sistemas_externos/servicios_web/ci_abm_conexiones_ws.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/kolla/kolla/aplicacion/php
[INFO][toba] componente(40000373): No hay señales de un servicio anterior, no se atrapan eventos
[INFO][toba] componente(40000373): [ callback ] ‘conf__listado’ no fue atrapado

-o-o-o-o-o-
Fecha: 13-03-2014 09:59:23
Operacion: Definición de Servicios Web
Usuario: admin
Version-PHP: 5.3.3-7+squeeze18
Servidor: 170.210.126.19
URI: /siu/kolla/aplicacion.php?ah=st5321aba795f6a&ai=kolla||40000136
Referrer: http://170.210.126.19/siu/kolla/aplicacion.php?tm=1&ai=kolla||40000136
Host: 170.210.126.144

[INFO][kolla] PUNTO MONTAJE: se cargó la clase operaciones/sistemas_externos/servicios_web/ci_abm_conexiones_ws.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/kolla/kolla/aplicacion/php
[INFO][toba] componente(40000373): [ callback ] ‘evt__listado__salida’ no fue atrapado
[INFO][toba] componente(40000373): [ callback ] ‘evt__edicion__entrada’ no fue atrapado
[INFO][kolla] PUNTO MONTAJE: se cargó la clase operaciones/sistemas_externos/servicios_web/form_conexion.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/kolla/kolla/aplicacion/php

-o-o-o-o-o-
Fecha: 13-03-2014 09:59:51
Usuario: admin
Version-PHP: 5.3.3-7+squeeze18
Servidor: 170.210.126.19
URI: /siu/kolla/servicios.php?wsdl
Host: 170.210.126.144

[DEBUG][kolla] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[INFO][toba] Se detecto cambio de operación. Se limpia la memoria de la operacion
[CRITICAL][toba] toba_error: El contexto no se encuentra inicializado: base indefinida

[TRAZA]exception ‘toba_error’ with message ‘El contexto no se encuentra inicializado: base indefinida’ in /usr/local/proyectos/kolla/kolla/toba/php/modelo/info/toba_contexto_info.php:26
Stack trace:
#0 /usr/local/proyectos/kolla/kolla/toba/php/modelo/info/toba_info_editores.php(313): toba_contexto_info::get_db()
#1 /usr/local/proyectos/kolla/kolla/toba/php/nucleo/toba_solicitud_servicio_web.php(13): toba_info_editores::get_items_servicios_web(‘kolla’)
#2 /usr/local/proyectos/kolla/kolla/toba/php/nucleo/toba_nucleo.php(112): toba_solicitud_servicio_web::mostrar_servicios()
#3 /usr/local/proyectos/kolla/kolla/aplicacion/www/servicios.php(13): toba_nucleo->acceso_servicio()
#4 {main}

Saludos y gracias

Hola Sergio,

Las operaciones
A) Configuración → Definición de servicios web → Agregar
B) Usuarios → Importación de Encuestados → Importar datos de Personas – (Importar datos de Guaraní 2)
C) Maestros → Importar Datos Institucionales Guarani2

Son las antiguas operaciones que se utilizan para establecer una vinculo entre Kolla y una (o más) instalación(es) de Guarani 2. La operación (A) permite definir en Kolla los datos de un SERVIDOR de servicios web de Guaraní 2 que proveerá el servicio que consume Kolla. Existen para conservar la compatibilidad con versiones previas de Guaraní 2.

La operación B) permite importar -como lo dice su nombre- datos de personas (alumnos) mediante el servicio web configurado en A).

La operación C) permite importar, también mediante el servicio web configurado en A) distintos grupos de datos institucionales de Guaraní 2.

Si lo que desean es definir usuarios para los alumnos de Guaraní en la instalación de Kolla entonces son esas las operaciones que deben utilizar.
En cambio si lo que desean es hacer uso de la nueva forma de vinculación entre SIU-Guaraní y SIU-Kolla para dirigir las encuestas de Guaraní a traves del sistema Kolla, entonces son otros los pasos a realizar (algunos pasos ya los han realizado, como la definición del usuario externo para Guaraní).

Si este es el caso de ustedes, les sugiero que lean los enlaces y los pasos descriptos en estos mensajes
http://foro.comunidad.siu.edu.ar/index.php?topic=6854.msg28944
http://foro.comunidad.siu.edu.ar/index.php?topic=6854.msg28915

Ahi se explica cómo realizar la vinculación entre los sistemas para este caso en el que Kolla es quien provee el servicio web y Guaraní el que lo consume.

Cualquier duda avisanos.

Hola Clara, algo de eso estuvimos mirando, pero entre eso y otros nos hicimos una ensalada, jaja.

Te agradezco mucho tu explicación.

Igualmente en: Vincular Encuesta SIU- Kolla - nº 2 por system - SIU-Kolla - Usuarios - Foro Comunidad SIU

Terminal Guaraní:
  1. Indicar el certificado del servidor de kolla.

<<path_guarani>>/lib/toba//bin ./toba servicios_web cli_configurar -p guarani -i produccion(o desarrollo) -s habilitaciones -c <<path_kolla>>/instalacion/i__produccion/p__kolla/publica.crt

6 En el archivo creado en <<path_guarani>>/lib/toba/instalacion/i_produccion/p_guarani/servicios_cli/habilitaciones/cliente.ini, agregar lo siguiente:

[conexion]
to = http://<<URL_Kolla>>/servicios.php/habilitaciones

No lo pudimos realizar ya que la version 2.8 del guaraní no trae toba.

Pero si un ejecutable en “/usr/local/proyectos/guarani/g3w2/bin/” “guarani”
Que cuando lo ejecuto la salida es la siguiente:

Guarani Web version 1.0

Usage:
[options] command [arguments]

Options:
–help -h Display this help message.
–quiet -q Do not output any message.
–verbose -v Increase verbosity of messages.
–version -V Display this program version.
–ansi Force ANSI output.
–no-ansi Disable ANSI output.
–no-interaction -n Do not ask any interactive question.

Available commands:
cache Compilar datos para el proceso de inscripcion.
casual Pruebas casuales.
compilar_recursos Compila los recursos js y css a una carpeta.
datos_test Generar datos de casos de test.
generar_catalogo Compilar catalogo SQL.
generar_escalas_js Genera las escalas de notas en javascript para realizar validaciones.
generar_puntos Compilar puntos de control.
generar_reporte Generar reporte. generar_reporte nombre_personalizacion nombre_reporte
generar_ssl Generar certificado ssl. generar_ssl carpeta_con_openssl.ini
help Displays help for a command
importar_fotos Importador de fotos.
info Buscar data.
limpiar_cache Limpia la cache de APC
list Lists commands
log Muestra el último log disponible para la ua seleccionada
test_conexion Testea la conexión a la BD

Pero no aparece la parte de configurar el certificado cliente “servicios_web cli_configurar”.
En el kolla si lo pudimos realizar.

Hola, otra cuestion que me preocupa es que en el g3w cuando busca la encuesta hace la siguiente peticion por ajax:

http://localhost/kolla/3.3/?ai=kolla||40000112&tm=1&h=&t=3g%2B8fQ4PrkUMXOp4do%2FRXM4RfiwF6%2BcIftrJo01QM74%3D

Pero el servidor esta en “http://localhost/siu/kolla/aplicacion.php” que esta configurado en “instalacion/config.php” como sigue:

<?php return array ( ... 'accesos' => array ( 'des01' => array ( 'ua' => 1, 'personalizacion' => NULL, 'database' => array ( 'vendor' => 'informix', 'database' => 'prueba', 'host' => '170.210.126.20', 'server' => 'ol_dell2900', 'client_locale' => 'en_us.8859-1', 'service' => 1526, 'protocol' => 'olsoctcp', 'LogonID' => 'agr', 'pwd' => 'agr', 'EnableScrollableCursors' => 1, ), ), ), ), 'url_kolla' => 'http://localhost/siu/kolla/aplicacion.php', );

Sergio, el link de la respuesta que citaste alli es una respuesta para la vinculacion de Guarani 3 (NO Guarani 2 version 2.8) y Kolla. Que si en este caso se usa el framework SIU-Toba.

Hola Alejandro, el link es el que me paso Clara para configurarlo:

http://foro.comunidad.siu.edu.ar/index.php?topic=6854.msg28944
http://foro.comunidad.siu.edu.ar/index.php?topic=6854.msg28915

Primero intentamos los pasos de:

https://repositorio.siu.edu.ar/trac/Portal-G3/wiki/G2/guarakolla

Pero no funciono.

Si!, les pido disculpas, el error fue mio!! evidentemente contesté en semi-automático y les mandé la descripción de la vinculación que se hace con Guaraní 3.

Mira esta página:
https://repositorio.siu.edu.ar/trac/Portal-G3/wiki/G2/guarakolla

Sergio,

Pasando en limpio.

La configuración que vale es https://repositorio.siu.edu.ar/trac/Portal-G3/wiki/G2/guarakolla.

En la configuración del “instalacion/config.php”, muevan la entrada url_kolla un nivel más arriba. Es un poco dificil de ver, asi que ponganla justo antes de ‘accesos’ y prueben si Guarani hace bien el pedido a la url allí indicada.

No se bien en que estado están dejando de lado ese error, en tal caso hacemos una recapitulación de todo.

Saludos!
Alejandro C.

<?php return array ( ... [b] 'url_kolla' => 'http://localhost/siu/kolla/aplicacion.php',[/b] 'accesos' => array ( 'des01' => array ( 'ua' => 1, 'personalizacion' => NULL, 'database' => array ( 'vendor' => 'informix', 'database' => 'prueba', 'host' => '170.210.126.20', 'server' => 'ol_dell2900', 'client_locale' => 'en_us.8859-1', 'service' => 1526, 'protocol' => 'olsoctcp', 'LogonID' => 'agr', 'pwd' => 'agr', 'EnableScrollableCursors' => 1, ), ), ), ), );

Hola a todos, los pasos que seguimos son de:

https://repositorio.siu.edu.ar/trac/Portal-G3/wiki/G2/guarakolla

Pero en otro orden, les paso los comandos:

Abrimos dos terminales una para “Kolla” y otra para “Guarani”:

1 - Creamos un usuario para WS en Kolla:

Creamos primero desde la interface de kolla "Usuarios->Sistemas Externos->Agregar" Nombre del Sistema: guarani Estado:Activo

2 - Creamos los certificados Kolla y Guarani:
Kolla:

cd /usr/local/proyectos/kolla/kolla mcedit toba/bin/entorno_toba_2.3.sh (camibar a mayuscula toba_dir) (BUG) ./toba/bin/entorno_toba_2.3.sh toba servicios_web generar_cert -p kolla -i produccion
Ok. Certificado publico generado en: /usr/local/proyectos/kolla/kolla/instalacion/i__produccion/p__kolla/publica.crt

TIEMPO: 0,187 segundos

Guarani: (Con la opcion -c no funciona)

cd /usr/local/proyectos/guarani/g3w2/bin ./guarani generar_ssl servicios_web
Generating a 1024 bit RSA private key ...........++++++ .....................++++++ writing new private key to '/usr/local/proyectos/guarani/g3w2/instalacion/servicios_web/privada.key.sign' ----- writing RSA key

Los certificados se crearon correctamente en:
/usr/local/proyectos/guarani/g3w2/instalacion/servicios_web
******************************************************************


3 - Compiamos y configuramos el archivo “openssl.ini” en Kolla:
cp toba/php/modelo/var/openssl.ini instalacion/

4 - Copiamos el certificado de kolla en guarani:

cp /usr/local/proyectos/kolla/kolla/instalacion/i__produccion/p__kolla/publica.crt /usr/local/proyectos/guarani/g3w2/instalacion/servicios_web/consumidos/kolla.crt

5 - Indicar el certificado del G3w2 para el servicio:
Kolla:

toba servicios_web serv_configurar -p kolla -s habilitaciones -h usuario=ue_guarani -c /usr/local/proyectos/guarani/g3w2/instalacion/servicios_web/publica.crt -i produccion
Ok. Certificado del cliente importado correctamente en el servidor

TIEMPO: 0,159 segundos

6 - Configurar archivo “instalacion/config.php” en guarani:

7 - Reiniciamos apache.

Adjunto los archivos “config.php”, “openssl.ini” y un log del guarani les agregue la extension “txt” para subirlos.


20140321_074618___1313.log.txt (12.9 KB)

config.php.txt (2.03 KB)

openssl.ini.txt (922 Bytes)

Agrego una captura de imagen del error


captura_kolla_error.jpg

captura_kolla_error.png

Hola Sergio,

El paso 3 va antes del 2. El openssl.ini lo usa el comando toba servicios_web generar_cert para llenar el certificado. Igualmente es irrelevante para el caso, seguramente tenían uno existente o les hubiese arrojado un error en ese paso.

Te comento, la comunicación Kolla-Guarani en esa pantalla es mediante un iframe. Guaraní carga un iframe con la url de Kolla y los parámetros de la encuesta. Por lo tanto, cuando surjan errores en esa ‘parte del medio’, los errores salen el el log de Kolla:
–/usr/local/proyectos/kolla/kolla/instalacion/logs

Igualmente creo que se cual puede ser el error. Faltaría un paso más, que realmente NO está documentado, disculpanos. Te resumo el funcionamiento del esquema:

  • 1 Hacer encuestas en gestión

  • 2 Hacer todos los pasos de configuración (los que ya hiciste)

  • 3 En el 3w, perfil Gerencial, hay una única operación con la cual se envían los alcances a Kolla mediante servicios web. Si falló algo en el paso 2, este paso va a fallar. En Kolla esto se llama ‘habilitar’ las encuestas.

  • 4 En el 3w el alumno contesta la encuesta, y por un callback javascript se registra la respuesta y desaparece de pendientes.

Saludos

Hola Alejandro, entramos con un usuario gerencial y seleccionamos la encuesta y luego el boton generar.

El problema es que se queda en una pantalla blanca.

Te adjunto los logs de g3w y tambien el del kolla.


boton_encuesta_gerencial.log.txt (13.5 KB)

sistema.log.txt (1.05 KB)

Hola

En general, una pantalla blanca indica un error de php.
Fijate en el log de php mas que en el del sistema

Emilio

Hola Emilio, gracias por la aclaración, el error que me tira en “/var/www/apache2/error.log” es:

[Wed Mar 26 07:55:36 2014] [notice] Apache/2.2.16 (Debian) configured -- resuming normal operations [Wed Mar 26 07:57:20 2014] [error] [client 170.210.126.144] PHP Fatal error: Call to undefined function kernel\\util\\ws_get_key_from_file() in /usr/local/proyectos/guarani/g3w2/src/siu/lib/kernel/util/ws_cliente.php on line 120, referer: http://170.210.126.19/g3w/kolla_alcance/

Busque la función en todos los archivos pero no la encontré definida en ninguna parte:

# cd /usr/local/proyecto/guarani/ # for el in `find . -type f -name "*.php"`; do egrep -nisHe "ws_get_key_from_file" $el; done ./g3w2/src/siu/lib/kernel/util/ws_cliente.php:120: $clave_cliente = ws_get_key_from_file($mi_clave);

Saludos

Avanzando, faltaba incorporar wsf.so a php.

Ahora el error que me tira es el siguiente:

[Wed Mar 26 08:56:49 2014] [error] [client 170.210.126.144] PHP Notice: Undefined property: kernel\\util\\ws_cliente::$opciones in /usr/local/proyectos/guarani/g3w2/src/siu/lib/kernel/util/ws_cliente.php on line 73, referer: http://170.210.126.19/g3w/kolla_alcance/

captura_g3w.png

Hola Sergio,

Lo que marcas no es un error - Es un Notice. Casualmente está en un try/catch de un error, que tendríamos que ver cual es.

	try {
		$message = $this->wsf->request($mensaje->wsf());
		return new ws_mensaje($message);
	} catch (\WSFault $e) {
			throw new error_kernel("Soap Fault: ". $e->Reason . " Detail: ". $e->Detail);
	} catch (\Exception $e) {
			throw new error_kernel($e->getMessage(). " Opciones: " . $this->opciones . " Respuesta: " . $this->wsf->getLastResponseHeaders());
	}

Sale el notice en la última linea, pero igual se lanza la excepción. Fijate si la encontrás en los logs del 3w, o sino corregí esa linea para poder ver el verdadero error. Seria opciones_conf en lugar de opciones.

throw new error_kernel($e->getMessage(). " Opciones: " . $this->opciones_conf . " Respuesta: " . $this->wsf->getLastResponseHeaders());

Saludos

Hola Alejandro,

Te adjunto los logs y una captura del problema

Saludos


logs.zip (8.86 KB)

captura_g3w_2.jpg

captura_g3w_2.png

Hola,

Por lo que se observa en los logs, el mensaje sale bien de Guaraní, Kolla lo recibe bien, pero no lo procesa. Por favor, envianos los logs de wsf.

Deberìan estar en la carpeta /tmp, se llaman wsf_php_client.log y wsf_php_server.log

Si están deberías configurar el php.ini y agregar las siguientes lineas y reiniciar apache.

wsf.log_path = /tmp
wsf.log_level = 3

Saludos

Hola Alejandro, ya configure php.ini y te adjunto los logs que me solicitases.

Saludos


wsf_php_client.log.txt (1.8 KB)

wsf_php_server.log.txt (1.88 KB)