Conflictos al importar personalizaciones

Bueno días!

Estamos en la versión 3.21.1, hicimos varias personalizaciones anteriormente, y ahora queremos agregar el campo “cuit” al reporte de alumnos. En ambiente de desarrollo lo hicimos y funciona (agregando el campo en el cuadro, pasando el punto de montaje a personalizacion, y cambiando el co_alumnos.php por el personalizado). Corremos el comando /bin sudo ./guarani esquema_pers y sale todo “OK”. Corremos el comando …/bin sudo ./guarani esquema_pers conflictos y sale:
"Hubo un total de (2) errores irresolubles y (13) errores resolubles."

Adjunto el log generado. Cuando corro el comando …bin/ sudo ./guarani esquema_pers importar -v, voy aceptando los cambios y al final falla, con el siguiente mensaje:
conflictos.log (5,2 KB)

" Se encontro un error irrecuperable, se abortará la importación de esta tarea. El error fue: [F:2] Error de constraints en la tabla apex_item. Error en un componente . El error no fue reconocido por el importador. Postgres dijo: ERROR: llave duplicada viola restricción de unicidad 'apex_item_pk' DETAIL: Ya existe la llave (item, proyecto)=(1138000004, guarani).. El sql conflictivo es: INSERT INTO apex_item (proyecto,item,padre_proyecto,padre,carpeta,nivel_acceso,solicitud_tipo,pagina_tipo_proyecto,pagina_tipo,nombre,punto_montaje,menu,solicitud_registrar,zona_listar,imagen_recurso_origen,publico,exportable,creacion,retrasar_headers) VALUES ('guarani','1138000004','guarani','41000082','0','0','web','guarani','guarani_tp_basico','Reporte de Egresados UDC','34000001','0','0','0','apex','0','0','2020-10-06 12:58:48','0'). No se continua con el procedimiento, la importación falló. Se revertirán todos los cambios."

En una consulta a la base de datos, schema ‘desarrollo’, no está esa clave para el proyecto guarani, asiq no sé porque sale el error de “llave duplicada”:

set search_path to 'desarrollo';
select * from apex_item where proyecto = 'guarani' and item_id = 1138000004;

Successfully run. Total query runtime: 149 msec.
0 rows affected.

No sé como resolverlo, para poder incorporar estas personalizaciones a una nueva version de 4 digitos y por último actualizar el entorno de producción. Quedo a la espera de alguna solucion, muchas gracias!

PD: anteriormente incorporé al commit los archivos, pero no había realizado la importacion de esquema_pers, por lo que en la version de 4 digitos creada en el reporsitorio (3.21.1.3), si bien estan los nuevos archivos no “funcionan” (no se ve la personalizacion en el sistema gestion). Si pudieran pasarme el comando para eliminar una version de 4 digitos creada sería mejor, asi no queda basura en el repositorio, gracias!

Hola Nicolas! Cómo estás?

El equipo técnico está analizando el caso para poder entender el inconveniente.
Les responderemos en cuanto tengamos más resultados.

Saludos!

Sumo información de los pasos, revisando nuevamente la documentación recomendada:

  • Se hacen las modificaciones en un entorno de desarrollo
    • <path_guarani>/bin ./guarani esquema_pers iniciar
    • se agrega el archivo en \php\operaciones\matriculas\alumnos\ci_rep_alumnos_udc.php
    • se agrega el archivo en \php\nucleo\matriculas\alumnos\co_alumnos_udc.php
    • en toba editor → Datos->Consultas PHP->co_alumnos.php (cambio el punto de montaje al personalizado co_alumnos_udc.php).
    • en toba editor → Matricula → Reportes → Reporte de alumnos → ci reporte de alumnos (cambio el punto de montaje por el ci personalizado ci_rep_alumnos_udc.php)
    • en toba editor → Matricula → Reportes → Reporte de alumnos → cuadro (tab “columnas”, agrego la columna “cuit” - posición 19)
    • Guardo todo
    • en <path_guarani>/bin
    • ./guarani esquema_pers exportar
    • ./guarani esquema_pers importar
    • ./guarani pers_autoload

Con todo esto queda funcionando en desarrollo todo lo que se personalizó en el reporte de alumnos (mostrar el CUIT).

  • en entorno de produccion (un entorno de prueba de produccion, no el real)
    • reemplazo la carpeta completa de “personalizacion”, copiada desde el entorno de desarrollo donde se exportaron los cambios recientes
    • en <path_guarani>/bin
      • ./guarani esquema_pers importar → me pide que corra primero para ver si hay conflictos
      • ./guarani esquema_pers conflictos → se detectan los cambios
      • ./guarani esquema_pers importar -v → voy aceptando uno a uno los cambios → finaliza correctamente
      • ./guarani pers_autoload

Cargo el sistema por el navegador → voy al reporte de alumnos → no esta la personalización cargada.

