Ver Mensaje Individual
  #1  
Viejo 11/04/12, 21:22:39
Eduesqueda Eduesqueda is offline
Senior Member
 
Fecha de Ingreso: dic 2008
Localización: San Nicolás, México
Mensajes: 103
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
__________________
Saludos
Alabado Seas Yhavé.
-Hay Un Mundo Mejor Cuando Aprendes a AMAR

Úlima edición por Eduesqueda fecha: 11/04/12 a las 22:06:51.
Responder Con Cita