솔루션 홈
CO88 · KKS1 · 관리회계

SAP 생산오더 원가차이분석 — 목표와 실제가 갈라진 이유

생산오더의 목표원가와 실제원가를 비교해 가격차이·수량차이·기타차이로 나누고, 차이비율로 판정하는 화면입니다.

생산오더 원가가 계획보다 많이 나왔다는 사실은 금방 압니다. 어려운 것은 재료를 비싸게 산 것인지 많이 쓴 것인지를 가르는 일입니다.

앞은 구매 문제이고 뒤는 생산 문제라 찾아갈 부서가 다릅니다. 표준 원가차이 구조를 그대로 이어받아 차이를 가격·수량·기타로 분해해 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 생산오더 — 오더번호(Aufnr)와 오더유형(AuartCode)
  • 플랜트 · 자재 — 생산 공장(Werk)과 대상 자재(Matnr)
  • 코스트센터 — 생산 부서(Kostl)
  • 산출량 — 실제 산출 수량(Ausbrmenge)과 단위(Meins)
  • 목표원가 — 원가요소별 목표 금액(ZielMaterial 등)
항목내용
대응 T-codeCO88 (정산) · KKS1 (차이계산) · KKBC_ORD
업무 영역관리회계(CO-PC) · 생산원가
Namespacezui5.costvar
셸 구조조회조건 영역(우측 조회·초기화) + 차이 분석 테이블
화면 수조회 화면 1개 + 상세
데이터생산오더 차이 24건
성격조회형(Read-Only) — 차이 계산은 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

플랜트·오더유형·기간으로 조회하면 오더별 차이가 나옵니다 → 가격차이와 수량차이로 나눠 보고 → 차이비율 판정으로 확인 대상을 좁힙니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

CO88 — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 플랜트·오더유형·자재·기간을 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
CO88 — 차이 분석
메인화면 — 목표와 실제
메인화면 — 목표와 실제 — 오더번호·자재·코스트센터·산출량과 함께 목표원가·실제원가·총차이가 놓이고, 가격차이·수량차이·기타차이로 분해돼 표시됩니다.
CO88 — 판정
차이비율과 상태
차이비율과 상태 — 차이비율에 따라 정상·주의·초과로 판정됩니다. 초과 오더부터 확인하면 됩니다.

조작 방법

  1. 플랜트를 고릅니다. 공장마다 원가 구조가 다릅니다.
  2. 오더유형으로 표준생산오더 등을 나눕니다.
  3. 자재로 특정 제품만 볼 수 있습니다.
  4. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  5. 총차이가 큰 오더부터 봅니다.
  6. 가격차이가 크면 구매 단가를, 수량차이가 크면 생산 효율을 확인합니다.
  7. 판정이 초과인 오더는 별도 검토 대상입니다.
  8. 결과는 CSV 다운로드로 내려받습니다.

차이 분해 산식

총차이를 세 갈래로 나눠야 원인이 보입니다.

목표원가 = 표준단가 × 표준수량 × 실제 산출량
실제원가 = 실제단가 × 실제수량
총차이   = 실제원가 − 목표원가

가격차이 = (실제단가 − 표준단가) × 실제수량
수량차이 = (실제수량 − 표준수량) × 표준단가
기타차이 = 총차이 − 가격차이 − 수량차이

차이비율 = 총차이 ÷ 목표원가 × 100
  정상 · 주의 · 초과로 판정

기타차이를 남겨 두는 이유

가격과 수량으로 설명되지 않는 차이가 남습니다. 로트 크기 차이, 대체 자재 사용, 스크랩 처리 같은 것들입니다. 억지로 앞의 두 항목에 밀어 넣으면 가격차이나 수량차이가 왜곡됩니다. 따로 두면 그 금액이 클 때 별도로 조사하게 됩니다.

차이 유형과 책임 부서

유형내용확인 부서
가격차이구매 단가가 표준과 다름구매팀
수량차이투입량이 표준과 다름생산팀
기타차이로트·대체자재·스크랩 등생산관리 · 원가팀
활동차이가공 시간이 표준과 다름생산팀 · 설비관리

조회조건

필드필수설명
플랜트 Werk선택전체 또는 특정 공장
오더유형 AuartCode선택표준생산오더 등
자재 Matnr선택생산 대상 제품
코스트센터 Kostl선택생산 부서
기간선택오더 기간
판정선택정상 / 주의 / 초과

결과 컬럼

