[SOLUCIONADO] Bug en clonación entre proyectos?

Hola, quise realizar una clonación de una operación de un proyecto en otro. Y tira un error por un problema de claves de los ids. de los componentes duplicados.
Se me ocurre que debería buscar un nº nuevo y generarlo.

Probé también marcando la operación como Exportable, e importarla en el otro proyecto, pero no tuve posibilidades tampoco. Por este lado el error se produce ya que las fuentes de datos origen y destino, son diferentes, pero los objetos de datos son iguales, por lo que debería reemplazarse también ese dato.

En fin… no es algo muy importante, y ya lo resolví, pero sigue siendo interesante que la herramienta tenga una mejora continua.

Mil gracias!

Que versión estas utilizando? Podés adjuntar el log de toba al momento de intentar la clonación? Creo que este bug se había resuelto en algún momento. Si es el bug que creo que es.

Toba 1.5.x actualizado…

Te paso lo que puedo pescar.
No me tira nada en el log… o no lo sé buscar.

El valor de inserción o actualización de una clave externa no es válido. Más info...

SQLSTATE: db_23503
CODIGO: 7

MENSAJE: SQLSTATE[23503]: Foreign key violation: 7 ERROR: inserción o actualización en la tabla «apex_objeto_ei_formulario_ef» viola la llave foránea «apex_ei_f_ef_fk_datos_tabla» DETAIL: La llave (objeto_ei_formulario_proyecto,carga_dt)=(upso_docentes,3037) no está presente en la tabla «apex_objeto».

SQL: INSERT INTO apex_objeto_ei_formulario_ef ( objeto_ei_formulario_proyecto, objeto_ei_formulario, identificador, elemento_formulario, columnas, obligatorio, inicializacion, orden, etiqueta, descripcion, colapsado, desactivado, estilo, total, etiqueta_estilo, popup_carga_desc_metodo, popup_carga_desc_clase, popup_carga_desc_include, popup_puede_borrar_estado, estado_defecto, solo_lectura, carga_metodo, carga_clase, carga_include, carga_col_clave, carga_col_desc, carga_sql, carga_fuente, carga_lista, carga_maestros, carga_cascada_relaj, carga_no_seteado, edit_tamano, edit_maximo, edit_mascara, edit_unidad, edit_rango, edit_filas, edit_columnas, edit_wrap, edit_resaltar, edit_ajustable, popup_item, popup_proyecto, popup_editable, popup_ventana, fieldset_fin, check_valor_si, check_valor_no, check_desc_si, check_desc_no, fijo_sin_estado, editor_ancho, editor_alto, editor_botonera, selec_cant_minima, selec_cant_maxima, selec_utilidades, selec_tamano, selec_serializar, edit_confirmar_clave, upload_extensiones, selec_ancho, oculto_relaja_obligatorio, carga_dt, carga_no_seteado_ocultar, carga_consulta_php, edit_expreg, check_ml_toggle, selec_cant_columnas, deshabilitar_rest_func, permitir_html, carga_permite_no_seteado, solo_lectura_modificacion, cascada_mantiene_estado ) VALUES (“upso_docentes”, “3166”, “id_carrera_dictada”, “ef_combo”, “id_carrera_dictada”, “1”, DEFAULT, “1”, “Carrera”, DEFAULT, “0”, “0”, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, “1”, “get_descripciones”, DEFAULT, DEFAULT, “id”, “carrera_dictada”, DEFAULT, “carreras”, DEFAULT, DEFAULT, “0”, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, “0”, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, “0”, “3037”, “0”, DEFAULT, DEFAULT, DEFAULT, DEFAULT, “0”, “0”, “0”, “0”, “1”);
SQLSTATE[25P02]: In failed sql transaction: 7 ERROR: transacción abortada, las órdenes serán ignoradas hasta el fin de bloque de transacción Más info…

SQLSTATE: db_25P02

CODIGO: 7

MENSAJE: ERROR: transacción abortada, las órdenes serán ignoradas hasta el fin de bloque de transacción

SQL: SELECT rf.restriccion_funcional FROM apex_grupo_acc_restriccion_funcional rf WHERE rf.usuario_grupo_acc IN(“admin”) AND proyecto = “toba_editor”

Creo que no tiene que ver con un bug y creo además que este caso quizás tendría que ser controlado desde el framework para que emita el error correctamente. Creo que el problema tiene que ver con que en tu formulario estás utilizando un método de carga para un ef, que utiliza un datos_tabla. El proceso de clonación intentará insertar ese ef haciendo referencia a un datos_tabla y como este no existe, por eso genera ese error. Chequea esos efs y proba de clonar la operación nuevamente sin este método de carga.

Puede ser eso. Pero el “mismo” datos tabla existe en el otro proyecto, relacionado con una tabla de igual nombre y estructura.

Es probable que ande por ahí el problema… el tema sería entonces, dejar esos efs sin carga, clonar toda la operación y luego recuperar en ambos proyectos el origen de la carga?

Puede ser eso. Pero el "mismo" datos tabla existe en el otro proyecto, relacionado con una tabla de igual nombre y estructura.

Existe con el mismo id (3037)? Probablemente tengan el mismo nombre pero diferente id.

Es probable que ande por ahí el problema... el tema sería entonces, dejar esos efs sin carga, clonar toda la operación y luego recuperar en ambos proyectos el origen de la carga?

Si, probá de dejarlos momentaneamente sin carga y proba de colnar nuevamente. Te recomiendo a modo de backup y para no perder toda la definición de ese formulario en particular, de clonar el mismo en el proyecto en el que está actualmente y luego si sacarle la carga a los efs en el formulario clonado. De esa manera evitas estar toqueteando un formulario de una operación que funciona correctamente.