Error al cerrar acta digital desde Autogestión

Hola buenas tardes, estamos probando actas digitales y nos topamos con un error al momento de cerrar el acta con un docente.
El error dice “Falló la creación del documento en SIU-Araí”
El acta en la base se cierra y el campo estado_documento_digital queda en ‘F’
Desde Guaraní Gestión ingresó a “Sincronizar Masivamente Documentos con Araí” y puedo procesar el acta correctamente.

Adjunto el log, muchas gracias…

log.txt (8,7 KB)

Ir a issue

Buenos días Facundo!

Por favor indicanos qué versiones de Guarani y de Araí están utilizando.

Gracias!

Hola Martín buen día.

Guarani 3.21.3
Araí Usuarios 3.2.3
Huarpe 3.2.0

Te comento, yo seguí el rastro del log y encuentro varias cosas raras en la operación generateAndPostAsync() de Documentos.php

Primero esta línea " if (empty($params)) "
La variable $params no la veo definida en ningún lado.

Probé cambiar $params por $documento
y tira error más abajo " $archivo->setTipo($tipo_archivo); "
Dice que no existe el método setTipo()
Y ahí ya decidí escribirles…

Gracias, saludos

Hola @facu_garea

Veo el siguiente error:

clase: SIU\DocumentosCli\Exceptions\AraiDocsException
mensaje: ERROR: Error inesperado. Si especifica generacion de archivo por callback debe ingresar parametros

Veo que estas cerrando el acta de cursada desde Autogestión, quizás esta fallando la generación del PDF del acta, proba poniendo los logs en nivel debug (en instalacion/config.php pones 'nivel' => log::NIVEL_DEBUG,) y volve a mandarme los logs al cerrar otra acta.

Ojo que tenes personalizado este archivo src/pers/unm/modelo/transacciones/cierre_actas_cursada.php:

- function: acta_nucleo::enviar_acta_arai_documentos
- file: /usr/local/proyectos/3w/src/pers/unm/modelo/transacciones/cierre_actas_cursada.php, linea 248

---[ 3 ]-----------------------------------------

- function: unm\modelo\transacciones\cierre_actas_cursada->evt__cerrar_acta
- file: /usr/local/proyectos/3w/src/siu/operaciones/cierre_cursadas/controlador.php, linea 49

En la versión 3.22.0 hubo una mejora con el ticket #47207, si queres crea un GDS y te adelantamos la solución.

Saludos.

Hola Leo,

El log ya lo tenemos en modo debug.
Con respecto al archivo, se está generando.
Si ingreso al link que aparece en el log me descarga el pdf (lo único que el acta sale con la marca ES COPIA) no sé si es correcto que salga así, pero bueno eso lo veo después.
El link que menciono es:
[url_file] => https://guarani-test.unm.edu.ar:443/unm3w/notificador/descargar_adjunto/a2011cb90275eeacb8a03d1c279b02fb0c743b87

Si, vi la personalización pero no parece estar afectando en este caso.

Dale, el GDS es: 71030

Quizás con eso se solucione…
Saludos

@facu_garea

Esto es lo que tenes personalizado: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unm/3w/trunk/3.21.3/src/pers/unm/modelo/transacciones/cierre_actas_cursada.php#L247

En los logs debería imprimir Documento SIU-Araí: y debajo la estructura de dicho documento, quizás se esta armando mal, por eso te pedía el log en 'nivel' => log::NIVEL_DEBUG,: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unm/3w/trunk/3.21.3/src/siu/modelo_g3/nucleo/arai/arai_documentos_nucleo.php#L670

Lo del acta que sale con ES COPIA revisa que tenes las actas personalizadas: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unm/gestion/trunk/3.21.3/personalizacion/exportaciones/jasper

Saludos.

Si, sale esa parte en el log pero te había adjuntado solamente los errores porque el log muestra muchos datos personales del docente.

Te adjunto lo que mencionás:

log2.txt (4,5 KB)

Hola @facu_garea

Claro, esta mal armada la estructura del documento:

Tuyo:

