본문으로 바로가기


TAW10_1 Exercise 11: Developing ABAP Programs

ABAP 프로그램 개발하기


Execrise Objectives

이번 예제를 통해 배울 수 있는 것

·ABAP 프로그램 생성, 수정, 저장, 처리

·ABAP 프로그램을 잘 만들었는지 확인하기

·ABAP 프로그램을 테스트하고 활성화 하기


Business Example

개발자인 당신은 모든 비행기 출발 시간을 출력하는 프로그램을 만들어야 한다. 데이터는 'SFLIGHT' 데이터베이스 테이블에서 읽어와야 한다.


Task 1:

프로그램 생성

1.'TOP include'에 체크를 풀고 프로그램 'ZBC400_01_GS_LIST'를 생성하자.


Task 2:

프로그램 수정

1.데이터를 가져오고 출력하기 위한 '작업 영역'(Work Area)를 선언하자(추천 이름은 'wa_flight'이다.):

DATA wa_flight TYPE sflight.


2.데이터베이스 테이블 'SFLIGHT'의 모든 레코드를 읽어오는 반복문을 프로그램하자.

SELECT * FROM sflight INTO wa_flight.

...

ENDSELECT.


3.각각의 데이터에서 'carrid', 'connid', 'fldate', 'seatsocc', 'seatmax'필드를 출력해보자.

NEW-LINE.

WRITE wa_flight-carrid.

WRITE ...


4.구문 에러가 있는지 확인해보고 테스트하고 활성화 하자.



이번 Exercise 11의 요청사항은 위와 같다. 역시나 하나씩 해보자.



Task 1:

프로그램 생성

1.'TOP include'에 체크를 풀고 프로그램 'ZBC400_01_GS_LIST'를 생성하자.

이전 포스팅 2013/10/28 - [SAP/SAP ABAP] - TAW10_1 Exercise 10: Organizing Developments 에서 만들었던 Package로 이동하자.


se80에서 패키지명을 'ZBC400_01'로 치면 된다.


Object Name아래에 있는 'ZBC400_01'을 마우스 오른쪽 클릭한다.

'Create - Program' 을 누른다


그러면 '프로그램 이름'을 입력하는 화면이 나온다.


아까 'Task 1: 1.'TOP include'에 체크를 풀고 프로그램 'ZBC400_01_GS_LIST'를 생성하자.' 이라고 했으니 'With TOP INCL.'에 체크를 풀고 프로그램 이름을 'ZBC400_01_GS_LIST'로 입력 해주자.


확인을 누르면 아래와 같이 ABAP 프로그램 정보를 입력하라고 나온다.


별로 고칠건 없으나 'Type'을 한번 눌러본다.

그러면 여러가지 Program Type들이 나온다. 맨 위에 'Executable program'을 선택 하면 된다.


패키지를 지정하라는 화면이다. 아까 만들었던 'ZBC400_01'에 잘 지정이 되있는지 확인 해준다.

다른걸로 되있다면 'ZBC400_01'로 바꾸고 'Continue'누른다.


Change request Object가 나온다. '확인'누른다.


'ZBC400_01_GS_LIST' 프로그램이 생성 되었다. 아래와 같은 화면이 나왔으면 잘 한 것이다.


우측 화면에서 프로그램명이 써있는 부분에 오른쪽을 보면 'Inactive'라고 나온다. 아직 활성화가 안되어 있다는 뜻이다. 


활성화(Active) 상태로 변경 하려면 '활성화'버튼을 누르거나 'Ctrl+F3'을 눌러주면 된다. 있다가 해볼거니까 이런게 있다는 것만 알고 넘어가도록 하자.




Task 2:

프로그램 수정

1.데이터를 가져오고 출력하기 위한 '작업 영역'(Work Area)를 선언하자(추천 이름은 'wa_flight'이다.):

DATA wa_flight TYPE sflight.


이건 위에 소스코드를 그대로 넣으면 된다.

이렇게 넣어주면 작업영역이 생성 된다.



2.데이터베이스 테이블 'SFLIGHT'의 모든 레코드를 읽어오는 반복문을 프로그램하자.

SELECT * FROM sflight INTO wa_flight.

ENDSELECT.


이것도 마찬가지로 위에 코딩하던 소스코드에 계속 추가해주면 된다.



3.각각의 데이터에서 'carrid', 'connid', 'fldate', 'seatsocc', 'seatmax'필드를 출력해보자.

NEW-LINE.

WRITE wa_flight-carrid.

WRITE ...


데이터를 읽어왔으니 한번 출력 해보자.


loop문 사이에 아래 소스코드를 넣어주면 된다.

  NEW-LINE.

  WRITE:
  wa_flight-carrid,
  wa_flight-connid,
  wa_flight-fldate,
  wa_flight-seatsocc,
  wa_flight-seatsmax.



전체 소스코드 첨부한다. 아래 소스코드를 복사붙혀넣기 하면 된다.

DATA wa_flight TYPE sflight.

SELECT * FROM sflight INTO wa_flight.
  NEW-LINE.
  WRITE:
  wa_flight-carrid,
  wa_flight-connid,
  wa_flight-fldate,
  wa_flight-seatsocc,
  wa_flight-seatsmax.

ENDSELECT.


4.구문 에러가 있는지 확인해보고 테스트하고 활성화 하자.

구문 에러는 활성화 시키면 알아서 체크해준다. 에러가 없으면 활성화 되고 있으면 에러메세지가 나온다.

상단 메뉴 중에 위와 같이 불이 반짝이는 아이콘을 누르거나 단축키 'Ctrl + F3'을 누르면 활성화 하는 화면이 나온다.

한번 해보자.


현재 화면에서

단축키 'Ctrl + F3'을 누른다.


그러면 아직 활성화 되지 않은 오브젝트 리스트가 주욱 나온다. 내꺼 하나만 나올 수도 있다.

우리가 지금까지 작업한 오브젝트가 'ZBC400_01_GS_LIST'이므로 선택해주고 좌측 하단 'Continue'버튼을 누른다.


별 문제가 없으므로 좌측 하단 '상태 표시줄'에 'Object Activated'라고 나온다.

한번 실행해보자 단축키는 'F8'번이다.


지정해준 5개의 field(carrid', 'connid', 'fldate', 'seatsocc', 'seatmax')에 대한 내용이 출력된다.



완료.







댓글을 달아 주세요