SAP 제품 원가 구성 비교 점검 — 같은 기간, 어느 제품이 재료비·노무비·경비 어디에 더 쓰는지부터 본다
여러 제품·플랜트의 원가 구성을 한 화면에서 나란히 비교하고, 플랜트 소계까지 함께 확인합니다
제품별 원가에서 재료비·노무비·경비가 얼마인지는 알아도, 같은 기간 여러 제품·플랜트를 한 화면에 놓고 구성비를 나란히 비교하기는 쉽지 않습니다. 품목이 늘어날수록 어느 제품이 어느 구성요소에 상대적으로 더 쓰는지 손으로 골라내는 데 시간이 걸립니다.
제품·플랜트·기간별로 재료비·노무비·경비·총원가와 구성비(%)를 계산하고, 제품군별 집계와 플랜트 소계까지 함께 대사하는 과정을 OpenUI5 화면으로 확장했습니다. 품목을 클릭하면 원가센터별 상세까지 바로 확인할 수 있는 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 제품 원가 계산 결과 조회 — 단건 원가 계산 결과를 보여주는 표준 화면(
CK13N)이 다루는 원가 구성요소 구조를 그대로 이어받습니다 - 제품원가 일괄 계산 — 여러 품목의 원가 계산 결과를 함께 보는 표준 화면(
CK80S)의 대상 범위를 참고해 구성비 비교 관점을 더합니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO) · 원가 분석 |
| 대상 영역 | 제품 원가 구성 비교 점검 — 재료비·노무비·경비 구성비 대사, 플랜트·제품군별 집계 |
| Namespace | zui5.costcomp |
| 셸 구조 | 조회조건 영역(우측 조회) + 대사 요약 + 탭(품목별 명세 / 제품군별 집계), 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 2개) + 상세 다이얼로그 |
| SAP 표준 T-code | CK13N · CK80S |
| 데이터 연동 방식 | OData V2 — 탭마다 별도 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·비교형 — 최종 판단은 화면 밖에서 회사가 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회계연도를 넣고 조회하면 대사 요약과 품목별 명세가 총원가 내림차순으로 뜹니다 → 제품군별 집계 탭으로 이동해 플랜트 소계(강조 표시)를 확인하고 → 품목 행을 클릭해 원가센터별 상세를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 화면 진입 시 회계연도(기본값 2026) 기준으로 자동 조회가 1회 실행됩니다.
- 조회조건 영역에서 회계연도(필수)와 기간·플랜트·제품군(선택, 비우면 전체)을 지정합니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 회계연도 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 대사 요약 패널에서 재료비·노무비·경비·총원가 합계와 대사 결과("일치"/"확인 필요")를 확인합니다.
- 품목별 명세 탭에서 제품·플랜트별 원가 구성을 총원가 내림차순으로 확인합니다.
- 제품군별 집계 탭으로 이동해 제품군·플랜트별 집계와 플랜트 소계(강조 표시)를 확인합니다.
- 품목별 명세에서 행을 클릭하면 해당 품목의 원가센터별 상세가 다이얼로그로 열립니다.
- 품목별 명세 우측 하단 CSV 내려받기(UTF-8) 버튼으로 현재 조회 결과를 저장할 수 있습니다.
구성비 산출 로직
이 화면은 원가 위반·오류를 판정하지 않습니다. 원가 구성비를 계산해 값 차이를 사용자가 스스로 비교할 수 있도록 돕는 조회 도구입니다.
| 산출 조건 | 표시 결과 | 사용자 조치 |
|---|---|---|
| 재료비 + 노무비 + 경비 = 총원가(오차 1 미만) | 대사 결과 일치 | 추가 조치 불요 |
| 재료비 + 노무비 + 경비 ≠ 총원가 | 확인 필요 | 원천 데이터 재계산·재수집 여부 확인 |
| 제품군별 집계 합계 | 플랜트 소계 행으로 표시 | 제품군 간 비중 비교에 활용 |
이 화면이 대신 정하지 않는 것
확인 필요 표시는 합계가 어긋난다는 신호일 뿐입니다. 차이의 원인 확정과 후속 조치는 회사와 감사인이 판단합니다.
산출 처리 단계
| 단계 | 내용 |
|---|---|
| 1단계 | 조회조건(회계연도·기간·플랜트·제품군)을 필터로 조립해 품목별 원가 구성을 받는다 |
| 2단계 | 품목별 재료비·노무비·경비를 합산해 총원가를 얻고, 총원가 대비 구성 비중(%)을 계산한다 |
| 3단계 | 조회된 품목 전체를 대상으로 재료비·노무비·경비·총원가 합계를 계산해 대사 요약에 표시한다 |
| 4단계 | 같은 조건으로 제품군별 집계와 플랜트 소계를 함께 받아 집계 탭에 표시한다 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 기본값 2026 |
| 기간 | 선택 | 비우면(전체) 기간 조건 없이 조회 |
| 플랜트 | 선택 | 비우면(전체) 플랜트 조건 없이 조회 |
| 제품군 | 선택 | 비우면(전체) 제품군 조건 없이 조회 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 플랜트 / 제품코드 / 제품명 / 제품군 / 제품군명 | 품목 식별 정보 |
| 재료비 / 노무비 / 경비 / 총원가 | 원가 구성요소별 금액 |
| 단위원가 | 총원가 ÷ 생산수량 |
| 재료비비중 / 노무비비중 / 경비비중 | 총원가 대비 각 구성요소 비율(%), 합계 100% |
| 구분 / 품목수(집계 탭) | 명세·소계 구분, 집계에 포함된 품목 수 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 결과에 여러 품목·플랜트를 나란히 비교하는 조회 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
CK13N | 제품 원가 계산 결과 조회(단건) | 여러 품목·플랜트·기간을 한 화면에서 나란히 비교합니다 |
CK80S | 제품원가 일괄 계산 | 계산 결과를 구성비(%) 기준으로 재배열해 비교합니다 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
CKIS | GJAHR · MATNR · WERTN · KSTAR | 원가 계산 항목 — 재료비·노무비·경비 금액의 원천 |
MBEW | STPRS · VERPR | 자재 평가 — 단위원가 참고값의 원천 |
MARA · MAKT | MATNR · MATKL · MAKTX | 자재 마스터 · 텍스트 — 제품명·제품군의 원천 |
define view entity I_CostCompItemQ
as select from ckis as item
association [1..1] to mara as _material on _material.matnr = item.matnr
{
key item.gjahr as FiscalYear,
key item.poper as Period,
key item.werks as Plant,
key item.matnr as Material,
_material.matkl as MaterialGroup,
item.wertn as CostAmount,
item.kstar as CostElement
// 재료비·노무비·경비 구분과 구성비·단위원가는 소비 계층에서 파생
}
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 대사 요약 · IconTabBar(품목별 명세 / 제품군별 집계) |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 탭마다 독립된 엔티티셋에 바인딩 |
| 조회조건 | sap.m.Select · sap.m.Input — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter 로 조건을 조립합니다. 전체를 고른 조건은 필터를 만들지 않습니다 |
| 상세 보기 | sap.ui.table.Table 의 cellClick 에서 행 컨텍스트로 상세 다이얼로그를 엽니다 |
| 소계 강조 | sap.m.ColumnListItem 의 highlight 속성을 집계 축(소계 여부)에 바인딩합니다 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패를 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 컴포넌트 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.costcomp · 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 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 산출 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 플랜트 2개 × 기간 6개 × 제품 12개 조합 기준 원가 항목 144건(제품군별 집계 48건)을 기준으로 대사식을 전수 검증했습니다.
| 검증 항목 | 결과 |
|---|---|
| 재료비+노무비+경비 = 총원가(품목별 명세 144건, 집계 48건 전수) | 통과(불일치 0건) |
| 제품군별 집계 합계 = 플랜트 소계(12개 조합 전수) | 통과(불일치 0건) |
| 원가센터 상세 합계 = 품목 총원가(144건 전수) | 통과(불일치 0건) |
| 구성비(재료비·노무비·경비) 합계 = 100%(144건 전수) | 통과(불일치 0건) |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 필터 → 정렬 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면이 다루는 데이터 범위는 어디까지인가요
검증용 샘플 데이터 기준으로 2026년 회계연도 01~06 기간, 2개 플랜트, 3개 제품군(12개 제품)의 원가 구성 항목(144건)을 다룹니다. 실제 적용 시 범위는 연결한 OData 서비스의 데이터 범위를 따릅니다.
대사 결과가 확인 필요로 나오면 바로 원가 오류로 봐야 하나요
아닙니다. 이 화면은 분류·집계·대사를 돕는 조회·점검 도구이며, 재료비·노무비·경비 합계와 총원가가 일치하는지 대사할 뿐 원인을 단정하지 않습니다. 최종 판단은 회사와 감사인이 합니다.
제품군별 집계의 소계 행은 어떻게 계산되나요
같은 플랜트·기간 안에서 제품군별 집계를 모두 더한 값입니다. 소계 행은 강조 표시되며, 제품군별 명세 행과 구분해서 보여줍니다.
샘플 데이터로 살펴본 화면과 실제 운영 화면은 어떻게 다른가요
샘플 데이터 화면은 검증용 데이터로 화면 동작을 확인하는 용도입니다. 실제 운영 화면은 연결된 실 OData 서비스를 바라보며, 서비스에 연결되지 않으면 오류 메시지를 안내합니다.
여러 제품의 원가 구성을 한눈에 비교해 보세요
품목이 많아질수록 어느 제품이 어느 원가 구성요소에 상대적으로 더 쓰는지 손으로 비교하기 어렵습니다. 화면에서 제품·플랜트별로 미리 비교해 두면 확인이 필요한 항목을 먼저 가려낼 수 있습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.
| 관련 글 | 차이점 |
|---|---|
| SAP 생산오더별 원가 구성 점검 | 생산오더 1건 단위로 재료비·노무비·경비 구성을 보는 화면 — 이 화면은 여러 제품·플랜트의 원가 구성을 같은 화면에서 나란히 비교하고 플랜트 소계까지 집계합니다 |