분류 전체보기
-
[ABAP Dictionary] Structure & View & Else...SAP/Abap 2022. 2. 5. 15:12
[Structure] 컴포넌트(필드)로 구성되어있으며 데이터가 아닌 구조만 갖는 abap dictionary 타입. 실제 DB에는 생성되지 않고 abap dictionary에만 존재하는 타입이다. Abap 프로그램 내에서 참조로 사용되거나, 테이블 또는 구조체의 구조로 포함(INCLUDE, APPEND)된다. TABLES 구문을 통해 구조체를 work area로 사용 가능하지만, 이경우 데이터가 저장되는 실제 테이블를 찾을수 없다. [View] 관계형 database에서 여러 테이블 내에 분산된 데이터를 한번에 조회할 수 있는 기능을 제공한다. 하나 또는 다수의 테이블의 데이터를 통합하여 조회할 수 있다. Abap dictionary에서 생성된 view가 활성화되면 DB에 생성되며, 이후 DB inter..
-
[ABAP Dictionary] Overview & TableSAP/Abap 2022. 1. 29. 17:36
GF[Abap Dictionary: Overview] Abap Dictionary란 abap 프로그램에서 사용되는 object들을 의미한다(Table, View, Structure, Type...) Abap Dictionary는 이러한 object들의 정보(metadata, data definition)를 중앙집중식으로 관리한다. Abap dictionary와 Abap workbench는 동적으로 연결되어 있다. Abap dictionary 내 변경된 object의 metadata는 모든 시스템 object에게 알려진다. 모든 데이터를 중앙집중식으로 관리함으로써 데이터의 integrity(무결성)와 consistency(일관성), security(안정성)을 보장한다. 1) Abap dictionary의 ..
-
[Debugging] DebuggerSAP/Abap 2022. 1. 22. 17:57
[Debugging : Overview] 디버깅이란, 프로그램 내부의 오류를 찾아 수정하는 작업을 의미하고, 이때 사용되는 소프트웨어를 디버거(Debugger)라고 한다. Abap debugger는 Abap workbench에 통합된 tool이다. Classic Debugger - Abap 프로그램과 동일 세션에서 열린다 - Conversion exit 등 일부 Abap 프로그램에서는 디버깅이 불가능하다 New Debugger - Abap 프로그램과 별개의 외부세션에서 열린다. - Abap 프로그램 종류와 관계없이 디버깅 수행이 가능하다. 1) 디버깅 방법 모든화면 Command창에 [/h] 입력 => 가장 많이 사용하는 방법 모든화면 [System] -> [Utilities] -> [Debug ABAP..
-
[Internal Table] Internal tableSAP/Abap 2022. 1. 19. 19:28
[Internal table : 명령어] 1) 인터널테이블 값 할당 일반 변수와 마찬가지로 MOVE구문을 사용한 값 할당이 가능하다. # Header line이 없는 인터널 테이블 [MOVE | MOVE-CORRESPONDING] itab1 TO itab2. == itab2 = itab1 # Header line이 있는 인터널 테이블 [MOVE | MOVE-CORRESPONDING] itab1[] TO itab2[]. == itab2[] = itab1[] Header line이 있는 인터널테이블 할당시 header line값만 복사된다. [] 키워드를 사용해야 table의 body값이 복사된다. REPORT ZA05_15. TYPES : BEGIN OF t_line, col1 TYPE i, col2 TY..
-
[Internal Table] Internal table 개념SAP/Abap 2022. 1. 19. 14:44
[Internal table: Overview] Internal table이란 Abap언어에서 가장 강력한 기능을 제공하는 것중 하나로 프로그램 내에서 직접 정의해 사용이 가능한 local table이다. Abap의 internal table은 선언시 initial size를 지정하지만, 실제 메모리에는 해당 크기만큼 할당되지 않는다. 즉, INSERT 또는 UPDATE구문으로 테이블에 데이터가 추가될때마다 추가된 line만큼 실제 메모리가 할당된다. 선언된 initial size는 실제 메모리의 할당이 아닌 예약(reserve)의 의미를 갖는다. Internal table의 명령어는 항상 할당과 추가가 쌍을 이루어야 한다. 값이 할당되더라도 추가과정이 생략되면 internal table에는 해당 값이 ..
-
[Modularization] FunctionSAP/Abap 2022. 1. 18. 17:03
[Function: Overview] Subroutine과 유사하게 기능별 모듈화, 재사용을 위해 구성된 구문이다. Subroutine은 local modularization, Function은 global modularization이라고 할 수 있다. Function과 Subroutine의 차이점 Function은 function group이라고 하는 일종의 pool에 포함되어야 한다. Function은 예외처리 기능을 제공하여, 에러 발생시 해당 에러를 호출한 프로그램에 전달할 수 있다. Function은 호출 프로그램에 상관없이 stand-alone 테스트가 가능하다. Function은 호출시 parameter를 input으로 제공하고, 수행 결과를 output parameter로 반환한다. Fun..
-
[Modularization] SubroutineSAP/Abap 2022. 1. 17. 11:01
[Subroutine] 특정 스크립트의 모듈화, 구조화를 통한 재사용을 목적으로 구성된 구문으로 프로그램 내/외부에서 모두 호출이 가능하다. * Subroutine 호출부 PERFORM write_data. * Subroutine 정의부 FORM write_data. WRITE :/ 'Subroutine TEST'. ENDFORM. [Subroutine: Parameter(1)] Parameter: Subroutine의 정의부와 호출부 사이에서 주고받는 데이터로 모든 data type, field symbol, internal table 등이 사용 가능하며, subroutine 내에서는 일반적인 local 변수처럼 사용된다. - Actual parameter: Subroutine 호출 시 사용되는 par..
-
[Open SQL & Native SQL] Native SQLSAP/Abap 2022. 1. 14. 15:03
[Native SQL] DB의 종류에 상관없이 실행이 가능한 Open SQL과는 달리 Native SQL은 DB에 종속적이고, 자주 사용되지 않지만, Open SQL로는 불가능한 복잡한 SQL구문을 사용할 수 있다. 장점 Abap dictionary에 생성된 테이블을 포함한 모든 테이블에 접근이 가능하다. Open SQL: Abap dictionary에 생성된 테이블에만 접근이 가능하다. Database에 의존적인 SQL구문이므로 Open SQL에 비해 정밀한 SQL 작업이 가능하다. 단점 EXEC ~ ENDEXEC 사이 구문점검(Syntax Check)이 수행되지 않아 dump error가 발생할 수 있다. DB환경에 종속적이기에 다른 DB를 사용하는 환경에는 적용이 불가능하다. Client를 구분하는..