[SOLUCIONADO] Error al agregar proveedor en Pilaga

Hola, buen dia. ¿Como estan?

Tenemos Pilaga 3.4.4 y Diaguita 2.6.1, estamos intentando configurar el modulo de Arai-Proveedores.

Los 3 sistema estan en el mismo server de app, y las 3 BD en el mismo server de DB

  1. Instalamos ARAI mediante el actualizador de la nueva version de Pilaga (al momento que pasamos de la 3.3.4 a la 3.4.4)
  2. Se creo ok la BD: arai_proveedores con sus respectivos 4 schemas: auxiliar_catalogos, catalogos, public y sincronizador
  3. Corrimos el sh pilaga.sh arai sincronizacion_inicial (dio algunos errores, pero al parecer se proceso ok - adjunto log)
  4. Corrimos el toba proyecto arai_sinc_inicial –pdiaguita –iproduccion (dio algunos errores, pero al parecer se proceso ok - adjunto log)
  5. Dentro del sistema de Pilaga y Diaguita elegimos la opcion: APLICAR_SINCRONIZACION_ARAI_PROV = SI
  6. En las tablas de la BD de Arai (arai_proveedores) muchas tablas tienen datos: catalogos.mdp_personas , catalogos.sau_pr_proveedores, catalogos.sau_pr_rubros
  7. Al momento de agregar un proveedor en Pilaga (para ver si replica en Diaguita) nos aparece el error:
La instalación se encuentra configurada \n para utilizar catálogos comunes pero las bases Pilaga y Arai no \n parecen estar sincronizadas, o bien existe actividad realizada en \n modo desconectado que aún no fué sincronizada. Por favor ejecute \n el comando sincronización inicial para repararlo.

Una aclaracion: no vemos la operacion: “ABM-Arai Personas” como decia la documentacion (quiza cambio con las versiones nuevas esa operacion), por lo cual lo estamos intentando desde: Maestros - Tablas anexas - ABM - Personas, proveedores y clientes

  1. Ejecutamos este query

set search_path to diaguita;

SELECT (SELECT COUNT(anx_personas.persona) FROM anx_personas 
                                        INNER JOIN sau_pr_proveedores ON anx_personas.persona = sau_pr_proveedores.persona 
                                        INNER JOIN anx_personas_x_documentos ON anx_personas.persona = anx_personas_x_documentos.persona
                                        WHERE anx_personas.persona_arai IS NULL AND (substring(anx_personas_x_documentos.numero,1,2) <> '50' AND substring(anx_personas_x_documentos.numero,1,2) <> '55' AND substring(anx_personas_x_documentos.numero,1,2) <> '51')) as persona,
                       (SELECT COUNT(*) FROM anx_domicilios 
                                        INNER JOIN anx_personas_domicilios ON anx_domicilios.domicilio = anx_personas_domicilios.domicilio
                                        INNER JOIN sau_pr_proveedores ON anx_personas_domicilios.persona = sau_pr_proveedores.persona
                                        INNER JOIN anx_personas_x_documentos ON anx_personas_x_documentos.persona = anx_personas_domicilios.persona 
                                        WHERE anx_domicilios.domicilio_arai IS NULL AND (substring(anx_personas_x_documentos.numero,1,2) <> '50' AND substring(anx_personas_x_documentos.numero,1,2) <> '55' AND substring(anx_personas_x_documentos.numero,1,2) <> '51')) as domicilio

Y devuelve:

Persona: 7926; Domicilio: 7984

Fui siguiendo los pasos de aca y leyendo varios post del foro, pero no estoy encontrando como avanzar.
http://documentacion.siu.edu.ar/wiki/SIU-Arai/proveedores#Como_instalarlo
http://documentacion.siu.edu.ar/wiki/SIU-Arai/proveedores

Agradezco su ayuda.

Saludos.


error ABM arai.jpg

error ABM arai.png

Log sincronizacion inicial Pilaga.txt (141 KB)

Log sincronizacion inicial Diaguita.txt (1.87 KB)

Al ver esos registros que faltaban sincronizar

Persona: 7926; Domicilio: 7984

Corri nuevamente:
sh pilaga.sh arai sincronizacion_inicial
toba proyecto arai_sinc_inicial –pdiaguita –iproduccion

Acá dejo las salidas:

