abap 21

ABAP 인터페이스 참조를 통해 접근

1. FM에서 인터페이스 참조를 통한 접근2. 인터페이스 왜 사용하는 경우 예시1. FM에서 인터페이스 참조를 통한 접근 CLASS에 'ZIF_SO_SERVICE' 라는 인터페이스를 만들었다. 더블클릭해서 'GET_SOLD_TO' 라는 메소드를 생성했다. CLASS > METHOD 탭에 가보면 인터페이스에 정의했던 메소드를 확인할 수 있다. 이제 Function Module에서 이 메소드를 호출해본다.25: 인터페이스 타입으로 객체(lo_service)를 선언한다.27: 실제 구현체(Class)를 할당한다.29: lo_service에 인터페이스에 정의된 메소드를 사용할 수 있다. 다른 클래스를 생성해서 똑같은 인터페이스를 사용하게 되면?... 어디보자 새로 ZCL_SO_SERVICE2 라는 클래스를..

SAP/ABAP 2025.08.25

SAP 표준에서는 .xlsx를 직접 읽을 수 없다

1. SAP 표준에서는 .xlsx를 직접 읽을 수 없다.2. xlsx를 읽으려면 ABAP2XLSX 이라는 외부 라이브러리가 필요하다.3. ALSM_EXCEL_TO_INTERNAL_TABLE 함수를 사용하겠다 --> .xls 형식만 가능하다. 이 함수에서 .xlsx 형식을 업로드 하려고 하면 에러 남.4. cl_gui_frontend_services=>gui_upload 메소드를 사용하겠다 --> 4-1. filetype = 'ASC' 일 때 CSV 타입으로 업로드 해야 한다. 4-2. filetype = 'BIN' 일 때 xlsx 파일을 이진 데이터(xstring)로 업로드 할 수는 있으나 이것을 파싱할 수는 없음. 파싱하려면 2에서 말한 것처럼 ABAP2XLSX 필요하다. 즉, 이진데이터를 SCMS..

SAP/ABAP 2025.07.25

알파 컨버젼 인풋 해도 필드 값에 0이 안 채워질 때

alv에서 판매오더(VBLEN) 필드에 값에 0 을 채우기 위해 CONVERSION_EXIT_ALPHA_INPUT을 하였으나 0이 계속 붙지 않았음. 디버깅 하면 0이 들어가는데, alv 화면에서는 0이 채워지지 않았음. LOOP AT pt_ex01 ASSIGNING FIELD-SYMBOL(). DATA(ls_kna1) = VALUE #( pt_kna1[ kunnr = -kunnr ] OPTIONAL ). IF ls_kna1 IS NOT INITIAL. -name1 = ls_kna1-name1. ENDIF. DATA(lv_len) = strlen( condense( -vbeln ) ).* -vbeln = |{ -vbeln WIDTH = 10 ALIGN = RIGHT ..

SAP/ABAP 2025.07.18

스크린 화면 속성 설정 관련

report 프로그램을 만들면 call screen하여 화면을 부르는데, 그 화면에 대한 속성 설정을 하는 부분이다.각 항목에 대해 간단히 정리해 보았다. >> Dynpro Type1. Normal : 일반적인 화면 유형2. Subscreen : 다른 화면에 포함될 수 있는 "서브"스크린. 자체적으로는 CALL SCREEN 불가능하며 CALL SUBSCREEN으로 사용함.3. Modal dialog box : 팝업창 형태의 모달 다이얼로그. 얘는 사용자가 닫기 전까지는 다른 창을 조작할 수 없음 >> Settings1. Hold Data : 이전 입력된 데이터를 유지함. 화면이 다시 불러와져도 기존 값이 남아있음. 예를 들어, 화면 0100에서 여러 필드에 입력을 하고나서 화면 0200으로 갔다가 다시..

SAP/ABAP 2025.07.18

RAP 핵심 개념(Core Concept)에 대한 요약 정리

