Error al importar desde guarani: "Los datos tienen que ser un array"

Buen día a todos,
Estamos implementando Kolla 4.0 y tenemos problemas a realizar la importación de datos institucionales desde Guaraní 2.9.4, sale un mensaje de error diciendo “Los datos tienen que ser un array”.
El log en kolla dice lo siguiente:

Fecha: 17-04-2018 10:53:33
Operacion: Importar Personas desde SIU-Guaraní 2
Usuario: admin
Version-PHP: 5.6.35-1+0~20180405085409.12+jessie~1.gbpaa4624
Servidor: 10.24.3.28
URI: /siu/kolla/aplicacion.php?ah=st5ad5fc47056ba2.45748949&ai=kolla%7C%7C45000017
Referrer: http://10.24.3.28/siu/kolla/aplicacion.php?ah=st5ad5fc41b7c325.88598069&ai=kolla%7C%7C45000017
Host: 10.24.10.11
==========
[INFO][kolla] PUNTO MONTAJE: se cargó la clase extension_toba/kolla_usuario.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/kolla/aplicacion/php
[INFO][kolla] PUNTO MONTAJE: se cargó la clase operaciones/usuarios/importar_personas/importar_desde_guarani/ci_importar_desde_guarani.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/kolla/aplicacion/php
[INFO][kolla] PUNTO MONTAJE: se cargó la clase operaciones/usuarios/importar_personas/importar_desde_guarani/form_usuarios.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/kolla/aplicacion/php
[INFO][toba] componente(45000082): [ evento ]  El METODO [ evt__cambiar_tab__siguiente ] no existe - 'cambiar_tab__siguiente' no fue atrapado
[INFO][toba] componente(45000082): [ callback ] 'evt__pant_usuarios__salida' no fue atrapado
[ERROR][toba] toba_error: Los datos tienen que ser un array 

[TRAZA]exception 'toba_error' with message 'Los datos tienen que ser un array' in /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/lib/toba_sql.php:203
Stack trace:
#0 /usr/local/siu/kolla/aplicacion/php/nucleo/servicios_web/importadores/importador_institucion_ws.php(176): sql_array_a_insert(args ignored)
#1 /usr/local/siu/kolla/aplicacion/php/nucleo/servicios_web/importadores/importador_institucion_ws.php(20): importador_institucion_ws->_importar_institucion()
#2 /usr/local/siu/kolla/aplicacion/php/nucleo/servicios_web/importadores/importador_institucion_ws.php(13): importador_institucion_ws->_importar_datos_institucion()
#3 /usr/local/siu/kolla/aplicacion/php/nucleo/servicios_web/importadores/importador_usuarios_ws.php(631): importador_institucion_ws->importar()
#4 /usr/local/siu/kolla/aplicacion/php/nucleo/servicios_web/importadores/importador_usuarios_ws.php(122): importador_usuarios_ws->_sincronizar_datos_institucion()
#5 /usr/local/siu/kolla/aplicacion/php/nucleo/servicios_web/importadores/importador_usuarios_ws.php(112): importador_usuarios_ws->_importar_personas()
#6 /usr/local/siu/kolla/aplicacion/php/operaciones/usuarios/importar_personas/importar_desde_guarani/ci_importar_desde_guarani.php(64): importador_usuarios_ws->importar()
#7 [internal function]: ci_importar_desde_guarani->evt__pant_resultados__entrada()
#8 /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/nucleo/componentes/toba_componente.php(221): call_user_func_array(args ignored)
#9 /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php(243): toba_componente->invocar_callback(args ignored)
#10 /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php(211): toba_ci->controlar_cambio_pantalla()
#11 /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php(135): toba_ci->disparar_eventos()
#12 /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php(55): toba_solicitud_web->procesar_eventos()
#13 /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php(81): toba_solicitud_web->procesar()
#14 /usr/local/siu/kolla/aplicacion/www/aplicacion.php(23): toba_nucleo->acceso_web()
#15 {main}
[INFO][toba] componente(45000082): [ callback ] 'conf__pant_usuarios' no fue atrapado

El web service de 3w esta funcionando: http://3w.csnat.unt.edu.ar/desarrollo/rest/legacy/institucion?ua=CSNAT

[
    {
        "FECHA_PROCESO": "17\/04\/2018",
        "NOMBRE_INSTITUCION": "Universidad Nacional de Tucum\u00e1n",
        "CODIGO_INSTITUCION": "UNT",
        "CODIGO_INSTITUCION_ARAUCANO": "58"
    }
]

Buen día Victor,
noto que siguen teniendo inconvenientes con este servicio, lo habías comentado desde otras versiones.

Te hago una consulta: ¿Para qué están necesitando importar los datos institucionales en Kolla? ¿Qué tipo de encuestas están necesitando realizar?

Aguardo tus comentarios.

¡Saludos!
Myriam

Gracias por respondes.
En la versión de Kolla 3.7 con guaraní 2.9.3 funciono todo bien, resolvimos todos los problemas. Pero ahora actualizamos a guaraní 2.9.4 por lo que estamos implementando el kolla 4.0.1
Principalmente necesitamos realizar encuestan a graduados.

Victor,
¿Podés indicarnos la versión de PHP que tienen?

Si, la version de php es 5.6.35, esta instalado en un servidor con debian.
La version de PostgreSQL es 9.4.12.
La version de Apache es 2.4.10.
Te adjunto el phpinfo para mas detalles.

