17
SAP Technology COLUMN #5 Application Class

SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

Application Class

Page 2: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

목 록 1. Overview ................................................................................................................................. 3

2. Runtime Behavior .....................................................................................................................4

3. Application Object에 접근하기 ................................................................................................5

4. Application Events: IF_BSP_APPLICATION_EVENTS Interface .............................................5

5. Application Basis Class CL_BSP_APPLICATION ....................................................................7

6. Application Class의 구성 .........................................................................................................8

7. Application Class 적용 예 .....................................................................................................12

Page 3: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

1. Overview BSP application은 많은 다른 개발 object를 포함할 수 있는데, 이 object들 중 하나

가 application class이다.

Application class는 ABAP Object class이다.

Application class는 인터페이스, 속성(attribute), 방법(method), 이벤트 등을 가진다.

속성 : data를 저장하기 위한 global 변수로 사용되고 BSP page에서는 그 변수의

데이터를 이용할 수 있다.

방법 : BSP application logic을 encapsulation한다.

하나 이상의 BSP application에서 같은 application class를 사용할 수 있다.

BSP application에서 항상 application class를 사용할 필요는 없다. 단지, BSP

application을 구성하기 위한 옵션이다.

Transaction SE80에서 application class를 BSP application에 지정하기 위해서 Web

Application Builder를 사용한다.

Class를 작성하기 위해서 Transaction SE24를 이용한다.

Page 4: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

2. Runtime Behavior ABAP Object class는 BSP application의 application class처럼 사용될 수 있다.

그러나, BSP runtime 환경은 singleton(하나씩 일어나는 것, 한 장 패의 수)으로써 클래스를

다뤄야 한다. 즉, class는 세션 당 하나의 instance를 가진다.

Application class의 lifetime은 BSP application의 state model(stateful, stateless)에 의존한다.

Stateful BSP Application

- Application class의 하나의 instance를 가진다.

- 그 application object는 BSP application에 보내지는 최초 요청 시에 생성된다.

- 생성된 object는 세션의 전체 lifetime동안 이용된다.

- Application object의 lifetime은 세션이 종료될 때 종료된다.

- Stateful mode에서 application class는 data sets에 대해서 local buffering을 제공한다.

Stateless BSP Application

- Application context는 하나의 요청의 lifetime동안 유일하게 이용되고, request의 종료

시 release된다.

- Application context가 release될 때, 세션에 의해서 application server상에서 유지된

data와 object, application object가 release된다.

- Application object의 lifetime이 request가 받아질 때 시작하고, response가 보내질

때 종료된다.

- 각 페이지와 각 request는 application class의 다른 instance와 상호 작용한다. 즉,

각 페이지나 각 request는 각각 instance를 생성해야 한다.

- Stateless mode에서, application object는 request에 대한 data를 유지할 수 없다.

Application class는 방법(method)에 비즈니스 로직을 저장하기 위해서 보통 사용되

지만, data를 보관(유지)하지는 않는다.

Page 5: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

3. Application Object에 접근하기 BSP의 모든 event handler에서 application이라는 parameter로 지정된 object reference를

사용한다. 그 parameter는 application class가 BSP application에 지정되어 있을 때만 이용할

수 있다.

4. Application Events: IF_BSP_APPLICATION_EVENTS Interface Stateless BSP application에서 application의 lifetime은 어떤 time에 제어를 할 필요가 있을

수 있다.

BSP model은 application class에 대해서 predefined interface인

IF_BSP_APPLICATION_EVENTS로 이 기능을 제공한다.

Application class가 interface IF_BSP_APPLICATION_EVENTS를 수행할 때, BSP runtime 환

경은 적절한 때에 interface methods를 호출한다.

아래는 메소드와 그 time을 설명한다.

IF_BSP_APPLICATION_EVENTS

~ON_START

BSP application이 BSP session이 최초로 시작될 때 BSP

runtime 환경에서 호출된다. stateless와 stateful application

둘 다 지원한다.

이 time point는 전체 application의 인증을 체크하거나

