CBO 마스터 테이블이 하나로 끝나지 않고 헤더-디테일 구조로 여러 테이블이 키로 연결되어 있다면, 단일 유지보수뷰(SM30) 만으로는 사용자 편집 화면이 어색해집니다. 헤더를 입력하고 별도 화면에서 디테일을 또 입력하는 흐름이 번거롭고, 키 자동 매핑도 안 됩니다.
이런 경우를 위해 SAP 가 제공하는 도구가 View Cluster(뷰 클러스터) 입니다. 여러 개의 유지보수뷰를 헤더-디테일 트리 구조로 묶어, 사용자가 SM34 한 번에 모든 레벨을 탐색·편집할 수 있게 해줍니다. 표준 트랜잭션의 IMG(SPRO) 의 많은 메뉴도 내부적으로는 View Cluster 로 구성되어 있습니다.
이 글은 View Cluster 의 개념, SE54 에서 생성하는 절차, 헤더-디테일 관계 정의 방법, SM34 에서의 사용법, 그리고 자주 만나는 함정을 정리한 메모입니다. 단일 유지보수뷰 작성 절차는 같이 보면 좋은 글인 "유지보수뷰(Table Maintenance Generator) 생성·변경 — SE11·SE54·SM30 사용법" 을 먼저 참고하시면 흐름이 자연스럽습니다.
핵심 — View Cluster 는 여러 유지보수뷰의 트리 묶음
View Cluster 의 본질은 "서로 키로 연결된 여러 유지보수뷰를 한 화면 트리 안에서 함께 편집 할 수 있게 묶어주는 메커니즘" 입니다.
| 항목 | 단일 유지보수뷰 (SM30) | View Cluster (SM34) |
|---|---|---|
| 대상 | 단일 테이블 또는 단일 뷰 | 여러 유지보수뷰가 헤더-디테일로 연결된 묶음 |
| 구조 | 단일 ALV 표 | 좌측 트리 + 우측 데이터 표 (탐색-편집 결합) |
| 호출 T-Code | SM30 |
SM34 |
| 키 자동 전달 | 없음 | 헤더 키가 디테일 키 컬럼에 자동 매핑됨 |
| 대표 사용 케이스 | 단일 마스터 (회사 코드 · 결재 코드 등) | 결재 정의 → 결재 라인 · 회사 → 사업장 · 분류 → 특성 등 |
| SAP 표준 사용 예 | T001 회사 코드 마스터 | IMG(SPRO) 의 복잡한 설정 메뉴 다수 |
전체 흐름은 다음과 같습니다.
1. 각 테이블에 대해 단일 유지보수뷰 생성 (별도 글 "유지보수뷰 생성·변경" 참조)
2. SE54 에서 View Cluster 객체 생성 (예: ZTXX_VC)
3. View 들을 등록하고 트리 구조 정의 (헤더 → 디테일 관계)
4. Field 매핑 — 헤더 키가 디테일 키로 자동 전달되도록 연결
5. 활성화 → SM34 로 호출 → 사용자 편집
1단계 — 사전 준비: 각 뷰 생성
View Cluster 를 만들기 전에 각 테이블에 대해 단일 유지보수뷰가 만들어져 있어야 합니다.
예시 시나리오 — 결재 정의 마스터
ZTXX0100 (헤더) : MANDT · DOCTYP · DESCRIPTION (결재 유형 정의)
ZTXX0110 (디테일) : MANDT · DOCTYP · LINE_NO · APPROVER · LEVEL (결재 단계 라인)
각 테이블에 대해 SE11 → Table Maintenance Generator 로 유지보수뷰를 만들어 두고, SM30 으로 각각 호출되는지 먼저 확인합니다. 단일 유지보수뷰 생성 절차는 별도 글 "유지보수뷰(Table Maintenance Generator) 생성·변경 — SE11·SE54·SM30 사용법" 에서 자세히 다룹니다.

