Pretty-Printer을 하면 좀 더 정돈된 코드로 abap화면을 볼 수 있다.

 

 

Utilities-pretty Printer에서 원하는 정도로 바꿀 수 있음

 

 

 

다시 돌아가서, Tables 문장이 무엇을 하는 지 알아보자

프로그램이 실행될 때, Tables문장은 ABAP 딕셔너리에서 정의한 Z_EMPLOYEE_LIST_01 테이블 구조 기반으로 메모리에 테이블 구조를 생성한다.

이 구조에는 우리가 정의한 모든 필드가 포함된다. => 이를 통해 테이블에서 레코드를 읽고, 임시구조에 저장해 프로그램에서 사용가능

 

 

Select는 반복문이기 때문에, 

EndSelect를 써줘야한다.

check를 눌렀을 때 2가지 error발생

 

/nse11 로 가서 확인하니, Table이름은 ZEMPLOYEES이므로, 코드에 명명했던 Table이름을 바꿔준다.

 

루프안에 넣으면, Hello, Sap World가 화면에 보임 

 

ZEmployees 테이블에 있는 사람들의 정보를 WRITE로 해서 불러온다.

 

위와 같은 결과가 잘나온다!

 

화면을 줄이고 싶다면? Line-size를 조절해준다

 

저장 -> check -> activate -> Test를 해주면!

 

위와 같은 결과가 잘 나오는 것을 볼 수 있다.

 

💡 '/' : 줄바꿈 


SELECT * FROM ZEMPLOYEES .
	WRITE zemployees.
ENDSELECT .
SELECT * FROM ZEMPLOYEES .
	WRITE / zemployees.
ENDSELECT .

위 두 코드에 '/' 를 둬보자. LINE-SIZE는 532면, 아까봤던 정보들은 '/'가 없으면 쭉 이어져서 나타난다

 

 

💡 ULINE : 밑줄 긋는 것 


💡 SKIP : 줄을 건너는 것 


 

 

💡 사용하고 싶은 필드만 지정하기 


 

-> 이렇게 하면 성능이 좋아지고, 데이터가 처리되는 지에 대해 더 많은 제어권을 가질 수 있음

 

 

DATA: empno TYPE zemployee-empno,
      surname TYPE zemployee-surname,
      forename TYPE zemployee-forename.

SELECT empno surname forename
  INTO (empno, surname, forename)
  FROM zemployees.

  WRITE: / empno, surname, forename.

ENDSELECT.

📝 abap editor code 작성하기!

 

`Se38` : Abap Editor -> execute

 

 

abap workbench에 없으면 /nse38 로 검색!

 

 

Employee List에 대한 생성

 

 

report해준다

 

주석은 *로 표현하거나 "로 쓸 수 있다.

*일시, 맨 첫 열에만 쓰일 때만 주석역할을 함

끝 줄로 가서 '"' 를 입력하면, 큰 따옴표 오른쪽은 모두 주석으로 바뀜

 

 

end line : ' . '으로 표현.

어떤 형식으로 있든, .으로만 종결해주면 된다. ** ABAP의 모든 문장은 반드시 마침표로 끝나야함!

 

 

문장 키워드에 i(information)을 두면

Report에 대한 설명이 나온다. F1키를 바로 눌러도 된다.

 

 

report에 대한 정보를 얻을 수 있음 

 

 

ABAPDOCU 트랙잭션을 세션에서 검색하면 함수의 기능, 소스코드, 실행까지 해볼 수 있다.

 

💡 Report 문장: 실행 가능한 프로그램을 만들 때 반드시 가장 처음에 나와야 하는 문장이다.

REPORT z_my_first_program.

- report로 시작하지 않으면, sap입장에서는 어떤 종류의 프로그램인지 몰라서 실행할 수 없음

- 이후 작성될 코드를 SAP이 올바르게 해석할 수 있게함

💡 시작 문장용도

