SAP 제품 표준원가 명세 — 재료비·가공비·간접비가 어디서 왔는가
표준원가를 원가구성요소로 분할하고, 원가명세 항목과 하위 반제품 롤업 경로까지 따라가는 화면입니다.
제품 표준원가가 10만원이라는 사실만으로는 아무 판단도 할 수 없습니다. 그 10만원이 무엇으로 이뤄졌는지를 알아야 원가를 줄일 곳이 보입니다.
재료비가 8만원이면 구매 협상이 답이고, 가공비가 8만원이면 공정 개선이 답입니다. 게다가 반제품이 들어가면 그 안에도 다시 구성이 있습니다. 구성요소 분할과 롤업 경로를 함께 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 자재 — 자재코드(
Matnr)와 플랜트(Werks) - 원가계산변형 —
Klvar로 계산 기준 구분 - 원가계산 기간 — 회계연도(
Gjahr)와 월(Monat) - 원가구성요소 — 요소 ID(
CompId) · 명칭 · 그룹(CompGroup) - 원가명세 — 항목별 투입 내역(
stditem)
| 항목 | 내용 |
|---|---|
| 대응 T-code | CK13N · CK11N · CK40N · CK33 |
| 업무 영역 | 관리회계(CO-PC) · 제품원가계획 |
| Namespace | zui5.stdcost |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 표준원가 테이블 + 구성요소 · 명세 |
| 화면 수 | 조회 화면 1개 + 명세 상세 |
| 데이터 | 자재 18건 · 구성요소 7건 · 명세 항목 143건 |
| 성격 | 조회형(Read-Only) — 원가계산은 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
플랜트·원가계산변형·기간으로 조회하면 자재별 표준원가가 나옵니다 → 원가구성요소로 분할해 보고 → 원가명세와 하위 반제품 롤업 경로를 따라갑니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 플랜트를 고릅니다. 같은 자재도 공장마다 원가가 다릅니다.
- 원가계산변형을 고릅니다. 표준원가용과 시뮬레이션용이 다릅니다.
- 회계연도·기간으로 원가계산 시점을 지정합니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 구성요소별 금액으로 원가 구조를 파악합니다.
- 이전 릴리즈 대비 증감으로 무엇이 올랐는지 봅니다.
- 원가명세에서 개별 투입 항목을 확인합니다.
- 하위 반제품은 롤업 경로를 따라 내려갑니다.
구성요소 규칙
모든 투입을 구성요소로 분류해 합산합니다.
표준원가 = Σ(원가구성요소별 금액)
구성요소 그룹
MAT 재료비 원재료 · 부재료 투입
PRD 가공비 활동유형 × 활동단가
OVH 간접비 제조간접비 배부
다단계 롤업
하위 반제품의 표준원가가 상위의 재료비로 들어감
반제품 구성요소는 상위에서도 유지(구성요소 이전)
증감 = 현재 표준원가 − 이전 릴리즈 단가
구성요소가 상위로 이어지는 이유
반제품 원가를 통째로 재료비에 넣으면 완제품 관점에서는 모두 재료비로 보입니다. 실제로는 그 안에 가공비가 들어 있는데 가려집니다. 구성요소를 유지한 채 올리면 완제품 원가에서도 전체 가공비 비중이 제대로 보입니다.
표준원가 산정 4단계
| 단계 | 내용 | 결과 |
|---|---|---|
| ① BOM·라우팅 확인 | 투입 자재와 공정 확인 | 수량 구조 |
| ② 단가 반영 | 자재 단가와 활동단가 적용 | 금액 산출 |
| ③ 롤업 | 하위에서 상위로 누적 | 다단계 원가 |
| ④ 릴리즈 | 표준원가 확정 | 자재 마스터 반영 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
플랜트 Werks | 필수 | 원가계산 대상 공장 |
원가계산변형 Klvar | 필수 | PPC1 등 |
회계연도 Gjahr · 기간 Monat | 필수 | 원가계산 시점 |
자재 Matnr | 선택 | 특정 자재 |
| 구성요소 그룹 | 선택 | 재료비 · 가공비 · 간접비 |
결과 컬럼
자재 단위
| 컬럼 | 의미 |
|---|---|
자재 Matnr · 명칭 | 원가계산 대상 |
플랜트 Werks | 계산 공장 |
원가계산변형 Klvar | 계산 기준 |
기간 Gjahr · Monat | 계산 시점 |
통화 Currency | 표시 통화 |
| 총 표준원가 | 구성요소 합계 |
| 이전 릴리즈 단가 · 증감 | 변동 확인 |
원가구성요소
| 컬럼 | 의미 |
|---|---|
요소 CompId · CompText | 원재료비 등 |
요소 그룹 CompGroup · CompGroupText | 재료비 · 가공비 · 간접비 |
순번 Seq | 표시 순서 |
| 금액 | 요소별 원가 |
원가명세
| 컬럼 | 의미 |
|---|---|
| 항목 유형 | 자재 · 활동 · 간접비 |
| 투입 자재 · 활동유형 | 구체적 투입 대상 |
| 수량 · 단가 · 금액 | 투입 내역 |
| 하위 반제품 | 롤업 경로 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
CK13N | 원가추정 조회 | 구성요소와 명세를 한 화면에 |
CK11N | 원가추정 생성 | 계산 실행 |
CK40N | 원가계산 실행(집합) | 대량 계산 |
CK33 | 원가추정 비교 | 릴리즈 간 증감 |
KEKO · KEPH | 원가추정 헤더와 구성요소 | 조회 원천 |
CKIS | 원가명세 항목 | 투입 내역 |
도입 시 확인이 필요한 부분
원가구성요소 구조(Cost Component Structure)가 회사마다 다릅니다. 몇 개로 나눌지, 고정비와 변동비를 구분할지가 설정에 정의되며, 화면 열 구성도 그에 맞춰야 합니다. 다단계 BOM 이 깊으면 롤업 경로 표시 방식도 함께 고려해야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCSTDCOST'
@EndUserText.label: '제품 표준원가 명세 (Z)'
define view Z_C_STANDARD_COST
as select from keko as CostHeader
inner join keph as Component on CostHeader.kalnr = Component.kalnr
and CostHeader.kalka = Component.kalka
and CostHeader.kadky = Component.kadky
left outer join makt as MatText on CostHeader.matnr = MatText.matnr
and MatText.spras = 'K'
{
key CostHeader.kalnr,
key CostHeader.kadky,
key Component.elemt as CompId,
CostHeader.matnr as Matnr,
MatText.maktx as MaktxName,
CostHeader.werks as Werks,
CostHeader.klvar as Klvar,
CostHeader.losgr as LotSize,
Component.wertn as ComponentAmount
// 원가명세 항목은 CKIS 와 조인, 하위 반제품은 재귀 전개
// 이전 릴리즈 대비 증감은 직전 KEKO 를 조인해 계산
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 자재 목록 · 구성요소 · 명세 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 자재 목록 | sap.m.Table — 총원가와 증감 |
| 구성요소 | 요소 그룹별 금액과 비중 |
| 원가명세 | sap.ui.table.TreeTable — 하위 반제품 전개 |
명세를 트리로 만든 이유
다단계 BOM 은 반제품 안에 또 반제품이 있습니다. 평면 목록으로 펼치면 어느 항목이 어느 반제품에 속하는지 알 수 없습니다. 트리로 두면 계층이 그대로 보이고, 원가가 어느 단계에서 붙었는지 따라갈 수 있습니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.stdcost) · ko 로케일 |
view/Main.view.xml | 조회조건 · 자재 목록 · 구성요소 · 명세 |
controller/Main.controller.js | 조회 · 구성요소 집계 · 롤업 전개 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 수량 · 증감 포맷터 |
localdata/stdmaterial.json | 자재 18건 |
localdata/stdcomp.json | 구성요소 7건 |
localdata/stditem.json | 명세 항목 143건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 총 표준원가 = 구성요소별 금액 합계 (전 자재) | 통과 |
| 구성요소 그룹별 소계 = 요소 금액 합계 | 통과 |
| 원가명세 금액 합계 = 총 표준원가 | 통과 |
| 하위 반제품 원가가 상위 재료비에 반영 | 통과 |
| 자재·구성요소 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 명세 전개 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
원가구성요소는 몇 개로 나누는 게 좋나요?
관리 목적에 맞춰 정합니다. 재료비·가공비·간접비 세 갈래가 기본이고, 필요하면 원재료와 부재료를 나누거나 고정비·변동비를 구분합니다.
이전 릴리즈 대비 증감이 큰 자재는 어떻게 보나요?
어느 구성요소에서 올랐는지부터 봅니다. 재료비면 구매 단가나 BOM 소요량, 가공비면 활동단가나 표준시간을 확인합니다.
반제품 원가가 상위에 어떻게 반영되나요?
구성요소를 유지한 채 올라갑니다. 반제품의 가공비는 완제품에서도 가공비로 잡혀, 전체 원가 구조가 왜곡되지 않습니다.
SAP 표준 기능과 어떻게 이어지나요?
원가계산과 구성요소 분할은 표준 CO-PC 가 수행합니다. 이 화면은 그 결과를 구성요소·명세·롤업 경로로 펼쳐, 원가 구조를 한 화면에서 따라가게 하는 확장입니다.