SAP ABAP Code For DR Report

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

"Step 03: Getting list of documents where Bank Document is not clearing do

cument

"Copy all Bank Documents in temporary table


DATA(it_tmp_bankdoc) = it_bankdoc.

"Check each bank gl document if it exists its clearing document or not


LOOP AT it_bankdoc INTO DATA(wa).

READ TABLE it_vdoc WITH KEY augbl = wa-paydoc INTO DATA(lv_tmp).


IF sy-subrc EQ 0.

"If Bank document is clearing document, delete from temporary table so


only document remaining are non-clearing document/manual entries
DELETE it_tmp_bankdoc WHERE paydoc = wa-paydoc.
ENDIF.
CLEAR: wa.
ENDLOOP.
CLEAR: wa.

"Based on remaining bank documents, get list of these document with line i
tems
SELECT * FROM zds_vdoc_glbnk
APPENDING TABLE @it_vdoc
FOR ALL ENTRIES IN @it_tmp_bankdoc
WHERE belnr = @it_tmp_bankdoc-paydoc
AND gjahr = @it_tmp_bankdoc-payyer
AND rbukrs = @p_bukrs.

SORT it_vdoc BY rbukrs belnr buzei gjahr augbl auggj.

DELETE ADJACENT DUPLICATES FROM it_vdoc COMPARING rbukrs belnr buzei gjahr a
gbl auggj.

"Get distinc documents


DATA(it_vdoc_tmp) = it_vdoc.

DELETE ADJACENT DUPLICATES FROM it_vdoc_tmp COMPARING belnr gjahr rbukrs.

*Select line items of all documents


* SELECT * FROM zds_doc_det
* INTO TABLE @DATA(it_alldata)
* FOR ALL ENTRIES IN @it_vdoc_tmp
* WHERE belnr = @it_vdoc_tmp-belnr
* AND gjahr = @it_vdoc_tmp-gjahr
* AND koart NE 'K'
* AND racct NOT IN ('0023100110','0023101410','0023200110','0023200910',
'0035406014')
* AND rbukrs = @p_bukrs.
*Select line items of all documents
SELECT * FROM zds_doc_det
INTO CORRESPONDING FIELDS OF TABLE @it_final
FOR ALL ENTRIES IN @it_vdoc_tmp
WHERE belnr = @it_vdoc_tmp-belnr
AND gjahr = @it_vdoc_tmp-gjahr
AND koart NE 'K'
* AND racct NOT IN ('0023100110','0023101410','0023200110','0023200910
','0035406014')
AND racct NOT IN ('0023100110','0023101410','0023200110','0023200910')
AND rbukrs = @p_bukrs.

SORT it_final BY belnr gjahr buzei.


SORT it_vdoc_tmp BY belnr gjahr buzei.

SELECT * FROM zds_doc_det


APPENDING CORRESPONDING FIELDS OF TABLE @it_final
FOR ALL ENTRIES IN @it_tmp_bankdoc
WHERE belnr = @it_tmp_bankdoc-paydoc
AND gjahr = @it_tmp_bankdoc-payyer
AND racct NOT IN ('0023100110','0023101410','0023200110','0023200910')
AND rbukrs = @p_bukrs.

SORT it_final BY belnr gjahr buzei.


SORT it_vdoc_tmp BY belnr gjahr buzei.

DATA:lv_val TYPE bkpf-belnr.

LOOP AT it_final INTO DATA(wa_final).

READ TABLE it_vdoc_tmp WITH KEY belnr = wa_final-belnr INTO DATA(wa_tmp).

IF sy-subrc EQ 0.

IF wa_tmp-augbl NE ' '.


wa_final-paydoc = wa_tmp-augbl.
wa_final-payyear = wa_tmp-auggj.
wa_final-paydate = wa_tmp-augdt.
wa_final-paymonth = wa_tmp-augdt+2(4).
ELSE.
wa_final-paydoc = wa_tmp-belnr.
wa_final-payyear = wa_tmp-gjahr.
wa_final-paydate = wa_tmp-budat.
wa_final-paymonth = wa_tmp-budat+2(4).
ENDIF.

IF lv_val <> wa_final-paydoc.


SELECT SINGLE rwcur , wsl INTO ( @wa_final-curtrans , @wa_final-
amttrcur )
FROM acdoca WHERE belnr = @wa_final-paydoc
AND gjahr = @wa_final-payyear
AND racct IN ('0023100110','0023101410','0023200110','0023200910').

lv_val = wa_final-paydoc.
ENDIF.
ENDIF.

MODIFY it_final FROM wa_final.


CLEAR: wa_final.

ENDLOOP.

BREAK fico-hallar.
CLEAR: it_bankdoc[],it_bankdoc,it_vdoc[],it_vdoc,it_tmp_bankdoc[],
it_tmp_bankdoc,wa,it_vdoc_tmp[],it_vdoc_tmp

* it_alldata[],it_alldata

You might also like