REPORT 실행 가능한 일반 프로그램
PROGRAM 실행되지 않고, include 되는 코드
FUNCTION-POOL 함수 그룹 정의
CLASS-POOL 클래스 정의용
INTERFACE-POOL 인터페이스 정의용
INCLUDE 다른 프로그램에 포함될 코드 조각

✅ write 문장: 출력 창에 출력하는 것 

write 'Hello Sap World!'.



출력결과

 

 

필드이름:

- 어떤 문자로든 시작할 수 있음 ( Z/Y로 시작할 필요X)

- 최대 16자

- 테이블에는 최소한 하나 이상의 키 필드가 반드시 있어야 함

- 키 필드는 데이터검색, 정렬에 사용되며 각 레코드를 고유하게 식별할 수 있게 도와줌

- 필드에는 초기값을 지정할 수도 있음

- 테이블에서 사용하는 모든 필드는 데이터 요소로 정의됨

* 데이터 요소는 각 필드의 속성(타입, 길이, 설명 등)을 정의함

* 새로 만드는 데이터 요소는 반드시 Z or Y로 시작해야함

 

 

 

데이터 설정해주기 => field lable을 쓰면 output이 여기에 맞춰서 알아서 보여준다!

📘 데이터 딕셔너리(Data Dictionary)


✅ 데이터 딕셔너리란?

데이터 딕셔너리는 SAP 시스템에서 사용되는 데이터베이스와 테이블을 조회, 이해, 확장할 수 있는 핵심 도구

SAP에서 제공하는 표준 테이블을 조회할 수 있고, 새로운 사용자 정의 테이블을 직접 만들 수도 있음

뿐만 아니라, SAP에서 제공하는 기존 테이블에 새로운 필드를 추가해서 확장할 수도 있음

 

- 실습환경과 다를 때 / Tcode 찾는 방법

/n => 현재화면 종료하고 새로운 티코드 실행
/o => 새로운 세션에서 해당 티코드 실행
/nex => 모든 활성 창 종료 후 LOG OFF

 

💡 se11이 없는데, 찾아야할 때 => `/nse11`


💻 SAP GUI에서 데이터 딕셔너리 열기


SAP GUI를 열고, 메뉴에서 Tools → ABAP Workbench로 이동

거기서 Development → SE11 (ABAP Dictionary) 를 찾아 더블클릭하면 ABAP Dictionary 메인 화면이 열림

 


📌 ABAP Dictionary 첫 화면 구성

첫 번째 항목: Database Tables (데이터베이스 테이블)

→ 기존 테이블 이름을 입력하고 “Display” 버튼을 누르면 테이블의 기술적 구성요소 확인 가능

Views

→ 실제 데이터를 가지진 않지만 테이블처럼 생긴 구조

Data Types

→ 테이블을 구성하는 데이터의 형태 (필드 타입 등)

Type Groups, Domains, Search Help, Lock Objects 등도 있음

 


🧱 실습: 투명 테이블(Transparent Table) 생성

Database Table 항목을 선택하고,

“ZEMPLOYEES” 처럼 이름을 입력한 후 Create 클릭

 

❗ 테이블 명명 규칙
Custom 테이블은 Z 또는 Y로 시작해야 함
SAP에서는 일반적으로 Z로 시작하는 이름을 사용함
- Z : 정규업무의 경우 (개발자, 설계자 생성)
- Y : 임시로 만든 것

 

 


🖋 테이블 설명 작성 및 속성 설정

1. Short Text 필드

테이블에 대한 설명을 작성

예: Employees

2. 하단 탭에서 Delivery and Maintenance 탭이 기본 선택됨

3. Delivery Class 드롭다운 선택:

여러 가지 클래스 중 “Application Table” 선택

→ 마스터 데이터나 트랜잭션 데이터를 저장할 테이블에 적합

4. Data Browser/Table View Maintenance 드롭다운:

“Display/Maintenance Allowed” 선택

→ 나중에 이 테이블에 직접 데이터를 입력할 수 있도록 허용함

 


💾 테이블 저장 (Save)

