2023.07.03

권영은·2023년 7월 3일
0

SAP_수업

목록 보기
1/36
post-thumbnail
post-custom-banner

(p.346)

BAPI_ remote system이 access

(BAPI는 OOP형식 데이터와 기능이 함께 있는 것 )

  • 테이블에 접근해서 데이터를 return. 외부 프로그램에서 어떤 data object, 어떤 attribute 가지고 오는 것.
  • 테이블에 접근해서 데이터를 return. 외부 프로그램에서 어떤 data object, 어떤 attribute 가지고 오는 것

Standard BAPIs Attribute + method

GetList, GetDetail, Create & Change & Delete & Cancel, AddOtem & RemoveItem

Properties of a BAPI Function Module

BAPI CAll in an ABAP Program

대부분 패턴으로 찾아서 call 하면 unit test, function test

Calling Methods of Global Classes

  • method 는 function.
  • Signature(parameters-active,formal).
  • Global calss Documentation and Testing
  • Static Methods, instance // data와 function 에도 static, function 두가지 종류가 존재.
  • eception Handling _ class bassed exception (Try, catch, end)
  • Instance Creation and Methods to Call Instances

Principles of Object-Oriented Programming

클래스 ( Object + instance ) -> 속성과 각각 개체를 가지는 것

Example of Access Option

puclic / Proteceted / Private

Mutiple Instantiation of Classes (p.354)

  • Object에서 다양한 method를 만들 수 있다.
  • Function은 메인에 1밖에 못올리지만 Object는 원하는 만큼 올릴 수 있음 -> 객체지향 프로그램을 사용하는 이유

Instance Components and Static Components

Instance는 객체가 만들어져야 사용할 수 있지만 static 은 객체가 만들어지지 않아도 클래스 상태에서 사용할 수 있음.

Attributes of Glbal Classes

Method and Their Signatures

Description에 method를 무한히 넣을 수 있지만 class가 추상화를 기본으로 하기 때문에 사칙연산을 더하기, 빼기, 나누기 등은 넣을 수 있지만 갑자기 write를 넣는 등의 완전 다른 method를 쓸 수는 없음.

Method Parameters (p.357)

class가 조금 더 복잡한 형태
method하나에 펑션모듈이 가지고 있는기능과 데이터를 넣을 수 있고 이벤트 구현이 가능하다는 것.

이벤트를 기본으로 프로그래밍을 한다는 것은 c,파이선, 자바는 절차적, 객체 지향으로 가서 이벤트로 한다는 것은 다른 이야기.
아밥은 레포트라는 프로그램 자체가 내부적으로 로드오브 프로그램., 이니셜라이그래이션, 에스셀렉션 스크린 아웃풋, 사용자 입력을 처리하는 뎃 셀렉션 스크린 이벤트, 스타트오브 셀렉션 이벤트 등으로 프로그램이 동작한다.

-> 이벤트 처리 : 절차적이 아닌 사용자의 인풋에(트리거)에 의해 무언가 트리거되어서 움직이는 것 (실제 운영되는 프로그램에 가까움)

Method Exception

  • 클래스를 집어넣어야 함. power to high
  • return코드를 클래스로 만들어진 인스턴스를 활용해서 에러처리를 해준다는 것.

Global Class Documentation and Testing

Static Methods

  • call method (펑션모듈과는 다른 아밥키워드로 만들어진다)
    exporting importing / importing 에 exporting 이 들어간다.

Classic Exception Handling

exception 부분에서 ㅏ잡아주는것

Class-Based Exception Handling

Try와 catch 사이에 에러가 발생할 수 있는 원인이 들어가는 것.
각각의 캐치문에서 해당 문구를 받아 내부 인스턴스를 만들어서 처리해주는 것.

Exercise 20 p.364


like -> 이미 선언된 데이터가 있다면 like로 선언할 수 있음.
type Ref -> 객체라고 하는 것은 이름이 없음. 예를들어 클래스 이름은 있지만 객체는 이름이 없음. 걔를 어떻게 가리키는지 주소(Ref)로 가리키기때문에 항상 tye ref로 써야함

associated type 더블클릭 시

소스코드를 보고 싶다면 method 해당 코드 더블클릭으로 포워드

모듈화의 핵심은 fomal type과 actual을 구분하는 것

돌아가고 싶으면 methods를 클릭


sigature 버튼 클릭하면 아래 파라미터를 볼 수 있음


display

소스코드에서 test enviroment (체크/액티브/ 3번버튼)

해당 창에서 excute로 test 가능

