https://1drv.ms/u/s!BPUUFHAIy2yVgUHxVP3RUsPjJVjs?e=SEBedthaZkGrKY0QLEuWhA&at=9 

 

fpm_tutorials.zip

압축(ZIP) 폴더

onedrive.live.com

위 링크로 다운로드 하세요.

이 튜토리얼은 아래 사이트에서 다운로드 받은것 입니다.

플래시 파일입니다. 플레이어 exe 파일 함께 넣었습니다.

 

https://wiki.scn.sap.com/wiki/display/WDABAP/eLearning+Tutorials+-+Floorplan+Manager+for+Web+Dynpro+ABAP

 

https://www.adobe.com/support/flashplayer/debug_downloads.html

 

Module-pool 용어 FPM 용어
T-code application
Screen page
Sub screen UIBB
Global variable Singleton class -> attribute
Perform, function method
OK code event ID
PAI flush + process_event
PBO get_data
ALV list UIBB
Select option search UIBB
Popup dialog box
F1 help technical help

 

FPM 개발을 위한 참고문서 일명 cookbook 입니다.

방법1.
구글에 FPM cookbook 검색

방법2.
웹버전
http://help.sap.com/saphelp_nw74/helpdata/en/fa/a222ce95ea454d9671b18ad191649a/frameset.htm

방법3.
pdf파일
https://archive.sap.com/documents/docs/DOC-59244

 

목차:
interface & class

abstract class(추상 클래스)

inheritance(상속)

redifine method(메소드 재정의) = Method overriding

Polymorphism(다형성)

아래 nugg 를 설치 합니다.

NUGG_$OOP_TUTORIAL.nugg
0.02MB


ZOOP_TUTORIAL

*&---------------------------------------------------------------------*
*& Report ZOOP_TUTORIAL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zoop_tutorial.

* OOP tutorial
* 관계도:
* ZIF_OOP_VEHICLE interface 탈것
* - ZCL_OOP_HORSE class 말
* - ZCL_OOP_BUS abstract class 버스
*   - ZCL_OOP_CITY_BUS class 시내버스
*   - ZCL_OOP_EXPRESS_BUS class 고속버스
*     - ZCL_OOP_EXPRESS_BUS_X2 class 2배 고속버스
* - ZCL_OOP_CAR abstract class 승용차
*   - ZCL_OOP_CAR_K5 class 승용차 K5
*   - ZCL_OOP_CAR_K7 class 승용차 K7


* interface & class
DATA: lo_vehicle TYPE REF TO zif_oop_vehicle,
      lv_name    TYPE string,
      lv_speed   TYPE i.

* interface는 타입으로 사용할 수 있지만 class로 구현을 해야 객체를 생성할 수 있음.
*     "LO_VEHICLE" is not an object reference.
* CREATE OBJECT lo_vehicle.

* zcl_oop_horse 는 zif_oop_vehicle 인터페이스를 구현한 클래스 입니다.
* horse 객체를 생성할 수 있음.
CREATE OBJECT lo_vehicle TYPE zcl_oop_horse.
lo_vehicle->set_name( 'my horse' ).

lv_name = lo_vehicle->get_name( ).
lo_vehicle->drive(
  EXPORTING
    iv_direction = 'F'
  IMPORTING
    ev_speed     = lv_speed
).

WRITE:/ lv_name, lv_speed.



* abstract class(추상 클래스)
* zcl_oop_bus 는 zif_oop_vehicle 인터페이스를 구현한 추상 클래스 입니다.
* 추상 클래스는 구현을 가지고 있지만 생성 할 수 없음.
*   Instances of the abstract class "ZCL_OOP_BUS" cannot be generated.
*CREATE OBJECT lo_vehicle TYPE zcl_oop_bus.