상단의 Save 아이콘 클릭

팝업창: “Create Object Directory Entry” 라는 창이 뜸

 


🧳 이게 뭐냐면?

보통 SAP 개발은 개발 시스템 → 테스트 시스템 → 운영 시스템으로 전송(Transport) 돼야 함

이 팝업은 개발 객체(오브젝트)를 어느 패키지(개발 클래스)에 넣을지 정하는 창

 

이번 실습에서는?

전송할 필요 없음 → Local Object 버튼 클릭

그러면 개발 클래스에 $TMP 이라는 임시 저장소로 저장됨

→ 이 오브젝트는 현재 개발 시스템 안에만 존재

하단 상태 표시줄에 “테이블이 저장되었습니다” 라는 메시지가 뜸

 


🧭 확인: 메뉴 > Go To > Object Directory Entry

위 메뉴에서 Go To → Object Directory Entry 선택 시

이전과 비슷한 팝업이 다시 뜸

여기서도 개발 클래스가 $TMP로 설정된 것을 확인 가능

 


✅ 요약 흐름 정리

1. SAP GUI 실행

2. SE11 또는 메뉴로 ABAP Dictionary 열기

3. 테이블 이름에 ZEMPLOYEES 입력하고 Create

4. Short Text 작성: “Employees”

5. Delivery Class: Application Table

6. Maintenance: Display/Maintenance Allowed

7. Save 클릭 → Local Object 선택

8. 테이블이 $TMP 개발 클래스로 저장됨

 


🔍 SE11은 뭘까?

SE11 = ABAP Dictionary 트랜잭션 코드

SAP에서 사용하는 모든 데이터 오브젝트(테이블, 뷰, 데이터 타입 등)생성, 수정, 조회, 테스트할 수 있는 중앙 통합 개발 도구

 

✅ SE11을 사용하는 이유

 

1. 테이블을 직접 만들고 확인할 수 있는 툴이기 때문

개발자가 직접 사용자 정의 테이블(Z테이블) 을 만들 수 있음

필드 추가, 기술 설정, 기본 키 설정, 검색 도움말 연결 등

2. SAP 표준 테이블도 검색하고 분석 가능

예를 들어 MARA (자재 기본정보 테이블), VBAK (판매 문서 헤더) 등

→ SAP 내부 테이블도 SE11에서 열어볼 수 있음

SAP가 제공하는 테이블의 구조나 데이터 타입이 어떻게 설계되었는지 분석 가능

3. 데이터 직접 테스트 가능

테이블을 만든 뒤, [Utilities → Table Contents → Display] 메뉴에서

데이터를 직접 조회하거나 입력해볼 수 있어 (조회만 가능한 경우도 있음)

개발 후 결과 확인이나 간단한 테스트용으로 유용함

 

4. ABAP 프로그램 개발

대부분의 ABAP 프로그램은 DB에 데이터를 읽거나 저장하는 로직이 포함됨

=>  테이블이 먼저 준비되어야 함

→ 그래서 프로그램 작성 전에 SE11로 테이블부터 만드는 것

 

5. 통합

SE11에서 만든 테이블은:

SE38 (코드 작성)

SE80 (오브젝트 관리)

SE37 (Function Module)

SE51 (화면 개발)

등 모든 SAP 개발 도구에서 바로 사용 가능함

 

💡 투명 테이블(Transparent Table)이란? : ABAP에서 정의한 테이블 구조가 데이터베이스에 그대로보인다(투명하다뜻)

ABAP에서 정의한 그대로 DB에 1:1로 저장되는 테이블!

SAP에서 사용하는 데이터베이스 테이블의 한 종류 / 가장 일반적이고, 대부분의 개발자가 사용하는 표준 테이블 형태.

ABAP Dictionary에 테이블을 정의하면 실제 DB에서도 동일한 이름, 동일한 필드 구조로 생성됨 => ABAP ↔ DB 간 구조 일치 = 투명

