SELECT SINGLE *
FROM VBKPF
WHERE VBKPF~BUKRS EQ I_BUKRS
AND VBKPF~GJAHR EQ I_GJAHR
AND VBKPF~BELNR EQ I_BELNR.
IF SY-SUBRC EQ 0.
CASE VBKPF-AWTYP.
WHEN 'RMRP'.
WHEN OTHERS.
* 전표 삭제 시 CO/FM전표 삭제도 동시에 하도록..
CLEAR LS_ACCDEL.
LS_ACCDEL-AWTYP = 'BKPF'. "참조절차
LS_ACCDEL-AWREF = VBKPF-BELNR. "전표번호
LS_ACCDEL-STATUS_OLD = '3'. "이전 대체전표의 상태
CONCATENATE I_BUKRS I_GJAHR INTO LS_ACCDEL-AWORG.
CALL FUNCTION 'AC_DOCUMENT_DELETE'
EXPORTING
I_ACCDEL = LS_ACCDEL
EXCEPTIONS
DELETE_IMPOSSIBLE = 1
OTHERS = 2.
CHECK SY-SUBRC EQ 0.
* 임시전표 삭제 펑션
CALL FUNCTION 'PRELIMINARY_POSTING_DOC_DELETE'
EXPORTING
BELNR = I_BELNR
BSTAT = 'Z'
BUKRS = I_BUKRS
GJAHR = I_GJAHR
EXCEPTIONS
DOCUMENT_NOT_FOUND = 1
UPDATE_ERROR = 2
OTHERS = 3.
CHECK SY-SUBRC EQ 0.
CALL FUNCTION 'AC_DOCUMENT_POST'
EXPORTING
I_AWTYP = LS_ACCDEL-AWTYP
I_AWREF = LS_ACCDEL-AWREF
I_AWORG = LS_ACCDEL-AWORG.
CHECK SY-SUBRC EQ 0.
CALL FUNCTION 'FI_CHECK_EXTENDED_WT'
EXPORTING
I_BUKRS = I_BUKRS
EXCEPTIONS
COMPONENT_NOT_ACTIVE = 1
NOT_FOUND = 2
OTHERS = 3.
CALL FUNCTION 'FI_WT_PRELIMINARY_POST_DOC_DEL' IN UPDATE TASK
EXPORTING
I_BELNR = I_BELNR
I_BUKRS = I_BUKRS
I_GJAHR = I_GJAHR
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC EQ 0.
'. COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDCASE.
*
ELSE.
ROLLBACK WORK.
ENDIF.