* inheritance(상속)
* zcl_oop_city_bus 는 zcl_oop_bus 를 상속한 일반 (추상 아님) 클래스 입니다.
* city bus 객체를 생성할 수 있음.
CREATE OBJECT lo_vehicle TYPE zcl_oop_city_bus.
lo_vehicle->set_name( 'my city bus' ).

lv_name = lo_vehicle->get_name( ).
lo_vehicle->drive(
  EXPORTING
    iv_direction = 'F'
  IMPORTING
    ev_speed     = lv_speed
).

WRITE:/ lv_name, lv_speed.



* redifine method(메소드 재정의) = Method overriding
* zcl_oop_express_bus_x2 는 zcl_oop_express_bus 를 상속한 클래스 입니다.
* 상속 받은 다음 메소드에 로직을 추가 할 수 있습니다.
* zcl_oop_express_bus_x2 의 drive 메소드를 확인하세요.
CREATE OBJECT lo_vehicle TYPE zcl_oop_express_bus.
lo_vehicle->set_name( 'ex-bus' ).

lv_name = lo_vehicle->get_name( ).
lo_vehicle->drive(
  EXPORTING
    iv_direction = 'F'
  IMPORTING
    ev_speed     = lv_speed
).

WRITE:/ lv_name, lv_speed.


CREATE OBJECT lo_vehicle TYPE zcl_oop_express_bus_x2.
lo_vehicle->set_name( 'ex2-bus' ).

lv_name = lo_vehicle->get_name( ).
lo_vehicle->drive(
  EXPORTING
    iv_direction = 'F'
  IMPORTING
    ev_speed     = lv_speed
).

WRITE:/ lv_name, lv_speed.




* Polymorphism(다형성)
* TYPE 으로 선언한 변수의 하위의 상속받은 모든 클래스를 생성 할 수 있음.
CREATE OBJECT lo_vehicle TYPE zcl_oop_horse.
*CREATE OBJECT lo_vehicle TYPE zcl_oop_bus. " 추상 클래스는 생성 불가
CREATE OBJECT lo_vehicle TYPE zcl_oop_city_bus.
CREATE OBJECT lo_vehicle TYPE zcl_oop_express_bus.
CREATE OBJECT lo_vehicle TYPE zcl_oop_express_bus_x2.
*CREATE OBJECT lo_vehicle TYPE zcl_oop_car. " 추상 클래스는 생성 불가
CREATE OBJECT lo_vehicle TYPE zcl_oop_car_k5.
CREATE OBJECT lo_vehicle TYPE zcl_oop_car_k7.

DATA: lo_bus TYPE REF TO zcl_oop_bus.
*CREATE OBJECT lo_bus TYPE zcl_oop_horse. " 타입 일치 하지 않음.
*CREATE OBJECT lo_bus TYPE zcl_oop_bus.  " 추상 클래스는 생성 불가
CREATE OBJECT lo_bus TYPE zcl_oop_city_bus.
CREATE OBJECT lo_bus TYPE zcl_oop_express_bus.
CREATE OBJECT lo_bus TYPE zcl_oop_express_bus_x2.
*CREATE OBJECT lo_bus TYPE zcl_oop_car.  " 타입 일치 하지 않음.
*CREATE OBJECT lo_bus TYPE zcl_oop_car_k5.  " 타입 일치 하지 않음.
*CREATE OBJECT lo_bus TYPE zcl_oop_car_k7.  " 타입 일치 하지 않음.

DATA: lo_car TYPE REF TO zcl_oop_car.
*CREATE OBJECT lo_car TYPE zcl_oop_horse. " 타입 일치 하지 않음.
*CREATE OBJECT lo_car TYPE zcl_oop_bus.  " 타입 일치 하지 않음.
*CREATE OBJECT lo_car TYPE zcl_oop_city_bus.  " 타입 일치 하지 않음.
*CREATE OBJECT lo_car TYPE zcl_oop_express_bus.  " 타입 일치 하지 않음.
*CREATE OBJECT lo_car TYPE zcl_oop_express_bus_x2.  " 타입 일치 하지 않음.
*CREATE OBJECT lo_car TYPE zcl_oop_car. " 추상 클래스는 생성 불가
CREATE OBJECT lo_car TYPE zcl_oop_car_k5.
CREATE OBJECT lo_car TYPE zcl_oop_car_k7.

 

