Estamos con toba 2.6
Quiero importar la operación “Log de Datos” que está definida dentro de toba_usuarios hacia mi proyecto.
Observo que dicha operación tiene la propiedad Exportable tildada.
Dentro de mi proyecto, en la fuente de datos, cree y uso Auditoría.
Me agradaría poder importar la operación esa para que un administrador desde menú pueda consultar los logs.
El inconveniente es que al querer importarla desde mi proyecto me dice lo siguiente:
Fallo en la generación: SQLSTATE[23503]: Foreign key violation: 7 ERROR:
insert or update on table “apex_objeto_eventos” violates foreign key constraint “apex_objeto_eventos_fk_accion_vinculo”
DETAIL: Key (proyecto, accion_vinculo_item)=(Concursos, 3445) is not present in table “apex_item”.
Agradeceré cualquier orientación que pudieran brindarme.
Saludos.
el tema es el siguiente, la operacion de logs de datos… tiene un vinculo hacia otra operacion que permite ver el log de sesiones, como la importacion solamente clona el primer nivel, al intentar armar el vinculo hacia la otra operacion falla por no encontrarse el dato para tu proyecto.
Lo que te diria es que temporalmente quites el destino del vinculo antes de importar la operacion y luego lo reestablezcas.
tendrias que editar el cuadro de la operacion de logs en toba_usuarios, quitarle el vinculo y luego eliminar el evento en la pestaña correspondiente.
Luego de eso, pasas a tu proyecto e importas la operacion
Finalmente para revertir los cambios que hiciste en toba_usuarios, la mas sencilla es ejecutar una regeneracion del proyecto toba_usuarios, de esa manera lo llevas al estado inicial.
Richard:
Observo que la operación “Log de datos” que es la que me interesa, en el cuadro tiene un vínculo a “Log de Sesiones y Accesos”.
Eliminé tanto el vínculo como el evento. Y el error sigue siendo el mismo al tratar de importar:
Fallo en la generación: SQLSTATE[23503]: Foreign key violation: 7 ERROR:
insert or update on table “apex_objeto_eventos” violates foreign key constraint “apex_objeto_eventos_fk_accion_vinculo”
DETAIL: Key (proyecto, accion_vinculo_item)=(Concursos, 3445) is not present in table “apex_item”.
Seguí mirando un poco más y “Log de Sesiones y Accesos” tiene un vínculo a “Observaciones”
La operación “Observaciones” no tiene ningún vínculo a nada y la pude importar lo más bien en mi proyecto.
Después intenté importar la operación “Log de Sesiones y Accesos” (tanto con el vínculo declarado como con el vínculo eliminado y el evento también), y el error siempre es:
Fallo en la generación: SQLSTATE[23503]: Foreign key violation: 7 ERROR:
ERROR: insert or update on table “apex_objeto_ei_formulario_ef” violates foreign key constraint “apex_ei_f_ef_fk_consulta_php”
DETAIL: Key (objeto_ei_formulario_proyecto, carga_consulta_php)=(Concursos, 30000001) is not present in table “apex_consulta_php”.
Alguna otra sugerencia??
Alguna documentación acerca de la importación de operaciones y cómo funciona para entenderla un poco mejor?
Muchas gracias por todo!!
Saludos.
esto se debe a un error en el editor que no blanquea correctamente un par de columnas que el clonador esta usando. Ya cree un ticket para solucionarlo, mientras te paso una SQL que podes ejecutar para salvar esa situacion, la cual hace el paso extra a la eliminacion del evento:
UPDATE apex_objeto_ei_cuadro_columna SET vinculo_carpeta = NULL , vinculo_item = NULL WHERE objeto_cuadro_proyecto = 'toba_usuarios'
AND objeto_cuadro = '2272'
AND objeto_cuadro_col = '30000008';
Por otro lado, un detalle mas que me habia olvidado, en el filtro de dicha operacion hay dos campos apuntando a una clase de consulta… esos campos son el proyecto y el usuario. Lo que deberias hacer es modificar el mecanismo de carga de esas columnas para que tampoco salte dicha FK.
Saludos
PD: No olvides regenerar toba_usuarios luego de esos cambios, sino dicha operacion no te va a funcionar alli.
Richard:
Siguiendo las indicaciones que me sugerís, y definiendo sin carga los campos proyecto y usuario, me encuentro con este otro error:
Fallo en la generación: SQLSTATE[23503]: Foreign key violation: 7
ERROR: insert or update on table “apex_objeto_ei_formulario_ef” violates foreign key constraint “apex_ei_f_ef_fk_consulta_php”
DETAIL: Key (objeto_ei_formulario_proyecto, carga_consulta_php)=(Concursos, 30000001) is not present in table “apex_consulta_php”
Si directamente borro los campos proyecto y usuario, si logra importa la operación, pero al ejecutarla, me encuentro con lo siguiente:
Fatal error: Class ‘admin_instancia’ not found in /home/fcex/admin/toba_2.6.3/proyectos/Concursos/php/log_de_datos/ci_auditoria.php on line 12
Y efectivamente, en la línea 12 está lo siguiente:
function ini__operacion()
{
if (! is_null(admin_instancia::get_proyecto_defecto())) {
$this->s__filtro = array('proyecto' => admin_instancia::get_proyecto_defecto());
}
}
Gracias por la paciencia y la orientación!!!
Saludos.
Por esta cuestion es que te habia mencionado lo siguiente:
Por otro lado, un detalle mas que me habia olvidado, en el filtro de dicha operacion hay dos campos apuntando a una clase de consulta.. esos campos son el proyecto y el usuario. Lo que deberias hacer es modificar el mecanismo de carga de esas columnas para que tampoco salte dicha FK.
Si directamente borro los campos proyecto y usuario, si logra importa la operación, pero al ejecutarla, me encuentro con lo siguiente:
Fatal error: Class ‘admin_instancia’ not found in /home/fcex/admin/toba_2.6.3/proyectos/Concursos/php/log_de_datos/ci_auditoria.php on line 12
Y efectivamente, en la línea 12 está lo siguiente:
function ini__operacion()
{
if (! is_null(admin_instancia::get_proyecto_defecto())) {
$this->s__filtro = array('proyecto' => admin_instancia::get_proyecto_defecto());
}
}</blockquote>
Hay una clase de consulta que usa toba_usuarios internamente que se llama admin_instancia (dentro del directorio php/lib), en ella estan las consultas que impactan sobre la bd de toba, tendrias que copiarla o al menos el metodo que necesitas.
Muchas gracias Richard!!
Ahora si pude hacer la importación sin problemas y quedó andando la operación muy bien y útil!!
Ahora estoy intentando además importar “Log de Sesiones y Accesos”, pero me está complicando un poco… si bien logré importarla, me está costando hacerla andar. Mi consulta es, es factible importarla y que quede andando? (ya que por defecto no estaba tildada la casilla de Exportable)
Gracias nuevamente!!!
la operacion de log de sesiones tiene que acceder a tablas puntuales de Toba, no asi la de log de datos que a lo sumo necesitaba saber el proyecto. Por eso es un poco mas complicada, tenes que tener una fuente apuntando a la instancia de Toba (que segun la version ademas necesita de uno o mas schemas), etc… el otro tema es que si hacemos algun cambio en la estructura de dichas tablas, la operacion te va a dejar de funcionar.
No conozco los requerimientos puntuales de lo que estas haciendo… pero salvo que sea muy especifico, lo ideal seria que dicha operacion la accedas desde toba_usuarios, entre otras cosas por lo que te menciono mas arriba.
Que se puede importar y hacer funcionar, seguramente con algo mas de esfuerzo… que sera recomendable a futuro, es otro tema :D.
Richard:
Después de un buen rato la saqué andando a la operación “Log de Sesiones y Accesos”, ya que necesitaba varias funciones de lib/consultas_instancia.php.
Y gracias por la explicación de por qué no es recomendable importarla, no lo tenía presente.
Fue de mucha utilidad toda tu ayuda y comentarios.
Nuevamente, muchas gracias.
Saludos.