Array
(
    [autorizacion] => Array
        (
            [modelo] => cadena
        )

    [documento] => Array
        (
            [tipo] => ACTA
            [titulo] => Acta de Promoción 13059
            [descripcion] => Física 1 - Comisión 2013-01
            [id_tramite] => 
            [referencia_interna] => Array
                (
                    [id_acta] => 46484
                    [sistema] => guarani
                    [parametros] => Array
                        (
                            [utiliza_acta_digital] => S
                            [docentes_nivel_autorizacion] => S
                            [autoridad_firma_acta_digital] => S
                            [cur_actas_cerradas_cnt_ejemplares] => 1
                            [cur_actas_abiertas_cnt_ejemplares] => 1
                            [cur_inserta_alumnos_no_promocionales_en_acta] => N
                            [cur_orden_detalle_actas] => 2
                            [origen] => xxxxxxx
                        )

                    [ras] => Array
                        (
                            [0] => 2
                        )

                    [url_file] => https://guarani-test.unm.edu.ar:443/unm3w/notificador/descargar_adjunto/7e2e1f9c9eaef05fd104048dfe1c424d6972a331
                )

            [identificador] => 46484
            [atributos] => Array
                (
                )

        )

    [archivo] => /usr/local/proyectos/3w/instalacion/temp/des01/jasper_6698259ca811e.pdf
    [autorizantes] => Array
        (
            [0] => Array
                (
                    [usuario] => xxxxxxxxx
                    [nivel_autorizacion] => basica
                    [secuencia] => 1
                )

            [1] => Array
                (
                    [usuario] => xxxxxxxx
                    [nivel_autorizacion] => basica
                    [secuencia] => 2
                )

            [2] => Array
                (
                    [usuario] => xxxxxxx
                    [nivel_autorizacion] => firma
                    [secuencia] => 3
                )

        )

    [origen] => Array
        (
            [id_usuario_sso] => xxxxxxxx
            [cuenta_usuario] => xxxxxxxx
            [id_instalacion] => Guaraní
        )

)

Mio:

Array
(
    [documento] => Array
        (
            [documento] => Array
                (
                    [tipo] => ACTA
                    [titulo] => Acta de Promoción 902370
                    [descripcion] => Biomecánica - Comisión E
                    [id_tramite] => 
                    [url] => http://172.18.0.5/siu/guarani/ges/aplicacion.php?ah=st64515f7e28c1a1.16170238&ai=guarani%7C%7C89000018&tz=1&tcm=previsualizacion
                    [identificador] => 319
                    [referencia_interna] => Array
                        (
                            [id_acta] => 319
                            [sistema] => guarani
                            [parametros] => Array
                                (
                                    [utiliza_acta_digital] => S
                                    [docentes_nivel_autorizacion] => S
                                    [autoridad_firma_acta_digital] => S
                                    [cur_actas_cerradas_cnt_ejemplares] => 1
                                    [cur_actas_abiertas_cnt_ejemplares] => 1
                                    [cur_inserta_alumnos_no_promocionales_en_acta] => S
                                    [cur_orden_detalle_actas] => 2
                                    [origen] => moyano
                                )

                            [ras] => Array
                                (
                                    [0] => 1
                                    [1] => 3
                                    [2] => 5
                                    [3] => 4
                                    [4] => 2
                                )

                            [url_file] => http://siu:8286/siu/guarani/3w/notificador/descargar_adjunto/a2011cb90275eeacb8a03d1c279b02fb0c743b87
                        )

                    [atributos] => 
                    [archivo] => Array
                        (
                            [md5] => bf1c5cbf2d3d4551a3d78eeabd06feec
                            [contenido_base64] => No se muestra archivo en el log
                            [filepath] => 
                        )

                    [autorizacion] => Array
                        (
                            [modelo] => cadena
                            [autorizantes] => Array
                                (
                                    [0] => Array
                                        (
                                            [id_usuario_sso] => rgoslin
                                            [nivel] => firma
                                            [secuencia] => 1
                                        )

                                    [1] => Array
                                        (
                                            [id_usuario_sso] => moyano
                                            [nivel] => firma
                                            [secuencia] => 2
                                        )

                                    [2] => Array
                                        (
                                            [id_usuario_sso] => toba
                                            [nivel] => firma
                                            [secuencia] => 3
                                        )

                                )

                        )

                    [origen] => Array
                        (
                            [id_usuario_sso] => moyano
                            [id_instalacion] => guarani
                            [cuenta_usuario] => moyano
                        )

                )

        )

)

El array de autorizacion esta mal armado.

¿tenes alguna personalización que este afectando?
Pasame que te devuelve svn info y svn status.

Igualmente en » Administración » Sincronizar Masivamente Documentos con Araí la vas a poder procesar, pero tenes algo mal en el armado del documento.

Saludos.

Si, por lo que veo esa estructura se arma en acta_nucleo::enviar_acta_arai_documentos() esa operación no la tenemos personalizada.
También bajamos los cambios que me pasaste por GDS y sigue arrojando la misma estructura.

Te adjunto las salidas del svn, gracias

log3.txt (647 Bytes)

@facu_garea , gracias por la info!!!

El svn status ejecútalo parado en /usr/local/proyectos/3w.

