728x90
반응형
과제
[Dictionary]
구조
테이블 유형
[Fucntion builder]
유형은 RFC타입. 회사코드/플랜트/저장위치가 아닌 플랜트/저장위치/제품군이다. ㅎㅎ 마이 미슼테잌
IMPORT
EXPORT
TABLES
[Source Code]
FUNCTION zs1dfm11_06.
DATA: lt_t001w TYPE TABLE OF t001w,
lt_tspat TYPE TABLE OF tspat,
ls_tspat TYPE tspat.
"플랜트
SELECT * FROM t001w
INTO CORRESPONDING FIELDS OF TABLE lt_t001w
WHERE werks = i_werks.
IF sy-subrc ne 0.
return-type = 'E'.
return-message = '해당 플랜트가 없습니다'.
EXIT. "에러가 있을때 빠져나간다
ENDIF.
"저장위치
IF lt_t001w IS NOT INITIAL.
SELECT * FROM t001l
INTO CORRESPONDING FIELDS OF TABLE tab1
FOR ALL ENTRIES IN lt_t001w
WHERE werks = lt_t001w-werks.
IF sy-subrc NE 0.
return-type = 'E'.
return-message = '해당 저장위치가 없습니다.'.
EXIT.
ELSE.
return-type = 'S'.
return-message = '조회하였습니다'.
ENDIF.
ENDIF.
"제품군
SELECT * FROM tspa AS a
INNER JOIN tspat AS b
ON a~spart = b~spart
INTO CORRESPONDING FIELDS OF TABLE lt_tspat
WHERE b~spras = sy-langu.
LOOP AT tab1.
READ TABLE lt_tspat INTO ls_tspat WITH KEY spart = tab1-spart.
IF sy-subrc = 0. "read table에 값이 있을때.
tab1-vtext = ls_tspat-vtext.
ENDIF.
MODIFY tab1.
CLEAR tab1.
ENDLOOP.
IF sy-subrc = 0.
return-type = 'S'.
return-message = '성공'.
ELSE.
return-type = 'E'.
return-message = '에러'.
EXIT.
ENDIF.
ENDFUCNTION.
[실행 테스트]
플랜트 I_WERKS에 2101 (본사창고)를 입력한뒤 실행해보면
DB에 2101 플랜트를 가지고 있는 데이터를 가져온다.
728x90
반응형
댓글