Algo que cambie después de instalar es el archivo bases.ini, en el cual la documentación dice que hay que agregar el “toba_usuarios” y en schema es lo mismo que en “toba_kolla” a mi me daba error cuando quería entrar al gestor de usuario por lo que cambien en el “toba_usuarios” la propiedad schema quedando así:


[toba_kolla]
motor = "postgres7"
profile = "127.0.0.1"
puerto = "5432"
usuario = ***********
clave = ***********
base = "kolla4"
schema = "toba_kolla"
encoding = "LATIN1"

[produccion kolla kolla]
motor = "postgres7"
profile = "127.0.0.1"
puerto = "5432"
usuario = ***********
clave = ***********
base = "kolla4"
schema = "kolla"
encoding = "LATIN1"

[toba_usuarios]
motor = "postgres7"
profile = "127.0.0.1"
puerto = "5432"
usuario = ***********
clave = ***********
base = "kolla4"
schema = "kolla"
encoding = "LATIN1"

[produccion toba_usuarios toba_usuarios]
motor = "postgres7"
profile = "127.0.0.1"
puerto = "5432"
usuario = ***********
clave = ***********
base = "kolla4"
schema = "toba_kolla"
encoding = "LATIN1"

Así se genero la estructura de la base de datos del kolla el instalador.

http://info.csnat.unt.edu.ar/images/schemas.PNG


phpinfoKolla.png

phpinfoKolla.png

Buen día Victor,
con respecto a lo que comentas del bases.ini: lo que hay que agregar es una entrada idéntica a la que tiene el encabezado [toba_kolla] pero que en el encabezado diga [produccion toba_usuarios toba_usuarios]. Es decir que de las 4 entradas que tenes en ese bases.ini la tercera no corresponde, les recomendamos borrarla para evitar confusiones. La correcta es la cuarta y última.

Con respecto al problema con el servicio web no hemos podido reproducir el problema, quisiera que nos envíes el log de Kolla completo y si podes agregar el de Apache y el de Guaraní a ver si detectamos algo en esos logs. Si queres podes crear una solicitud en el gestor (GDS) para no enviar esos datos por esta via.

Saludos
Clara

Hola, estuve revisando la función donde se origina el error y al parecer si esta recibiendo un array, puedo ver los datos que devuelve el web service del 3w. Voy a probar con instalar de nuevo el kolla y les comento si tengo el mismo problema.
Una consulta más, que versión de php es la recomendada? Esta bien la versión 5.6.35 y PostgreSQL 9.4.12?
Por que en la documentación dice “Deseable: PHP 5.4.x” pero si no me equivoco el instalador verifica la versión mayor o igual 5.6 pero menor que la 7.
Saludos

Buen día Victor,

las versiones que tenés son correctas. Estaremos agregando este detalle en la documentación y en el chequeeo de versiones que hace el instalador.

Respecto al problema que reportaste, como te comentaba Clara ayer, recreamos el escenario con las versiones que nos indicaste de ambos módulos pero no pudimos reproducir el error.

Si después de esta prueba el problema persiste, avisanos y trataremos ver de qué se trata.

Saludos!
Myriam

Volví a instalar el Kolla 4 y persiste el problema (adjunto imagen).
Sera que me falta alguna extensión para php? Después de agregar el servicio web de 3w trate de importar y me salia todo en blanco, me fije en el log y tenia un error del cURL por lo que instale la extencion php5.6-curl y se soluciono.
Las versiones instaladas son las siguientes:
PHP : 5.6.35
PostgreSQL: 9.4.12.
Apache: 2.4.10
Extenciones PHP: php5-mcrypt, php5.6-pgsql, php5.6-mbstring, php5.6-zip, php5.6-xsl, php5.6-curl

Podrá ser algo en el servicio web del 3w?
Ademas adjunto log del kolla y otro del apache.

Saludos y muchas gracias.


Log.zip (50.9 KB)

Agregue de forma manual la institución y cuando use la opción importar desde el siu me dio todo correcto e importo los títulos.
Ahora voy a la opción usuarios > Importación de encuestados > Importar Personas desde SIU-Guaraní 2 y cuando presiono el botón de importar queda la pantalla en blanco.
Adjunto el log del sistema.
En el log de apache solo aparece esta linea:


[Thu Apr 19 11:10:17.597672 2018] [:error] [pid 6177] [client 10.24.10.11:62306] PHP Fatal error:  Call to a member function quote() on null in /usr/local/siu/kolla/aplicacion/vendor/siu-toba/framework/php/lib/toba_sql.php on line 232, referer: http://10.24.3.28/siu/kolla/aplicacion.php?ah=st5ad8a3326f1569.43486947&ai=kolla%7C%7C45000017

Saludos.


sistema.txt (4.5 KB)

Ya esta funcionando, muchas gracias.

Hola Victor,
que buena noticia!

Te pido si podés compartirnos qué fue lo que pasó.

Necesitamos tener en claro si hay algún problema para corregir o mejorar, o si fue un problema de datos, de configuración…? ¿Nos podés comentar?

Muchas gracias!
Myriam

Al parecer el problema estaba en los datos de la institución que guarda el guaraní. Por que una ves lo cargue de forma manual a la institución en el Kolla ya pude importar usando el web servicio del 3w.

Algo mas que esta faltando en la instalación o la documentación es añadir en el toba.conf dentro de la configuración del directorio del kolla lo siguiente, para que funcione el web servicio.


                AddType applicacion/x-httpd-php .php
		<Files rest>
			ForceType application/x-httpd-php
		</Files>

Saludos.