이글은 아래 링크의 원본 글에 대한 한글 번역 입니다

docs.abapgit.org/guide-install.html

 

abapGit documentation - Installation

Installation Improve this page Summary abapGit exists in 2 flavours: standalone version or developer version. The standalone version is targeted at users. It consist of one (huge) program which contains all the needed code. You run the standalone version i

docs.abapgit.org

 

설치 방법

 

요약

abapGit 는 두가지 버전이 있습니다. 단독실행 버전 과 개발자용 버전 입니다.

  • 단독실행 버전은 일반 사용자를 위한 것입니다. 하나의 (엄청 덩치가 큰) 프로그램으로 모든 소스 코드가 하나에 포함되어 있습니다. 실행방법은 SE38 티코드에서 프로그램을 신규로 만들어서 F8로 실행하면 됩니다.
  • 개발자용 버전은 abapGit 을 통해서 코드를 작성하고 싶은 개발자를 위한 것입니다. 프로그램, 클래스, 인터페이스 등 여러 개발 오브젝트로 구성됩니다. 실행방법은 ZABAPGIT 티코드를 실행하면 됩니다.

 

설치가능 서버 버전

abapGit을 설치하기 위해서는 SAP BASIS 버전 702 이상 이여야 합니다.

 

단독실행 버전 설치방법

  1. 이 파일을 다운로드 하세요. (마우스 오른쪽 버튼 누르고 save as 선택)
  2. SE38 이나 SE80 에서 신규 프로그램을 만듭니다. 이름 : ZABAPGIT_STANDALONE (예전에는 ZABAPGIT_FULL 이였습니다). 주의: ZABAPGIT 이란 이름으로 만들지 마세요. 그러면 개발자용 버전을 설치할때 문제가 생깁니다.
  3. 소스코드 편집기가 있는 화면에서 메뉴 Utilities -> More Utilities -> Upload/Download -> Upload 를 선택하여 파일을 업로드 하세요.
  4. 활성화 합니다.

보통은 개발서버에서만 사용할것이기에 패키지는 $로 시작하는 로컬에 (예: $ZABAPGIT) 만들어도 됩니다.

이제 SE38 티코드에서 방금 만든 리포트 프로그램을 실행하면 abapGit을 사용할 수 있습니다.

 

개발자용 버전 설치방법

abapGit 을 통해서 코드를 작성하고 싶은 개발자는 개발자용 버전을 설치해야 합니다. 우선 SAP 에 언어 EN 즉 영어로 로그인 합니다. 단독실행 버전을 먼저 설치하세요.(위에서 설명한 방법 참고)

 

온라인 기능을 사용하기 위해서는 우선 서버에 SSL 설정이 되어 있어야 합니다. 만약 서버가 인터넷 사용이 안되거나(예: 방화벽) 또는 서버에 SSL 설정이 불가능한 경우에는 오프라인으로 설치해야 합니다. (아래에 설명할것입니다).

  1. 단독실행 버전 abapGit을 실행합니다.
  2. repository overview 화면이 뜨면 “New Online”을 선택하세요.
  3. URL에 https://github.com/abapGit/abapGit/ 을 입력하세요.
  4. 패키지는 $ABAPGIT 을 입력하세요.(다른 이름의 패키지를 지정해도 문제는 없습니다)
  5. “Clone Online Repo” 를 선택하세요.
  6. “Pull” 을 선택하세요.

ZABAPGIT 티코드를 입력하면 개발자용 버전을 실행 할 수 있습니다.

 

오프라인으로 설치