다음 자기 패키지 안에 넣고 p.365 Try 부터 endTry까지 입력
(원래는 패턴으로 불러올 수 있지만 다음에 하고 이번엔 직접 입력하기)

사용하지 않는 부분은 언코멘트창으로 만들기
(삭제해도 상관은 없음)

Instance Creation and MEthods to Call Instances

클래스를 만들고 ref1, ref2로 클래스를 가르키는 참조변수를 만드는 것
클래스를 참조하는 변수를 만드는 것 화살표 하나가 메모리 내부적으로 . 클래스는 1개지만 ABAP프로그램에서 로드되는 것은 인스턴스 2개

Creation of Global Classes

Creation of Static Methods

소스코드를 더블클릭해서 아래로 만들기

Display of the Signature in the Source Code Editor

signature 를 보며 소스코드 집어넣기. 빌더에서 테스트.

Exercise 21

(p.374)



모두 activation

Exercise 22

(p.376)
ZCL_01_Compute 만들기

메서드에서 get_percentage 누른 후 static / public / description짧게 작성하기

파라미터로 돌아가서 아래와 같이 입력해주기

가운데 위 소스코드를 눌러서
active 로 활성화해주기

글로벌 클래스 1을 복사해서 2로 만들어주고

콜펑션 모듈을 코멘트 모드로 해주고 패턴을 클릭

아밥 오브젝트 패턴을 클릭 후 엔터

만들어 둔 클래스 인터페이스와 메서드를 입력 후 넣어주고
코멘트 된 부분을 풀고 결과값을 입력해주면 완성

Using Local Classes

local은 아밥에서 코딩창을 열고 class definition 후 클래스 implementation으로 불러와 쓰는 것 ( 선언부와 구현부를 나눠서 디자인 해야 함)

Syntax for Static Methods

calss-methods 는 static method,end method필요없음 / method 는 instance , end method 필요

Implementation and Use of a Static Method

public먼저 정의 후 구현 -> 소스코드에서 열었던 것을 implementation(구현)에서 적어놓고 fomal parametal에서 구현. (시스템에서 하냐 로컬에서 하냐의 차이로 글로벌임을 알 수 있음)
서브루틴으로 볼 수 있음. (perform a / form-end form.)

Definition of Strictired Data objected (p.393)

complex한 data를 선언하겠다. 글로벌 타입을 활용한 structure을 만드는 것
se11 아밥 딕셔너리
데이터 엘리먼트들이 모여있는것을 스트럭처 타입이라고 하는데 이미 딕셔너리에 bc400이라는 스탠다드가 있음.아밥 딕셔너리를 이용해 데이터 타입을 이용한 아밥딕셔너리 정의

se11 (아밥딕셔너리)

데이터 타입 클릭 후
디스플레이 클릭
6개의 필드를 가지고 있다는 것을 알 수 있음

각각의 필드에 element (component type) 를 알 수 있음

-> hana3 에서는 스탠다드를 들고 올 때 사용하는 것만을 가지고 와야하기 때문에
셀프 디파인드(필요로 하는) 방법을 알고 있어야 함.

Definition of Structures with Local Types (p.394)

types : Begin of 변수명으로 시작해서 ,,정의하고 End of 변수명.

Access to Structure Components

-(하이픈)을 통해 원하는 특정 필드에 접근.

또는 데이터 타입이 맞지 않아 생기는 오류이기 때문에 데이터 타입을 맞춰준다

Use of Structured Data Objects

Unit9. Exercise

(p.281)


레포트가 아닌 디버깅모드에서도 assignment에 체크하고 continue로 체크하면 내려온다는 것은 디버거에서도 스탑포인트를 찍을 수 있다.


Gv-count에 커서를 두고 와치포인트를 둔다는 것은
한 스텝들어가거나 서브루틴을 뛰어넘거나 빠져나오거나 혹은 브레이크 포인트까지 내려가는 기능밖에 없는데 와치포인트는 예를들어 gv_count값이 sy_index값에 따라 값이 빼기가 되다가 내려가면 값들이 아우터와 이너의 값이 커졌다 작아졌다 변하는데 스텝이 아닌 어떤 변수의 변화가 있을 때마다 관찰하고 싶을 때 와치포인트 (감시) 프로그램이 돌아가다가 변화가 있을 때 ( 순차적방법으로 모니터링 할 수 없을 때 )

빈공간에 커서를 두고 와치포인트를 쳤을 때


와치포인트에서 내가 추가한 와치포인트를 볼 수 있고 삭제가능

와치포인트를 건 값을 variable 에 넣고 continue를 누르면 값이 변화하는 것을 볼 수 있음.