root@XXXXX:ruta/SIU-Diaguita-2.6.1# . ./entorno_toba.env Entorno cargado. Ejecute 'toba' para ver la lista de comandos disponibles. root@XXXXX:ruta/SIU-Diaguita-2.6.1# cd bin/ root@XXXXX:ruta/SIU-Diaguita-2.6.1/bin#[b] toba proyecto arai_sinc_inicial –pdiaguita –iproduccion[/b]

===============================
Actualizaci▒n de secuencias

Secuencia sq_anx_personas en base Diaguita esquema Diaguita actualizada correctamente!
Secuencia sq_anx_domicilios en base Diaguita esquema Diaguita actualizada correctamente!
Secuencias en base Diaguita esquema catalogos: Actualizadas las secuencias!
Secuencias en base Arai esquema catalogos: Actualizadas las secuencias!
Secuencias en base Arai esquema sincronizador: Actualizadas las secuencias!

========================================================
Iniciando la sincronizacion inicial / resincronizacion

[----------------------------------------]

  • Ha ocurrido un error:
    ERROR ejecutando SQL:
    [CODIGO]: 7
    [SQLSTATE]: db_23503
    [MENSAJE]: ERROR: inserci▒n o actualizaci▒n en la tabla ▒sau_pr_proveedor_rubro▒ viola la llave for▒nea ▒sau_pr_proveedor_rubro_rubro_fkey▒
    DETAIL: La llave (rubro)=(11) no est▒ presente en la tabla ▒sau_pr_rubros▒.
    [SQL EJECUTADA]: INSERT INTO catalogos.sau_pr_proveedor_rubro (rubro,persona) VALUES (11,9071) – toba_log: 144407

=============================
Iniciando la sincronizacion

  • Registros actualizados de la actividad local pendiente :… 0

  • Memoria utilizada :… 15.336.720

============================================================
Iniciando el procesamiento de la actividad local pendiente

  • Registros actualizados de la actividad local pendiente :… 3

  • Memoria utilizada :… 15.336.720

Tiempo total transcurrido: 0 segundos.


root@XXXXX:ruta/2019/SIU-Pilaga_3.4.4# cd bin/
root@XXXXX:ruta/2019/SIU-Pilaga_3.4.4/bin# sh pilaga.sh arai sincronizacion_inicial
PHP Fatal error: Class ‘xmigra_aplicacion_comando_base’ not found in ruta/2019/SIU-Pilaga_3.4.4/php/extension_toba/pilaga_comando.php on line 8
root@XXXXX:ruta/2019/SIU-Pilaga_3.4.4/bin#

Hola Pablo,

Lo que te está indicando ese error es que el rubro con id 11 no está presenta en la base arai proveedores y tampoco debe estar en la base de diaguita.
Deben revisar la tabla de rubros de Pilaga y debe quedar exactamente igual en la base Diaguita y Arai Proveedores.
Los datos de las tablas rubros, conceptos, condiciones, codigos postales y localidades no se sincronizan automáticamente.
En general con los rubros suele haber diferencias porque Pilaga permite agregar nuevos rubros.

Puntualmente para este caso habría que agregar el rubro 11 en las bases Arai Proveedores y Diaguita, seguramente aparezca algun otro faltante, en ese caso el procedimiento es el mismo.

Saludos

Leonardo,

Muchas gracias por la respuesta.

actualmente en la Base arai_proveedores en la tabla: sau_pr_proveedor_rubro no tiene nada cargado en el id = 11.

Pilaga y diaguita si tienen ambas en la tabla sau_pr_proveedor_rubro el id = 11 , aunque tienen incongruencias entre si, vamos a estar dejandolas igual entre si, y luego ejecutando nuevamente la resincronizacion.

¿La sincronizacion satelite tambien tenemos que correrla? ya que no me la está tomando, quizas se modificó con algun cambio de version

Saludos.

Bien, los rubros (al igual que las otras tablas mencionadas) deben estar igual en las tres bases: Arai proveedores, Pilaga y Diaguita.
El comando de sincronización de datos satelites está pensado para asistir en esos casos, pero no es exacta su resolución para este tipo de casos, por lo cual si realizan la corrección manual no necesitan correr este comando.

Saludos

Leonardo,

Estamos limpiando y dejando las 3 tablas de Rubros iguales:
DB Arai ------> catalogos.sau_pr_rubros
DB Pilaga ----> public.anx_rubros
DB Diaguita–> diaguita.anx_rubros

Estamos usando los IDs de catalogos.sau_pr_rubros (DB arai) como “modelo” para que queden igual en Pilaga-Diaguita

