본문 바로가기

ABAP 프로그래밍 개념/ABAP Dynamic Programming(동적 프로그래밍)

(8)
7. ABAP 동적 프로그래밍 : Dynamic Program Generation 앞서서 1번부터 6번글에서 논의한 ABAP 프로그램안에서 사용되는 동적 프로그래밍 개념에 따르면, ABAP 프로그램도 동적으로 실행할 수 있습니다. 프로그램을 동적으로 생성하는 것은 다른 동적 프로그래밍 기술이 요구 사항을 충족하지 않는 경우에서 최후의 수단으로 사용해야 합니다. Dynmaic Program Generation은 숙력된 개발자를 위한 것이며, 정확히 무엇을 하는지 이해를 못할 때 심각한 문제를 일으킬 수 있다는 주의와 함께 사용됩니다. 동적으로 생성되는 프로그램의 단점들은 보통의 프로그램처럼 테스트할 수 없다는것과 심각한 보한 위험에 관여될 수 있다는 것입니다. 동저으로 생성될 프로그램에는 두 가지 종류가 있습니다. 1. Trasient Program Trasient Program은 In..
6. ABAP 동적 프로그래밍 : Dynamic Procedure Calls Procedures 은 Dynamic Token을 사용하여 동적으로 호출될 수 있습니다. 예를 들어, 만약 런타임 시에 호출될 필요성이 있는 서브루틴을 결정할 수 있다면, 서브루틴의 이름을 Dynamic Token을 통해 전달할 수 있습니다. 외부의 서브루틴을 호출할 때는, 외부의 프로그램의 이름을 동적으로 전달 할 수 있습니다. PERFORM (subroutine_name) IN PROGRAM (program_name) IF FOUND. 서브루틴을 동적으로 호출할 때, 만약 서브루틴과 프로그램이 발견되지 않는다면, 런타임 에러가 발생할 것입니다. 런타임 에러를 피하기 위하여 IF FOUND라는 addition을 사용하는 것이 좋습니다. 메소드들은 클래스 이름과 메소드 이름을 Dynamic Token을 ..
5. ABAP 동적 프로그래밍 : Dynamic Token Specification 다양한 ABAP 구문과 함께, 괄호안에 Data Object를 사용하여 동적으로 Token으로 개별 Operand들을 구체화할 수 있습니다. Token이란, ABAP 구문의 구성요소들로, 구문을 나눴을 때의 대상입니다. 예를 들어 Operands, Operators, ABAP Words등이 있습니다. https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abentoken_glosry.htm token - ABAP Keyword Documentation help.sap.com Data Object의 데이터(내용)은 구문의 Operand로서 사용됩니다. 예를 들어, PERFORM (data_object), 에서 data_object는 PERFORM문에서 실..
4. ABAP 동적 프로그래밍 : Runtime Type Services(런타임 유형 서비스) ABAP Runtime Type services(RTTS)는 객체지향 프레임워크(Object-oriented Framework)로서 다음 두 가지 구성요소로 이루어져 있습니다. 1) Runtime Type Information(RTTI) -> RTTI를 사용해서, 프로그램 실행 동안 data objects 또는 런 타임시의 클래스의 인스턴스의 유형 정보를 결정합니다. 2) Runtime Type Creation(RTTC) -> RTTC은 프로그램 실행동안 새로운 데이터 유형을 정의하는 것을 허락해줍니다. RTTS 프레임워크는 아래 그림과 같이 클래스의 위계 질서를 결정하는데, 런타임 시 Data Object의 유형 정보를 결정하고 새 데이터 유형을 정의할 수 있습니다. 이러한 유형 클래스(Type Cla..
3.ABAP 동적 프로그래밍 : Data References 객체 참조(Object Referece)와 마찬가지로, Data Reference(이하 데이터 참조) 또한, 메모리의 Data Object를 가르키고 있다. 데이터 참조는핌드 심볼과 유사하게 기존 Data Object에 대한 대체 액서스 참조(altenate access reference)로 사용할 수 있습니다. 그러나, 데이터 참조를 사용하면, 익명의 Data Object를 정의하는 것이 가능합니다. 데이터 참조는 DATA 구문을 사용하고 TYPE REF TO 라는 addition을 사용하여 정의된 데이터 참조 변수에 저장됩니다. 참조 변수 정의 데이터 참조 변수를 정의하는 문법은 아래와 같습니다. DATA data_ref1 TYPE REF TO dtype. "Data Type" DATA data_re..
2.ABAP 동적 프로그래밍 : 필드 심볼(Field Symbol) 2 먼저 이 글을 읽기 앞서서 필드 심볼 1편을 안읽으신 분은 먼저 읽기를 추천드립니다. 2023.03.08 - [ABAP 프로그래밍 개념/ABAP Dynamic Programming(동적 프로그래밍)] - 2.ABAP 동적 프로그래밍 : 필드 심볼(Field Symbol) 1 2.ABAP 동적 프로그래밍 : 필드 심볼(Field Symbol) 1 Field Symbol( 이하 필드심볼) 은 Pointer(존재하는 Data Object를 가르키는)와 비슷한 개념입니다, 필드 심볼은 data object는 아니기 때문에, 그 자신이 소유한 어떠한 메모리도 잡고 있지 않습니다. 대신에 abapta0903.tistory.com 필드 심볼 정의 필드심볼은 FIELD-SYMBOLS라는 구문을 사용하여 선언됩니다. 필..
2.ABAP 동적 프로그래밍 : 필드 심볼(Field Symbol) 1 Field Symbol( 이하 필드심볼) 은 Pointer(존재하는 Data Object를 가르키는)와 비슷한 개념입니다, 필드 심볼은 data object는 아니기 때문에, 그 자신이 소유한 어떠한 메모리도 잡고 있지 않습니다. 대신에, 데이타가 필드심볼에 할당(Assign) 된다면, 할당된 data object의 메모리 위치를 가르킵니다(points to the memory location). 필드 심볼은 Data Object 자체에 접근할 수 있는 것처럼 접근할 수 있는 할당된 Data Object의 라벨 역할을 합니다. 예를 들어, Field1, Field2, Field3라는 세 개의 필드를 가지고 있는 인터널 테이블이 있다고 생각을 해보고, 인터널 테이블의 세번째 Row의 값을 바꾸고 싶다고 해..
1. ABAP 동적 프로그래밍 Overview 소프트웨어는 어떠한 문제를 해결하기 위해 만들어지거나 유저들에게 일상의 할동에 도움을 주기 위해 만듭니다. 대부분의 경우, 문제를 사전에 알기 때문에, 어플리케이션의 설계와 개발을 당면한 문제 해결에 중점을 둡니다. 요구사항을 위해 어플리케이션 개발을 진행할 때, 우리는 고안 시점에서 프로그램에서 처리되야할 필요한 모든 정보를 알고 있습니다. 예를 들어, 어떠한 테이블에 데이터가 Update 되어야할지 알고 Table에서 데이터를 가져와 어떤 쿼리를 통해 Report를 만들 수 있을지도 압니다. 그러나, 때때로 우리는 실행때까지 모든 데이터를 모를 때가 있습니다. 이전 구문의 결과에 따라 이후 쿼리를 통해 데이터를 가져올 테이블이 달라진다면 어떻게 될까요? 이전 처럼 정적으로 쿼리문을 작성할 수 없을 것..