
EKKO 직접 조회 90%가 잘못된 이유 #shorts #SAP #ABAP
1. I_SchedulingAgreement가 해결하는 문제 구매 스케줄링 어그리먼트(Scheduling Agreement)는 장기 공급 계약을 체결하고 그 아래에 반복적인 납기 일정(Delivery Schedule Line)을 관리하는 SAP 표준 프로세스입니다. 전통적으로 개발자는

1. I_SchedulingAgreement가 해결하는 문제 구매 스케줄링 어그리먼트(Scheduling Agreement)는 장기 공급 계약을 체결하고 그 아래에 반복적인 납기 일정(Delivery Schedule Line)을 관리하는 SAP 표준 프로세스입니다. 전통적으로 개발자는
1. I_PurchaseContractItem이 해결하는 문제 구매 계약(Purchasing Contract)은 특정 자재나 서비스를 정해진 기간·조건에 반복 조달하기 위한 아웃라인 협약(Outline Agreement)입니다. SAP ERP 시절에는 EKKO(헤더)/EKPO(아이템)

개요 및 이 글에서 다루는 것 ABAP 개발자라면 CALL FUNCTION 뒤에 무의식적으로 IF sy-subrc <> 0 를 붙이는 습관이 있을 것이다. 하지만 sy-subrc = 4 가 의미하는 바가 "레코드 없음"인지 "권한 오류"인지 "락 실패"인지는 매뉴얼을 뒤져야

개요 및 이 글에서 배우는 것 SAP S/4HANA 환경에서 재무 회계 문서를 조회할 때, 많은 ABAP 개발자들이 여전히 BKPF(회계 문서 헤더)와 BSEG(회계 문서 항목)를 직접 JOIN하는 방식을 사용합니다. 그러나 S/4HANA에서는 이러한 접근이 성능 저하, 유지보수 어려움

개요와 이 글에서 얻어갈 것 CDS(Core Data Services)에서 @Annotation 은 단순한 주석이 아닙니다. Fiori Elements가 자동으로 렌더링하는 리스트 컬럼, OData $metadata에 노출되는 필드의 의미론적 타입, 검색 우선순위, VDM(Virtual
개요와 이 글에서 얻을 것 ABAP 7.40 이후 도입된 REDUCE 는 컬렉션을 단일 값으로 축약(reduce)하는 표현식 기반 구문입니다. 과거에는 합계·최대값·문자열 병합을 위해 DATA 선언 → LOOP AT → 누산 → ENDLOOP 4단계를 거쳐야 했지만, REDUCE 는 이

VBAK 직접 조회의 문제점과 한계 SAP ERP 시절부터 SD 모듈을 다뤄본 개발자라면 VBAK 테이블에 익숙할 것입니다. 견적(Quotation), 수주(Sales Order), 계약(Contract) 등 모든 판매 문서의 헤더가 이 하나의 테이블에 저장되기 때문에, VA21로 생성

개요 및 이 글에서 다루는 것 오래된 ABAP 코드는 대부분 7.02 이전 문법으로 작성되어 있어, 변수 선언이 상단에 몰려 있거나 내부 테이블 처리에 LOOP...MODIFY 패턴이 반복됩니다. ABAP 7.4부터 도입된 New Syntax 는 이러한 코드를 절반 이하 라인으로 줄이면

개요와 이 글에서 다루는 것 ABAP 7.40 이후 도입된 인라인 선언( DATA(...) , FINAL(...) )과 표현식 기반 연산자( VALUE , CORRESPONDING , FILTER , REDUCE , FOR )는 코드를 극적으로 짧게 만들어 줍니다. 그러나 실제 프로젝트

1. 개요 및 이 글에서 다루는 범위 ABAP 개발 현장에서 "테스트는 나중에", "DB에 값 넣고 눈으로 확인하면 되지"라는 관성은 여전히 강합니다. 그러나 S/4HANA 전환과 Clean Core 원칙이 확산되면서, DB 의존 없는 단위 테스트가 품질 게이트의 표준으로 자리잡고 있습

1. CONCATENATE 시대의 종말: 왜 문자열 템플릿인가 ABAP으로 오래 개발해 본 사람이라면 CONCATENATE 구문에 얽힌 크고 작은 상처가 하나쯤 있을 것이다. 변수 5개를 이어 붙이는데 공백이 사라져서 결과가 뭉치거나, SEPARATED BY space 를 깜빡해서 로그

placeholder

COEP의 시대가 끝났다 — S/4HANA 비용 아키텍처 전환 ECC 시절 원가회계 담당자에게 COEP는 성전(聖典)이었다. 실적 라인 아이템은 여기 있었고, 배부·정산·재분배 결과도 모두 여기로 흘러들었다. 그러나 S/4HANA로 넘어오면서 회계 데이터 모델은 Universal Jou
이 글에서 얻어갈 것과 체크리스트 ABAP 개발자에게 Git은 오랫동안 낯선 도구였습니다. SE80/ADT의 트랜스포트 요청(TR)이 사실상의 버전 관리 역할을 해왔기 때문입니다. 하지만 클라우드 전환과 오픈소스 생태계가 확산되면서, ABAP 코드도 GitHub/GitLab에 저장하고

개요 및 이 글에서 다루는 것 ABAP에서 구조체(Structure) 간 필드 복사는 일상적인 작업이지만, 사용하는 문법에 따라 코드 가독성·유지보수성·성능이 크게 달라집니다. 이 글에서는 오랫동안 사용되어 온 MOVE-CORRESPONDING 명령문과 ABAP 7.40 이후 등장한 C
글의 목적과 확인 포인트 이 글은 SAP S/4HANA 환경에서 판매 조직(Sales Organization) 마스터 데이터를 조회할 때 전통적인 TVKO 테이블 대신 I_SalesOrganization CDS 뷰를 사용하는 방법을 다룹니다. S/4HANA로 전환한 조직에서는 클래식 S

abapGit이 왜 ABAP 개발자의 필수 도구가 되었는가 ABAP 개발자라면 한 번쯤 이런 경험이 있을 것이다. 트랜스포트 요청(TR)을 잘못 릴리즈해서 코드가 뒤엉키고, 누가 언제 어떤 변경을 했는지 추적할 수 없어 밤을 새운 기억 말이다. abapGit 은 이런 고통을 해결하기 위
개요와 이 글에서 얻어갈 것 ABAP 7.40 이후 내부 테이블에서 부분집합을 뽑아내는 방법은 크게 세 갈래로 갈립니다. 표현식 기반의 FILTER 연산자, FOR ... IN ... WHERE ... 형태의 테이블 컴프리헨션, 그리고 전통적인 LOOP AT ... WHERE 반복문입니

세 가지 방법이 존재하는 이유 — ABAP 컬렉션 필터의 역사 ABAP에서 내부 테이블을 다루는 개발자라면 누구나 한 번쯤 "이 컬렉션에서 특정 조건에 맞는 행만 뽑아내려면 어떻게 하는 게 가장 좋을까?" 라는 질문을 마주칩니다. 흥미로운 점은 ABAP 언어가 시간이 흐르면서 이 문제를

I_Plant가 필요한 이유 — T001W 직접 조회의 함정 SAP S/4HANA 환경에서 플랜트(Plant, 공장/사업장) 정보를 조회할 때 여전히 많은 개발자가 습관적으로 T001W 테이블을 직접 SELECT합니다. 하지만 클라우드/온프레미스 하이브리드 시대에는 이 접근이 위험 요소