SE11에서 테이블 ZEMPLOYEES를 정의하면:
→ 실제 Oracle, HANA 등 DB에서도 ZEMPLOYEES라는 테이블이 생기고,
→ 필드도 동일하게 존재함


✅ ABAP에서 테이블을 만든다고 해서 곧바로 DB에 저장될까? ✔️ NO!

ABAP Dictionary(SE11) 에서 테이블을 생성하고 구조를 정의하는 순간에는 SAP 내부의 메타데이터만 구성됨.

이 상태에선 실제 데이터베이스(DB) 에는 변화가 안 생기며, Activate를 눌러야 실제 DB에 테이블 생성 DDL이 구현됨 

SAP이 자동으로 DB 유형에 맞는 SQL문을 생성 후 실행 예: HANA, Oracle, MSSQL 등

Open SQL만 써도 DB 독립적으로 개발할 수 있음

🌍 SAP 프로그램 실행 환경 및 구조 해석

 

📌 개요

SAP 시스템에서 프로그램이 실행되는 환경

워크 프로세스(work processes)

ABAP 프로그램의 구조

 


📄 SAP의 프로그램 종류

 

SAP 시스템에는 기본적으로 두 가지 유형의 프로그램이 있다.

1. Report 프로그램 (리포트)

데이터 목록을 생성하는 단순 프로그램

선택 화면을 제공하고, 실행되면 사용자는 중간에 개입할 수 없음

결과는 실행 후 바로 출력됨

약간의 상호작용 기능이 있을 수도 있음

 

2. Dynpro 프로그램 (Dialog + Program, 대화형 프로그램)

사용자의 입력에 따라 흐름이 달라지는 동적 프로그램

여러 개의 화면(스크린) 을 통해 진행됨 (이를 “다이얼로그 스크린”이라 부름)

사용자가 버튼을 클릭하거나 필드를 선택함으로써 프로그램의 흐름을 결정함

화면에 정의된 Flow Logic(프로그램 흐름 로직) 에 따라 기능이 트리거됨

 

✅ 대부분의 ABAP 개발자들은 리포트 프로그램 안에서 작업하는 경우가 많음

→ 이름은 리포트지만 항상 결과를 출력하는 것은 아님

→ 내부에서 데이터 읽기, 쓰기, 비즈니스 로직 처리도 담당

 


⚙️ 워크 프로세스란?

 

SAP 시스템에서 실행되는 모든 프로그램은 워크 프로세스(Work Process) 위에서 동작함.

워크 프로세스는 애플리케이션 서버 위에서 실행

운영체제나 DB와는 독립적으로 작동

이 덕분에 SAP는 플랫폼 독립성을 유지할 수 있어

 


🛠 워크 프로세스는 누가 설정하나?

SAP 시스템이 처음 세팅될 때, Basis 컨설턴트들이 SAP를 설치하고 메모리 설정 등을 담당

이들이 워크 프로세스 개수를 사전에 정해둠

=> 이는 일종의 DB와의 연결 채널 수를 정해두는 것과 비슷함

 


🧑‍💻 Dispatcher란?

 

SAP 시스템은 동시에 많은 사용자가 로그인할 수 있지만, 동시에 처리되는 요청 수는 제한되어 있음

그래서 모든 사용자에게 고정적으로 프로세스를 할당할 수 없음

→ 이 때 등장하는 것이 Dispatcher

Dispatcher는 사용자의 요청을 감시하다가,

사용 가능한 워크 프로세스를 찾아 할당해줌

가능하다면 동일한 프로세스가 다음 단계도 계속 담당하려고 시도함

하지만 사용자가 입력을 오래 지체하면, 다른 프로세스로 넘어가기도 함

 


🧠 워크 프로세스의 내부 구성 요소 3가지

 

1️⃣ Dynpro Processor

스크린 흐름 로직 처리 담당

사용자의 입력에 따라 다음 화면 흐름 제어

계산은 하지 않음!

오직 화면 로직 제어만 함

 

2️⃣ ABAP Processor

 

