글
Internal table에서 중복 데이타 찾기
REPORT y_dupl_find MESSAGE-ID zmc_qm001.
DATA: gt_mseg TYPE TABLE OF mseg,
gs_mseg LIKE LINE OF gt_mseg,
cp_mseg LIKE LINE OF gt_mseg.
SELECT mblnr
mjahr
zeile
bwart
xauto
matnr
werks
lgort
charg
insmk
zusch
zustd
sobkz
lifnr
kunnr
kdauf
kdpos
INTO CORRESPONDING FIELDS OF TABLE gt_mseg
FROM mseg
UP TO 500 ROWS
WHERE budat_mkpf = '20170501'
order by PRIMARY KEY.
gs_mseg-mblnr = '4910157785'.
gs_mseg-mjahr = '2017'.
gs_mseg-zeile = '0002'.
append gs_mseg to gt_mseg.
gs_mseg-mblnr = '4910157956'.
gs_mseg-mjahr = '2017'.
gs_mseg-zeile = '0003'.
append gs_mseg to gt_mseg.
SORT gt_mseg BY mblnr mjahr zeile.
DATA: all_cnt TYPE i,
chk_cnt TYPE i.
LOOP AT gt_mseg INTO gs_mseg.
cp_mseg = gs_mseg.
ADD 1 TO all_cnt.
AT NEW zeile.
ADD 1 TO chk_cnt.
IF chk_cnt <> all_cnt.
"바로 이전 데이타에서 중복 발생
WRITE:/ cp_mseg-mblnr, AT 20 cp_mseg-mjahr, AT 30 cp_mseg-zeile.
all_cnt = all_cnt - 1.
ENDIF.
ENDAT.
ENDLOOP.
단순하게 중복된 데이타가 있는지만 check 하고자 할때는
IT_ERR[] = ITBA[].
DELETE ADJACENT DUPLICATES FROM IT_ERR.
if sy-subrc = 0.
Message E123(ZK_MSGCLS).
endif.
'SAP Program > ABAP' 카테고리의 다른 글
SCI check 항목 Level 조정 (0) | 2017.12.01 |
---|---|
abap sci tool setting (0) | 2017.11.27 |
Internal table data to xml (0) | 2017.11.22 |
XML을 Internal table로 보내기 (0) | 2017.11.22 |
GUI Status 생성시 덤프 발생하는 경우 (0) | 2017.11.20 |