카테고리 없음

(ABAP) 기본명령어 정리표

haramang 2021. 6. 13. 19:56

문바이님 블로그에서 가져온 자료입니다.

https://blog.daum.net/rightvoice/337?category=481143 

 

기본명령어 정리표

기본명령어 정리표 기본구조 구분 설명 예제코드 clear dobj 변수 메모리 초기화 Design Time 이 아닌 RunTime에 변수를 초기화하고자 할 때 사용한다. 메모리를 반환한다. CLEAR scarr.   ==> Header 를 지운

blog.daum.net

기본명령어 정리표      
기본구조 구분 설명 예제코드
clear dobj 변수
메모리
초기화
Design Time 이 아닌 RunTime에 변수를 초기화하고자 할 때 사용한다. 메모리를 반환한다. CLEAR scarr.    ==> Header 를 지운다.
CLEAR scarr[]. ==> Body를 지운다
CLEAR : scarr, scarr[]  => 이렇게 많이사용함
refresh dobj.
free dobj.
변수
메모리
초기화
refresh [데이타를 날린다.]
free [refresh 로 날린데이타의 메모리 환원]
사용을 잘 하지 않음
refresh scarr.  ==> non header line
free scarr.      ==> non header line 
leave to screen 0. 호출 자기자신을 호출한 WINDOW로 복귀한다. LEAVE TO SCREEN 0.
leave program. 종료 자기자신을 메모리에서 제거한다. LEAVE PROGRAM.
perform 함수명 USING 파라메터 호출 함수를 호출하여 실행한다.
SubRoutine에서 다시한번 정리할 것이다.
PERFORM read_date USING gv_idx.
call screen 화면명 start at x,y 호출 화면을 호출하여 실행한다. CALL SCREEN 300 STARTING AT 10 10.
case 대상.
when 조건.
endcase.
조건문 VB[select case] , PB[Choose case] CASE ok_code.
     
WHEN 'BACK'.
          leave to screen 0.
     
WHEN 'EXIT' OR 'CANC'.
          leave program.
     
WHEN 'UPDATE'.
          perform read_date 
USING gv_idx.
     WHEN OTHERS.
ENDCASE.
if 조건1.
   실행1.
elseif 조건2.
   실행2.
else.
   실행3.
endif
조건문 IF조건문 IF GV_test01 eq 1.
    GT_test01-a = 'a'.
ELSEIF GV_test01 > 1.
    GT_test01-a = 'B'.
ELSE.
    GT_test01-a = 'C'.
ENDIF.
loop at itab.
  Exit.
Continue.
end loop.
반복문 VB[ For A in each ]
Internal Table의 내용을 확인한다.
LOOP AT itab.            [Header Line이 있을 경우]
   WRITE : itab-recpno.
ENDLOOP.
LOOP AT itab INTO wa.   [Header Line이 없을 경우]
   WRITE : wa-recpno.
ENDLOOP.
loop at control level processing 반복문
내 제어문
VB[ For A in each ]
(Loop의 구동방법에 대해서
다시한번 설명할것이다.)
LOOP AT itab.            [Header Line이 있을 경우]
  AT NEW itab-pspid.
       //itab-pspid 가 한번씩 바뀔때마다 실행된다.
  ENDAT.
ENDLOOP.
동일한방식으로 //at first , at last 이벤트 처리가 가능
loop at itab.
end loop.
반복문
[심볼이용]
VB[ For A in each ]
Internal Table의 내용을 확인한다.
FIELD-SYMBOLS: <ls_fcat> TYPE LT_fieldcat.
   LOOP AT LT_fieldcat ASSIGNING <ls_fcat>.
       <ls_fcat>-coltext = '고객명'.
   ENDLOOP.
loop at screen.
end loop.
반복문 VB[ For A in each ]
Screen에 있는 모든 개체에 접근한는 명령임.
변경된 스크린 내용을 적용한다
SCREEN은 [아래쪽 SCREEN을 참고한다.]
LOOP AT SCREEN.
   IF SCREEN-NAME = 
'GS_ZSUTT_24-BUKRS'.
       SCREEN-INPUT = 0.
       MODIFY SCREEN.
   END IF.
 ENDLOOP.
DO [n TIMES].
 Statements
ENDDO.
반복문 VB[ FOR ~~ NEXT ]
  SY-INDEX의 값이 자동으로 변경된다.
DO 4 TIMES.
   WRITE : / sy-index.
   EXIT.
ENDDO.
move
=MID
=SUBSTR
명령문 MOVE : source TO target.
MOVE-CORRESPONDING:stru_sor TO stru_tag
MOVE '5.3' TO number.
MOVE-CORRESPONDING address TO name.
MOVE f1+3(3) TO f2+o(l).
MOVE etab[] TO ftab. 
DESCRIBE FIELD 명령문 Field txt의 [TYPE]을 확인하여 [t]에 넣어준다.
Field txt의 [LENGTH]을 확인 [t]에 넣어준다.
Field txt의 [소수점]을 확인하여 [t]에 넣어준다.
DESCRIBE FIELD txt TYPE t.
DESCRIBE FIELD txt LENGTH t IN CHARACTER MODE.
DESCRIBE FIELD num DECIMALS t.
DESCRIBE TABLE 명령문 Internal Table의 정보를 알려준다.
lin : rowcount , ini : occurs에 의한 초기값
knd : 종류[sTandard,Sorted,Hashed]
DESCRIBE TABLE itab LINES lin OCCURS ini KIND knd.
WRITE : / lin, ini , knd.
Lv_cnt = lines( itab )  => RowCount [ 많이 사용 ]
write 표시문 변수의 상태 및 결과치를 현재진행중인 window에 표시한다.
Type-1 에서 Write/Skip등의 명령을 설명할 것이다.
WRITE text.
WRITE /5(10) text.        [줄내림,공백5,10개만을 출력]
WRITE AT col(len) text. [줄내림,공백col,len개만을 출력]
SKIP 표시문 SKIP. [= SKIP 1.] 한쭉을 공백으로 내려준다.
SKIP TO LINE 1. 화면1번라인으로 위치시켜서 출력한다. 기존내용은 겹쳐쓰기가 된다.
Type-1 에서 Write/Skip등의 명령을 설명할 것이다.
SKIP line_number.
SKIP TO LINE line_number.

 

write문으로 표를 그리는 예시.

 

 

write문으로 표를 그리는 예시.

 

help.sap.com/doc/saphelp_nw70/7.0.31/en-us/9f/dba1ae35c111d1829f0000e829fbfe/content.htm?no_cache=true