컬럼의미 · 표시
오더번호 Aufnr생산오더
오더유형 AuartCode · AuartText표준생산오더 등
플랜트 Werk · WerkText생산 공장
자재 Matnr · MatnrText생산 대상
코스트센터 Kostl · KostlText생산 부서
산출량 Ausbrmenge · 단위 Meins실제 생산 수량
목표원가표준 기준 원가
실제원가실제 투입 원가
총차이실제 − 목표
가격차이 · 수량차이 · 기타차이차이 분해
차이비율 · 판정정상 / 주의 / 초과. 상태 색

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
KKS1생산오더 차이 계산차이를 유형별로 분해해 표시
CO88오더 정산정산 전 차이 확인
KKBC_ORD오더별 원가 분석판정과 비율을 추가
AUFK · AFKO오더 헤더와 생산 정보오더 정보
COSS · COSPCO 원가 집계목표·실제 원가
KEKO원가추정표준 단가 기준

도입 시 확인이 필요한 부분

차이 분해 방식이 차이 키(Variance Key) 설정에 따라 다릅니다. 어떤 차이 범주를 계산할지, 어느 시점 표준을 목표로 쓸지가 설정에 있어 화면도 그것을 따라야 합니다. 판정 기준(정상·주의·초과 구간)도 제품 특성에 맞춰 정해야 합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCCOSTVAR'
@EndUserText.label: '생산오더 원가차이 (Z)'
define view Z_C_ORDER_COST_VARIANCE
  as select from aufk as Order
    left outer join afko as ProdInfo on Order.aufnr = ProdInfo.aufnr
    left outer join coss as CostSum  on Order.objnr = CostSum.objnr
{
  key Order.aufnr as Aufnr,
      Order.auart as OrderType,
      Order.werks as Werk,
      Order.kostl as Kostl,
      ProdInfo.plnbez as Matnr,
      ProdInfo.gamng  as PlanQty,
      ProdInfo.igmng  as ActualQty,
      // 목표·실제 원가는 COSS/COSP 를 버전별로 집계
      sum( CostSum.wtg001 ) as CostAmount
      // 총차이 = 실제 − 목표
      // 가격차이 = (실제단가 − 표준단가) × 실제수량 (소비 뷰에서 분해)
}
group by Order.aufnr, Order.auart, Order.werks, Order.kostl,
         ProdInfo.plnbez, ProdInfo.gamng, ProdInfo.igmng

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 차이 분석 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
분석 테이블sap.m.Table — 목표·실제·차이 분해를 순서대로
차이 표시sap.m.ObjectNumber — 유형별 부호 색
판정sap.m.ObjectStatus — 정상 / 주의 / 초과

판정을 열로 만든 이유

생산오더는 월에 수백 건씩 생깁니다. 차이 금액만 보면 큰 오더가 항상 위에 오지만, 금액이 크다고 비정상인 것은 아닙니다. 비율로 판정해 두면 소액 오더의 심각한 차이도 걸리고, 확인 대상이 몇 건으로 줄어듭니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.costvar) · ko 로케일
view/Main.view.xml조회조건과 차이 분석 테이블
controller/Main.controller.js조회 · 차이 분해 · 판정 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 비율 · 판정 색 포맷터
localdata/costvar.json생산오더 차이 24건

검증 결과

검증 항목결과
총차이 = 실제원가 − 목표원가 (전 건)통과
가격차이 + 수량차이 + 기타차이 = 총차이통과
차이비율 = 총차이 ÷ 목표원가 × 100통과
판정이 차이비율 구간과 정합통과
자재·코스트센터 코드가 있으면 명칭도 존재통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

차이가 음수면 좋은 건가요?

실제원가가 목표보다 적다는 뜻이라 유리한 차이입니다. 다만 표준이 느슨했을 수도 있으므로 지속적으로 유리한 차이가 나면 표준 재설정을 검토합니다.

기타차이가 크면 무엇을 봐야 하나요?

대체 자재를 썼거나 로트 크기가 표준과 크게 달랐을 가능성이 높습니다. 오더의 실제 투입 내역을 열어 표준 BOM 과 대조합니다.

차이는 어디로 정산되나요?

설정에 따라 재고 가액에 반영되거나 매출원가로 갑니다. 자재원장을 쓰면 기말에 배부돼 제품 원가에 녹아듭니다.

SAP 표준 기능과 어떻게 이어지나요?

차이 계산은 KKS1 이 수행하고 정산은 CO88 이 담당합니다. 이 화면은 그 결과를 유형별로 분해하고 비율 판정을 붙여, 확인할 오더를 좁히는 확장입니다.

생산원가 차이 분석, 지금 쓰는 SAP 위에서 확장해 보세요

가격 문제인지 수량 문제인지 갈리면 찾아갈 부서가 정해집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

원가차이분석생산오더목표원가실제원가가격차이수량차이CO88OpenUI5