Script para borrar todos los datos transaccionales

Inicio Foros Foro principal Desarrolladores Script para borrar todos los datos transaccionales

Viendo 15 entradas - de la 1 a la 15 (de un total de 19)
  • Autor
    Entradas
  • #32549
    Saulo Gil
    Miembro
    Code:
    set search_path to libertya, public;
    set constraints all deferred;

    delete from M_RMALine;
    delete from M_RMA;
    delete from M_PackageLine;
    delete from M_Package;
    delete from M_MatchPO;
    delete from M_MatchInv;
    delete from M_InventoryLineMA;
    delete from M_Transaction;
    delete from M_InOutLine;
    delete from M_InventoryLine;
    delete from Fact_Acct;
    delete from fact_acct_balance;
    delete from M_Storage;
    delete from C_AcctProcessorLog;
    delete from M_Retencion_Invoice;
    delete from C_PaySelectionLine;
    delete from C_InvoiceLine;
    delete from C_OrderLine;
    delete from M_InOutLineMA;
    delete from C_OrderTax;
    delete from C_InvoiceTax;
    update c_cashline set c_invoice_id = null where c_invoice_id is not null;
    update c_invoice set c_order_id = null where c_order_id is not null;
    delete from C_DocumentDiscount;
    update C_CashLine set c_allocationhdr_id = null;
    delete from C_BankStatementLine;
    delete from m_transaction;
    delete from M_InOut;
    delete from C_AllocationLine;
    delete from C_Order;
    delete from M_MatchPO;
    delete from M_MatchINV;
    delete from C_Invoice;
    delete from C_CashLine;
    delete from C_AllocationHdr;
    delete from C_Cash;
    delete from T_Invoice;
    delete from T_LibroIva;
    delete from C_InvoicePaySchedule;
    delete from R_RequestProcessorLog;
    delete from C_PaySelectionCheck;
    delete from M_BoletaDepositoLine;
    delete from M_BoletaDeposito;
    delete from C_Payment;
    delete from C_BankStatementLine;
    delete from C_BankStatement;
    update C_BankAccount set currentbalance = 0;
    update C_Bpartner set totalopenbalance = 0, so_creditused = 0;

    Enjoy!

    #37978

    El script no me funcionaba al principio pero no se porque funciono perfectamente y me borro justo lo que yo queria solo quedaron los productos pero sin existencias gracias

    #37979
    DAVID GOMEZ
    Participante

    krispish es que creo el script hace justamente eso. borrar todas las transacciones, [entre las que entiendo están entradas y salidas de artículos] pero no los artículos en si.

    #37980

    Al Aplicar dicho script ahora me aparece lo siguiente:
    ERROR: update or delete on table “c_allocationhdr” violates foreign key constraint “allocation_ccashline” on table “c_cashline”
    DETAIL: Key (c_allocationhdr_id)=(1011870) is still referenced from table “c_cashline”.

    ********** Error **********

    ERROR: update or delete on table “c_allocationhdr” violates foreign key constraint “allocation_ccashline” on table “c_cashline”
    SQL state: 23503
    Detail: Key (c_allocationhdr_id)=(1011870) is still referenced from table “c_cashline”.

    #38806
    DAVID GOMEZ
    Participante

    alguien lo probó ya? me sería muy util ya que estuvimos haciendo pruebas sobre una organización y es mucho más cómodo que hacer odo de nuevo.

    #38808
    Saulo Gil
    Miembro

    Acabo de actualizar el script con algunos cambios menores. En caso de cualquier problema pueden seguir reportando aquí así lo seguimos refinando.

    Este script actualmente funciona (o debería) en Libertya v13.01 y 14.02, en PostgreSQL >= v8.3 incluyendo la rama v9.x.

    #38836
    DAVID GOMEZ
    Participante

    cuales serían los cambios menores? o se puede usar como está en 14?
    muchas gracias!

    #38807
    Juan Manuel Martínez
    Participante
    Quote:
    Al Aplicar dicho script ahora me aparece lo siguiente:
    ERROR: update or delete on table “c_allocationhdr” violates foreign key constraint “allocation_ccashline” on table “c_cashline”
    DETAIL: Key (c_allocationhdr_id)=(1011870) is still referenced from table “c_cashline”.

    ********** Error **********

    ERROR: update or delete on table “c_allocationhdr” violates foreign key constraint “allocation_ccashline” on table “c_cashline”
    SQL state: 23503
    Detail: Key (c_allocationhdr_id)=(1011870) is still referenced from table “c_cashline”.

    Me pasó algo similar. Adjunto la versión modificada que solucionó el problema:

    Code:
    set search_path=libertya, public;
    SET CONSTRAINTS ALL DEFERRED;
    delete from M_RMALine;
    delete from M_RMA;
    delete from M_PackageLine;
    delete from M_Package;
    delete from M_MatchPO;
    delete from M_MatchInv;
    delete from M_InventoryLineMA;
    delete from M_Transaction;
    delete from M_InOutLine;
    delete from M_InventoryLine;
    delete from Fact_Acct;
    delete from M_Storage;
    delete from C_AcctProcessorLog;
    delete from M_Retencion_Invoice;
    delete from C_PaySelectionLine;
    delete from C_InvoiceLine;
    delete from C_OrderLine;
    delete from M_InOutLineMA;
    delete from C_OrderTax;
    delete from C_InvoiceTax;
    delete from C_BankStatementLine;
    delete from C_DocumentDiscount;
    update c_cashline set c_invoice_id = null where c_invoice_id is not null;
    update c_invoice set c_order_id = null where c_order_id is not null;
    delete from M_InOut;
    delete from C_AllocationLine;
    delete from C_Invoice;
    delete from C_Order;
    delete from C_CashLine;
    delete from C_AllocationHdr;
    delete from C_Cash;
    delete from T_Invoice;
    delete from T_LibroIva;
    delete from C_InvoicePaySchedule;
    delete from R_RequestProcessorLog;
    delete from C_PaySelectionCheck;
    delete from M_BoletaDepositoLine;
    delete from M_Boletadeposito;
    delete from C_Payment;
    delete from c_bankstatement;
    update C_BankAccount set currentbalance = 0;

    Saludos,
    Juan Manuel.

    #37981
    Marcelo Garcia
    Participante

    Quería aprovechar este thread para pedirles si alguien podría decirme que script debería correr para sólo borrar los pendientes de entrega y pendientes de recibir de los artículos, ya que se nos van generando estos pendientes y si bien tomándonos el trabajo de anular el documento que los generó, nos encontramos que tenemos un arrastre de documentos que fueron cerrados y no podemos dejar en cero los pendientes de varios artíulos.

    Muchas gracias!!!

    Marcelo

    #38845
    Saulo Gil
    Miembro

    Muchas gracias Juan Manuel, estuve comparando ambos scripts y modifiqué el orden de algunas instrucciones en base a lo que vos hiciste, aunque aún no tuve tiempo de probarlo. La mayoría de esos cambios son bastante lógicos, descubrí que había algunas tablas de detalle que estaban despues de las tablas de cabecera.

    #38847
    Saulo Gil
    Miembro
    mgarcia wrote:
    Quería aprovechar este thread para pedirles si alguien podría decirme que script debería correr para sólo borrar los pendientes de entrega y pendientes de recibir de los artículos, ya que se nos van generando estos pendientes y si bien tomándonos el trabajo de anular el documento que los generó, nos encontramos que tenemos un arrastre de documentos que fueron cerrados y no podemos dejar en cero los pendientes de varios artíulos.

    Muchas gracias!!!

    Marcelo

    No es necesario anular estos documentos, con pasarlos al estado cerrado se logra el mismo efecto. Yo te recomendaría generar algun proceso que te cierre automáticamente todos los documentos expirados, utilizando como referencia la fecha de vencimiento o algún parametro personalizado (e.g.: cerrar todos los documentos abiertos con mas de X días de antiguedad).

    En el caso de que quieras armar algo más casero deberías trabajar con la tabla m_storage.

    #38848
    Marcelo Garcia
    Participante

    Gracias por tu respuesta!

    El problema que tengo es que algunos documentos que generaron pendientes ya están cerrados y no puedo eliminar esos pendientes. Este problema lo tuve con la versión anterior, ahora con la 14.02 no me está pasando más…

    #37982

    Al correr dicho script en libertya 14.02 me da el siguiente error:

    ERROR: update or delete on table “c_cash” violates foreign key constraint “cash_posjournal” on table “c_posjournal”
    DETAIL: Key (c_cash_id)=(1010074) is still referenced from table “c_posjournal”.

    ********** Error **********

    ERROR: update or delete on table “c_cash” violates foreign key constraint “cash_posjournal” on table “c_posjournal”
    SQL state: 23503
    Detail: Key (c_cash_id)=(1010074) is still referenced from table “c_posjournal”.

    #38849
    Saulo Gil
    Miembro
    krispish wrote:
    Al correr dicho script en libertya 14.02 me da el siguiente error:

    ERROR: update or delete on table “c_cash” violates foreign key constraint “cash_posjournal” on table “c_posjournal”
    DETAIL: Key (c_cash_id)=(1010074) is still referenced from table “c_posjournal”.

    ********** Error **********

    ERROR: update or delete on table “c_cash” violates foreign key constraint “cash_posjournal” on table “c_posjournal”
    SQL state: 23503
    Detail: Key (c_cash_id)=(1010074) is still referenced from table “c_posjournal”.

    ¿ Podrías probar ejecutando la sentencia delete from C_PosJournal antes de delete from C_CashLine ?

    #38855
    Federico Cristina
    Superadministrador

    Buenas,

    No se ya lo comentaron, pero una alternativa rápida es la de deshabilitar todos los triggers de cada tabla:

    Code:
    ALTER TABLE tabla DISABLE TRIGGER ALL
    DELETE FROM tabla
    ALTER TABLE tabla ENABLE TRIGGER ALL

    Ideal para casos donde se presenta referencias cíclicas. La desventaja es que puede llegar a quedar alguna inconsistencia, dado que no hay validación referencial alguna bajo este método.

    Saludos,
    Federico

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