클래식 아밥 디버거에서는 최대 10개 걸 수 있음.


do 가 두번. 이너와 아우터를 비교해보기가 task 3번문제

반복문에 exit를 만나면 빠져나가고 2개면 다시 걸려서 반복되는 것을 해보라고 하는 것

task 4

값이 같지 않으면 리턴해서 프로그램에서 빠져나가는 것.

return을 만나면 프로그램 종료. -> 바꿔보기

수정하고 5로 같게
continue 하면

문구가 출력되는걸 볼 수 있음.

Structured Data Objected in Debugging Mode (p.397)

값이 제대로 안들어간다면 디버깅 가능.. 팬슬로 값을 직접고치면서 가능

Exercise 23

p.401

프로그램 생성
se11에서 주어진 BC400_s_flight 로 검색해서 component값을 타입으로 선언해줌
데이터 타입을 변수 선언

지역변수로 선언한 타입을 다시 데이터로 선언 해준다.
clss / interface 에서 메서드 두개를 드래그앤드랍해주기



try - end try 구문이 2개라서 하나로 합쳐줌.

Table Type

(p.406)

  • internal table 이 어디에 사용되는지 중요
  • 데이터를 넣고 뺄 때, 스크린 디스플레이와 관련,출력할 때도, 파일로 만들 때도 사용
  • 여러개의 데이터 레코드들이 저장. 다이나믹하게 관리, 개발자들이 메모리 구조를 생각하지 않아도 되고 읽거나 쓰는 명령어만 사용해도 된다는 것
  • 각각의 레코드들은 다양한 이름으로 사용

Properties of Internal Tables

  • 라인 타입 : 스트럭처 모양이 어떻게 되어있는가. 필드가 몇 개 있는가

  • 프라이머리 키 :(세컨더리도 있다는 말) 테이블에서 빨리 찾아야하는 키 값을 가지고 있다는 것

  • 테이블 카인드 : 테이블의 종류 3가지, Standard(표준), sorted, hashed type (키와 value를 함께 가지고 있는 테이블)

    key -> intner table에 데이터가 쌓일 때 sorting 알고리즘으로 쌓이게 됨.
    예를 들어 콴타 에어라인을 찾고 싶을 때 q값을 어떻게 찾을지 .
    대부분 binary (이진법) tree sortiing 로 검색 (오름차순으로 정렬되어 있어야 함). 가운데 값보다 크냐 작냐에 따라서 헥사코드를 따져서 반절을 버리고 반절을 버리는 등의 속도를 증가시킴

    Attributes and Uses of Tables

  • hashed는 sorting 을 할 수 없음. 키값을 넣어야 함.

    Difinition of inter Tables

    (p.409)
    table 타입은 3가지. line-> structure를 만들어놨으면 쉽게 만들 수 있음. 라인타입이 없어도 필드들로 억지로 만들 수 있음.
    SE11 딕셔너리에서
    인터널은 DATA TYPE에서 검색 display 눌러줌

    bc400 더블클릭 포워딩

    standard type table임을 알 수 있음
    키값 3개가 셋팅되어있음을 알 수 있음
    세컨더리는 대부분 잘 안함.

Definition of Internal Tables with Local Types

Independent Definition of Internal Table

라인타입으로 만든 뒤 데이터로 정의. 안쓰면 스탠다드.

Possible Definitions of Internal Tables

시험예제 ) 다음 중 인터널 테이블을 정의하는방법 중 잘못된 것을 고르시오

exercise



like line of 를 치면 테이블을 가지고 structure를 만들 수 있음.

필드안에 들어가있는걸 볼 수 있음.

패턴 넣기-아밥오브젝트


p.415~ 418 해보기

Syntax Example -Sorting and Deleting Content

p.420
소팅알고리즘 _ 소팅을 하는 중에 스테이블 소팅의 경우 이미 소팅되어있는 것들은 건들이지 않고 소팅.

Reasons for Not Using TAbles with Header Lines

자동으로 생성되는 경우 실제 코딩에서 거의 쓰지 않음 (readability가 너무 떨어짐)
nested object( structure안에 table이 들어가는 모양) 에서는 헤더라인 테이블이 허용되지 않기 때문에 사용하지 않음

exercise

p.427

글로벌타입스트럭처는 스트럭처 타입으로, 테이블타입은 테이블 타입으로 선언해주기
패턴가지고 오기


받아오는 값이 없기 때문에 exporting 값은 코멘트로 설정해주고 et_connections 에 gt_connection을 넣어준다.


profile
SAP/ ABAP Student
post-custom-banner

0개의 댓글