SAP 이익센터별 계획 대비 실적 차이 분석 점검 — 마진차이를 가격·수량·믹스·원가로 갈라본다
이익센터별 수익·원가·마진의 계획 대비 실적을 한 화면에서 대사하고, 마진차이를 가격·수량·믹스·원가 네 요인으로 분해합니다
이익센터별 매출 실적표를 보면 계획을 넘긴 곳도 있고 못 미친 곳도 있는데, 정작 왜 벌어졌는지는 표만 봐서는 드러나지 않습니다. 판매가격이 흔들린 것인지, 물량이 계획과 달랐는지, 제품·고객 구성이 바뀐 것인지, 아니면 단위원가가 움직인 것인지는 저마다 원인이 다릅니다.
대상 영역은 사업계획·실적 분석 — 이익센터별로 수익·원가·마진의 계획과 실적을 한 화면에서 대사하고, 마진차이를 가격·수량·믹스·원가 네 요인으로 분해하는 과정을 OpenUI5 화면으로 확장했습니다. 이익센터 합계와 요인 분해 합계가 정확히 맞아떨어지는지 대사하는 로직까지 포함해, 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 이익센터 실적 조회 — 이익센터별 전표 명세 조회(
KE5Z)와 이익센터 손익계산서(S_ALR_87013326)가 만든 집계를 그대로 이어받아 계획 대비 차이 분해 관점을 더합니다 - 계획 데이터 — 이익센터 계획 데이터 입력·관리(
KEPM)의 계획 구조를 참고했습니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO) · 사업계획·실적 분석 |
| 대상 영역 | 이익센터별 계획 대비 실적 차이 분석 — 수익·원가·마진 대사, 가격·수량·믹스·원가 요인 분해 |
| Namespace | zui5.planactual |
| 셸 구조 | 조회조건 영역(우측 조회) + 이익센터별 계획·실적 대사 요약 탭 + 차이요인 분해 탭, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 2개) + 상세 다이얼로그 |
| SAP 표준 T-code | KE5Z · S_ALR_87013326 · KEPM |
| 데이터 연동 방식 | OData V2 — 탭마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 예산 재배분 등 의사결정은 화면 밖에서 회사가 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회계연도·기간·이익센터를 넣고 조회하면 이익센터별 계획·실적 대사 요약이 뜹니다 → 차이요인 분해 탭에서 가격·수량·믹스·원가 기여분을 확인하고 → 요약 행을 클릭해 해당 이익센터·기간의 요인 분해를 다이얼로그로 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 회계연도는 목록에서 선택합니다(기본 2026). 필수 항목입니다.
- 기간·이익센터·회사코드는 비워 두면(전체) 조건 없이 조회되고, 특정 범위만 보려면 목록에서 선택합니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 조회조건 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 화면을 열면 기본 조건(2026년 전체)으로 자동 조회된 상태로 시작합니다.
- 요약 탭에서 이익센터별 수익·원가·마진의 계획·실적·차이와 달성률을 확인합니다.
- 차이요인 분해 탭으로 이동하면 같은 조회조건의 가격·수량·믹스·원가 차이 목록을 볼 수 있습니다.
- 요약 탭에서 행을 클릭하면 해당 이익센터·기간의 요인 분해가 다이얼로그로 열립니다.
- 목록 우측 상단 CSV 내려받기(UTF-8 BOM)로 현재 조회조건 기준 요약 결과를 저장할 수 있습니다.
차이요인 판정 로직
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 마진차이 > 0 | 유리 | 어떤 요인이 기여했는지 분해 탭에서 참고합니다. |
| 마진차이 < 0 | 불리 확인 필요 | 가격·수량·믹스·원가 중 확인이 필요한 요인부터 점검합니다. |
| 달성률 < 100% | 미달 | 차이요인 분해로 원인 요인을 확인합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시일 뿐입니다. 예산 재배분이나 이익센터 평가 등 실제 의사결정은 회사가 상황을 종합해 판단합니다.
대사 처리 단계
| 단계 | 내용 |
|---|---|
| 1단계 | 이익센터·기간별로 수익·원가의 계획과 실적을 집계한다 |
| 2단계 | 계획 + 차이 = 실적 항등식으로 수익·원가·마진 각각을 대사한다 |
| 3단계 | 마진 실적 ÷ 계획 × 100 으로 달성률을 산출한다 |
| 4단계 | 마진차이를 가격·수량·믹스·원가 네 요인으로 분해한다 |
| 5단계 | 네 요인 금액의 합이 마진차이와 일치하는지 대사한다 |
| 6단계 | 이익센터별 값의 합이 TOTAL 행과 일치하는지 대사한다 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 기본값 2026 |
| 기간 | 선택 | 비워 두면(전체) 모든 기간이 조회됩니다. |
| 이익센터 | 선택 | 비워 두면(전체) 모든 이익센터가 조회됩니다. |
| 회사코드 | 선택 | 비워 두면(전체) 모든 회사코드가 조회됩니다. |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 이익센터 / 이익센터명 | 식별 정보 |
| 수익(계획/실적/차이) | 매출 계획, 실적, 차이(실적−계획) |
| 원가(계획/실적/차이) | 매출원가 계획, 실적, 차이(낮을수록 유리) |
| 마진(계획/실적/차이) | 수익−원가 = 마진의 계획, 실적, 차이 |
| 달성률(%) | 마진 실적 ÷ 계획 × 100 |
| 차이요인(분해 탭) | 가격차이·수량차이·믹스차이·원가차이 — 합은 마진차이와 같습니다 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 결과에 계획 대비 차이 요인 분해 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
KE5Z | 이익센터별 전표 명세 조회 | 전표 집계 구조를 참고해 이익센터·기간별 수익·원가를 집계합니다 |
S_ALR_87013326 | 이익센터 손익계산서 | 손익 집계에 계획 대비 차이와 요인 분해를 더합니다 |
KEPM | 이익센터 계획 데이터 입력·관리 | 계획 데이터 구조를 참고해 계획·실적 대사에 반영합니다 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
ACDOCA | RBUKRS · PRCTR · GJAHR · POPER · HSL | 실적 수익·원가 집계 원천(유니버설 저널) |
ACDOCP | RBUKRS · PRCTR · GJAHR · POPER · HSL | 계획 수익·원가 집계 원천(유니버설 저널 계획) |
define view entity ZI_ProfitCenterPlanActual
as select from acdoca
association [1..1] to acdocp as _Plan
on _Plan.prctr = acdoca.prctr
and _Plan.gjahr = acdoca.gjahr
{
key acdoca.rbukrs,
key acdoca.prctr as ProfitCenter,
key acdoca.gjahr as FiscalYear,
key acdoca.poper as Period,
sum(acdoca.hsl) as RevenueActual
// 가격·수량·믹스 요인 분해 로직은 원가요소·판매관리 마스터 확정 후 확인이 필요합니다
}
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · IconTabBar(요약/차이요인 분해) |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 탭마다 엔티티셋에 개별 바인딩합니다. 모델 설정은 useBatch:false |
| 조회조건 | sap.m.ComboBox — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조회조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다 |
| 요약 목록 | 컬럼 12개로 sap.ui.table.Table 사용, cellClick에서 행 컨텍스트로 요인 분해 상세를 별도 조회 |
| 점검결과 표시 | sap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패를 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.planactual · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 요약/차이요인 분해 탭 |
view/DetailDialog.fragment.xml | 요인 분해 상세 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV 다운로드 |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 금액·상태 표시 서식 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
운영 데이터는 OData 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 8개 이익센터 × 3개 기간, 24건(+기간별 합계 3건)을 기준으로 이익센터 합계와 요인 분해 합계가 원(KRW) 단위로 완전히 일치하도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 계획 + 차이 = 실적(수익·원가·마진, 27건) | 통과(차이 0) |
| 요인 분해 합계 = 마진차이(24건) | 통과(차이 0) |
| 조회 조건 전달 — 이익센터 필터 적용 시 대상 외 이익센터 제외 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 필터 → 탭 전환 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면은 어떤 기준으로 이익센터의 실적을 판정합니까
달성률(마진 실적 ÷ 계획 × 100)과 마진차이 부호를 함께 보여줄 뿐, "미달"·"불리" 같은 표시는 확인이 필요하다는 신호이며 원인의 타당성에 대한 판단은 내리지 않습니다.
가격·수량·믹스·원가 네 요인은 어떻게 나뉩니까
판매가격 변동, 판매수량 변동, 제품·고객 구성 변화, 단위원가 변동이 마진차이에 기여한 정도를 각각 분해합니다. 세부 산식은 원가·판매관리 마스터 확정 후 반영할 예정이며, 현재는 확인 필요로 남겨 두었습니다.
원가차이는 왜 다른 항목과 색상 기준이 다릅니까
원가차이는 실적이 계획보다 낮을 때(과소 지출) 유리하므로, 수익·마진차이와 부호 해석을 반대로 표시합니다. 화면의 색상은 이 기준을 따릅니다.
조회 결과를 그대로 이익센터 평가나 예산 재배분에 사용할 수 있습니까
아닙니다. 화면은 계획 대비 실적 차이를 분류·집계해 점검 대상을 가려내는 조회 도구이며, 실제 평가와 예산 관련 의사결정은 회사가 수행합니다.
계획과 실적이 벌어졌다면, 무엇 때문인지부터 갈라보세요
합계표만으로는 계획과 실적이 왜 벌어졌는지 보이지 않습니다. 화면에서 이익센터별 차이를 가격·수량·믹스·원가로 미리 분해해 두면 점검 우선순위를 정하기가 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.
| 관련 글 | 차이점 |
|---|---|
| SAP 코스트센터 계획 대비 실적 차이 분석 | 코스트센터 축으로 원가 차이만 집계 — 이 화면은 이익센터 축으로 수익·원가·마진을 함께 대사하고 가격·수량·믹스·원가로 요인 분해 |