솔루션 홈
KB31N · 관리회계

SAP 코스트센터 통계지표(SKF) 등록현황 — 배부하기 전에 기준값부터 점검한다

코스트센터별 인원수·면적·가동시간 같은 통계지표가 매달 빠짐없이 들어왔는지, 갑자기 튄 값은 없는지 한 화면에서 확인합니다.

배부 사이클(코스트센터 어세스먼트·배분)은 금액이 아니라 통계지표를 기준으로 원가를 나눕니다. 인원수·면적·가동시간 같은 값이 그 역할을 하는데, 정작 이 값 자체가 몇 달째 등록되지 않았거나 갑자기 두 배로 튀었는지는 배부를 돌리는 순간까지 잘 드러나지 않습니다.

이 화면은 코스트센터 x 통계지표 조합별로 조회기간 안의 등록 여부를 매달 빠짐없이 확인하고, 등록된 값 중 마지막 두 개 월을 비교해 급격한 변동을 잡아냅니다. 배부 결과 자체를 검증하는 기존 화면들과 달리, 배부가 돌기 단계 — 기준값의 품질을 통제 대상으로 삼습니다. 실제 구동 화면 5종을 함께 공개합니다.

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

  • 코스트센터 — 코드(Kostl)와 회사코드(Bukrs) · 책임자
  • 통계지표 — 지표코드(Stagr)와 명칭 · 단위(Meaeh)
  • 측정유형 — 잔액형(이월) / 합계형(집계) 구분(Kzst)
  • 등록 전표 — 전표번호 · 등록일 · 등록자
  • 기간 — 회계연도(Gjahr)와 월(Monat)
항목내용
대응 T-codeKB31N(통계지표 입력) · KB33N(통계지표 조회)
업무 영역관리회계(CO) · 통계지표(SKF) 등록 완전성
Namespacezui5.skf
셸 구조조회조건 영역(우측 조회·초기화) + 조합 목록 + 월별 등록현황 상세
화면 수조회 화면 1개 + 월별 상세 다이얼로그
데이터배정 조합 25건 · 등록 전표 196건(의도적 결측 3조합 · 급변 3조합 포함)
성격조회형(Read-Only) — 지표 입력·저장은 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 5종 둘러보기

회사코드·기간으로 조회하면 조합별 등록현황이 나옵니다 → 미등록·급변 건을 필터링하고 → 행을 선택해 월별 이력을 드릴다운합니다.

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

KB31N — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·회계연도·조회기간·코스트센터·지표그룹을 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
KB31N — 등록현황 조회결과
전체 조회 결과 화면
전체 조회 결과 — 미등록 2건 · 급변 3건 · 정상 13건 — 코스트센터·통계지표·측정유형과 함께 최근등록값·직전등록값·증감률·미등록개월·상태가 이어집니다. 상태별 건수는 타이틀 우측 KPI와 표 하단 합계줄에 동일하게 집계됩니다.
KB31N — Enter 키 조회
코스트센터 필터 후 Enter 키 조회 결과
코스트센터 필터 후 Enter 키 즉시 조회 — 코스트센터 입력란에 'P10'을 입력하고 Enter 를 누르면 버튼을 누르지 않아도 바로 재조회됩니다.
KB31N — 월별 상세
월별 등록현황 상세 다이얼로그
월별 등록현황 상세 다이얼로그 — 인사총무팀의 '사용면적' 지표 상세입니다. 2026.06 이 미등록으로 빨갛게 강조되고, 등록된 달은 값·증감률·등록일·등록자가 함께 표시됩니다.
KB31N — 미등록만 필터
미등록만 필터 적용 결과
'미등록만' 옵션으로 좁힌 결과 — 18개 조합 중 결측이 있는 2개 조합만 남습니다. 배부 실행 전 담당자가 가장 먼저 처리해야 할 목록입니다.

조작 방법

  1. 회사코드회계연도·조회기간(시작월~종료월)을 지정합니다.
  2. 필요하면 코스트센터를 부분 일치로 입력하거나 지표그룹을 선택합니다.
  3. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 이미 조회한 상태에서는 즉시 재조회됩니다.
  4. 미등록만 체크박스로 결측 조합만, 급변만 체크박스로 이상치 조합만 좁혀 봅니다(동시 체크 시 AND).
  5. 조회조건 영역 가장 오른쪽의 [조회](또는 Enter)를 누르면 즉시 집계됩니다.
  6. 행을 선택하거나 상세 버튼을 누르면 월별 등록현황이 다이얼로그로 열립니다.
  7. 목록·월별 상세 모두 CSV 다운로드로 내려받아 배부 실행 전 점검 자료로 첨부합니다.

