728x90
반응형
과제
[ABAP Dictionary]
구조를 만들어주고 tables에서 like로 바로 참조해줄거기 때문에 테이블유형은 따로 만들지 않는다.
[Fucntion builder]
[Import]
[Export]
[Tables]
[Source Code]
반복적인 구문이기 때문에 매크로를 사용한다. 디버깅했을 때 매크로는 건너뛴다는 단점이 있다.
FUNCTION ZS1DFM11_07.
*"*"Local interface:
*" IMPORTING
*" VALUE(I_KUNNR) TYPE KNA1-KUNNR OPTIONAL
*" VALUE(I_BUKRS) TYPE KNB1-BUKRS OPTIONAL
*" VALUE(I_ERDAT) TYPE KNB1-ERDAT OPTIONAL
*" VALUE(I_ERNAM) TYPE KNB1-ERNAM OPTIONAL
*" EXPORTING
*" VALUE(RETURN) TYPE BAPIRETURN1
*" TABLES
*" TAB1 STRUCTURE ZS1D11S_07
DATA: lr_kunnr TYPE RANGE OF kna1-kunnr,
ls_kunnr LIKE LINE OF lr_kunnr,
lr_bukrs TYPE RANGE OF knb1-bukrs,
ls_bukrs LIKE LINE OF lr_bukrs,
lr_erdat TYPE RANGE OF knb1-erdat,
ls_erdat LIKE LINE OF lr_erdat,
lr_ernam TYPE RANGE OF knb1-ernam,
ls_ernam LIKE LINE OF lr_ernam.
"매크로 사용
DEFINE range1.
&1-low = &2. "초기값 설정
&1-sign = 'I'.
&1-option = 'EQ'.
APPEND &1 TO &3. CLEAR &1.
END-OF-DEFINITION.
range1:
ls_kunnr i_kunnr lr_kunnr,
ls_bukrs i_bukrs lr_bukrs,
ls_erdat i_erdat lr_erdat,
ls_ernam i_ernam lr_ernam.
SELECT * FROM kna1 AS a INNER JOIN knb1 AS b
ON a~kunnr = b~kunnr
INTO CORRESPONDING FIELDS OF TABLE tab1
WHERE a~kunnr IN lr_kunnr
AND b~bukrs IN lr_bukrs
AND b~erdat IN lr_erdat
AND b~ernam IN lr_ernam.
IF sy-subrc = 0.
return-type = 'S'.
return-message = '성공'.
ELSE.
return-type = 'E'.
return-message = '실패'.
ENDIF.
ENDFUNCTION.
IF i_kunnr is INITIAL and i_bukrs is INITIAL. ~
이런식으로 initial에 여러 조건을 줘도 되지만 이러면 select 여러번 해야한다.
728x90
반응형
댓글