Borrar Juego de Datos desde Código
Posted by Floren en marzo 18, 2008
PERFORM CERRAR_SESION.
IF D_TOT IS INITIAL.
PERFORM BORRAR_JD.
MESSAGE I108.
ELSE.
MESSAGE I105 WITH P_JUEGO.
ENDIF.
*&———————————————————————*
*& Form CERRAR_SESION
*&———————————————————————*
* Cierra la sesión de Batch Input abierta por ABRIR_SESION
*———————————————————————-*
FORM CERRAR_SESION.
* close bdc
CALL FUNCTION ‘BDC_CLOSE_GROUP’
EXCEPTIONS
NOT_OPEN = 01
QUEUE_ERROR = 02.
IF SY-SUBRC <> 0.
MESSAGE A103.
ELSE.
MESSAGE I113.
ENDIF.
ENDFORM. ” CERRAR_SESION
*&———————————————————————*
*& Form BORRAR_JD
*&———————————————————————*
* Borra el juego de datos p_juego
*———————————————————————-*
FORM BORRAR_JD.
SELECT SINGLE * FROM APQI WHERE “credate eq sy-datum and
GROUPID EQ P_JUEGO AND
DATATYP EQ ‘BDC’ AND
PUTTRANS EQ 0.
PERFORM DELETE_SESSION(SAPLSBDC) USING APQI-QID.
ENDFORM. ” BORRAR_JD
*———————————————————————*
* FORM : delete_session
* —>: qid
* <—: SY-SUBRC = 0 Löschen erfolgreich
* SY-SUBRC <> 0 Löschen nicht erfolgreich
*———————————————————————*
FORM DELETE_SESSION USING DEL_QID.
SELECT COUNT(*) FROM APQD WHERE QID = DEL_QID.
IF SY-SUBRC <> 0. “Leere APQD
DELETE FROM APQI WHERE QID = DEL_QID.
IF SY-SUBRC EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
SY-SUBRC = 4.
ENDIF.
ELSE.
DELETE FROM APQD WHERE QID = DEL_QID.
IF SY-SUBRC EQ 0.
DELETE FROM APQI WHERE QID = DEL_QID.
IF SY-SUBRC EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
SY-SUBRC = 4.
ENDIF.
ELSE.
ROLLBACK WORK.
SY-SUBRC = 4.
ENDIF.
ENDIF.
ENDFORM. “delete_session
Responder