이 사전 준비가 안 돼 있으면 SE54 View Cluster 생성 시 등록 자체가 안 됩니다.
2단계 — SE54 에서 View Cluster 객체 생성
이제 두 유지보수뷰를 묶을 View Cluster 객체를 만듭니다.
SE54 → 트랜잭션 진입
→ Edit View Cluster (라디오 버튼 선택)
→ View Cluster Name : ZTXX_VC (Z 시작 + 영문 최대 30자)
→ Create 버튼
생성 화면에 진입하면 좌측 트리 형태의 메뉴 구조가 나옵니다.
| 메뉴 항목 | 설정 내용 |
|---|---|
| Object Structure | View Cluster 에 포함될 뷰 등록 및 트리 구조 정의 |
| Field Dependence | 헤더 필드 → 디테일 필드 매핑 (키 자동 전달) |
| Header Entry | 최상위 진입 화면 설정 (Authorization · 초기 화면 등) |
| Local Field Selections | 뷰별 필드 표시 여부 제어 (옵션) |
3단계 — Object Structure 에 뷰 등록 + 옵션 의미
좌측 트리에서 Object Structure 를 클릭하고 새 뷰를 등록합니다. 헤더부터 디테일 순서로 추가하면서, 각 뷰의 옵션을 설정합니다.
Object Structure → New Entries
→ View 1 (Header) : ZTXX0100
Position : 1
Type : ☑ Header
Dependence : (없음 — 최상위)
Hierarchy : 0 (최상위)
Hierarchy Predecessor : (없음)
→ View 2 (Detail) : ZTXX0110
Position : 2
Type : ☑ Dependent
Dependence : ☑ Hierarchy Predecessor: ZTXX0100
Hierarchy : 1 (헤더의 하위)
Hierarchy Predecessor : ZTXX0100

옵션의 의미 (실무에서 자주 만나는 항목)
| 옵션 | 의미 |
|---|---|
| Position | 트리 순서 — 1부터 차례대로 부여 (헤더가 1) |
| Type (Header / Dependent) | 최상위 헤더 1개 + 그 아래 종속(Dependent) N개 구조. 보통 헤더는 1개만 |
| Hierarchy Level | 0(헤더), 1(헤더의 자식), 2(자식의 자식) … 트리 깊이 |
| Hierarchy Predecessor | 이 뷰의 부모 뷰 이름 (디테일이면 헤더 뷰 이름 입력) |
| List Type | 화면 표시 형태 — Standard List · Standard Form · Detail Screen 등 |
| Update Routine | 사용자 정의 저장 로직 — Function Module 또는 폼 루틴 지정 |
| Initial Screen / Display Routine | 진입 시 또는 표시 시점에 호출할 사용자 로직 (옵션) |
4단계 — Field Dependence 로 키 자동 매핑
가장 중요한 단계. 헤더의 키 값이 디테일 입력 시 자동으로 채워지도록 매핑합니다. 이게 없으면 사용자가 디테일을 입력할 때마다 헤더 키를 직접 다시 입력해야 합니다.
좌측 트리 → Field Dependence → 디테일 뷰(ZTXX0110) 선택 → New Entries
→ Dep. Field : DOCTYP (디테일 측 키 필드)
→ Hier. Field : DOCTYP (헤더 측 키 필드 — 같은 이름이면 자동)
→ 저장
같은 이름의 키 필드는 자동 매핑되지만, 이름이 다르거나 외래키가 명확히 정의돼 있지 않으면 수동 등록이 필요합니다.
Header Entry 설정 (최상위 화면)
| 필드 | 설정값 |
|---|---|
| Authorization Object | 없음 또는 회사 정책에 맞는 권한 객체 (예: S_TABU_DIS) |
| Initial Screen | 진입 시 보일 화면 (헤더 List · Selection Screen 등) |
| Hierarchical Display | ☑ 체크 — 좌측 트리 + 우측 데이터 형태로 표시 (권장) |
모든 설정 후 Ctrl + F3 으로 활성화하면 View Cluster 사용 준비 완료.
5단계 — SM34 에서 사용자 화면 사용
생성된 View Cluster 는 SM34 에서 즉시 사용할 수 있습니다. 단일 SM30 과 달리 좌측 트리를 통해 헤더 → 디테일 탐색이 가능합니다.
SM34 → View Cluster : ZTXX_VC → Maintain (편집) 또는 Display
→ 좌측 트리에 헤더 행 표시
→ 헤더 선택 후 New Entries 로 헤더 추가
→ 트리에서 헤더 더블 클릭 → 디테일 화면으로 진입
→ 디테일에서 행 추가 (헤더 키 자동 채워짐)
→ 저장 (Ctrl + S)

