전표 생성할 데이터를 쭈우우욱 가져올 때,
belnr에 값이 있어도 역분개 되어 있어 전표 생성할 데이터에 포함시켜야 하는 경우가 있다.
그럴 때 필요한 역분개 로직
: belnr에 값이 있는 경우, bkpf 테이블의 stblg 값을 체크해서
stblg에 값이 있으면 역분개한 전표이기 때문에 전표 생성할 데이터에 포함시켜야함.
없으믄 continue
TABLES: BKPF, ZDATA.
DATA: P_STBLG LIKE BKPF-STBLG.
DATA: LT_DATA LIKE ZDATA WITH HEADER LINE,
LT_TEMP LIKE ZDATA WITH HEADER LINE.
CLEAR: LT_DATA, LT_DATA[], LT_TEMP, LT_TEMP[].
CASE 'X'.
WHEN P_RB1. " 생성
SELECT * INTO TABLE LT_TEMP FROM ZDATA
WHERE ERDAT IN S_SEDAT
AND VBELF NE ''.
LOOP AT LT_TEMP.
IF LT_TEMP-BELNR IS NOT INITIAL.
CLEAR: P_STBLG.
SELECT SINGLE STBLG " 역분개 체크
INTO P_STBLG
FROM BKPF
WHERE BUKRS = LT_TEMP-BUKRS
AND BELNR = LT_TEMP-BELNR
AND GJAHR = LT_TEMP-BUDAT(4).
IF P_STBLG IS INITIAL.
CONTINUE.
ELSE.
CLEAR LT_TEMP-BELNR.
ENDIF.
ENDIF.
MOVE-CORRESPONDING LT_TEMP TO LT_DATA.
APPEND LT_DATA.
CLEAR: LT_TEMP, LT_DATA.
ENDLOOP.
WHEN P_RB2. " 조회
SELECT * INTO TABLE LT_DATA FROM ZDATA
WHERE ERDAT IN S_SEDAT
AND BELNR NE ''
AND VBELF NE ''. ENDCASE.
P_RB1 : 전표 생성할 데이터 조회 시
P_RB2 : 전표 생성 된 데이터 조회 시
'SAP > ABAP' 카테고리의 다른 글
[ABAP] 개발클래스(PACKAGE) CTS 다운로드/업로드 (CG3Y/CG3Z) (0) | 2021.04.17 |
---|---|
[SAP/ABAP] 개발클래스(Package) 삭제하는 방법 - TADIR subobjects 삭제 (0) | 2021.04.16 |
[SAP/ABAP] SY-SUBRC 값 0, 4, 8 … 설명 & 명령어에 따른 결과값 (0) | 2021.04.13 |
[ABAP] CTS 클라이언트 변경 (0) | 2021.02.24 |
[ABAP] SALV(Simple ALV) 뿌리기 - ALV 5초컷 (0) | 2021.02.23 |
댓글