목록SAP (58)
CS Student’s SAP&Tech Journey✨

ABAP을 처음 접했을 때, 다소 절차지향적인 느낌이 강했습니다. 하지만 SAP NetWeaver 7.0 이후 ABAP도 객체지향(OOP) 패러다임을 적극 반영하기 시작했고, 이후 ABAP 개발자라면 반드시 객체지향을 이해하고 활용할 수 있어야 합니다.이번 포스팅에서는 기존 ABAP 문법과 객체지향 중심 신 문법의 차이, 객체지향 언어로서 어떤 특징을 갖고 있는지 알아보겠습니다. 📌 기존 문법 vs 신 문법 (ABAP NetWeaver 7.0 이후) 먼저 가장 기본적인 DATA 선언과 SELECT 문에서 문법 차이를 볼 수 있습니다.* 기존 문법DATA it TYPE TABLE OF scarr.DATA wa LIKE LINE OF it.LOOP AT it INTO wa.ENDLOOP.* 신 문법DA..

SAP에서 여러 사용자가 동시에 같은 데이터를 수정하면 데이터 충돌이 발생할 수 있습니다. 이를 방지하기 위해 SAP에서는 논리적 Lock(잠금) 기능을 제공합니다. 이번 포스팅에서는 SAP 프로그램 내에서 Lock 객체를 생성하고 사용하는 방법을 실습 예제와 함께 정리해보겠습니다. 1️⃣ SAP에서의 Lock이란?Lock(잠금)은 동일한 데이터에 대해 여러 사용자가 동시에 접근(특히 수정)하지 못하도록 막는 기능입니다.SAP에서는 Lock을 두 가지로 구분합니다.구분설명물리적 LockDB 차원에서 설정되는 Lock. 화면이 바뀌거나 커밋되면 해제됨논리적 LockSAP 내부에서 관리하는 Lock. 사용자 간 데이터 충돌 방지에 사용됨SAP 화면이 바뀔 때마다 자동 커밋(Auto Commit) 발생이때..

SAP 시스템에서 데이터를 다루기 위해선 OPEN SQL 문법을 반드시 익혀야 합니다. ABAP에서 사용하는 OPEN SQL은 SAP 내부 데이터베이스 인터페이스를 거쳐 데이터베이스에 맞게 자동으로 변환되기 때문에, 개발자는 일관된 방식으로 DB 작업을 할 수 있는 장점이 있습니다.이번 포스팅에서는 데이터 삽입(INSERT), 수정(UPDATE), 삭제(DELETE) 그리고 트랜잭션 처리(COMMIT / ROLLBACK) 방식까지 실습 예제와 함께 정리해보겠습니다. ✅ OPEN SQL 구조와 개념ABAP에서 사용하는 SQL = OPEN SQL내부적으로는 DB 인터페이스 → Native SQL로 자동 변환됩니다.예: SELECT * FROM SCARR → MSSQL, HANA DB 형식으로 변환되어 실..

SAP ALV를 활용해 데이터를 출력할 때, 단순히 구조체만 넘겨주는 방식으로는 세부 제어가 어렵습니다. 실무에서는 사용자의 요구에 맞춰 컬럼을 커스터마이징하거나, 기존 컬럼은 숨기고 새로운 시각적 요소를 추가해야 할 때가 많습니다.이럴 때 사용하는 가장 강력한 도구가 바로 Field Catalog입니다. Field Catalog를 통해 각 컬럼에 대해 데이터 타입, 표시 순서, 출력 여부, 참조 테이블 정보 등을 자유롭게 제어할 수 있습니다.이번 포스팅에서는 예제를 통해 Field Catalog를 어떻게 활용하는지 단계별로 정리해보겠습니다. ✅ Field Catalog 설정 (사용자 정의 컬럼)Field Catalog는 ALV 각 필드에 대한 정보들을 구성합니다. 컬럼마다 어떤 형식, 어떤 의미를 ..

SAP에서 데이터를 더 직관적으로 전달하기 위해 ALV의 다양한 시각적 제어 기능을 활용할 수 있습니다. 이번 포스팅에서는 신호등, 컬러 강조, 체크박스 아이콘 출력, 그리고 필드 카탈로그 조작을 통해 ALV를 더 풍부하게 구성하는 방법을 정리해보겠습니다. ✅ ALV 객체 제거 - FREE 함수 ALV와 Container 객체는 화면을 나가기 전 반드시 메모리에서 해제해줘야 합니다. 그렇지 않으면 BACK할 때마다 ALV 객체가 중복 생성됩니다. ▶ XXXXXI01 (PAI) PATTERN 사용하여 FREE 함수 호출합니다.WHEN 'BACK'. " 100번 화면에서 생성한 객체 파괴하고 떠나야 합니다. " ALV, Container 두개의 객체 파괴해야한다. ..

