목록2025/03 (20)
CS Student’s SAP&Tech Journey✨
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의 ALV는 기본적으로 표 형태로 데이터를 출력해주지만, 사용자마다 보고 싶은 뷰가 다를 수 있습니다. 어떤 사용자는 컬럼 순서를 바꾸고 싶고, 어떤 사용자는 특정 컬럼만 보고 싶어하기도 합니다.이럴 때 사용하는 것이 바로 Layout Variant입니다.Layout Variant는 사용자가 직접 구성한 뷰를 저장하고, 다음에도 그대로 불러와서 사용할 수 있도록 해주는 기능으로, SAP ALV에서 실무에서 가장 많이 쓰이는 옵션 중 하나입니다.이번 포스팅에서는 SET_TABLE_FOR_FIRST_DISPLAY 메서드의 두 가지 핵심 파라미터인 IS_VARIANT와 I_SAVE 를 활용하여 사용자가 뷰를 저장하고 불러오는 기능을 구현해보겠습니다. ❓ Layout Variant란? ALV에서 사용자가..

SAP에서 ALV를 사용하다 보면, 내부 테이블의 데이터를 수정한 후에도 화면이 자동으로 바뀌지 않아 당황스러울 때가 있습니다. 예를 들어 버튼을 눌러 특정 필드를 변경했는데, 눈앞의 ALV에는 아무 변화가 없다면?이런 경우에 사용하는 메서드가 바로 go_alv->refresh_table_display 입니다.ALV는 내부 테이블(IT)의 변경을 자동으로 추적하지 않습니다. 즉, MODIFY로 테이블 값을 바꿔도 화면에는 반영되지 않습니다. 그래서 별도로 화면을 갱신해주는 메서드를 직접 호출해줘야 합니다.이번 포스팅에서는 버튼을 눌렀을 때 ALV 화면을 수동으로 갱신하는 방법을 실습을 통해 알아보겠습니다. 📌 이번 포스팅의 예제는 아래 포스팅과 이어집니다. ⬇️ [SAP] ALV (1) 기본 개념..
🧪 프로그래머스 문제: 특정 형질을 가지는 대장균 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제를 처음 접했을 때, GENOTYPE이라는 컬럼에 형질 정보가 저장되어 있다는 것을 보고 처음엔 단순히 LIKE나 IN 같은 조건문으로 처리하려고 생각할 수 있습니다. 하지만 GENOTYPE 컬럼의 정체는 비트마스크 형태의 정수값이라는 점을 눈치채야 합니다. 각 대장균 별 형질을 2진수로 나타내면 다음과 같습니다.ID 1 : 1000₍₂₎ ID 2 : 1111₍₂₎ ID 3 : 1₍₂₎ ID 4 : 1101₍₂₎각 대장균 별 보유한 형질을 다음과 같습니다.ID 1 : 4 ID 2 : 1, 2, 3,..

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

SAP 다이얼로그 프로그래밍에서 하나의 화면에서 여러 UI 구성요소를 보여주기 위해 Subscreen을 활용하는 것은 매우 일반적인 방식입니다.특히 사용자가 탭(Tab)을 눌러서 화면을 전환하는 방식, 즉 Tabstrip Control을 사용하는 경우, 다양한 데이터를 하나의 논리적 화면 안에서 깔끔하게 표현할 수 있어 UI 구성에 자주 활용됩니다.이번 글에서는 SAP에서 제공하는 Tabstrip Control을 사용하는 방법 두 가지를 소개합니다. ❓ Tabstrip Control이란?Tabstrip은 여러 개의 Subscreen을 하나의 영역에서 전환해가며 보여주는 컨트롤 요소입니다.하나의 메인 스크린 내에서 사용자가 선택한 탭에 따라 다른 Subscreen을 불러와서 화면을 구성합니다. Curr..

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

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