리스트 없이 계층 표시 3가지 — UI5 Tree #shorts #SAP #UI5
개요 및 이 글에서 다루는 것 SAP UI5 애플리케이션에서 조직도, 자재 명세서(BOM), 파일 시스템 같은 계층 구조 데이터를 표현해야 하는 요구는 매우 빈번합니다. 단순 List 나 Table 로는 부모-자식 관계를 직관적으로 표현하기 어렵기 때문에 sap.m.Tree 컨트롤이 등
개요 및 이 글에서 다루는 것 SAP UI5 애플리케이션에서 조직도, 자재 명세서(BOM), 파일 시스템 같은 계층 구조 데이터를 표현해야 하는 요구는 매우 빈번합니다. 단순 List 나 Table 로는 부모-자식 관계를 직관적으로 표현하기 어렵기 때문에 sap.m.Tree 컨트롤이 등
개요 및 이 글에서 다루는 것 표준 SAP에서 제공하는 CDS 뷰(예: I_SalesDocument , I_PurchaseOrder )에 자사 비즈니스 요건에 맞는 필드 — 예컨대 "긴급 배송 플래그", "지역별 우선순위 코드", "사내 분류 등급" 등을 추가해야 하는 상황은 SAP S
개요 — window 전역 변수와 결별하기 UI5 화면을 처음 만들 때 가장 흔한 실수 중 하나가 window.currentSalesOrderId = 4711; 같은 코드입니다. 빠르게 동작하기 때문에 유혹적이지만, 이 한 줄은 향후 수개월간 디버깅 지옥을 예약하는 행위와 같습니다. 이
개요 및 이 글에서 다루는 범위 ABAP에서 객체 참조(class reference) 간의 형 변환은 오랜 기간 ?= 연산자 또는 MOVE ... ?TO ... 구문으로 수행되어 왔습니다. ABAP 7.40 SP08 이후 도입된 CAST 연산자 는 인라인 선언과 다운캐스트를 한 줄로 처
개요 및 이 글의 목표 SAPUI5 애플리케이션을 만들 때 시각·청각·운동 제약을 가진 사용자가 동일한 기능을 사용할 수 있도록 보장하는 작업이 접근성(Accessibility, 줄여서 a11y)입니다. 화면에 보이는 픽셀만 잘 그리는 것으로는 부족합니다. 스크린 리더, 키보드 내비게이
개요 및 이 글에서 얻어갈 것 ABAP RESTful Application Programming Model(RAP)에서 Behavior Implementation 은 비즈니스 객체의 CRUD 및 액션 로직을 ABAP 클래스로 구현하는 핵심 계층입니다. 이 글에서는 BDEF(Behavio
한눈에 보는 이 글의 목적 SAPUI5/OpenUI5 애플리케이션을 만들다 보면 같은 데이터 모델인데 어떤 화면에서는 값이 공유되고, 어떤 화면에서는 따로 노는 현상을 마주합니다. 이는 모델을 어디에 setModel() 했느냐에 따른 스코프(scope) 차이 때문입니다. 이 글은 글로벌
개요 및 이 글에서 얻어갈 것 ABAP CDS(Core Data Services)는 단순한 SELECT 래퍼가 아니라, HANA Calculation Engine에서 직접 실행되는 강력한 데이터 모델링 레이어입니다. 그 중에서도 Built-in Functions 는 ABAP 레이어로 데
개요 및 이 글에서 다루는 것 ABAP CDS(Core Data Services)에서 금액 필드를 다룰 때 가장 까다로운 부분은 통화(Currency) 처리입니다. 한 회사가 KRW, USD, EUR을 동시에 다룰 때 단순한 DECIMAL 필드만으로는 의미가 불완전합니다. 이 글에서는
개요와 이 글에서 다루는 범위 ABAP Test Cockpit(이하 ATC)은 ABAP 코드의 정적 분석과 품질 게이트(Quality Gate) 역할을 담당하는 SAP의 코드 검사 프레임워크입니다. 이 글에서는 ABAP Cloud(Steampunk, BTP ABAP Environment
개요 및 이 글에서 다루는 범위 SAP RAP(ABAP RESTful Application Programming Model) 기반의 Fiori Elements 앱에서 사용자가 입력 필드를 클릭하면 나타나는 F4 도움말(Value Help)을 CDS 어노테이션만으로 구현하는 실전 예제입니
이 글의 목적과 도달점 SAPUI5 화면에서 사용자에게 "지금 처리 중"이라는 신호를 주는 방법은 크게 두 갈래입니다. 하나는 화면 전체를 막아버리는 sap.m.BusyDialog , 다른 하나는 컨트롤 단위로 부분 차단을 거는 setBusy(true) 혹은 전역 sap.ui.core.
이 글에서 다루는 범위와 도달 목표 SAPUI5 애플리케이션에서 배열(컬렉션) 데이터를 화면에 표시할 때 개발자가 가장 자주 마주치는 의사결정은 "어떤 바인딩 방식을 선택할 것인가"입니다. 같은 Product 배열을 두고도 인덱스로 직접 꺼낼 수도 있고, 컨테이너 전체에 컨텍스트를 묶어
이 글의 개요와 도달 지점 ABAP RESTful Application Programming Model(RAP)에서 Bound Action은 특정 비즈니스 객체 인스턴스에 묶여 동작하는 동작 단위입니다. 단순한 토글 버튼이라면 파라미터 없이도 충분하지만, 실무에서는 "승인하되 코드와 코
이 글에서 얻어갈 것 · 동시 편집 충돌 시나리오 정리 SAP S/4HANA Cloud 또는 ABAP Cloud 기반의 RAP(ABAP RESTful Application Programming) 환경에서 여러 사용자가 동일한 비즈니스 객체를 동시에 수정하려고 할 때 발생하는 데이터 정합
이 글의 목표와 체크포인트 SAPUI5의 sap.m.List 에서 단순 정렬을 넘어 의미 있는 그룹으로 묶어 보여주는 작업은 실무에서 매우 자주 등장합니다. 이 글은 SalesOrder(판매 주문) 리스트를 SalesOrg(판매 조직) 단위로 그룹핑하는 시나리오를 통해, Sorter 의
RadioButton의 한계와 SegmentedButton이 등장한 이유 SAPUI5/OpenUI5에서 "여러 선택지 중 하나"를 제시할 때 가장 먼저 떠오르는 컨트롤은 sap.m.RadioButton이지만, 모바일 우선(Mobile First) Fiori 환경에서는 sap.m.Segm
RAP Draft 메커니즘과 Discard의 의미 ABAP RAP(RESTful Application Programming Model)에서 Draft는 사용자가 작업 중인 데이터를 일시적으로 보관하는 기능입니다. RAP 런타임은 활성(active) 인스턴스와 드래프트(draft) 인스턴
딥 구조체가 메모리에서 어떻게 동작하는가 ABAP 내부 테이블의 한 라인이 또 다른 내부 테이블이나 STRING을 필드로 가지는 구조를 딥 구조체(Deep Structure)라고 부릅니다. 평범하게 보이지만 메모리 관점에서는 라인마다 별도의 힙(heap) 블록을 잡기 때문에, 수만 라인
HBox, VBox, FlexBox가 생긴 이유 SAPUI5에서 화면을 구성할 때 가장 먼저 마주치는 고민은 "컨트롤을 어떻게 배치할 것인가"입니다. 초창기 UI5는 sap.ui.layout 패키지의 Grid, VerticalLayout, HorizontalLayout 등을 사용했지만,