ALV5 [SAP ABAP] SUBMIT) RFC에서 ALV 결과 회수 — CL_SALV_BS_RUNTIME_INFO 사용법 (SE37) SAP 표준이든 자체 개발한 ALV 리포트든, 화면에서 합계·집계 결과를 보여주는 코드는 보통 검증이 끝난 상태로 운영 중입니다. 이때 외부 시스템이나 EAI 인터페이스에서 같은 결과를 RFC로 받고 싶다는 요구가 종종 들어옵니다. 같은 집계 로직을 RFC 안에서 다시 작성하면 두 곳을 따로 관리해야 해서 값이 어긋날 위험이 큽니다. SAP는 이 문제를 해결하기 위해 CL_SALV_BS_RUNTIME_INFO 클래스를 제공합니다. ALV 화면 출력을 끈 채로 SUBMIT 으로 호출하면, ALV가 화면에 그릴 내부 테이블을 메모리에서 그대로 회수할 수 있습니다. 이 글은 RFC(Function Module) 안에서 SUBMIT … AND RETURN 과 CL_SALV_BS_RUNTIME_INFO 를 결합해.. 2026. 5. 26. [SAP ABAP] ALV 셀별 편집·색상 매크로 패턴 — LVC_T_SCOL·LVC_T_STYL + DEFINE/END-OF-DEFINITION ALV 화면에서 특정 셀만 색상을 바꾸거나, 특정 셀만 편집 가능하게 하고 싶은 경우가 자주 있습니다. 결재 상태에 따라 특정 컬럼만 빨갛게 표시한다거나, 승인된 행은 편집 불가로 잠그는 식의 화면입니다. 단순히 필드카탈로그(fieldcat) 의 EDIT = 'X' 만 켜면 컬럼 전체가 편집되거나 모든 행 같은 색이 적용돼서 원하는 결과를 얻을 수 없습니다. SAP 는 셀 단위 제어를 위해 두 가지 인터널 테이블 — LVC_T_SCOL(색상) 과 LVC_T_STYL(스타일) 을 제공합니다. 데이터 행 인터널 테이블의 각 row 안에 이 두 테이블을 자식 컬럼으로 추가하고, 셀별로 값을 채워주면 ALV 가 자동으로 적용합니다.행마다 반복적으로 들어가는 색상·스타일 추가 로직을 깔끔하게 처리하려면 ABAP .. 2026. 5. 18. [SAP ABAP] Excel 업로드 한 데이터를 ALV로 바로 보기 — cl_fdt_xl_spreadsheet + cl_salv_table 사용자가 보내준 Excel 데이터를 SAP에 저장하지 않고 ALV로 바로 보기만 하고 싶을 때 가 있습니다. 데이터 검토·검증·임시 분석 같은 작업이죠. CBO 테이블에 저장하는 별도의 업로드 프로그램을 만들기는 과해 보이고, 그렇다고 SE16N에 직접 붙여넣기도 번거롭습니다. SAP NetWeaver 7.40 이상에서는 표준 클래스 cl_fdt_xl_spreadsheet 를 이용해서 Excel 파일을 그대로 ALV로 띄울 수 있습니다. 별도 테이블 정의 없이도 Excel의 첫 행을 헤더로 인식해서 동적 internal table을 만들어주고, SALV factory로 그대로 출력하면 끝. 이 글은 Excel 파일 → 동적 itab → SALV ALV 흐름을 한 화면 ABAP 프로그램으로 구현하는 패턴을.. 2026. 5. 14. [SAP ABAP] 여러 GRID에서 공통 CLASS EVENT 사용하기 — FOR ALL INSTANCES + SENDER 한 화면에 ALV Grid를 두 개 이상 띄워놓고, 각 그리드에 더블 클릭이나 툴바 같은 같은 이벤트를 동일하게 동작시켜야 하는 상황이 종종 있습니다. 예를 들어 위쪽 그리드에서 구매 문서를 더블클릭하면 상세 라인을 아래 그리드에 채우거나, 두 그리드 모두에서 사용자 정의 버튼을 동작시키는 경우죠. 이때 각 그리드마다 핸들러를 따로 등록해도 되지만, ABAP은 FOR ALL INSTANCES 옵션 하나로 같은 클래스 이벤트를 모든 인스턴스에 한 번에 적용할 수 있게 해줍니다.핵심 차이 — FOR g_grid vs FOR ALL INSTANCES구문적용 범위SET HANDLER ... FOR g_grid지정한 특정 그리드 인스턴스에서 발생한 이벤트만 처리SET HANDLER ... FOR ALL INSTA.. 2026. 5. 12. [SAP ABAP] ALV Variant 사용자별 분리 저장하는 법 (DISVARIANT 활용) ALV 리포트를 운영하다 보면 "사용자마다 컬럼 순서나 필터를 다르게 저장하고 싶다"는 요구가 자주 나옵니다. SAP는 이를 위해 ALV Variant(레이아웃) 기능을 표준으로 제공하지만, 단순히 ALV를 띄우기만 하면 공용 Variant로만 저장돼서 다른 사용자가 변경한 내용이 모두에게 영향을 줍니다.이번 글에서는 DISVARIANT 구조체를 활용해서 ALV Variant를 사용자별로 자동 분리 저장하는 방법을 정리합니다.핵심 개념 — DISVARIANT 구조체ALV에서 Variant를 저장할 때 SAP는 DISVARIANT 라는 구조체를 받아 저장 정책을 결정합니다. 주요 필드는 다음과 같습니다.필드설명REPORTVariant가 속한 프로그램명. 보통 sy-repid 사용USERNAME사용자 ID... 2026. 5. 8. 이전 1 다음