본문 바로가기

ABAP55

[SAP ABAP] SUBMIT) 프로그램 간 데이터 주고받기 — ABAP MEMORY (EXPORT/IMPORT/FREE) SAP ABAP 에서 한 프로그램이 다른 프로그램(SUBMIT) 을 호출한 후 그 결과 데이터를 받아와야 할 때가 자주 있습니다. 표준 리포트가 만든 ALV 데이터를 받아 재가공한다거나, 회사 자체 함수가 없어서 표준 리포트를 그대로 활용하고 싶을 때. 하지만 SUBMIT 은 호출 직후 호출자로 자동 복귀하면서 호출된 프로그램의 변수에 직접 접근할 수 없는 구조. 표준 함수 호출(CALL FUNCTION) 처럼 EXPORTING / IMPORTING 인자가 없습니다. 이 한계를 우회하는 표준 메커니즘이 ABAP 메모리(ABAP Memory) 를 활용한 데이터 전달. 호출된 프로그램이 결과를 EXPORT TO MEMORY ID 로 임시 메모리 영역에 저장하고, 호출자가 같은 키로 IMPORT FROM ME.. 2026. 5. 26.
[SAP ABAP] Subscreen 라디오 버튼 하나만 선택 — Screen Painter Group 1 그룹화 (SE51) SAP Screen Painter(SE51) 에서 Subscreen 에 라디오 버튼 여러 개를 배치한 뒤 실행하면, 사용자가 한 개를 눌러도 다른 버튼이 해제되지 않고 여러 개가 동시에 선택되는 현상 이 발생할 때가 있습니다. Selection-Screen 처럼 RADIOBUTTON GROUP 키워드를 못 쓰는 일반 Dynpro 화면에서 자주 만나는 함정입니다. 원인은 단순합니다. Screen Painter 의 라디오 버튼은 기본 상태로 배치하면 어떤 그룹에도 속하지 않은 "독립" 라디오 버튼 으로 만들어집니다. ABAP Dynpro 의 라디오 버튼 그룹화는 Attributes(속성) 의 "Group 1" 필드에 같은 이름이 들어있는 버튼끼리 묶이도록 동작하는데, 이 필드를 비워두면 그룹이 형성되지 않아.. 2026. 5. 19.
[SAP ABAP] 수량 CHAR 변환 ".000" 제거 — WRITE TO · SHIFT · String Template · CONVERSION_EXIT SAP 표준 테이블에서 수량(MENGE·LFIMG·NTGEW 등) 을 그대로 메일·PDF·메시지에 출력하려고 CHAR 변수에 담으면 "100.000" 처럼 의도하지 않은 소수점 0이 끝까지 따라붙는 경우가 자주 있습니다. 사용자 입장에서는 그냥 "100" 으로 보여야 자연스러운데, ABAP 의 기본 동작은 데이터 element 의 소수점 자릿수(예: DECIMALS 3) 를 그대로 채워 넣기 때문입니다. 핵심은 ABAP 의 Quantity/Decimal 타입과 CHAR 변환 메커니즘 입니다. P (Packed) 또는 QUAN 형 값은 항상 정의된 소수점 자릿수만큼 저장되어 있어서, CHAR 로 단순 대입 시 그 자릿수까지 그대로 옮겨집니다. 이를 정리하려면 WRITE TO 옵션, SHIFT 후처리, 또는.. 2026. 5. 19.
[SAP ABAP] CL_BCS 메일 송신 — 4단계 객체지향 패턴 (첨부파일·SOST·SCOT) ABAP 에서 사용자나 거래처에게 자동으로 이메일을 보내는 요구사항은 자주 등장합니다. 결재 알림, 정기 보고서, 거래처 안내, 견적서 첨부 송신 등이 대표적입니다. 예전에는 표준 Function Module(SO_NEW_DOCUMENT_ATT_SEND_API1) 을 주로 사용했지만, 현재 SAP 표준은 객체지향 기반의 BCS(Business Communication Services) 클래스 — CL_BCS 를 권장합니다. CL_BCS 패턴은 요청 생성 → 문서 작성 → 발신자/수신자 지정 → 발송 의 4단계 흐름을 객체 메소드 체이닝으로 깔끔하게 표현합니다. 본문(RAW · HTML) · 로컬 PC 첨부파일 · SAP 비즈니스 객체에 붙어있는 GOS(Generic Object Services) 첨부파일.. 2026. 5. 19.
[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] View Cluster 생성 — 헤더·디테일 트리 (SE54·SM34·Field Dependence) CBO 마스터 테이블이 하나로 끝나지 않고 헤더-디테일 구조로 여러 테이블이 키로 연결되어 있다면, 단일 유지보수뷰(SM30) 만으로는 사용자 편집 화면이 어색해집니다. 헤더를 입력하고 별도 화면에서 디테일을 또 입력하는 흐름이 번거롭고, 키 자동 매핑도 안 됩니다. 이런 경우를 위해 SAP 가 제공하는 도구가 View Cluster(뷰 클러스터) 입니다. 여러 개의 유지보수뷰를 헤더-디테일 트리 구조로 묶어, 사용자가 SM34 한 번에 모든 레벨을 탐색·편집할 수 있게 해줍니다. 표준 트랜잭션의 IMG(SPRO) 의 많은 메뉴도 내부적으로는 View Cluster 로 구성되어 있습니다. 이 글은 View Cluster 의 개념, SE54 에서 생성하는 절차, 헤더-디테일 관계 정의 방법, SM34 에서.. 2026. 5. 18.