등록완전성 & 이상치 판정 로직

결측이 하나라도 있으면 값의 크기와 무관하게 최우선으로 "미등록"이 됩니다. 결측이 없을 때만 증감률로 이상치를 판정합니다.

조합(코스트센터 x 통계지표)별 조회기간 내 월 목록을 구성
  → 등록 전표가 있는 월만 매핑

미등록개월 = 조회기간 전체 월수 − 등록된 월수
  미등록개월 > 0   →  상태 = "미등록"   (최우선, 값 크기와 무관)

등록개월 ≥ 2 인 경우만 증감률 계산
  증감률 = (최근등록값 − 직전등록값) / 직전등록값 × 100
  |증감률| ≥ 임계값(기본 30%)  →  상태 = "급변"

그 외  →  상태 = "정상"

정렬 우선순위 : 미등록 > 급변 > 정상

미등록이 급변보다 항상 우선하는 이유

값 자체가 없으면 증감률을 계산할 수 없고, 결측은 배부 실행이 아예 막히거나 엉뚱한 코스트센터가 부담을 떠안는 직접 원인이 됩니다. 그래서 두 조건이 동시에 성립할 수 없도록 설계하고, 정렬도 미등록을 항상 앞에 두어 담당자가 가장 급한 항목부터 보게 합니다.

조합별 월별 매칭 처리 단계

단계내용산출
① 배정 조합 산출회사코드(+코스트센터/지표그룹 필터)로 대상 조합 추출조합 리스트
② 월별 매칭등록 전표를 월(Monat) 키로 매핑월→전표 맵
③ 결측 계산조회기간 전체 월 − 매핑된 월미등록개월
④ 증감 계산등록된 마지막 두 월의 값 비교증감률
⑤ 상태 판정 & 정렬미등록 > 급변 > 정상 규칙 적용상태 · 정렬순서

③을 건너뛰면 배부기준이 빠진 채로 실행되어 다른 코스트센터가 부담을 대신 떠안는 왜곡이 결산 이후에나 발견됩니다.

조회조건

필드필수설명
회사코드 Bukrs필수대상 법인
회계연도 Gjahr필수조회 연도
조회기간 MonatFrom~MonatTo필수시작월~종료월 구간
코스트센터 Kostl선택부분 일치, Enter 로 즉시 조회
지표그룹 StagrGrp선택인사/공통 · 설비/자산 · 생산활동
미등록만선택상태=미등록 조합만
급변만선택상태=급변 조합만(미등록만과 동시 체크 시 AND)

결과 컬럼

컬럼의미 · 표시
코스트센터 · 코스트센터명 · 책임자코스트센터 마스터 조인
통계지표 · 지표명 · 지표그룹SKF 마스터 조인
측정유형잔액형(이월) / 합계형(집계)
최근등록값 · 직전등록값조회기간 내 마지막 두 등록월 값(단위 포함)
증감률(최근-직전)/직전×100, 상태에 따라 색상
미등록개월조회기간 내 등록 누락 월수
상태미등록 / 급변 / 정상
상세월별 등록현황 다이얼로그(등록여부·값·증감률·등록일·등록자)

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
KB31N통계지표 전표 입력월별 개별 입력 결과가 빠짐없이 들어왔는지 사후 점검
KB33N통계지표 전표 조회전표 단건 조회를 조합x월 매트릭스로 확장
KP26/KP06활동유형/코스트센터 계획통계지표는 계획이 아닌 실적성 등록값 — 이 화면은 계획·실적 차이가 아니라 등록 완전성을 다룸
KSU5/KSV5(어세스먼트·배분)통계지표를 배부기준으로 사용배부 실행 전 기준값 품질을 통제하는 선행 단계로 연결

도입 시 확인이 필요한 부분