Actualmente está asi:
catalogos.sau_pr_rubros public.anx_rubros diaguita.anx_rubros
1 ALIMENTOS 2 Conv. Abordaje - Tutores Cohorte 2010 1 ALIMENTOS
2 LIBRERIA,PAP. Y UTILES OFICINA 3 Conv. Abordaje - Equipo de Administración 2 Conv. Abordaje - Tutores Cohorte 2010
3 ELEMENTOS DE LIMPIEZA 5 INFORMATICA 3 Conv. Abordaje - Equipo de Administración
4 INDUMENT TEXTIL Y CONFECCIONES 6 Locación de Servicio 4 INDUMENT TEXTIL Y CONFECCIONES
5 BAZAR Y MENAJE 7 LIBRERIA, PAP. Y UTILES DE OFICINA 5 INFORMATICA
… … …

La consulta es, si modificando en algunos casos los IDs de catalogos.sau_pr_rubros (DB Arai) esto puede trae conflictos en próximas actualizaciones de Arai, no se si me explico

Por lo que se observa los rubros de la base arai proveedores no tienen nada que ver con los rubros que usan en Diaguita y Pilagá.
Diaguita, Pilagá y Arai Proveedores distribuyen en su instalación inicial la misma lista de rubros, por lo visto en Diaguita y Pilagá han modificado dicha lista.

En mi opinión la solución mas prolija en su situación seria:

  • Entre Diaguita y Pilaga tomar como referencia la base que tenga mas rubros cargados, y dejar la lista de rubros exactamente igual en ambas, no solo en IDs, sino tambien en descripciones.
  • Borrar todos los proveedores sincronizados en la base Arai Proveedores, o directamente arrancar con una base desde cero.
  • Borrar el contenido de la tabla de rubros de la base Arai Proveedores (que actualmente no tiene nada que ver con los rubros que tienen en Diaguita y Pilaga).
  • Completar la tabla de rubros de la base Arai Proveedores con el mismo contenido que quedó en Diaguita y Pilagá.
  • Realizar una resincronización desde Pilagá y Diaguita.

Con esa secuencia debería quedar resuelto el problema

Saludos

Hola Leonardo, ¿como estas?

Estuve armando unos scripts y ya tengo iguales las tablas maestras (rubros, conceptos, condiciones, cod postales y localidades) en los 3 sistemas

Rubros (mismos 55 rubros)
Arai ---------> catalogos.sau_pr_rubros
Diaguita —> diaguita.anx_rubros
Pilaga-------->public.anx_rubros


Conceptos (mismos 8 conceptos)

Arai --------->catalogos.sau_rt_conceptos
Diaguita —> diaguita.sau_rt_conceptos
Pilaga-------->public.sau_rt_conceptos


Condiciones (mismas 14 condiciones)

Arai --------->catalogos.sau_rt_condiciones
Diaguita —> diaguita.sau_rt_condiciones
Pilaga-------->public.sau_rt_condiciones


Codigos postales (Pilaga = Arai, y Diaguita tiene varios registros mas - no creo que esto traiga algun inconveniente )

Arai --------->ccatalogos.mug_codigos_postales
Diaguita —> diaguita.anx_codigos_postales
Pilaga-------->public.anx_codigos_postales


Localidades (igual en los 3)

catalogos.mug_localidades
diaguita.anx_localidades
public.anx_localidades


  1. Al ejecutar sh pilaga.sh arai sincronizacion_inicial sincroniza ok (adjunto print)

  2. Al ejecutar toba proyecto arai_sinc_inicial –pdiaguita –iproduccion me devuelve 1 solo error (adjunto)

  3. En Pilaga V3.4.4 en Administración —> Configuración de parámetros:
    aplicar_sincronizacion_arai = SI
    aplicar_sincronizacion_arai_prov = SI

  4. En Diaguita V2.6.1 en —> Configuración de parámetros:
    APLICAR_SINCRONIZACION_ARAI_CATALOGOS = SI
    APLICAR_SINCRONIZACION_ARAI_PROV = SI

  5. Al ingresar a Pilaga (Maestros - Tablas anexas ABM - Personas, proveedores y clientes) ya no aparece el error que tenia al inicio de este post:
    La instalación se encuentra configurada \n para utilizar catálogos comunes pero las bases Pilaga y Arai no \n parecen estar sincronizadas, o bien existe actividad realizada en \n modo desconectado que aún no fué sincronizada. Por favor ejecute \n el comando sincronización inicial para repararlo.

