SAP/ABAP
-
[ABAP] #38 교육 시스템 프로그램 실습SAP/ABAP 2026. 3. 4. 17:42
* 프로젝트에서 처음 다뤄봤던 내용을 정리 ALV 출력시 드롭다운 박스 구현FORM create_list_box USING pv_alv TYPE REF TO cl_gui_alv_grid pv_handle. DATA: lt_dom_values TYPE TABLE OF dd07v, lt_dropdown TYPE lvc_t_dral, ls_dropdown TYPE lvc_s_dral. " 1. 도메인에서 고정값 가져오기 " CALL FUNCTION 'DD_DOMVALUES_GET' EXPORTING domname = 'ZDEITEM_CL2T4' " ITEM_TYPE 필드가 참조하는 실제 도메인명 입력 " ..
-
[ABAP] #37 ABAP 신문법SAP/ABAP 2026. 2. 3. 09:50
명령형(Imperative) vs 선언형(Declarative) 프로그래밍ABAP은 원래 Pascal이나 COBOL의 영향을 받아 명령을 순차적으로 내리는 명령형 언어로 시작했다.하지만 최신 버전(7.40 이상)에서는 Java나 C++처럼 결과값을 바로 표현하는 선언형(표현식) 방식이 도입되었다.명령형 (과거): ADD 1 to gv_counter. (카운터에 1을 더하라는 명령을 내림)선언형 (현재): gv_counter = gv_counter + 1. (결과값이 무엇이어야 하는지 수식으로 표현함)문자열 처리1. 문자열 연결" [Before]"CONCATENATE gv_var1 gv_var2 INTO gv_result." [After] "gv_result = gv_var1 && gv_var2. 2. S..
-
[ABAP] #36 TreeSAP/ABAP 2026. 2. 2. 11:29
Tree트리는 계층 구조(Hierarchy) 를 표현하는 자료 구조로,SAP에서는 조직도, 메뉴, BOM, 파일 구조 같은 걸 표현할 때 자주 사용한다. 1. 루트 노드 (Root Node)트리의 가장 최상위 노드부모가 없는 노드트리는 루트 노드 1개를 기준으로 시작Root ├─ A │ └─ A-1 └─ BSAP Tree에서도 보통 node_key = 'ROOT' 같은 식으로 명시적으로 만든다. 2. 노드 (Node)트리를 구성하는 각각의 요소실제 데이터 한 건 (부서, 메뉴, 항목 등)명칭의미부모 노드 (Parent Node)현재 노드를 직접 포함하고 있는 상위 노드자식 노드 (Child Node)특정 노드 아래에 속한 노드들형제 노드 (Sibling Node)같은 부모를 가진 노드들리프 노드 (L..
-
[ABAP] #35 Field Symbols + Excel UploadSAP/ABAP 2026. 1. 31. 11:22
Field Symbol= ABAP 버전의 포인터즉, Field Symbol은 값이 아닌 메모리 주소를 바라본다.변수 / 구조 / 내부테이블의 메모리 주소를 참조Field Symbol로 값을 바꾸면 원본 데이터가 바로 변경됨LOOP … ASSIGNING 사용 시 MODIFY 불필요Field Symbol 타입 정리1. TYPE ANYFIELD-SYMBOLS TYPE ANY.어떤 타입이든 받을 수 있음가장 범용적타입 체크는 런타임에 일어남 2. TYPE SIMPLEFIELD-SYMBOLS TYPE SIMPLE.기본 데이터 타입만 가능 (C, N, I, P, D, T 등)Flat Structure 가능내부 테이블, 중첩 구조 불가※ Flat Structure내부에 스트럭처나 인터널 테이블을 포함하지 않는 구..
-
[ABAP] #34 ABAP OOP - Class (2)SAP/ABAP 2026. 1. 25. 21:46
상속CLASS lcl_vehicle DEFINITION. PUBLIC SECTION. METHODS display_attributes.ENDCLASS.CLASS lcl_truck DEFINITION INHERITING FROM lcl_vehicle. " 상속 " PUBLIC SECTION. METHODS display_attributes REDEFINITION. " 재정의 "ENDCLASS.CLASS lcl_truck IMPLEMENTATION. METHOD display_attributes. super->display_attributes(...). " 부모 메서드 호출 " ENDMETHOD.ENDCLASS.상속이란 부모 클래스(Super Class)의 속성과 메서드를 자..
-
[ABAP] #33 ABAP OOP - Class (1)SAP/ABAP 2026. 1. 16. 22:59
https://engineering-student.tistory.com/134 [ABAP] #25 ClassClass데이터를 저장하고(속성) 기능을 수행하는(메서드) 하나의 설계도 또는 틀이다.ABAP 레포트에서는 주로 로직 분리, ALV 이벤트 처리, 재사용성 확보를 위해 클래스를 사용한다. Class Type1. Global Cengineering-student.tistory.com 로컬 클래스 (Local Class)프로그램 안에서 정의되는 클래스전역(Dictionary)이 아닌 Report / Module Pool 내부에서만 사용프로그램이 실행될 때 함께 로드됨CLASS lcl_test DEFINITION. PUBLIC SECTION. METHODS: say_hello.ENDCLASS...
-
[ABAP] #32 ABAP OOPSAP/ABAP 2026. 1. 16. 22:58
ABAP의 발전 배경ABAP은 원래 절차지향 언어시스템 규모가 커지고 복잡해지면서→ 유지보수성, 재사용성, 확장성의 한계 발생그 결과 객체지향 개념을 도입한 ABAP Objects가 추가됨그래서 현재 ABAP은 절차지향과 객체지향을 혼합해서 사용하는 언어이다.절차지향 프로그래밍 (Procedural Programming)프로그램 중심 구조데이터와 로직이 하나의 단위로 캡슐화되지 않음데이터는 보통 글로벌 데이터함수(서브루틴, Function Module)는 데이터를 직접 참조캡슐화가 약함 ※ 캡슐화객체지향의 핵심 개념 중 하나로, 외부에서 데이터를 함부로 접근하지 못하게 보호하는 것이다.절차지향에서의 캡슐화 시도Function Module을 사용하여 로직을 모듈화함으로써 어느 정도 구조화는 가능.Funct..
-
[ABAP] #31 Number RangeSAP/ABAP 2026. 1. 16. 22:57
Number Range시스템에서 자동으로 “고유한 번호”를 생성·관리하는 메커니즘즉, 사람이 직접 번호를 관리하지 않고 중복 없이, 순서대로 번호를 발급해 주는 SAP 표준 기능이다. 대표적인 예전표 번호송장 번호주문 번호고객/자재 번호커스텀 테이블의 IDNumber Range를 사용하지 않고 직접 MAX + 1 하게 된다면SELECT MAX( docno ) INTO lv_docno FROM ztable.lv_docno = lv_docno + 1.동시 실행 시 중복 번호 발생Lock 관리 직접 해야 함성능, 안정성 모두 안 좋음Number Range의 장점동시 사용자 환경에서도 중복 없음SAP가 내부적으로 Lock 관리트랜잭션 기반으로 안정적롤백/커밋 개념과 연동 가능Number Range Object ..