SAP 원가 요소 추이 점검 — 전월 대비 얼마나, 어디서 튀었는지부터 가른다
원가센터·원가요소별 전월 대비 당월 금액 변동을 자동으로 집계해 증감률이 큰 항목을 가려내고, 재료비·노무비·경비 구성비와 단위원가 변동까지 함께 확인하는 화면을 OpenUI5로 구현한 사례. 소계·총원가·단위원가까지 항등식으로 대사되는 검증 로직과 조회조건·결과 컬럼 스펙, 실제 화면 3종을 공개합니다.
원가센터별 실적을 나열하는 화면은 흔하지만, "지난달보다 왜 늘었는지"를 바로 보여주는 화면은 드뭅니다. 수십 개 원가요소를 한 줄씩 눈으로 비교하다 보면 정작 크게 튄 항목을 놓치기 쉽습니다.
대상 영역은 원가 분석입니다. 원가센터·원가요소별로 전월 대비 당월 금액 변동을 자동으로 집계하고, 증감률이 정해진 임계치를 넘는 항목을 가려낸 뒤, 재료비·노무비·경비 구성비 추이와 단위원가 변동까지 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 원가센터 실적 조회 — 원가센터 실적 라인아이템 조회의 표준 화면(
KSB1)이 만든 집계를 그대로 이어받아 전월 대비 변동 점검 관점을 더합니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO) · 원가 분석 |
| 관련 기준서 | - (분석·점검 목적의 관리회계 조회 화면으로, 특정 기준서에 대응하지 않습니다) |
| Namespace | zui5.costtrend |
| 셸 구조 | 조회조건 영역(우측 조회) + KPI 요약 카드 4개 + 원가 요소별 변동/구성비 추이 탭, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 2개) + 상세 다이얼로그 |
| SAP 표준 T-code | KSB1 |
| 데이터 연동 방식 | OData V2 — 탭마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 원인 판단은 화면 밖에서 회사가 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회계연도·기준월을 넣고 조회하면 KPI 카드와 원가 요소별 변동 탭이 함께 뜹니다 → 원가 구성비 추이 탭에서 재료비·노무비·경비 비중을 확인하고 → 변동 목록에서 행을 클릭해 상세 다이얼로그를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 회계연도는 4자리로 입력합니다(필수, 기본 2026).
- 기준월은 002~012 중에서 선택합니다(필수, 기본 012). 전월 대비 증감을 계산하므로 001은 대상에서 제외됩니다.
- 원가센터·원가 구분은 비워 두면(전체) 전체 대상을 조회합니다(선택).
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 회계연도 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 화면을 열면 기본 조건(2026년 012월·전체)으로 자동 조회되며, KPI 카드 4개가 함께 표시됩니다.
- 원가 요소별 변동 탭에서 증감률 내림차순 목록을, 원가 구성비 추이 탭에서 재료비·노무비·경비 비중을 확인합니다.
- 변동 목록에서 소계가 아닌 행을 클릭하면 해당 원가요소의 상세가 다이얼로그로 열립니다.
- 변동 목록 우측 상단 CSV 내려받기(UTF-8 BOM)로 현재 조회조건 기준 목록을 저장할 수 있습니다.
변동 점검 판정 로직
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 전월 대비 당월 금액 증감률 절대값이 15% 이상 | 점검 필요 | 증감 사유(물량·단가·일회성 항목 여부)를 원천 전표에서 확인합니다. |
| 증감률 절대값이 15% 미만 | 정상 | 별도 조치가 필요하지 않습니다. |
| 원가센터 소계 행 | 참고용(점검 대상 아님) | 구성 원가요소의 점검결과를 함께 확인합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시일 뿐입니다. 이 화면은 분류·집계·대사를 돕는 조회·점검 도구이고, 변동 원인에 대한 최종 판단은 회사와 감사인이 합니다.
원가 집계·대사 절차
| 단계 | 내용 |
|---|---|
| 1단계 | 원가요소별 전월·당월 금액을 원천에서 집계한다 — 증감액 = 당월 금액−전월 금액 |
| 2단계 | 원가센터별 소계를 만든다 — 소속 원가요소 합계(전월·당월 각각)와 항상 일치한다 |
| 3단계 | 재료비+노무비+경비 = 당월 총원가로 대사한다 |
| 4단계 | 당월 총원가 ÷ 당월 생산수량 = 당월 단위원가를 산출한다 |
| 5단계 | 단위원가 증감률 = (당월 단위원가−전월 단위원가) ÷ 전월 단위원가로 마무리한다 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 4자리 회계연도 |
| 기준월 | 필수 | 002~012 중 선택(전월 대비 증감 계산 기준) |
| 원가센터 | 선택 | 비워 두면(전체) 전체 원가센터가 대상입니다. |
| 원가 구분 | 선택 | 재료비·노무비·경비 중 선택, 비워 두면 전체입니다. |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 원가센터 / 원가요소 | 코드와 명칭(소계 행은 굵게 표시) |
| 구분 | 재료비 · 노무비 · 경비 |
| 전월 금액 / 당월 금액 | 해당 기간의 원가 집계액 |
| 증감액 / 증감률(%) | 당월−전월 금액 및 그 비율 |
| 점검결과 | 임계치 초과 여부에 따른 정상/점검 필요 표시 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code가 담당하고, 이 화면은 그 결과에 전월 대비 변동을 자동으로 가려내는 조회·점검 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
KSB1 | 원가센터 실적 라인아이템 조회 | 집계 결과를 전월 대비 증감률로 재구성하고 임계치 초과 항목을 자동으로 표시합니다 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
ACDOCA | RCNTR · RACCT · HSL | 원가센터·원가요소별 실적 금액의 원천 |
CSKS / CSKT | KOSTL · KTEXT | 원가센터 마스터·명칭 |
CSKB / CSKU | KSTAR · KTEXT | 원가요소 마스터·명칭 |
define view entity ZC_COST_TREND
as select from acdoca
{
key rcntr as CostCenter,
key racct as CostElement,
key gjahr as FiscalYear,
key poper as Period,
sum(hsl) as Amount
}
group by rcntr, racct, gjahr, poper
// 전월 대비 비교, 구성비, 단위원가 로직은 프로젝트별로 확인이 필요합니다
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · KPI 카드 4개 · IconTabBar(원가 요소별 변동/구성비 추이) |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 탭마다 엔티티셋에 개별 바인딩합니다. 모델 설정은 useBatch:false |
| 조회조건 | sap.m.Select · sap.m.Input — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조건을 조립합니다. "전체" 선택은 필터를 만들지 않습니다 |
| 변동 목록 | sap.ui.table.Table 사용 — 증감률 내림차순 기본 정렬, 행 클릭 시 상세 다이얼로그 |
| KPI 요약 | 기간별 요약 엔티티를 별도 조회해 KPI 카드에 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패를 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.costtrend · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · KPI 카드 · 변동/구성비 탭 |
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 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 5개 원가센터 × 10개 원가요소 × 11개월(002~012월)을 기준으로, 원가요소 합계·원가센터 소계·원가 구분 합계가 항등식으로 대사되도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 전월금액+증감액=당월금액 항등식(605건) | 통과(오차 0건) |
| 원가센터 소계 롤업(소속 원가요소 합계와 일치, 55건) | 통과(오차 0건) |
| 재료비+노무비+경비=총원가(12개월) | 통과(오차 0건) |
| 총원가÷생산수량=단위원가(12개월) | 통과(오차 0.01원 미만) |
| 조회 조건 전달 — 원가센터·원가 구분 필터, 증감률 내림차순 정렬(Edm.Decimal 숫자 비교) 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 탭 전환 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
의도적으로 넣은 예외(점검 필요) 항목은 7건이며, 대사 차이 건수(0건)와는 별개로 구분해 관리합니다. 모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면은 언제부터, 어느 범위에 적용할 수 있습니까
특정 회계기준의 시행일이 걸린 화면이 아니라 상시 운영되는 관리 목적의 조회·점검 화면입니다. 별도의 시행일·경과규정은 없으며, 조회 가능한 기간은 원천 데이터가 있는 범위로 한정됩니다.
증감률 임계치는 왜 고정값을 씁니까
검증용 샘플 데이터에 맞춰 예시로 15%를 기본값으로 두었습니다. 실제 도입 시에는 원가센터·원가요소 특성에 맞게 임계치를 조정하는 것을 전제로 합니다.
"점검 필요" 표시는 원가가 잘못됐다는 뜻입니까
아닙니다. 이 화면은 분류·집계·대사를 돕는 조회·점검 도구이며, 정해진 임계치를 넘긴 항목을 가려내 확인을 돕는 표시일 뿐입니다. 변동 원인에 대한 최종 판단은 회사와 감사인이 합니다.
CSV로 받은 목록을 그대로 다른 보고서에 반영해도 됩니까
CSV는 현재 조회 조건의 원가요소별 상세를 그대로 내려받는 참고용 파일입니다. 반영 전에는 관련 부서의 확인 절차를 거치는 것을 권장합니다.
이번 달 원가, 어디서 튀었는지 먼저 가려보세요
원가센터별 실적표만으로는 어느 원가요소가 유독 크게 움직였는지 한눈에 보이지 않습니다. 화면에서 증감률 기준으로 미리 걸러 두면 점검 우선순위를 정하기가 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.
| 관련 글 | 차이점 |
|---|---|
| SAP 제품·고객 마진 믹스 분석 점검 | 마진 변동을 가격·수량·믹스·원가로 분해 — 이 화면은 원가요소 자체의 전월 대비 변동을 점검 |
| SAP 제품별 공헌이익 분석 점검 | 제품별 손익을 나열해 저마진 제품을 가려냄 — 이 화면은 원가센터·원가요소 단위로 변동을 가려냄 |