SAP 화면 개발을 하다 보면, 단순한 WRITE 출력만으로는 복잡한 데이터를 사용자에게 명확히 보여주기 어려울 때가 많습니다. 이럴 때 가장 많이 사용되는 도구가 바로 ALV (ABAP List Viewer)입니다. ALV는 데이터를 표 형태로 깔끔하게 표현할 수 있을 뿐만 아니라, 정렬, 필터링, 합계, 그룹핑, 엑셀 다운로드 등 다양한 기능을 기본으로 제공하여 사용자 친화적인 SAP 화면을 구성하는 핵심 요소로 자리 잡고 있습니다.SAP에서 ALV는 다양한 방식으로 구현할 수 있지만, 그중에서도 가장 실무적으로 사용되는 방식은 CL_GUI_ALV_GRID를 이용한 객체지향 ALV입니다. 이 방식은 화면 안에 컨트롤 박스를 만들고, 그 안에 그리드(Grid)를 직접 넣는 방식으로 구조적으로 명확하며 ..

SAP ABAP 다이얼로그 프로그래밍에서 Subscreen은 하나의 화면 안에 또 다른 화면을 삽입해, UI를 분리하고 구성 요소를 재사용하는 데 매우 유용합니다.이번 글에서는 탭(Tabstrip)을 사용하지 않고, 두 개의 Subscreen을 나란히 고정 배치하는 방법을 포스팅합니다. 조건 분기에 따라 Subscreen이 바뀌는 동적 방식도 아니고, 탭을 눌러 화면을 전환하는 구조도 아닙니다. 그저 메인 화면 안에 Subscreen 2개를 고정해서 함께 보여주는 정적 병렬 Subscreen 구성입니다. ❓ 이 방식은 언제 사용할까?항공사 정보 + 항공편 정보처럼 서로 다른 데이터를 나란히 표시할 때사용자 탭 전환 없이 모든 정보를 동시에 보여주고 싶을 때Subscreen을 독립적으로 구성해 유지보수성..

앞선 포스팅에서는 Subscreen의 기본 구조와 고정된 화면을 호출하는 정적 방식, 그리고 조건에 따라 화면을 동적으로 전환하는 조건 분기 방식을 소개했습니다.이번 글에서는 Subscreen 재사용 방법을 포스팅합니다. 하나의 Subscreen 화면을 여러 메인 화면에서 재사용하거나, 외부 프로그램(Function Group)을 통해 호출할 수 있도록 구성하는 방식입니다.Subscreen은 구조상 재사용성이 매우 높은 UI 컴포넌트이기 때문에, 잘만 설계하면 유지보수와 확장성 모두에 강력한 이점을 가질 수 있습니다. 특히 SAP에서는 여러 트랜잭션이나 프로그램에서 같은 형태의 데이터를 표시하거나 입력할 일이 많기 때문에, Subscreen을 Function Group으로 모듈화해두는 것이 매우 유용합니..

앞서 살펴본 정적 Subscreen 방식은 항상 고정된 Subscreen을 보여주는 방식이라면, 이번 CASE 2는 특정 조건에 따라 다른 Subscreen을 동적으로 호출하는 방식입니다.예를 들어, 사용자가 선택한 항공사 코드(CARRID)에 따라 각각 다른 입력 화면을 보여주고 싶을 때 사용됩니다. 이처럼 화면을 동적으로 바꿔야 하는 경우, Subscreen 번호를 변수로 제어하는 방식이 필요하며, 이를 위해 글로벌 변수를 사용하게 됩니다. 이번 포스팅의 예제는 아래 포스팅과 이어집니다. 정적 Subscreen 방식과 관련한 포스팅 보러가기 ⬇️ [SAP] ABAP Subscreen (1) 구조와 기본 개념 / 정적 Subscreen 호출 방식 (고정된 서브스크린) 구현하기SAP GUI에서 데..

SAP GUI에서 데이터를 효과적으로 표시하고 사용자 입력을 처리하기 위해 다양한 UI 기술이 활용됩니다. 그중 Subscreen은 메인 화면 내에 작은 화면을 삽입하여 데이터를 표시하거나 입력받을 수 있는 강력한 기능입니다.이번 글에서는 정적 Subscreen을 활용하여 하나의 화면에 서브스크린을 단순히 삽입하는 케이스를 중심으로 ABAP 다이얼로그 프로그래밍에서 어떻게 사용되는지 설명하겠습니다. ❓ Subscreen이란? Subscreen(서브스크린)은 SAP ABAP 다이얼로그 프로그래밍에서 메인 화면(Screen 100) 내에서 특정 데이터를 독립적으로 표시할 수 있도록 설계된 작은 화면입니다. 서브스크린은 단독으로 실행되지 않고 반드시 메인 스크린 내에서 호출되어야 하며, 별도의 PBO/P..