Ahora me aparece bien: (adjunto print)
EL CATÁLOGO SE ENCUENTRA FUNCIONANDO EN MODO SINCRONIZADO CON SIU-ARAÍ PROVEEDORES

  1. A diferencia del punto anterior, cuando entro a Diaguita si me aparece el mensaje: (adjunto print)
    La instalaci\F3n se encuentra configurada \n para utilizar cat\E1logos comunes pero las bases Pilaga y Arai no \n parecen estar sincronizadas, o bien existe actividad realizada en \n modo desconectado que a\FAn no fu\E9 sincronizada. Por favor ejecute \n el comando sincronizaci\F3n inicial para repararlo.

  2. A su vez, volvi a correr

set search_path to diaguita;

SELECT (SELECT COUNT(anx_personas.persona) FROM anx_personas
                                        INNER JOIN sau_pr_proveedores ON anx_personas.persona = sau_pr_proveedores.persona
                                        INNER JOIN anx_personas_x_documentos ON anx_personas.persona = anx_personas_x_documentos.persona
                                        WHERE anx_personas.persona_arai IS NULL AND (substring(anx_personas_x_documentos.numero,1,2) <> '50' AND substring(anx_personas_x_documentos.numero,1,2) <> '55' AND substring(anx_personas_x_documentos.numero,1,2) <> '51')) as persona,
                       (SELECT COUNT(*) FROM anx_domicilios
                                        INNER JOIN anx_personas_domicilios ON anx_domicilios.domicilio = anx_personas_domicilios.domicilio
                                        INNER JOIN sau_pr_proveedores ON anx_personas_domicilios.persona = sau_pr_proveedores.persona
                                        INNER JOIN anx_personas_x_documentos ON anx_personas_x_documentos.persona = anx_personas_domicilios.persona
                                        WHERE anx_domicilios.domicilio_arai IS NULL AND (substring(anx_personas_x_documentos.numero,1,2) <> '50' AND substring(anx_personas_x_documentos.numero,1,2) <> '55' AND substring(anx_personas_x_documentos.numero,1,2) <> '51')) as domicilio
Persona:Domicilio: 9031;9116
  1. Una ultima aclaracion: Tengo muchos proveedores duplicados en Diaguita. En Pilaga pareceria estar ok.

SIU.rar (404 KB)

Hola Pablo,

De acuerdo a lo comentado, en Diaguita yo aplicaría el comando de resincronización, y ver si eso resuelve el error que se observa en la captura. http://documentacion.siu.edu.ar/wiki/SIU-Arai/proveedores#resincroniza_base
Por el problema de los proveedores duplicados escribime a lramirez@siu.edu.ar que coordinamos una videoconferencia, analizamos el caso y utilizamos un script que tenemos desarrollados para resolver estos casos.

Saludos

Leonardo

Apliqué la resincronizacion en Diaguita y me arrojaba “PHP Notice: Use of undefined constant produccion - assumed ‘produccion’ in /var/www/diaguita/php/extension_toba/diaguita_comando.php on line 1114”

Segui lo que pusieron aca [SOLUCIONADO] INSTANCIA: 'apex_pa_instancia' - Araí - Catálogos - Foro Comunidad SIU y me corrió ok la resincronizacion

Adjunto en este post print con el resultado.

A su vez al ingresar al catalogo de proveedores desde Diaguita me sigue mostrando el mismo error:

La instalaci\F3n se encuentra configurada \n para utilizar cat\E1logos comunes pero las bases Pilaga y Arai no \n parecen estar sincronizadas, o bien existe actividad realizada en \n modo desconectado que a\FAn no fu\E9 sincronizada. Por favor ejecute \n el comando sincronizaci\F3n inicial para repararlo.

Como dice ahi también hice una sincronizacion_inicial pero sigue la falla.

En estos momentos estan triplicados los proveedores en Diaguita (Pilaga OK).


resincronizar Diaguita.jpg

resincronizar Diaguita.png

Escribime al mail que te pase en el mensaje anterior para poder coordinar una videoconferencia y analizar como tienen los datos en la base Diaguita y el motivo que está generando error en la sincronización.

Gracias Leonardo, ya te mandé el correo.

Saludos!

Leonardo, quería agradecerte por acá la gran ayuda que nos diste para terminar de configurar SIU-Arai Proveedores en la UNLa.

Realmente muy expeditivo y colaborativo en todo.

Ya podes cerrar este post. Te mando un saludo!