탐색 흐름은 SAP 표준 트랜잭션(SPRO IMG) 의 메뉴와 동일하므로 사용자가 익숙합니다.
흔히 빠뜨리는 함정
사전 단일 유지보수뷰 미생성
각 테이블에 대해 SM30 단일 유지보수뷰가 먼저 만들어져 있어야 합니다. SE54 View Cluster 등록 시 "Maintenance dialog not generated" 에러가 나면 별도 글 "유지보수뷰(Table Maintenance Generator) 생성·변경" 절차로 먼저 단일 뷰부터 만듭니다.
Field Dependence 누락 → 키 수동 재입력
가장 흔한 함정. Field Dependence 를 설정하지 않으면 디테일 입력 시 헤더 키가 자동으로 채워지지 않아 사용자가 매번 같은 값을 다시 입력해야 합니다. 헤더-디테일 관계가 있는 경우 반드시 설정.
Hierarchy Predecessor 잘못 지정
디테일 뷰의 Hierarchy Predecessor 에 헤더 뷰가 아닌 자기 자신이나 다른 디테일을 입력하면 트리 구조가 깨져 SM34 에서 디테일이 표시되지 않습니다.
Header 가 여러 개
View Cluster 는 보통 헤더 1개 + 디테일 N개 구조입니다. 헤더를 여러 개로 설정하면 트리 구조가 의도와 다르게 나오거나 활성화 단계에서 에러가 납니다. 헤더가 정말 여러 개라면 두 개의 별도 View Cluster 로 분리하는 것이 깔끔합니다.
SM30 으로 호출 시도
View Cluster 는 SM34 에서 호출해야 합니다. SM30 에 View Cluster 이름을 입력하면 단일 뷰로 인식되어 에러가 납니다. T-Code 를 헷갈리지 않도록 합니다.
디테일 뷰에 자체 트랜스포트 자동 등록 옵션 누락
View Cluster 에서 입력한 데이터가 트랜스포트에 자동으로 묶이려면 각 단일 유지보수뷰의 트랜스포트 옵션(Standard recording routine) 이 켜져 있어야 합니다. View Cluster 단계가 아니라 SE11 → Maintenance Generator 단계에서 미리 설정.
활성화 누락
설정 변경 후 Ctrl + F3 으로 활성화하지 않으면 SM34 에서 옛 정의 그대로 동작합니다. 활성화는 항상 마지막 단계로 잊지 말고 확인.
외래키 정의 부재
테이블의 외래키(SE11 → Foreign Keys) 가 정확히 정의돼 있어야 Field Dependence 자동 매핑이 깔끔합니다. 외래키가 없으면 같은 이름 필드라도 수동 등록이 필요한 경우가 있습니다.
Filter 기능 활용 누락
특정 뷰의 데이터 일부만 표시하고 싶으면 View Cluster 의 Filter 기능을 활용할 수 있습니다. 이걸 모르면 매번 별도 SELECT 쿼리로 필터링하는 코드를 자체 작성하게 됩니다.
요약
| 단계 | 작업 | 핵심 |
|---|---|---|
| 1 | 사전 준비 | 각 테이블에 대해 SM30 단일 유지보수뷰 생성 완료 (별도 글: 유지보수뷰 생성·변경) |
| 2 | SE54 진입 | Edit View Cluster → 이름 입력 → Create |
| 3 | Object Structure | 뷰 등록 + Type(Header/Dependent) · Hierarchy · Predecessor 설정 |
| 4 | Field Dependence | 헤더 키 → 디테일 키 자동 매핑 (가장 중요한 옵션) |
| 5 | SM34 사용 | 좌측 트리 → 헤더 선택 → 디테일 진입 → 키 자동 채워짐 → 저장 |
View Cluster 는 헤더-디테일 구조의 여러 마스터 테이블을 사용자 한 화면에서 통합 편집할 수 있게 해주는 SAP 표준 도구입니다. 단일 유지보수뷰(SM30) 의 확장 형태로 생각하면 됩니다. 각 테이블의 단일 뷰를 먼저 만들고, SE54 에서 Object Structure 와 Field Dependence 두 가지만 정확히 설정하면 SAP 표준 IMG(SPRO) 의 트리 메뉴 같은 깔끔한 편집 화면이 자동으로 만들어집니다. SM30 과 호출 트랜잭션이 다른 점(View Cluster 는 SM34) 만 잊지 않으면 됩니다.
Disclaimer — 이 포스트는 실무 정리 노트를 바탕으로 AI 보조로 정리되었습니다.
SE54 · SM34 · SM30 트랜잭션과 View Cluster · Object Structure · Field Dependence · Hierarchical Display 기능은 SAP NetWeaver 표준 기능으로 시스템 버전 의존 없이 동작합니다. View Cluster 는 단일 유지보수뷰(SM30) 가 먼저 활성화되어 있어야만 등록 가능하며, 사전 단일 뷰 생성 절차는 별도 글 "유지보수뷰(Table Maintenance Generator) 생성·변경" 의 Table Maintenance Generator 패턴을 참고하시기 바랍니다. 외래키(Foreign Key) 정의가 명확한 테이블 구조라면 Field Dependence 가 자동으로 잡히지만, 외래키가 없거나 같은 이름의 키 필드가 아니라면 수동 매핑이 필요하므로 테이블 설계 시 외래키 관계를 명시해 두는 것이 안전합니다. 권한 객체(S_TABU_DIS · 자체 권한) 와 트랜스포트 자동 등록 옵션은 회사 운영 정책에 따라 다를 수 있으니, 신규 View Cluster 운영기 이관 시 베이시스 · 운영팀과 사전 협의를 권장합니다.