class에 기반한 예외처리를 잘 알아야함
nomal상황에서 더 이상 진행할 상황이 없을 때 덤프 떨어지는 상황을 회피하기 위해서 sap 가 만들어 놓은 예외처리를 적극적으로 활용해야 하고. 그런 경우를 대비해 만든 3가지 카테고리를 스태틱, 다이나믹, 덤프체크 영영이 있음
abap raise exception 형태로create object처럼 exporting파라미터처럼 객체를 만드는 개념처럼 예외를 발생시켜서 바라보는 것
결국 객체가 갖고 있는것은 속성, method를 활용해서 적극적으로활용함.
text id attribute속성에다가 정보를 담아 사용자에게 알려줌
try, and try clean up -> 예외를 핸들링
try와 catch 사이에 예외를 잡음
기존에 있던 exception을 활용할 때는 raise exception을해서 바로 사용하면되고 새롭게 만들어서 하려면 raise exception에다가 새로운 파라미터를 넣어서 사용
processing block 들이 있는데 어느부분에서 예외처리에 대한 인스턴스를 발생 시킬까라는 것이 문제 .
메인 프로세싱 블럭. 예외 인스턴스를 발생할 필요는 없으며 객체가 가지고있는 특성상 프로그램이 수행하고 있는 제일 최상위 프로그램에 propergation시킴으로써 메인 프로그램에서 처리할 수 있도록
다른 객체를 만들고 다른 기능이 움직이도록 하는 것
shared memory - shared buffer -> formal parameter , import, export를 두는 식으로 사용했는데 불편해서
객체가 메모리에 로드되니 객체에 써버리자는 형식으로 변화
객체들이 들어갈 수 있는 공간을 만들고 그 객체들의 버전까지도 관리해서 여러가지 인스턴스들을 관리할 수 있도록 하나의 객체를 만드는데서 끝나는게 아니고 class를 통해서 관리하는것
shared object
주로 read목적 동시에 접속하는것이 가능해야함.
access 는 lock mechanism을 바탕으로
memory bottleneck은 발생할 수 있음. 동시에 접근read하는것이 아님. 너무 빨라서 안보이는것이지 나만의 영역에다가 shared는 할 수 잇지만 change 개념들이 만들어지지 않기 떄문에 bottle neck은여전히 발생할 수 있으며 어떻게 처리할 건지에 대한 메카니즘이 필요
객체가 가진 장점. 이름을 다르게 해서 여러개의 instance를 만든다 .
shared memory 안쪽에 있다고 생각하면 되고
area를 만들고
global 하고 fianl area
shma -> 공유가 가능한 메모리
1.shma 에서 class를 만든다
area class를 통해서 만들고 definition
이름을 create로 누르면
area창이 뜨고 z나 y로 이름을 만들고
zcl_bc402_01_area 등으로 만들고 ( class라고 생각)
description 작성 root class는 cl_shm_area ( 최상위 클래스. 상속을 받는다고 작성 ) client spcific area 체크하기
저장만 하면 영역이 생성
area class를 만들었으면 area instance를 만들어줘야 함
만들기 전 객체변수 handle( cl_my_area를 가리키는 , 접근할 수 있는 객체변수 ) 을 만들고 그에 따른 클래스에 뭘 적어야할 지 주의할 것
write lock( static method ) 접근만 하기면 instance.
그 개념이 그대로 적용. 객체를 만들면서
area instance 안에 go handle 이 들어가서 준비하는 것
create object 2개를 생성. 헤깔리지 않게 주의할 것 go root, go catalog ...
go root안에 go catalog 를 가르키도록 go catalog를 넣는것 ,.
가르키도록 연결하는 것
go root 객체 변수 class ->는 속성값에 접근한다는 의미
go cat은 attribute성분에다가
go catalog class를 가리키도록 하는 것
go catalog가 가리키는 객체변수를 쳐다보라는 의미
go handle 의 메서드는 set_root() 는 go root.
detach로 lock을 푸는 것
se24
global table attributes를 필요로 함.
create class
properties 에서 shared memory 체크하기
attributes만들기
method 만들어주기
associated type 은 gt와 같아야 함
source code에 넣어주기
Shared memory 를 쓴다고 체크해주기
shma
create 하기
root attributes에 catalog를 가르키는걸 만들어줘야함
root class의 역할은 activation
catalog -> root -> area ( shma 에서 만들어줌 )
프로그램 만들어주기
write . read 프로그램 만들어주기
객체지향 generic access < 할 때 최상위 개념에서 어떤 형태의 모양이든 처리하고 싶은 모양새
아밥 데이터 타입은 이미 알고 있지만 그것에 generic하게 access하기 위함
meaning 부분이 generalization . 수퍼클래스
se11 에서 데이터 테이블로 생성
zit_generic01
index 테이블 선택 시 자동으로 type is generic 으로 바뀜
레퍼런스를
assign a to b 로 하면 derefference로 갈 수 있다.
generic 하게 갈 수 있다.
최상위 클래스에 로컬 데이터 타입을 찾으려면 함수를 쓰면 아래로 넣어준다는.. 개념
class method를 아는가의 문제
정보를 하나하나 불러올 수 있음 ( 객체변수에 )
프로그램에 선언해두고
아래로 불러 오는것
타입 디스크립션은 최상위라 조금 복잡할 수 있음
엘레멘트는 객체로 만들 수 있는것
클래스마다 가지는게 다르고
타입에 맞게 프로그램을 변형하는 목적으로 사용
rttr까지 알아두기 <
dynamic programming 에대해서 알아두기
좋은 글 감사합니다. 자주 올게요 :)