Proceso de importacion de articulos

Inicio Foros Foro principal Ayuda Proceso de importacion de articulos

  • Este debate está vacío.
Viendo 12 entradas - de la 1 a la 12 (de un total de 12)
  • Autor
    Entradas
  • #31374

    Trate de incorporar mediante elproceso de importar, articulos.
    El archivo CSV tiene el siguiente formato.
    #26 NEGRO,Cartucho Tinta #26,0,25,0,0

    En los dos caso me da el siguiente mensaje.
    Filas en el archivo / cargadas y preparadas para importar
    2 / 0#

    El error que tira es:


    Code:
    ===========> DB.executeUpdate: Update=UPDATE I_Product SET Value=’#26 NEGRO’,Name=’Cartucho Tinta #26′,UPC=0,PriceList=25,C_BPartner_ID=0,M_Product_Category_ID=0,IsActive=’Y’,Processed=’N’,I_IsImported=’N’,Updated=CURRENT_TIMESTAMP,UpdatedBy=100 WHERE I_Product_ID=1014663 [null] [127]
    org.postgresql.util.PSQLException: ERROR: insert or update on table “i_product” violates foreign key constraint “cbpartner_iproduct”
    Detail: Key (c_bpartner_id)=(0) is not present in table “c_bpartner”.; State=23503; ErrorCode=0
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:307)
    at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.postgresql.ds.common.PooledConnectionImpl$StatementHandler.invoke(PooledConnectionImpl.java:467)
    at $Proxy1.executeUpdate(Unknown Source)
    at org.openXpertya.util.CPreparedStatement.executeUpdate(CPreparedStatement.java:227)
    at org.openXpertya.util.DB.executeUpdate(DB.java:839)
    at org.openXpertya.util.DB.executeUpdate(DB.java:786)
    at org.openXpertya.impexp.ImpFormat.updateDB(ImpFormat.java:739)
    at org.openXpertya.apps.form.VFileImport.cmd_process(VFileImport.java:551)
    at org.openXpertya.apps.form.VFileImport.access$000(VFileImport.java:65)
    at org.openXpertya.apps.form.VFileImport$1.construct(VFileImport.java:331)
    at org.openXpertya.apps.SwingWorker$2.run(SwingWorker.java:45)
    at java.lang.Thread.run(Unknown Source)

    ——————————-
    ===========> DB.saveError: DBExecuteErrorrr – ERROR: insert or update on table “i_product” violates foreign key constraint “cbpartner_iproduct”
    Detail: Key (c_bpartner_id)=(0) is not present in table “c_bpartner”. [127]
    ——————————-
    ===========> ImpFormat.updateDB: I_Product_ID=1014663 – rows updated=-1 [127]

    Vi en otro post, que la subfamilia es obligatoria.

    -Como saber que campos son obligatorios? En el caso de Subfamilia, va el identificador? De donde lo saco?
    Intente Tambien cambiando el tipo de la subfamilia a cadena y poniendo el nombre de la subfamilia.

    -Para que sirve la funcion copiar lineas en formato de importacion de datos. Con esto copio columnas para mi importacion y podes tener mas campos que importar?
    -En Formato de importacion de datos, mas precisamente el registro de Importar Datos, me aparece como Tabla I_Product_Import. En la base yo tengo I_Product, como es esto?
    -El boton Importar Productos, dentro de Importar productos, importa todos los articulos que se hayan importado mediante un archivo csv?
    -Cual es la tabla de formato de importacion?

    Saludos

    #34384

    El otro caso que no lo cite es
    #26 NEGRO,Cartucho Tinta #26,0,25,0,Cartuchos

    En el formato de importacion cambie el tipo de Familia a Cadena y vi que tira un error con el tipo de datos.

    #34385
    Javier Ader
    Participante

    Antes que nada, edita tu post, es muy ancho y no se puede leer
    correctamente (bueno, el error es en parte del foro…)
    Que versión de libertya estás usando? Al menos en la 10.3 hay un
    temita con le formato de importación actual; esta creado para
    que en el CVS pongas el id del proveedor y el id de la “subfamilia”
    (ojo, NO de la famiilia; esta definido el nombre en el importador).
    Ninguno de estos datos es obligatorio, pero si los pones NO tenes
    que poner 0; en vez no pongas nada (en vez de
    #26 NEGRO,Cartucho Tinta #26,0,25,0,0
    pone
    #26 NEGRO,Cartucho Tinta #26,0,25,,
    )

    Obvio que de esa manera cuando importes no va a tener asociado ni
    una subfamilia ni un proveedor. Si queres solucionar esto tenes
    dos opciones:
    1)averiguas el id interno del proveedores y de la subamilias que uses
    y las pones en el las últimas dos columnas del cvs
    o
    2) cambias el formato de importación para que las ultimas dos entradas
    del cvs no solo sean strings si no que apunten a otra columnas (
    en vez C_BPartner_ID_Entidad Comercial; pone BPartner_Value_Bussiness,
    para el caso del proveedor y en lugar de M_Product_Category_ID_xxxx
    pone ProductCategory_Value_Clave de Categoria; en el caso de la
    subfamilia). Ok, pero en este caso tenes que saber el
    busqueda del proveedor y de la subfamilia; estos los tenes
    en Pestaña Subfamilia-> Valor de Busqueda y Entidades Comerciales->
    Valor de busqueda. En cualquier caso, lo que tiene de bueno esta opción
    es que aunque pongas cualuqier cosa en las utlimas dos columnss
    no te va a tirar error (a lo sumo el producto no va a quedar asociado
    a ningun proveedor ni a ninguna subfamilia)

    #34386
    Federico Cristina
    Superadministrador

    Juan,

    Edité el texto para que no se presenten problemas en la visualización del thread.

    Cuando tegas que escribir código, podés agregarle el tag “code” para evitar este problema.

    Saludos,
    Federico

    #34396

    Importe de la manera que respondieron en este post y cuando voy a la venta de Importar Articulos, hago click en Importa productos y me tira el siguiente mensaje:

    Code:
    Importar Artículos

    0.000000 Errores

    0.000000 Artículo: Insertar
    0.000000 Artículo: Actualizado
    0.000000 Artículo Compra: Insertar
    0.000000 Artículo Compra: Actualizado

    Cambiando la vista a rejilla de datos, me muestra el primer articulo, con el tilde en Importar. Como lo soluciono, no logro incorporar los articulos.

    POr otro lado como obtengo los identificadores de las subfamilias y proveedores?

    Salidos

    #34387
    Norberto Martin
    Participante

    Buenas. En mi caso me ocurre exactamente lo mismo. Y otra cosa, importar productos, que diferencia hay con importar artículos?

    #34407
    Federico Cristina
    Superadministrador

    Buenas,

    Más allá de la aplicación, las tareas de importación son generalmente bastante engorrosas y requieren de mucha paciencia.

    El origen del podría deberse a varios factores (por ejemplo, todos los campos están correctamente seteados en cada línea del CSV? se encuentran acorde al formato de importación de artículos? se cargaron correctamente las entradas a partir de la ventana cargar archivos?).

    Deberías probar a refrescar la ventana y ver si se presenta algún mensaje en el campo de error, o si la consola puede ayudarte un poco al respecto. También verificá la ventana de errores (herramientas -> preferencias -> errores).

    Suerte!
    Federico

    #34411

    Despues de varios intentos con el mismo mensaje, de 0 importacion, tiro el siguiente error:
    MTab.query No value for link clumn AD_WF_Process_ID

    errorlibertya.jpg

    Despues cuando guarde el log, me aparece lo siguiente:

    Code:
    ——————————-
    ———–> Msg.getMsg: NOT found: OXPSYS [11]
    ———–> Msg.getMsg: NOT found: OXPSYS [11]
    ———–> MLookup.run: AD_Message.AD_Message_ID: Loader – Too many records [46]
    ———–> MLookup.run: MLookupInfo[AD_Message.AD_Message_ID – Direct=SELECT AD_Message.AD_Message_ID,NULL,AD_Message.Value,AD_Message.IsActive FROM AD_Message WHERE AD_Message.AD_Message_ID=?] [46]
    ———–> MLookup.run: AD_Message.AD_Message_ID: Loader – Too many records [54]
    ———–> MLookup.run: MLookupInfo[AD_Message.AD_Message_ID – Direct=SELECT AD_Message.AD_Message_ID,NULL,AD_Message.Value,AD_Message.IsActive FROM AD_Message WHERE AD_Message.AD_Message_ID=?] [54]
    ———–> MLookup.run: AD_Message.AD_Message_ID: Loader – Too many records [57]
    ———–> MLookup.run: MLookupInfo[AD_Message.AD_Message_ID – Direct=SELECT AD_Message.AD_Message_ID,NULL,AD_Message.Value,AD_Message.IsActive FROM AD_Message WHERE AD_Message.AD_Message_ID=?] [57]
    ———–> MLookup.run: AD_Message.AD_Message_ID: Loader – Too many records [59]
    ———–> MLookup.run: MLookupInfo[AD_Message.AD_Message_ID – Direct=SELECT AD_Message.AD_Message_ID,NULL,AD_Message.Value,AD_Message.IsActive FROM AD_Message WHERE AD_Message.AD_Message_ID=?] [59]
    ===========> MTab.query: No value for link column AD_WF_Process_ID [11]
    ——————————-
    ===========> MTab.query: No value for link column AD_WF_Process_ID [11]

    Saludos

    PD: De donde puedo sacar los identificadores de subfamilias y proveedores?

    #34412
    Federico Cristina
    Superadministrador

    Juan,

    Ese error no lo encuentro muy relacionado con la actividad de importación. ¿Te fijaste si luego de intentar importar se presenta alguna información en la columna Mensaje de Error al importar de la ventana de Importar Artículos?

    Respecto de los identificadores de subfamilias y proveedores que tengas cargados en Libertya, la manera más sencilla de saber que valores tienen es hacer la consulta SQL correspondiente (por ejemplo: SELECT * FROM C_BPartner_ID).

    Saludos,
    Federico

    #34388
    Dario Parente
    Miembro

    Sigo el hilo de este problema de la importacion de articulos.

    Quisiera saber si como primer medida esta claro que hay un bug en libertya 10.03 con respecto a la forma de importar articulos.

    He probado de varias forma con respecto al archivo cvs y no importa nada, exactamente como le pasa a este usuario que ya lo expuso aca.
    En el curso incluso que he tomado tampoco anduvo cuando se tarto el tema de importacion.
    Dejo un error que he tomado del log a ver si pueden ayudarme a solucionarlo y que los campos funcionen para la importacion.

    El erroe que da es.

    Code:
    ——————————-
    ===========> DB.saveError: DBExecuteErrorrr – ERROR: insert or update on table “i_product” violates foreign key constraint “cbpartner_iproduct”
    Detail: Key (c_bpartner_id)=(3) is not present in table “c_bpartner”. [52]
    ——————————-
    ===========> ImpFormat.updateDB: I_Product_ID=1013631 – rows updated=-1 [52]
    ——————————-
    ===========> DB.executeUpdate: Update=UPDATE I_Product SET Value=’3743T’,Name=’ACOPLE DE EXTREMO DIRECCION’,PriceList=254.42,C_BPartner_ID=3,M_Product_Category_ID=0,IsActive=’Y’,Processed=’N’,I_IsImported=’N’,Updated=CURRENT_TIMESTAMP,UpdatedBy=1010717 WHERE I_Product_ID=1013632 [null] [52]
    org.postgresql.util.PSQLException: ERROR: insert or update on table “i_product” violates foreign key constraint “cbpartner_iproduct”
    Detail: Key (c_bpartner_id)=(3) is not present in table “c_bpartner”.; State=23503; ErrorCode=0
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:307)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.postgresql.ds.common.PooledConnectionImpl$StatementHandler.invoke(PooledConnectionImpl.java:467)
    at $Proxy1.executeUpdate(Unknown Source)
    at org.openXpertya.util.CPreparedStatement.executeUpdate(CPreparedStatement.java:227)
    at org.openXpertya.util.DB.executeUpdate(DB.java:839)
    at org.openXpertya.util.DB.executeUpdate(DB.java:786)
    at org.openXpertya.impexp.ImpFormat.updateDB(ImpFormat.java:739)
    at org.openXpertya.apps.form.VFileImport.cmd_process(VFileImport.java:551)
    at org.openXpertya.apps.form.VFileImport.access$000(VFileImport.java:65)
    at org.openXpertya.apps.form.VFileImport$1.construct(VFileImport.java:331)
    at org.openXpertya.apps.SwingWorker$2.run(SwingWorker.java:45)
    at java.lang.Thread.run(Unknown Source)

    ——————————-
    ===========> DB.saveError: DBExecuteErrorrr – ERROR: insert or update on table “i_product” violates foreign key constraint “cbpartner_iproduct”
    Detail: Key (c_bpartner_id)=(3) is not present in table “c_bpartner”. [52]
    ——————————-
    ===========> ImpFormat.updateDB: I_Product_ID=1013632 – rows updated=-1 [52]
    ——————————-
    ===========> DB.executeUpdate: Update=UPDATE I_Product SET Value=’3745T’,Name=’ACOPLE DE EXTREMO DIRECCION’,PriceList=0,C_BPartner_ID=3,M_Product_Category_ID=0,IsActive=’Y’,Processed=’N’,I_IsImported=’N’,Updated=CURRENT_TIMESTAMP,UpdatedBy=1010717 WHERE I_Product_ID=1013633 [null] [52]
    org.postgresql.util.PSQLException: ERROR: insert or update on table “i_product” violates foreign key constraint “cbpartner_iproduct”
    Detail: Key (c_bpartner_id)=(3) is not present in table “c_bpartner”.; State=23503; ErrorCode=0
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:307)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.postgresql.ds.common.PooledConnectionImpl$StatementHandler.invoke(PooledConnectionImpl.java:467)
    at $Proxy1.executeUpdate(Unknown Source)
    at org.openXpertya.util.CPreparedStatement.executeUpdate(CPreparedStatement.java:227)
    at org.openXpertya.util.DB.executeUpdate(DB.java:839)
    at org.openXpertya.util.DB.executeUpdate(DB.java:786)
    at org.openXpertya.impexp.ImpFormat.updateDB(ImpFormat.java:739)
    at org.openXpertya.apps.form.VFileImport.cmd_process(VFileImport.java:551)
    at org.openXpertya.apps.form.VFileImport.access$000(VFileImport.java:65)
    at org.openXpertya.apps.form.VFileImport$1.construct(VFileImport.java:331)
    at org.openXpertya.apps.SwingWorker$2.run(SwingWorker.java:45)
    at java.lang.Thread.run(Unknown Source)

    disculpen si s largo.
    Gracias
    Dario

    #34548

    Dario, el error es muy claro, y te lo enuncia el propio log:

    ERROR: insert or update on table “i_product” violates foreign key constraint “cbpartner_iproduct”
    Detail: Key (c_bpartner_id)=(3) is not present in table “c_bpartner”.

    En otras palabras, existe un producto que esta referenciando a un proveedor que no existe, en particular al proveedor con Id = 3.

    Las “violates foreign key constraint” o violaciones de restricciones de integridad referencial, impiden que insertes referencias a cosas que no existen. Para solucionarlo, deberías eliminar el producto que referencia al proveedor inexistente o bien insertar primero un proveedor con ese id.

    #34389
    Dario Parente
    Miembro

    Bueno si presisamente como decis el error es porque no existe ese dato.
    De todos modos si o si es obligatorio poner el dato de la entidad comercial y de la subfamilia.
    Si no se coloca ningun dato al cargar el archivo te lo toma, pero despues uno a uno hay que colocar esos datos antes de importar los articulos.

    Bien esto es realmente muy engorroso y es por eso que hay que colocar esos datos para poder importar los articulos.
    Esos datos y ahi esta el problema se da porque en los campos entidad comercial y familia, (que no es familia sino subfamilia), se tiene que colocar el ID correspondiente a entidad comercial y a subfamilia y no el nombre como se lo cargo a la entidad comercial y a la subfamia.
    Aca biene otro problema o pequeño inconveniente para averiguar esos ID respectivos.
    Una manera es como explicaron mas arriba y es haciendo la consulta al postgres para poder ver los ID.
    Una manera mas facil que yo resolvi es consultando la entidad respectiva a esos articulos y la subfamilia.
    Una ves que estamos posicionados en la entidad o subfamilia que corresponde, se puede ver el ID haciendo un click en los numeros que se encuentran en la parte inferior derecha de la pantalla que nos esta dando los datos de entidad comercial o de subfamilia.
    Ya con estos datos se pueden cargar los articulos y realizar la importacion con total exito.

    Tal vez en un futuro la aplicacion libertya maneje una mejor manera o mas sencilla de importar datos, es decir que en ves de averiguar el ID te permita cargar por el nombre de la entidad o algun dato que se vea en el formulario de la entidad o subfamilia como ser nombre o clave.

    Dejo claro esto para quienes se vieron en estos problemas de cargar datos y tambien para recordar yo por si me olvido que suele sucederme a menudo, ja.

Viendo 12 entradas - de la 1 a la 12 (de un total de 12)
  • Debes estar registrado para responder a este debate.