증감률 임계값과 지표별 결측 허용 정책은 조직마다 다릅니다. 잔액형 지표는 값이 거의 고정이라 작은 변화도 의미가 있을 수 있고, 합계형 지표는 계절성이 있어 임계값을 더 넉넉히 둬야 할 수 있습니다. 배부 사이클의 어세스먼트/배분 설정과 함께 검토가 필요합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCSKFCPL'
@EndUserText.label: '코스트센터 통계지표 등록현황 (Z)'
define view Z_C_SKF_COMPLETENESS
  as select from cssk as SkfAssign
    inner join   csks as CostCenter on CostCenter.kostl = SkfAssign.kostl
                                     and CostCenter.bukrs = SkfAssign.bukrs
    left outer join coep as SkfLine on SkfLine.kostl = SkfAssign.kostl
                                     and SkfLine.stagr = SkfAssign.stagr
                                     and SkfLine.gjahr = $parameters.p_gjahr
{
  key SkfAssign.bukrs,
  key SkfAssign.kostl,
  key SkfAssign.stagr,
      CostCenter.verak,
      SkfLine.perio  as Monat,
      SkfLine.mbgbtr as Value,
      SkfLine.cpudt  as Erdat,
      SkfLine.usnam  as Ersnam
      // 미등록개월 · 증감률 · 상태는 애플리케이션 계층(OpenUI5 Main.controller.js)에서
      // 조회기간 파라미터를 받아 파생 계산한다 (CDS 는 원천 라인만 제공)
}

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.f.DynamicPage — 타이틀(KPI) · 조회조건 헤더 · 목록 콘텐츠
조회조건sap.m.Select · sap.m.Input · sap.m.CheckBox — 우측 끝에 조회·초기화
이벤트모든 버튼/필드가 onPAI 단일 진입점, fcCode 로 분기
조합 목록sap.ui.table.Table(13컬럼, 10개 초과) — 상태별 행 강조
상태 표시sap.m.ObjectStatus — 미등록/급변/정상 → Error/Warning/Success
월별 상세행 선택 시 sap.m.Dialog + sap.m.Table 로 등록 이력 펼침

월별 상세를 다이얼로그로 둔 이유

목록은 조합(코스트센터x지표) 단위로 상태를 한눈에 훑는 용도이고, 다이얼로그는 "왜 이 조합이 미등록/급변인지"를 월 단위로 추적하는 용도입니다. 두 관점을 한 화면에 욱여넣지 않고 목록→상세로 분리해 각각의 밀도를 유지했습니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.skf) · ko 로케일
view/Main.view.xml + view/fragments/*타이틀 · 조회조건 · 메시지스트립 · 목록 · 상세 프래그먼트
controller/Main.controller.js조회 · 집계(등록완전성/이상치 판정) · 상세 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
model/formatter.js값·증감률·상태색 포맷터
localdata/skfassign.json코스트센터x지표 배정 25건
localdata/skfpostings.json월별 등록 전표 196건

검증 결과

검증 항목결과
Python 재구현 집계와 UI5 로직 결과 전량 일치(25조합)통과
의도적 결측 3조합 → "미등록" 판정통과
의도적 급변 3조합 → "급변" 판정통과
모든 postings 가 배정 조합·회사코드에 정합고아 레코드 0건
XML · JSON 전체 파싱오류 0건
i18n 키 · 이벤트 핸들러 누락0건
화면 렌더링 — 실브라우저 조회→필터→상세 실동작 후 캡처5/5
테마 런타임 확인sap_horizon

자주 묻는 질문

통계지표(SKF)가 미등록이면 배부 자체가 안 되나요?

배부 사이클(어세스먼트·배분)은 통계지표를 배부기준(Tracing Factor)으로 쓰므로, 해당 코스트센터의 값이 없으면 그 코스트센터는 배부 대상에서 빠지거나 0으로 처리됩니다. 결과적으로 관련 없는 다른 코스트센터가 그 부담을 떠안는 왜곡이 생길 수 있어 결산 전에 반드시 확인해야 합니다.

증감률 임계값 30%는 어떻게 정해지나요?

이 화면은 기준값을 mock 데이터의 meta.json 에 파라미터로 두었습니다. 실제 도입 시에는 지표 성격(잔액형/합계형)이나 부문별로 다른 임계값을 적용할 수 있도록 커스터마이징 테이블이나 사용자 파라미터로 옮기는 것을 권장합니다.

잔액형과 합계형 통계지표는 무엇이 다른가요?

인원수·면적·차량대수처럼 월말 시점 값을 그대로 유지·이월하는 지표가 잔액형이고, 설비가동시간·전력사용량·생산수량처럼 그 달의 실적을 누적해 등록하는 지표가 합계형입니다. 배부 계산과 화면 표시 방식(정수/소수)이 이 구분에 따라 달라집니다.

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

통계지표의 입력과 저장은 표준 KB31N·KB33N 이 수행합니다. 이 화면은 그 결과를 코스트센터 x 지표 매트릭스로 펼쳐 결측과 이상치를 배부 실행 전에 드러내는 조회·검증 확장입니다.

통계지표 결측, 배부 실행 전에 미리 잡아 보세요

배부기준이 빠진 채로 결산에 들어가면 되돌리기 어렵습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

통계지표SKFKB31NKB33N코스트센터배부기준등록완전성OpenUI5