최신 버전의 abapGit 을 홈페이지 https://github.com/abapGit/abapGit/ 에서 다운로드 받습니다. 홈페이지에서 Code > Download ZIP 을 선택하세요.

  1. 단독실행 버전 abapGit을 실행합니다.
  2. repository overview 화면이 뜨면 “New Offline”을 선택하세요.
  3. repo name에는 abapGit을 입력하세요. 패키지는 $ABAPGIT 을 입력하세요.(다른 이름의 패키지를 지정해도 문제는 없습니다)
  4. “Create Offline Repo”를 선택하세요.
  5. “Import zip”을 선택하세요.
  6. abapGit-main.zip 파일을 선택하세요.
  7. “Pull zip” 을 선택하세요.

ZABAPGIT 티코드를 입력하면 개발자용 버전을 실행 할 수 있습니다.

 

이글은 아래 링크의 원본 글에 대한 한글 번역 입니다

docs.abapgit.org/guide-install.html

설치방법 3가지

1. abapGit online
https://github.com/sapmentors/abap2xlsx.git



2. abapGit offline
다운로드:
https://github.com/sapmentors/abap2xlsx/archive/refs/heads/master.zip




3. saplink
7.0.6버전 까지만 지원합니다. 최신버전 설치불가.
다운로드:
https://github.com/sapmentors/abap2xlsx/raw/master/build/ABAP2XLSX_V_7_0_6%20-%202016-04-01.zip



Activate 순서:
딕셔너리 오브젝트 activate 하면 일부 에러남
프로그램&클래스 강재 activate
남은 딕셔너리 오브젝트 activate

버전관리
https://namu.wiki/w/%EB%B2%84%EC%A0%84%20%EA%B4%80%EB%A6%AC%20%EC%8B%9C%EC%8A%A4%ED%85%9C

버전 관리 시스템 - 나무위키

버전 관리 없이 문서를 작성한 경우 마지막에 유서는 기분탓이다. 소프트웨어 등을 작성할 때 변경점을 관리하는 것은 말할 필요도 없이 아주 중요하다. 버전 관리를 함으로서 얻을 수 있는 것

namu.wiki


깃(git)
https://namu.wiki/w/Git

Git - 나무위키

인터넷에 공개된 자료가 매우 많다. 여기서 주의해야 할 점이 있는데, 상당수의 입문 자료에서는 보통 branch를 분리하라고 하지만 현실 프로젝트에서는 그렇게 하다가 나중에 merge 단계에서 더

namu.wiki

버전관리시스템 종류중 하나로 예전에는 cvs 나 svn을 많이 사용하였으나 최근의 대세는 git 입니다.

깃허브(Github)
https://namu.wiki/w/GitHub

GitHub - 나무위키

GitHub is how people build softwareGitHub는 사람들이 소프트웨어를 개발하는 방법입니다 대표적인 무료 Git 저장소. 2008년 공개했다. Git 호스팅 기능 덕분에 GitHub는 자유 소프트웨어의 성지로 떠올랐다.

namu.wiki

깃 저장소중 하나로 가장 널리 사용됩니다.

아밥깃(abapGit)
깃 클라이언트 프로그램중 하나로 아밥 언어를 지원합니다.

SAP에서는 자체적으로 CTS 라고 버전관리 및 소스배포가 가능한 시스템이 기본 포함되어 있습니다.
그런데 왜 아밥깃을 사용해야 할까요? 그 이유는 여러 사이트에 흩어져 있는 개발자간의 협업과 인터넷을 통한 소스배포가 가능하기 때문 입니다.
CTS는 여러 사이트에서 협업하는것이 불가능 합니다.

abapGit의 등장으로 공개 프로그램 배포용도로 saplink를 대체하는 움직임이 나타납니다. 대표적으로 엑셀 업로드/다운로드 프로그램 abap2xlsx가 있습니다. 배포를 위해 홈페이지를 만들고 saplink nugg 파일을 업로드하는 일 대신, abapGit으로 SAP서버에서 바로 GitHub에 업로드하여 배포하게 된 것이죠.