ABAP 코드의 실제 로직 실행을 담당

Dynpro Processor가 받은 입력을 처리하고,

결과를 다시 화면에 전달

논리 연산, 수치 계산, 권한 검사, DB 읽기/쓰기 수행

 

3️⃣ DB Interface (데이터베이스 인터페이스)

ABAP 코드와 데이터베이스 간의 중개자 역할

Open SQL을 통해 다양한 DB와 통신 가능

예: Oracle, MS SQL 등 어떤 DB든 같은 ABAP 문법 사용 가능 → 덕분에 ABAP 코드는 DB 독립적

 

🧾 Open SQL vs Native SQL

 

✅ Open SQL

SAP 표준 방식

ABAP에서 제공하는 DB 독립적인 SQL 문법

어떤 DB든 같은 코드를 쓸 수 있음

유지보수도 쉽고, 다른 개발자도 이해하기 쉬움

🌟 권장 방식

 

❌ Native SQL

특정 DB 전용 SQL 문법 (Oracle 전용, MSSQL 전용 등)

직접 DB에 접근하는 방식

보안/안정성 문제 발생 가능

시스템 관리자가 사용을 제한하는 경우 많음

🧱 SAP 시스템의 기술 아키텍처 (Technical Architecture)


 

🎯 3계층 클라이언트-서버 구조 (3-Tier Client Server Architecture)

 

① 프레젠테이션 서버 (Presentation Server)

SAP 시스템을 조작하기 위한 입력 장치

예시: SAP GUI

하지만 SAP GUI만 사용 가능한 건 아님

→ 웹 브라우저, 모바일 기기 등도 사용 가능

 

이 Presentation Layer는 Application Server와 통신.

 


② 애플리케이션 서버 (Application Server)

SAP 시스템의 두뇌(Brain) 역할

모든 중앙 처리가 이곳에서 수행

단일 시스템이 아니라, 여러 개의 인스턴스로 구성될 수 있음

→ 확장 가능한 구조

 


③ 데이터베이스 서버 (Database Server)

데이터 저장소

애플리케이션 서버와 별도로 분리된 시스템

이유:

성능 향상

보안 강화

이 3계층 분리는 효율성과 안정성을 위해 도입된 구조

[사용자 입력: Presentation Layer]
    ↓
[로직 실행: Application Layer]
    ↓
[데이터 요청: Database Layer]
    ↑
[데이터 반환 → 처리 → 최종 결과 전달: Application → Presentation]

 

🏗️ SAP Landscape Architecture (시스템 분리 구조)


일반적인 구성 3가지 시스템

✅ 1. 개발 시스템 (Development System)

개발자들이 코드 작성하고 단위 테스트(Unit Test)를 수행하는 공간

회사의 실제 운영 시스템에 영향을 주지 않음

 


✅ 2. 테스트 시스템 (Testing System)

개발이 완료된 기능을 테스터(내부 or 외부)가 검증하는 공간

개발은 금지되어 있음. 오직 테스트 용도로만 사용

개발 시스템에서 Transport System을 통해 코드가 옮겨짐

 


✅ 3. 운영 시스템 (Production System)

실제 비즈니스에서 사용하는 시스템

코드가 이곳에 배포되면 실제로 운영/사용 시작

 


❓ 시스템을 나누는 이유

1. 운영 시스템 보호

개발 도중 버그나 실수가 운영에 영향을 주지 않도록

2. 대용량 데이터 처리

운영 시스템은 데이터가 방대하기 때문에

개발/테스트 시스템에 그대로 복제하기엔 부담이 큼

→ 일부 샘플 데이터만 사용하는 게 일반적

3. 보안 (Security)

개발자나 테스트 인원이 실제 직원 정보, 매출 데이터 등 민감한 데이터를 보지 못하게 막음

 


🔁 시스템이 더 많아진다면?

예: 트레이닝 시스템, 병렬 프로젝트를 위한 별도의 개발/테스트 시스템 등

