아밥 입문자 입니다.
bseg, t003t, bkpf 이용해서 값을 가져오려고 하는데요.
아래와 같이 특정 필드는 값을 안가져오는데
도저히 알 방법이 없는데 도움을 부탁드립니다....ㅠㅠ
FORM GET_DATA .
DATA: LT_LTEXT TYPE T003T, "T003T- BLART로 LTEXT(전표유형내역) 가져오기
LT_BKPF TYPE BKPF.
SELECT BUKRS BELNR GJAHR BLART BUDAT
INTO CORRESPONDING FIELDS OF TABLE GT_ITAB
FROM BKPF
WHERE BUKRS EQ P_CODE "회사코드
AND BELNR EQ S_NUM "전표번호
AND GJAHR EQ P_YEAR "회계연도
AND BLART EQ S_TYPE "전표유형
AND BUDAT EQ S_DATE. "전기일
SELECT BUKRS BELNR GJAHR AUGDT AUGBL BSCHL KOART SHKZG DMBTR PSWSL
INTO CORRESPONDING FIELDS OF TABLE GT_ITAB
FROM BSEG
FOR ALL ENTRIES IN GT_ITAB
WHERE BUKRS EQ GT_ITAB-BUKRS
AND BELNR EQ GT_ITAB-BELNR
AND GJAHR EQ GT_ITAB-GJAHR.
LOOP AT GT_ITAB INTO GS_ITAB.
SELECT SINGLE BLART BUDAT "전표유형, 전기일
INTO CORRESPONDING FIELDS OF LT_BKPF
FROM BKPF
WHERE BUKRS EQ GS_ITAB-BUKRS
AND BELNR EQ GS_ITAB-BELNR
AND GJAHR EQ GS_ITAB-GJAHR.
GS_ITAB-BLART = LT_BKPF-BLART. "전표유형
GS_ITAB-BUDAT = LT_BKPF-BUDAT. "전기일
SELECT SINGLE BLART LTEXT
INTO CORRESPONDING FIELDS OF LT_LTEXT "전표유형내역
FROM T003T
WHERE BLART EQ GS_ITAB-BLART.
IF SY-SUBRC = 0.
GS_ITAB-LTEXT = LT_LTEXT.
ENDIF.
CLEAR: GS_ITAB, LT_LTEXT, LT_LTEXT.
ENDLOOP.
ENDFORM.
이런경우 구글링은 어떤식으로 해야할까요.... 막막하네요 ㅠㅠ 답변 부탁드립니다.
댓글 3
-
버미
2020.08.10 18:14
-
bbaechu
2020.08.10 22:25
올려주신 소스를 보면 LOOP 구문 안에서 GS_ITAB에 담고 GT_ITAB에 MODIFY 구분을 넣어줘야 하는데
그러한 부분이 빠져있는 듯 보입니다.
MODIFY GT_ITAB FROM GS_ITAB TRANSPORTING BLART BUDAT LTEXT.
구문이 들어가게 되면 잘 작동될 것 같이 보입니다.
-
마르니
2020.08.24 03:03
위에 두분 말씀처럼..
1. BKPF 셀렉트 이후 BSEG를 셀렉트를 같은 인터널로 하게 되면 기존에 있던 인터널 테이블의 값을 날리고
두번째 셀렉트 하는 테이블의 값으로 변경이 됩니다
2. LOOP 구문 내에 있는 CLEAR 로직 위에서 MODIFY 를 해주면 될거 같습니다
3. BKPF 셀렉트를 두번하는데 어느 데이터를 찾는건지 확인이 필요해 보입니다
일단 BKPF 결과와 BSEG 결과를 같은 Itab(GT_ITAB)에 담고 있는 것이 문제