stateful application에서 예비 data를 얻기 위해서 사용된다.

IF_BSP_APPLICATION_EVENTS

~ON_STOP

BSP application이 완전히 종료될 때 BSP runtime 환경에

의해 호출된다. stateless와 stateful application 둘 다 지원한

다.

주의)

이 time point는 stateless BSP application에서 request 후에

이용할 수 없다. 또, timeout에 의해 세션이 완전히 종료되

었다면, 이용할 수 없다.

Application이 쿠키들을 가지고 있다면, 브라우저의 쿠키와

server-side 쿠키를 지우는 것과 같이 cleanup 조작을 하기

에 유용하다.

IF_BSP_APPLICATION_EVENTS

~ON_REQUEST

BSP에 들어오는 모든 request에 대해서 BSP가 주어진

control을 하기 전에 BSP runtime 환경에 의해 호출된다.

Page 6: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

이 time은 application class에 의해서 사용될 수 있다. 예를

들면, 이전의 request에서 client-side 쿠키나 server-side 쿠

키에서 구하고 attribure에 저장할 수 있다.

IF_BSP_APPLICATION_EVENTS

~ON_RESPONSE

BSP 가 처리한 후 모든 outgoing response에 대해서 BSP

runtime 환경에 의해 호출된다.

이 time은 client-side 쿠키나 server-side 쿠키에서 attribute

에 값을 저장하는 등의 작업을 할 때 stateless application

class에서 사용될 수 있다.

Page 7: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

5. Application Basis Class CL_BSP_APPLICATION Application class가 super class를 가지지 않았다면, 미리 정의된 base class인

CL_BSP_APPLICATION으로부터 유래(derived)될 수 있다. 이 class는 BSP application에서

필요로 하는 메소드를 제공한다. 메소드들은 현재 BSP application(session timeout, BSP

application의 현재 URL, state mode 등등)에 대한 정보를 어떻게 호출할 것인지와 모을지에

대한 기능들을 가진다.

모든 BSP event handler에서 Application object는 “application” attibute이다.

CL_BSP_APPLCIATION class의 메소드를 상속받아 사용할 수 있다. “application”이라는

object reference를 통하여 낮은 application level로 관련 기능을 제공하기 쉽게 해준다.

[참고] Class CL_BSP_APPLICATION

CL_BSP_APPLICATION은 BSP application class의 superclass이다. 각 application은

CL_BSP_APPLICATION으로부터 자신의 application class를 유래(각색)할 수 있다. 만약 개

개발한 application class가 아직 상속관계를 가지지 않았다면, CL_BSP_APPLICATION을 상

속받도록 한다.

=> Class CL_BSP_APPLICATION의 모든 메소드는 interface IF_BSP_APPLICATION을 통하

여 기능이 구현되어 있다.

=> IF_BSP_APPLICATION은 나중 컬럼에서 설명한다.

Page 8: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

6. Application Class의 구성 등록정보

Page 9: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

인터페이스

Page 10: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

속성

Page 11: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

방법

Page 12: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

7. Application Class 적용 예 {6. Application Class의 구성에서 보인 방법(method)와 속성을 예로 들겠다.}

예제) 조회년도에 대한 데이터를 function에서 받은 후 HTMLB의 dropdownlistbox로 보이기

① Function

[Tables]

[Structure]

Page 13: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

[Source code]

Page 14: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

② Application Class

[방법 선언 – GET_YEAR]

[속성 선언]

Page 15: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

[방법 내용 작성]

③ BSP

[BSP Application 등록정보에 Application class 지정]

Page 16: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

[BSP Layout 작성 – bsp명 : year.htm]

[Event Handler에서 Application class의 method 호출]

Page 17: SAP Tech를 통해 SAP의 Web Application Server와 그것을 근간으로 ...atsg.co.kr/pdf/SAPTech_5.pdf · 2012-03-27 · SAP Technology COLUMN #5 1. Overview z BSP application은

SAP Technology COLUMN #5

④ 결과보기