어떤 회사는 Consolidation System(통합 시스템)을 거쳐서 운영 시스템에 반영하기도 함

 


🎯 공통점

모든 시스템(개발/테스트/운영 등)은 자기만의 애플리케이션 서버와 데이터베이스 서버를 가짐

→ 이는 플랫폼 독립성 확보와 시스템 간 영향 최소화를 위한 구조

 

📘 Module 1: SAP 시스템 개요 (SAP System Overview)

 


 

🧱 1. SAP 시스템의 고수준 아키텍처

SAP의 기술 아키텍처 이해

3-Tier 구조 (Presentation / Application / Database)

플랫폼 독립성 (Platform Independence)

→ 다양한 OS, DB 위에서 동일한 ABAP 코드 실행 가능

→ 유연성과 확장성이 뛰어남 😎

 


🧠 2. 프로그램 실행 환경 이해

워크 프로세스 (Work Processes) 구조

Dispatcher 요청 분배

ABAP 프로그램의 기본 구조 학습

📄 Report 프로그램 (비대화형)

🖥 Dynpro 프로그램 (대화형)


🖥 3. 실제 SAP 시스템 살펴보기

SAP 시스템에 직접 로그인하여 탐색

Fiori Launchpad 또는 SAP GUI 활용

 

 


📈 4. SAP 비즈니스 모델 개요

SAP가 어떤 방식으로 기업의 업무를 지원하는지 소개

ERP 구성 요소와 모듈 간의 관계 이해


🔧 5. ABAP Workbench 시작하기

 

ABAP 개발 환경 구성

개발 도구 소개 (SE80, SE38 등)

첫 번째 ABAP 코드 실행

🧪 실습목적

- /LRN/S4D400_EXERCISE 패키지를 즐겨찾기에 추가하고, ZLOCAL 아래에 개인용 개발 패키지 ZS4D400_##를 새로 만드는 것

 

📝 실습에서 요구하는 패키지 속성

✅ 1단계: /LRN/S4D400_EXERCISE 즐겨찾기에 추가

1. Project Explorer에서 ABAP Favorite Packages 항목을 찾기

2. 우클릭 > Add Package... 클릭

3. /LRN/S4D400_EXERCISE 입력 → OK → 목록에 추가되는지 확인

✅ 2단계: 새 패키지 생성 (내 전용 패키지 만들기)

1. 메뉴에서: File > New > ABAP Package 또는 Project Explorer 우클릭 → New > ABAP Package

 

✅ 3단계: 설정값 입력

 

 

✅ 4단계 : 패키지가 즐겨찾기에 추가됐는 지 확인!

 

💡 패키지의 쓰임새 

👉 이후 실습에서 만들 클래스, 인터페이스, CDS View 같은 오브젝트들을 모두 이 패키지 안에 저장하고, 내 실습폴더라고 생각하면 된다.

 

 

 

 

CLASS-DATA go_instance TYPE REF TO /dmo/cl_flight_legacy.
CLASS-METHODS get_instance RETURNING VALUE(ro_instance) TYPE REF TO /dmo/cl_flight_legacy.

🔍 이 클래스가 뭘 하는지 요약하면?

🎯 목적: 여행(travel), 예약(booking), 예약 보조정보(booking supplement) 정보를

생성(create)

수정(update)

삭제(delete)

조회(get)

가격 계산(determine, total price)

저장(save)

하는 전체 비즈니스 로직을 담고 있음

 

🧱 클래스 구성 요약

📦 1. 싱글톤 방식

 

CLASS-DATA go_instance TYPE REF TO /dmo/cl_flight_legacy.
CLASS-METHODS get_instance RETURNING VALUE(ro_instance) TYPE REF TO /dmo/cl_flight_legacy.

- 클래스 인스턴스 하나만 사용하는 싱글톤 패턴

- get_instance()로 항상 동일한 인스턴스를 가져옴

2. 주요 공개 메서드

 

