Error en Sincronizar novedades con SQ

Escribo para comentarles que tuvimos inconvenientes al configurar Sanaviron Quilmes.
Nosotros seguimos la guia de instalacion sugerida por este documento:
https://docs.google.com/document/d/1cW_hsXclWAZuf2MEC8TamSQVR7-aPG-m5ejHcEqjlvQ/edit

Pudimos hacer los primeros paso funcionales del documento (Configurar SQ-Núcleo con SQ-Académico,
Configurar SQ-Núcleo con el módulo SIU-Pilagá,Mapear SQ-Académico con el módulo
SIU-Guaraní y configurar parámetros).

Luego intentamos realizar un circuito de prueba, con una propuesta del tipo ‘Posgrado’. El problema
surgio cuando intentamos sincronizar una propuesta con SQ en la opcion propuestas cobrables, ya que nos
daba error al tratar de sincronizar. Nos fijamos en el log y este mostraba lo siguiente:

[ERROR][guarani] Client error: POST https://***/servicios resulted in a 422 Unprocessable Entity response:
{
“error”: 422,
“mensaje”: “422 Unprocessable Entity”,
“descripcion”: "Error al generar el servicio: El sist (truncated…).

No estamos seguros de que pudo haber causado dicho error, ya que seguimos paso a paso la
documentacion.

Hola Salvador, te pido que revises la configuración técnica sobre la comunicación entre sistemas.

En sq-Académico:

  • En sq.ini corroborá la url, credenciales y método de Guaraní. (ubicación: src/sq_uv/config/)

En Guaraní:

  • En config.php, url_sq_pagos, hay que agregarle /index.php/, ejemplo: ‘http://siu:9999/siu/sq_pagos/index.php’ (ubicación: src/guarani/3w/instalacion/)
  • En servicios_web_config.php, en base_uri, linea 60, ‘http://siu:999/siu/sq_academico/rest/v1/’ (ubicación: src/guarani/3w/instalacion)
  • El resthook configurado en src/guarani/ges/instalacion
  • En servidor.ini el metodo debe coinciden con el del archivo sq.ini de académico (ubicación: src/guarani/ges/instalacion/i__desarrollo/p__guarani/rest)
  • En el cliente.ini (ubicación: src/guarani/ges/instalacion/i__desarrollo/p__guarani/rest/sanaviron) Ejemplo: “http://siu:999/siu/sq_academico/rest/v1/

Avisanos como te fue, y si persiste el error adjuntanos el log de guarani donde podamos ver el error completo. En principio parece ser un error en la comunicación entre los sistemas.

El problema estaba que los tokens no eran iguales, cambie eso y pude sincronizar la propuesta y que aparezca en sq_academico.
Luego estaba tratando de inscribir a un estudiante a una propuesta cobrable, pero tuve inconvenientes. Por pantalla me dice que la propuesta no esta valorizada y en los log:

[ERROR][guarani] Error en informar_suscripcion_novedad. Se esperaba 201 y se obtuvo 400
[DEBUG][guarani] array (
‘error’ => 400,
‘mensaje’ => ‘400 Bad Request’,
‘descripcion’ => ‘Error en la validación del recurso’,
‘detalle’ =>
array (
‘tipo_novedad’ =>
array (
0 => ‘El campo 'tipo_novedad' es obligatoio.’,
),
),

Aclaro que cree la instancia en sq_academico en la opcion Administrar servicios instancias. La misma figura con un campo ‘estado de la configuracion’ en OK. No estoy encontrando que configuracion me esta faltando.

Hola Salvador, agrego a lo de Matias:

¿que versión de Guaraní están utilizando?

¿cumple con la Correspondencia entre versiones?

Te dejo la conexión entre SIU-Guaraní - SIU-Sanaviron/Quilmes. Para propuestas cobrables necesitas configurar Rest-Hooks.

Revisa en la operación » Administración » Sincronizar Novedades con SQ de Guaraní Gestión si tenes Propuestas cobrables o Inscripciones a propuestas para sincronizar con SQ.

En el archivo instalacion/i__desarrollo/p__guarani/logs/rest/rest-hooks.log dentro del proyecto Guaraní Gestión vas a ver el log completo, si es posible adjuntalo.

saludos.
2

Hola Leonel, te comento que tenemos la versión de guaraní 3.20 y SQ en 2.2.1 Las configuraciones de resthooks se siguieron tal cual como figura en el archivo. Pero seguimos teniendo el mismo problema que antes. Algo que noto es que el rest-hooks.log esta vacio, a pesar de que cuando se ejecutaron los comandos de resthooks_crear_base y resthooks_iniciar_workers no dieron errores.

Buenas tardes Salvador,

Podrías revisar el log de sistema de Guaraní (instalacion/i__desarrollo/p__guarani/logs/sistema.log), cuando se ejecuta la Operación: Sincronizar Novedades con SQ, mas abajo en el log tiene que haber una entrada [DEBUG][guarani] Payload:
Podrías pasarnos esa parte del log para ver que esta enviando como tipo_novedad

La entrada del log deberia ser similar a la siguiente:

[DEBUG][guarani] Payload:
[DEBUG][guarani] array (
  'id' => 1325,
  'tipo_novedad' => 'B',
  'observaciones' => 'Se crea una suscripción novedad para una propuesta cobrable, Nro. transacción: 1325. Operación: Baja.',
  'modo_devolucion' => 'NC',
)

Ademas del lado de SQ podrías enviarnos el log de web services, que se encuentra en el dir config/i__produccion/p__sq_uv/logs/web_services.log de este log tendriamos que analizar que arroja cuando se procesa la url ‘/suscripciones-novedades’

Saludos,
4

Buenas Fernando, te adjunto los logs que solicitaste. Al parecer guaraní esta enviando el post con tipo_novedad con el campo vacio. Estamos tratando de descubir que estaria faltando para que funcione.


Log de guarani


[DEBUG][guarani] Payload:
[DEBUG][guarani] array (
‘id’ => 1993,
‘tipo_novedad’ => NULL,
‘observaciones’ => ‘Se crea una suscripción novedad para una propuesta cobrable, Nro. transacción: 1993. Operación: .’,
)


Log de sq


[1060][sq_uv][DEBUG] Procesando URL ‘/suscripciones-novedades’
[1060][sq_uv][DEBUG] Iniciando Autenticacion
[1060][sq_uv][DEBUG] Pedido capturado por el firewall
[1060][sq_uv][DEBUG] Usuario ‘toba’ autenticado y autorizado
[1060][sq_uv][DEBUG] Controlador encontrado /var/local/app/toba/php/rest/v1/recurso_suscripciones_novedades.php :: post_list ()
[1060][sq_uv][INFO] La api retornó un error. Status: 400
[1060][sq_uv][INFO] array (
‘error’ => 400,
‘mensaje’ => ‘400 Bad Request’,
‘descripcion’ => ‘Error en la validaci�n del recurso’,
‘detalle’ =>
array (
‘tipo_novedad’ =>
array (
0 => ‘El campo 'tipo_novedad' es obligatoio.’,
),
),
)

Un dato que no mencione anteriormente, es que tuvimos que comentar una linea en la funcion get_listado_inscripciones_sincronizar del archivo ‘gestion/php/nucleo/cobro/co_cobros.php’. La linea comentada fue

‘AND inscripciones_propuestas.sq_sincronizado NOT IN ($SQ_INSCRIPCION_NO_SINCRONIZADA, $SQ_INSCRIPCION_SINCRONIZADA)’

Hicimos esta modificacion por que no estaba trayendo ningun estudiante en la solapa de inscripcion a propuestas, pero al parecer esta modificacion va a tener que ser revertida.

Hola Salvador, agrego a lo de Fer:

Un dato que no mencione anteriormente, es que tuvimos que comentar una linea en la funcion get_listado_inscripciones_sincronizar del archivo 'gestion/php/nucleo/cobro/co_cobros.php'. La linea comentada fue

‘AND inscripciones_propuestas.sq_sincronizado NOT IN ($SQ_INSCRIPCION_NO_SINCRONIZADA, $SQ_INSCRIPCION_SINCRONIZADA)’

Con eso estas haciendo que te liste Inscripciones a propuestas que NO fueron procesadas por Rest-Hooks o fueron procesadas de forma exitosa en la operación » Administración » Sincronizar Novedades con SQ, lo cual no es parte del flujo.

Lo que debe estar pasando es que en la función get_listado_inscripciones_sincronizar de co_cobros en la columna corte (alias de sga_propuestas_aspira.sq_sincronizado) te devuelve el valor 0 o 6, y al hacer click en Sincronizar ese corte termina siendo el $tipo_operacion en la función sincronizar_inscripcion de cn_man_sincronizar_novedades_sq, esto hace que luego se rompa.

Si la inscripción a propuesta tiene 0 o 6 en la columna sga_propuestas_aspira.sq_sincronizado es porque Rest-Hooks no se ejecuto.

Envíame el archivo instalacion/i__desarrollo/p__guarani/logs/sistema.log completo al momento del error.

saludos.
2

Hola, ahi vimos que los workers de resthooks definitivamente no estaban corriendo. Para asegurarnos de que funcionen sin interrupciones lo configuramos con supervisor. Pudimos sincronizar una propuesta y a un ingresante ya que ahora si los estados de sq cambian sin la necesidad de tocar las consultas a mano. Tenemos las siguientes dudas; ¿Una vez realizado este paso ya seria posible ingresar a 3w con el estudiante y ingresar al portal de pagos?¿O antes hay que cambiar algo en sq_academico?¿En sq_academico, el ingresante ya se podria visualizar como una suscripcion?

Hola Salvador,

ahi vimos que los workers de resthooks definitivamente no estaban corriendo. Para asegurarnos de que funcionen sin interrupciones lo configuramos con supervisor. Pudimos sincronizar una propuesta y a un ingresante ya que ahora si los estados de sq cambian sin la necesidad de tocar las consultas a mano.

Claro, me parecia extraño que el archivo instalacion/i__desarrollo/p__guarani/logs/rest/rest-hooks.log este vacío, en la documentación se recomienda usar Supervisor.

¿Una vez realizado este paso ya seria posible ingresar a 3w con el estudiante y ingresar al portal de pagos?¿O antes hay que cambiar algo en sq_academico?¿En sq_academico, el ingresante ya se podria visualizar como una suscripcion?

Si, ya podrías, revisa tener todo bien configurado en Autogestión.

saludos.
2