배포된 것을 다운로드 받는 일반 사용자는 GitHub에 가입할 필요가 없습니다. GitHub는 소스코드 개발에 기여하고자 하는 개발자에게 필요한 것입니다. GitHub의 기능이 궁금하다면 제가 만든 체험용 계정 guru@programmer.korea.com / guruguru9 으로 테스트 해보세요.

abapGit은 일반사용자용으로 단독실행(standalone) 버전을 제공하고 개발자용 버전이 따로 있습니다.

version 2.0 출시 다음 글로 이동하세요.

https://boy0.tistory.com/177 

 

KR_POSTCODE : 한국주소입력 Version 2.0

https://github.com/boy0korea/KR_POSTCODE boy0korea/KR_POSTCODE South Korea Postal Code in ABAP & WDA & FPM. Contribute to boy0korea/KR_POSTCODE development by creating an account on GitHub. github.c..

boy0.tistory.com

**********************************************************************

 

KR_POSTCODE 는 SAP용 주소입력 API 입니다.

다음주소API 화면을 ABAP(or WDA or FPM) 에서 호출 하고 결과를 받을 수 있습니다.

 

abapGit으로 설치하세요.

https://github.com/boy0korea/KR_POSTCODE

 

이 파일을 SAPLink로 설치 합니다.

NUGG_ZKR_POSTCODE.nugg
0.14MB

 

데모 프로그램 : ZKR_POSTCODE_DEMO

설명서 : ZCL_KR_POSTCODE=>README

실행:

다음주소API의 장점: 무료 사용. API 키발급 필요없음. 즉, 관리할게 없음.

공식적으로 부모 컴포넌트를 찾는 방법은 없습니다.

여기서는 data_container_superior 를 활용합니다.

 

서버버전은 731 기준입니다.

 

 

  DATA: lo_wdr_comp TYPE REF TO cl_wdr_component,
  lo_wdr_client_comp TYPE REF TO cl_wdr_client_component,
  lv_parent_comp_name TYPE string.
  lo_wdr_comp ?= wd_this->wd_get_api( ).
  lo_wdr_client_comp ?= lo_wdr_comp->data_container_superior.
  lv_parent_comp_name = lo_wdr_client_comp->parent->component_name.

 

ABAP의 BINARY SEARCH의 특이한 점은 키가 동일한 레코드중 첫번째를 찾아준다는 점입니다.

일반적으로 바이너리 서치라고 하면 반반 나눠서 중간에 있는걸 검사하고 키가 동일하면 거기서 끝나지만 ABAP 에서는 동일한 키를 가진 레코드중에 첫번째를 찾아서 계속 바이너리 서치를 합니다.

 

확인용 테스트 프로그램

DATA: BEGIN OF lt_test OCCURS 0,
  col1 TYPE char1,
  col2 TYPE i,
END OF lt_test.

* lt_test = [ { A, 1 } , { A, 2} , ... { A, 10} ]
DO 10 TIMES.
  lt_test-col1 = 'A'.
  lt_test-col2 = sy-index.
  APPEND lt_test.
ENDDO.

READ TABLE lt_test WITH KEY col1 = 'A'.
WRITE:/ lt_test-col2.
READ TABLE lt_test WITH KEY col1 = 'A' BINARY SEARCH.
WRITE:/ lt_test-col2.

 

 

 

'ABAP' 카테고리의 다른 글

abap2xlsx  (0) 2021.05.07
KR_POSTCODE : 한국주소입력  (0) 2021.03.31
스마트폼 이미지 다운로드  (0) 2017.07.05
ABAP Objects 책 PDF  (0) 2016.12.07
Next Generation ABAP Development 책 PDF  (0) 2016.12.07

+ Recent posts