ABAP RESTful Application Programming Model (RAP)은 ABAP Cloud 및 ABAP Cross-Product 환경에서 엔터프라이즈 애플리케이션을 개발하기 위한 프로그래밍 모델입니다. 이는 주로 OData와 같은 RESTful 서비스를 구축하고, 이를 통해 트랜잭션 및 분석 앱을 개발하는 데 중점을 둡니다. 이전 글은 RAP 큰 틀에서의 개념을 정리했었다면 이번 내용은 코어 개념에 대한 내용입니다. 비즈니스 오브젝트 (Business Object, BO)'제품(Product)', '여행(Travel)', '주문(SalesOrder)'과 같은 현실 세계의 아티팩트를 나타내는 용어입니다. 비즈니스 오브젝트는 여러 노드(nodes), 표준 트랜잭션 작업(operations:..

SAP/RAP 2025.06.08

SAP RAP 주요 테마와 개념 정리

아래 내용은 ABAP RESTful 애플리케이션 프로그래밍 모델(RAP)의 주요 테마와 중요 개념들을 요약 및 정리한 내용입니다.RAP 공부하면서 그냥 혼자 어디에 적어둔 내용들입니다... 1. 핵심 개념 및 구조RAP는 ABAP 환경에서 RESTful 웹 서비스를 쉽게 구축하기 위한 프레임워크입니다. 주요 구성 요소는 다음과 같습니다. * 행위 정의 (Behavior Definition): - 비즈니스 객체의 행위(생성, 수정, 삭제, 액션 등)를 정의합니다. - CDS BDL(Behavior Definition Language) 구문을 사용합니다.* 행위 구현 (Behavior Implementation): - 행위 정의에 명시된 행위들을 ABAP 클래스(행위 핸들러 클래스)에서 구현합니다. - CL..

SAP/RAP 2025.06.08

변경 문서 헤더 CDHDR, 변경 문서 상세 정보 CDPOS

0. Customer 마스터를 RFC를 통해 전송 시 사용한 코드1. 고객 정보 변경 내역을 조회하여 최종 데이터를 RFC로 전송하는 과정의 코드3. CDHDR, CDPOS를 기반으로 KNA1 및 관련 데이터를 조합하여 변경된 고객 정보를 식별하고 처리Step 1: 변경 문서 헤더(CDHDR) 데이터를 조회CDHDR 테이블에서 고객(Customer) 관련 변경 내역을 조회OBJECTCLAS가 'DEBI'(고객 데이터) 또는 'ADRESSE'(주소 데이터)인 경우를 필터링조회 기간(I_SDATE, I_EDATE) 내에서 가장 최신 변경 내역(MAX(UDATE))을 가져옴.Step 2: 변경 내역 데이터 정리 (중복 제거)최신 변경 데이터를 기반으로 정렬(SORT) 후 중복 제거(DELETE ADJACENT..

SAP/ABAP 2025.03.14

ABAP SELECT문 동적 WEHRE / RTTI를 활용하여 필드 존재 여부 확인

1. SAP ECC 6.0 기준으로 작성2. 동적 where조건이 들어가야 하는 필드가 각 테이블 마다 필드명이 다름. [1] SELECT문 동적 WEHRE 사용*&---------------------------------------------------------------------**& Form GET_DETAIL*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_LT_RESB text* -->P_LT_DATA text* ..

SAP/ABAP 2025.02.27

SYSTEM-CALL OTR GET_TEXT_BY_ALIAS

👏 SYSTEM-CALL OTR GET_TEXT_BY_ALIAS- OTR(Object Text Repository) 에서 특정 텍스트를 가져오는 시스템 호출 ls_pricing_01-name = cl_wd_utilities=>get_otr_text_by_alias( 'ZDDP/397' ). 설명: GET_OTR_TEXT_BY_ALIAS 메소드의 import 파라미터 값 'ZDDP/397'은 OTR에 등록된 ALIAS_NAME입니다.해당 ALIAS_NAME의 텍스트를 ls_pricing_01-name에 담아줍니다. SYSTEM-CALL OTRSAP 내부 시스템 호출로, OTR(Object Text Repository)에서 텍스트를 가져올 때 사용됩니다.OTR은 다국어 지원을 위해 SAP에서 제공하는 텍..

SAP/ABAP 2025.02.04