Sé que lo recomendado e ideal (y lo que venimos haciendo) es crear la versión de 4 dígitos, para luego apuntar allí en producción, pero primero quiero estar seguro que todo funciona bien.

Envío adjunto los archivos con cambios para que lo puedan probar. Si me estoy equivocando en los pasos (que es lo mas probable) me avisan, o si tengo algún error en los conceptos también. Desde ya muchas gracias!

cambios_udc.zip.txt (12,7 KB)

Buenas tardes Nicolás!

En esa query estas consultando la entrada que tenga el entero “1138000004” en la columna item_id, pero el error que obtuviste antes menciona que “ya existe la llave (item, proyecto)”. Intentaría correr esta query:

set search_path to 'desarrollo';
select * from apex_item where proyecto = 'guarani' and item = '1138000004';

Si esta query efectivamente no devuelve ninguna entrada, continuaremos analizando el inconveniente.

Saludos!

Hola Gabriel!

Si, efectivamente esa consulta tenia esa diferencia. Igualmente, cuando corrí el que enviaste, cuando me devuelve un registro (se ve que de alguna prueba anterior de personalización que quedó trunca), lo elimino y puedo incorporar los cambios con ./guarani esquema_pers importar -v y aceptando uno a uno los cambios.

Como puse anteriormente, en el entorno de desarrollo pude completar los cambios sin problema. El tema es cuando los quiero pasar a un entorno de producción (ya sea haciendo la versión de 4 dígitos o simplemente copiando los archivos personalizados + los generados cuando hago ./guarani esquema_pers exportar).

Quizás estoy haciendo la secuencia de pasos mal, o me esta faltando algún paso. La verdad es que al pasar los archivos personalizados, y hacer lo siguiente:

  1. ./guarani esquema_pers importar -v (me pide correr los conflictos)
  2. ./guarani esquema_pers conflictos (se ven los cambios a realizar)
  3. ./guarani esquema_pers importar -v (acepto los cambios uno a uno, y finaliza sin errores)
  4. ./guarani pers_autoload (para que otras clases detecten las clases nuevas)

Cuando cargo el sistema de gestión, no están los cambios que necesito en el reporte de alumnos. Estoy pensando que quizás me falta compilar recursos nuevamente? ahora voy a probar eso.

Desde ya gracias por tu ayuda, seguimos probando. Quizás alguien que haya hecho alguna personalización de este tipo puede comentar cuál es mi error, así lo soluciono, saludos!

Hola!

Actualizo: en mi virtual de prueba limpie el registro que daba el sql (select * from apex_item where proyecto = ‘guarani’ and item = ‘1138000004’;), después sigo todos los pasos (exportar, conflictos, importar, autoload) y todo funciona bien.

Subo los cambios al repositorio, creo la versión de 4 dígitos (3.21.1.4), actualizo una virtual de “producción” que apunta a la nueva versión de 4 dígitos, corro los comandos correspondientes (importar, conflictos, importar, autoload, compilar) y no se ven los cambios reflejados.

Cuando reemplazo los archivos de la virtual de desarrollo (toda la carpeta “personalizacion/php/”) a la virtual de produccion, corro nuevamente los comandos (importar, conflictos, importar, autoload, compilar), y ahora si se ven reflejados los cambios.

Si alguien del staff puede probar la versión nueva de 4 dígitos, sería buenísimo para saber si me falta agregar algo. Muchas gracias!

Hola Nicolas! Cómo estás?

Te pedimos disculpas por la falta de respuesta.

Pudieron pasar la personalización a producción y allí les funcionó bien?

Saludos!

Hola!

Como va? pudimos pasar la personalización pero no fue a través de la nueva versión de 4 dígitos, ya que de esa manera no tomaba los cambios. Lo que hice fue esto:

Cuando reemplazo los archivos de la virtual de desarrollo (toda la carpeta “personalizacion/php/”) a la virtual de produccion, corro nuevamente los comandos (importar, conflictos, importar, autoload, compilar), y ahora si se ven reflejados los cambios.

Como quedó funcionando, no seguimos con el tema. Cuando queramos actualizar a una nueva versión seguramente me acordaré de este posteo. De todas maneras, la versión de 4 dígitos (3.21.1.4) está en el repositorio, si alguien del staff puede probarla en algún servidor de desarrollo y ver si esta el campo “CUIT” en el reporte de alumnos sería bienvenido. Sino quedará para otra ocasión.

Muchas gracias igualmente!

Hola Nicolás,
En la rama /trunk/3.21.1 no están los metadatos de esta personalización que mencionan. Para el trabajo con personalizaciones deben seguir este esquema: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.21.0/personalizaciones/trabajo_diario. Fijate que en ningún momento intervienen los comandos ‘guarani esquema_pers exportar’ y ‘guarani esquema_pers importar’, que sólo se utilizan a la hora de migrar personalizaciones de una versión a otra. Creo que viene por ahí la confusión…
Saludos, Florencia.