메서드 이름 기능 요약
create_travel 새로운 여행 및 예약, 보조정보 생성
update_travel 기존 여행 정보 및 하위 항목 수정
delete_travel 여행 및 하위 예약 정보 삭제
get_travel 여행 및 하위 정보 읽어오기
set_status_to_booked 여행 상태를 예약완료로 설정
adjust_numbers ID 재정렬/매핑 등 처리
save / initialize 데이터 저장 또는 초기화
convert_messages 예외 → 메시지 구조 변환

 

💸 3. 가격 계산 로직 (calculate_flight_price)

lv_percentage_of_max_price = (3 * iv_seats_occupied_percent ** 2 DIV 400) + 25.
rv_price = lv_percentage_of_max_price * iv_flight_distance DIV 100.

 

🧠 4. 내부 메서드들 (PRIVATE SECTION)

_determine, _determine_travel_total_price

→ 전체 하위 오브젝트를 기준으로 여행 총 가격을 결정

_convert_currency

→ 통화 변환 로직 포함

_resolve_attribute

→ 예외 발생 시 속성명으로 메시지를 매핑해줌

 


🧪 학습 포인트 (분석할 때 눈여겨볼 것)

✅ 객체지향적인 설계

Buffer 객체(lcl_travel_buffer 등)를 통해 데이터 캐싱 및 준비 처리

각각의 CUD 처리 방식이 cud_prep, cud_copy, cud_disc 등으로 모듈화됨

✅ 에러 메시지 처리 방식

예외를 메시지(/dmo/if_flight_legacy=>tt_if_t100_message)로 변환

convert_messages() 또는 _resolve_attribute() 참고

✅ 트랜잭션 처리

에러 발생 시 cud_disc() 호출로 변경사항 무효화

성공 시 cud_copy() 호출로 실제 적용

 

 

 

 

 

🧪 Task 2: ABAP 클래스 /DMO/CL_FLIGHT_LEGACY 분석하기

📝 목표 : 코드 내용을 해석하는 것이 목적이 아닌, ADT의 탐색 및 표시기능에 익숙해지는 것

 

 

 

✅ 실습 단계:

 

▶️ 1단계: 클래스 열기

Ctrl + Shift + A => /dmo/cl_flight_legacy 찾기

 

 

▶️ 2단계: class 편집기 아래의 Properties 탭에서 이 오브젝트의 관련정보 확인하기(언어, 생성자, 마지막 변경시간 등)

 

 

▶️ 3단계: 

Project Explorer 상단 도구 중 Link With Editor클릭

 

 

 

<-->요 모양이 Linke with Editor다.

눌러주면,

 

이렇게 현재 열려있는 클래스의 위치를 찾아 tree가 자동으로 열려진다.

 

▶️ 4단계: get_instance( )->get 문자열 찾기

ctrl + f 로 find에 get_instance( )->get 를 입력 후 find클릭하면 된다.

 

 

▶️ 5단계: get method 찾기

 

get ( 이라는 메서드의 정의로 이동한다.

F3 or Navigate > Navigate to 기능 사용(오른쪽마우스) 

 

 

 

▶️ 6단계: get method 찾기

 

 

Select 코드 줄에서 /dmo/travel 테이블 이름 위에 커서를 두고 F2를 눌러 데이터 오브젝트 정보 툴팁을 확인할 수 있다.

 

▶️ 7단계: Select 키워드 위에 커서를 두고, F1를 눌러 ABAP언어 도움말을 열어볼 수 있다.

 

 

🎯 총정리

 

단계 TO DO
클래스 열기 /DMO/CL_FLIGHT_LEGACY 열기
Project Explorer 연동 왼쪽 트리뷰에서 위치 자동으로 확인 (Link with Editor)
문자열 찾기 get_instance( )->get 검색
정의로 이동 get( 위에서 F3 눌러서 메서드 정의 보기
요소 정보 보기 SELECT 구문에서 /dmo/booking 위에서 F2 누르기
ABAP 언어 도움말 SELECT 위에서 F1 눌러 도움말 보기

 

 

 

+ Recent posts