Lo que no debe estar modificado/personalizado es la función enviar_acta_arai_documentos de src/siu/modelo_g3/acta.php, php/nucleo/actas/acta_nucleo.php o personalizacion/php/nucleo/actas/acta.php. Hace un debug de la variable $data para ver porque queda así.

Saludos.

Leo cómo estás?
Te comento que pude resolverlo.
Lo que hice fue renombrar la carpeta vendor y ejecutar nuevamente composer install, porque ya no sabía que probar.
Con eso quedó funcionando correctamente.
Lo que me resulta raro es lo que vos me comentás con respecto al array.
Porque en el log de autogestión el array se sigue visualizando tal cual te lo envié.
También vi que hicieron algunas modificaciones en la versión 3.22, en unos meses seguramente ya estaremos actualizando y probándolo en esa versión.

Gracias por todo. Saludos

Leo te comento que no me quedé tranquilo con no saber que pasó, seguí buscando y creo que encontré el problema.

Comparé la carpeta vendor vieja que tenía con la nueva que generé hoy.
Y encontré cambios en la función que te mencioné al principio del post “generateAndPostAsync” del archivo 3w\vendor\siu-arai\documentos-cli\src\SIU\DocumentosCli\Services\Documentos.php

Dejo ambas, quizás a alguien le sirve.

Vieja:

public function generateAndPostAsync(Documento $documento, $tipo_archivo = "pdf")
    {
        try {
            if (empty($params)) {
                $this->logger->error("Si especifica generacion de archivo por callback debe ingresar parametros");
                throw new AraiDocsException("Si especifica generacion de archivo por callback debe ingresar parametros", 500);
            }
            $archivo = new Archivo();
            $archivo->setTipo($tipo_archivo);
            $archivo->setStream(null);
            $archivo->setMd5(null);
            $documento->setArchivo($archivo);

            $json_message = [];
            $json_message['documento'] = $documento->asArray();
            $json_message['callback_file'] = false;
            $json_message = $this->encode_items($json_message);

            $this->asyncQueue->sendMessageToQueue("DocumentosQueue", json_encode($json_message));
        } catch (RequestException $e) {
            $mensajeExtra = $e->getMessage();
            $request = ["documento" => ["archivo" => "No se muestra el archivo en log", "documento" => $documento->asArray()]];
            $this->logger->error("Error postDocumento, codigo ".$e->getCode().". Mensaje: ".$mensajeExtra.". request: ".print_r($request, true));
            throw new AraiDocsException('Error inesperado en Request. '.$mensajeExtra, $e->getCode());
        } catch (\Exception $e) {
            $this->logger->error("Error postDocumento, codigo ".$e->getCode().". Mensaje: ".$e->getMessage().". request: ".print_r($request, true));
            throw new AraiDocsException('Error inesperado. '.$e->getMessage(), $e->getCode());
        }
    }

Nueva:

 public function generateAndPostAsync(Documento $documento)
    {
        try {
			$documento->getArchivo()->setFilepath(null);
            $documento->getArchivo()->setContenidoBase64(null);
            $documento->getArchivo()->setMd5(null);

            $json_message = [];
            $json_message['documento'] = $documento->asArray();
            $json_message['callback_file'] = true;
            $json_message = $this->encode_items($json_message);
            $this->asyncQueue->sendMessageToQueue("DocumentosQueue", json_encode($json_message));
        } catch (RequestException $e) {
            $mensajeExtra = $e->getMessage();
            $request = ["documento" => ["archivo" => "No se muestra el archivo en log", "documento" => $documento->asArray()]];
            $this->logger->error("Error postDocumento, codigo ".$e->getCode().". Mensaje: ".$mensajeExtra.". request: ".print_r($request, true));
            throw new AraiDocsException('Error inesperado en Request. '.$mensajeExtra, $e->getCode());
        } catch (\Exception $e) {
            $this->logger->error("Error postDocumento, codigo ".$e->getCode().". Mensaje: ".$e->getMessage().". request: ".print_r($request, true));
            throw new AraiDocsException('Error inesperado. '.$e->getMessage(), $e->getCode());
        }
    }

Saludos

Hola @facu_garea

Tanto Gestión como Autogestión usan siu-arai/documentos-cli versión v1.0.3:

Gestión: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unm/gestion/versiones/3.21.3.1/composer.lock#L4646

Autogestión: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unm/3w/versiones/3.21.3.1/composer.lock#L2426

Quizás modificaste dentro de vendor sin darte cuenta, hay otras formas de saber si hay archivos modificados dentro de vendor:

composer status -v

Saludos.

Ok, si por lo que veo en 3W teníamos la versión 1.0.2
Al ejecutarlo nuevamente quedó en la versión 1.0.3

Gracias por todo.