Como se usa el RollBack?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Eduesqueda
    Senior Member
    • dic
    • 103

    #1

    Como se usa el RollBack?

    Duda tengo la siguiente rutina que principalmente hace 3 pasos descritos en los comentarios de la rutina, mi pregunta es como se hace el rollback en ABAP porque nunca lo he manejado al actualizar mis tablas Z en las lineas del MODIFY-DELETE y el bloqueo a transaccion FBL1N???? Si alguno de los 3 pasos no llegó a terminarlo ó algún error entonces que no haga nada y lo deje como estaba. De caso contrario hace toda la rutina. No sé como hacer esto me dijeron que con rollback de casualidad alguien sabe??

    Las tablas Z son:
    zfactor_docDesp
    zfactoraje

    y el bloqueo lo hago en la rutina:
    f_bloqueo_fbl1n.

    Gracias y espero alguien me pueda ayudar.




    *&---------------------------------------------------------------------*
    *& Form F_ALTA_TABLAZ
    *&---------------------------------------------------------------------*
    * PASO1.- Confirma Despublicación de Documentos,
    * PASO2.- Desbloquea Documentos al llamar la transacción FBL1N
    * PASO3.- Borra Documentos de la tabla ZFACTORAJE
    *----------------------------------------------------------------------*
    * --> p1 text
    * <-- p2 text
    *----------------------------------------------------------------------*
    FORM F_ALTA_TABLAZ
    CHANGING lv_exit TYPE char1.
    DATA: lv_index LIKE sy-tabix.

    IF NOT i_alv[] IS INITIAL.

    PASO1.
    * Actualiza Fecha de Confirmación de los Documentos a Despublicar.
    LOOP AT i_alv.
    lv_index = sy-tabix.
    i_alv-dc_doc = c_x.
    i_alv-dc_date = sy-datum.
    i_alv-dc_time = sy-uzeit.
    i_alv-dc_ernam = sy-uname.
    i_alv-d_updat = i_alv-dc_date.
    i_alv-d_uptim = i_alv-dc_time.
    i_alv-d_upnam = i_alv-dc_ernam.
    MODIFY i_alv INDEX lv_index.
    ENDLOOP.

    MODIFY zfactor_docDesp FROM TABLE i_alv.
    COMMIT WORK.
    MESSAGE TEXT-012 TYPE 'I'.

    PASO2.
    * Desbloquea Documentos.
    PERFORM f_bloqueo_fbl1n. "Desbloqueo FBL1N
    MESSAGE TEXT-014 TYPE 'I'.

    PASO3.
    * Elimina Documentos Enviados a Xignux
    * que son los documentos despublicados que se acaban de confirmar.
    REFRESH i_zfactor. CLEAR i_zfactor.
    SELECT *
    FROM zfactoraje
    INTO TABLE i_zfactor
    WHERE lifnr = i_alv-lifnr
    AND bukrs = i_alv-bukrs
    AND belnr = i_alv-belnr
    AND gjahr = i_alv-gjahr
    AND envio = c_x
    AND nob = SPACE
    AND ro = SPACE.

    IF sy-subrc = c_zeros.
    DELETE zfactoraje FROM TABLE i_zfactor.
    COMMIT WORK.
    MESSAGE TEXT-013 TYPE 'I'.
    ENDIF.

    ENDIF.

    ENDFORM. " f_alta_tablaz
    Editado por última vez por Eduesqueda; 11/04/2012, 22:06:51.
    Saludos
    Alabado Seas Yhavé.
    -Hay Un Mundo Mejor Cuando Aprendes a AMAR
Trabajando...