관리회계

변동예산 대비 실적 차이 점검 — 관리회계, 정적 예산에 가려진 초과 지출을 조업도 기준으로 다시 찾는 월마감 화면

정적 예산 · 변동예산 · 실적 · 조업도 차이 · 지출 차이 · 가려진 초과 · 여덟 가지 대사식 — 소개 영상과 실제 화면 6종, 그리고 CDS 코드까지

소개 영상블로그 목차 순서대로 · 자막 포함8개 장면음성 안내 · 자막소개 → 처음 연 화면 → 점검 필요 좁히기 → 차이 분해 → 비용 성격별 → 월별 추이 → 대사 결과 → 정리

도입 포인트 — 이 앱을 사용해야 하는 이유

월마감 시 코스트센터 비용 분석은 정적 예산만으로는 실제 초과 지출 원인을 파악하기 어렵습니다. 이 솔루션은 실제 조업도를 반영한 변동예산으로 실적을 재검토하고, 비용 차이를 조업도 영향과 순수한 지출 초과로 분해하여 정확한 의사결정을 지원합니다.

한 줄 요약 — 이 앱은 SAP 표준 데이터를 기반으로 조업도 변화에 따른 변동예산을 계산해, 정적 예산으로는 파악하기 어려운 가려진 초과 지출을 찾아내는 월마감 점검 화면입니다.

핵심 포인트 일곱 가지

핵심 포인트고객이 얻는 것지금 방식이라면
① 비용 차이의 명확한 원인 파악실제 조업도를 반영한 변동예산을 기준으로 실적을 분석하여, 총 차이를 조업도 차이와 지출 차이로 분할하여 보여줍니다.정적 예산과 실적만 비교하여 조업도 변화에 따른 비용 증감을 오인하기 쉽습니다.
② 가려진 초과 지출 항목 식별조업도가 낮아 정적 예산상으로는 한도 이내로 보이지만, 변동예산 기준으로 실제 초과 지출이 발생한 항목을 정확히 찾아냅니다.비용이 예산을 초과하지 않은 것처럼 보여 불필요한 지출이 파악되지 않고 넘어갈 수 있습니다.
③ 실제 초과 지출 검토 범위 효율화조업도 증가로 인해 변동비가 늘어난 정상 항목을 지출 초과 후보에서 제외하여, 확인이 필요한 핵심 항목에 집중하게 합니다.조업도 변화에 따른 자연스러운 비용 증가까지 모두 초과 지출로 간주하여 불필요한 확인에 시간 낭비가 발생합니다.
④ 고정비 예산 이탈 항목 별도 점검감가상각비 등 고정비가 조업도와 무관하게 5% 이상 예산을 벗어날 경우, 계약 변경 등 근본 원인 확인을 위한 별도 점검 대상으로 분류합니다.고정비 이탈도 일반 변동비와 같은 기준으로 보아 고정비 특성에 맞는 심층적 원인 분석이 어렵습니다.
⑤ 숫자 정합성 8가지 대사식 자동 검증정적/변동 예산 산출, 총차이 분해 등 핵심 업무 로직에 대한 여덟 가지 대사식을 전수 검사하여, 모든 계산 결과의 정합성을 확인합니다.수동 검증이나 보고서별 상이한 수식으로 인해 숫자 간 불일치가 발생하고 데이터 신뢰도에 의문이 생길 수 있습니다.
⑥ SAP 표준 데이터 기반 확장SAP 표준 코스트센터 실적 및 계획 보고 데이터를 활용하여, 기존 시스템과의 정합성을 유지하며 조업도 관점을 추가합니다.SAP 표준 보고서만으로는 조업도 변화를 반영한 변동예산 분석이 어려워 별도 가공 작업과 연계성 확보가 필요합니다.
⑦ 합계 기준 초과 지출 조기 발견개별 비용요소는 한도 이내라도 코스트센터나 비용 성격별 합계 지출 차이율이 3%를 초과하면 점검 필요 대상으로 알려줍니다.개별 항목만 확인하여 합계에서 나타나는 전체적인 비용 쏠림 현상을 놓치고 월마감이 지연될 수 있습니다.

사례로 보는 효과

3월 기계 가공부 전력비는 정적 예산 기준 총차이율이 -6.54%로 한도 이내였지만, 실제 조업도를 반영한 변동예산 기준으로는 지출 차이율이 14.0%이며 지출 차이는 615,624원으로 확인되었습니다. 이처럼 정적 예산에 가려져 있던 6건의 초과 지출 후보를 찾아냅니다.

도입하면 달라지는 것

  • 비용 초과 원인 규명이 명확해집니다.
  • 월마감 전 검토 시간이 단축됩니다.
  • 가려진 지출 문제점을 사전에 발견합니다.
  • 불필요한 보고서 작성 및 검토가 줄어듭니다.

이런 회사에 맞습니다

월마감 시 코스트센터 비용 통제 및 분석에 어려움을 겪는 관리회계, 재무 부서와 CFO에게 적합합니다.

숫자를 믿을 수 있는가 — 검증 결과

점검 도구에서 가장 비싼 질문은 “이 숫자 맞아?”입니다. 그래서 화면을 만들기 전에 대사식 여덟 개를 먼저 세우고 자료 전수에 돌렸습니다.

대사대사식검사 건수차이 건수최대 차이
R01정적 예산 = 고정 예산 + 변동비율 × 계획 조업도28800
R02변동예산 = 고정 예산 + 변동비율 × 실제 조업도28800
R03총차이 = 조업도 차이 + 지출 차이28800
R04정적 예산 + 총차이 = 실적28800
R05비용요소 합계 = 코스트센터 합계(실적)3600
R06코스트센터 합계 = 비용 성격별 합계(변동예산)600
R07비용 성격별 합계 = 월 합계(지출 차이)600
R08월 점검 필요 건수 합계 = 비용요소 점검 필요 행 수100

여덟 대사식 모두 차이 건수 0건입니다(검사 1,201건). 이와 별도로 판정 기준에 걸리는 건을 일부러 넣었습니다. 가려진 초과 6건 · 지출 초과 6건 · 고정비 이탈 3건(비용요소 점검 필요 15건)과 조업도 영향 8건이며, 코스트센터 · 월 합계 4건과 비용 성격 · 월 합계 1건도 합계 기준 3%를 넘습니다. 이 건들은 대사 차이가 아니라 점검 대상이라 차이 건수에 넣지 않았습니다.

실행 화면

아래 화면은 가상의 코스트센터 6곳(프레스 가공부 · 기계 가공부 · 조립부 · 도장부 · 사출부 · 포장·출하부)과 가상의 비용요소 8개로 만든 검증용 샘플 데이터(2026년 1~6월)를 실제로 조회한 모습입니다. 비용요소 · 코스트센터 · 월 288행이고, 실제 고객사 값이 아닙니다.

처음 열었을 때

열면 자동으로 한 번 조회해, 조회조건 아래에 요약 지표와 코스트센터별 집계 표가 한꺼번에 나옵니다.

처음 열었을 때
처음 열었을 때 — 조회조건 · 요약 지표 · 코스트센터별 집계 표가 한 화면에 보입니다.

맨 위 조회조건은 회계연도 · 전기 월 시작/종료 · 코스트센터 · 비용 성격 · 점검 결과 여섯 칸이고 기본값은 2026년 전체입니다. 6개월 합계는 정적 예산 1,708.4 · 변동예산 1,704.6 · 실적 1,719.3(이상 백만 원)입니다. 조업도 차이는 -3.9, 지출 차이는 +14.8, 지출 차이율은 0.87%입니다. 합계로는 작아 보여도 점검 필요 항목이 15건, 그중 가려진 초과가 6건이라는 점이 이 화면이 보여 주려는 것입니다. 표는 코스트센터 · 월마다 조업률과 두 예산, 실적, 차이를 한 줄에 둡니다.

점검 필요 항목만 좁혀 보기

두 번째 탭에서 점검 결과를 점검 필요로 두면 비용요소 단위의 후보 15건만 남습니다.

비용요소 명세 — 점검 필요만
비용요소 명세 — 점검 필요만 — 점검 결과를 점검 필요로 좁혀 비용요소 15건만 봅니다.

행마다 비용 성격(변동 · 준변동 · 고정), 정적 예산 기준 총차이율, 변동예산 기준 지출 차이율, 점검 코드와 점검 내용이 있습니다. 같은 15건이라도 코드가 다릅니다. 가려진 초과(MSK1) 6건은 총차이율이 한도 안인데 지출 차이율만 높고, 지출 초과(SPN1) 6건은 두 값이 모두 높으며, 고정비 이탈(FIX1) 3건은 고정 예산에서 5% 넘게 벗어난 항목입니다. 코드를 보면 먼저 확인할 일이 갈립니다.

행을 눌러 차이를 분해하기

표의 행을 누르면 그 항목의 차이가 어디서 왔는지 한 창에서 읽습니다.

행 클릭 상세 — 차이 분해
행 클릭 상세 — 차이 분해 — 행을 누르면 정적 예산에서 실적까지의 차이 분해와 명세가 한 창에 열립니다.

상세 창은 위에서부터 정적 예산 → 조업도 차이 → 변동예산 → 지출 차이 → 실적 순서로 한 문장에 놓고, 같은 코스트센터 · 월의 비용요소 명세를 아래에 둡니다. 조업도 차이가 큰데 지출 차이가 작으면 일이 적거나 많았다는 뜻이고, 지출 차이가 크면 단가나 사용량을 확인하라는 뜻입니다. 점검 필요 행은 어떤 조건에 걸렸는지 문장으로 같이 나옵니다.

비용 성격별로 모아 보기

세 번째 탭은 비용을 변동비 · 준변동비 · 고정비로 나눠 월별로 합칩니다.

비용 성격별 집계
비용 성격별 집계 — 변동비 · 준변동비 · 고정비를 월별로 나눠 지출 차이율을 봅니다.

성격 · 월 18행이고, 변동비는 조업도 차이가 크게 나타나고 고정비는 조업도 차이가 0입니다. 합계 지출 차이율이 3%를 넘으면 점검 필요(합계)로 표시하는데, 이 자료에서는 3월 변동비(3.85%) 한 건이 해당합니다. 개별 비용요소는 한도 안인데 합쳐서 보면 한 방향으로 쏠려 있는 경우를 잡는 용도입니다.

월별 추이

네 번째 탭은 6개월을 한 줄씩 놓고 조업률이 흔들린 달과 차이가 커진 달을 봅니다.

월별 추이
월별 추이 — 월별 조업률과 정적 예산 · 변동예산 · 실적, 두 가지 차이를 한 표에서 봅니다.

월 조업률은 1월 97.25%, 2월 95.57%, 3월 95.12%, 4월 100.08%, 5월 104.50%, 6월 101.98%입니다. 조업률이 낮았던 2~3월에는 조업도 차이가 -319만 원, -385만 원으로 음수이고, 5월에는 +336만 원입니다. 지출 차이는 1월을 빼면 모두 양수여서 일의 양과 별개로 지출이 변동예산을 웃돌았다는 점이 보입니다. 비용요소 점검 필요 건수가 가장 많은 달은 3월과 6월(각 4건)이며, 월 행을 눌러 그 달의 명세를 열 수 있습니다.

대사 결과

마지막 탭은 숫자를 믿어도 되는지 확인하는 자리입니다.

대사 결과
대사 결과 — 여덟 가지 정합성 식의 검사 건수 · 차이 건수 · 최대 차이를 봅니다.

여덟 대사식마다 검사 건수 · 좌변 · 우변 · 차이 건수 · 최대 차이가 나옵니다. 검사는 모두 1,201건이고 차이는 0건입니다. 차이 건수 칸은 0이면 정상색, 0이 아니면 경고색으로 바뀌며, 그 숫자는 원천을 확인하라는 신호가 됩니다.

화면 뒤에서 일어나는 일

  1. 조회조건을 필터 객체로 바꿔 서비스의 비용요소 · 코스트센터 · 비용 성격 · 월 집계 엔티티를 각각 조회합니다.
  2. 서비스가 비용요소마다 정적 예산(고정 예산 + 변동비율 × 계획 조업도)과 변동예산(같은 식에 실제 조업도)을 계산해 내려줍니다.
  3. 총차이를 조업도 차이와 지출 차이로 가르고, 지출 차이율과 총차이율로 점검 코드를 정합니다.
  4. 코스트센터 · 비용 성격 · 월 집계는 비용요소 금액을 더한 뒤 차이율을 합계 금액으로 다시 계산합니다.
  5. 화면은 받은 값을 표에 놓고, 대사 탭은 같은 식으로 다시 검산한 결과를 보여 줍니다.

판정 규칙과 사용자 조치

한 비용요소 행은 정적 예산 기준 총차이율과 변동예산 기준 지출 차이율을 모두 갖고, 두 값의 조합으로 상태가 정해집니다. 금액 하한은 30만 원이며 이보다 작은 차이는 비율이 커도 올리지 않습니다.

판정 조건결과 상태사용자 조치
변동비 · 준변동비, 지출 차이율 10% 초과, 지출 차이 30만 원 이상, 정적 기준 총차이율 10% 이하점검 필요 — 가려진 초과(MSK1)조업도가 낮아 정적 예산으로는 한도 이내로 보인 항목입니다. 변동예산 기준 지출 원인을 확인합니다.
같은 조건에서 정적 기준 총차이율 10% 초과점검 필요 — 지출 초과(SPN1)조업도와 관계없이 변동예산을 넘은 항목입니다. 단가 · 사용량 원인을 확인합니다.
고정비, 지출 차이율 5% 초과, 지출 차이 30만 원 이상점검 필요 — 고정비 이탈(FIX1)고정 예산이 바뀌었는지, 계약 · 상각 변경이 반영됐는지 확인합니다.
정적 기준 총차이율 10% 초과이나 변동예산 기준 지출은 한도 이내정상 — 조업도 영향(VOL1)차이가 조업도 변동으로 설명됩니다. 별도 조치 없이 조업도 계획만 확인합니다.
코스트센터 · 비용 성격 · 월 합계의 지출 차이율 3% 초과점검 필요(합계)합계에 기여한 비용요소 명세로 내려가 확인합니다.

원인은 단정하지 않습니다. 화면은 분류 · 집계 · 대사를 돕는 점검 도구이며, 점검 필요는 확인할 후보를 알려 주는 표시일 뿐 잘못이라는 뜻이 아닙니다.

산출식

정적 예산   = 고정 예산 + 변동비율 × 계획 조업도
변동예산   = 고정 예산 + 변동비율 × 실제 조업도   (고정비는 변동비율 0 이므로 두 예산이 같다)
총차이     = 실적 − 정적 예산 = 조업도 차이 + 지출 차이
조업도 차이 = 변동예산 − 정적 예산
지출 차이   = 실적 − 변동예산
지출 차이율 = 지출 차이 ÷ 변동예산 × 100
총차이율   = 총차이 ÷ 정적 예산 × 100
조업률     = 실제 조업도 ÷ 계획 조업도 × 100

조회조건

조건필수기본값서비스로 보내는 방식
회계연도필수2026Gjahr eq '2026' (모든 탭)
전기 월 시작 · 종료선택전체둘 다 있으면 범위 하나로, 하나만 있으면 이상 또는 이하 조건으로 보냅니다
코스트센터선택전체CostCtr eq … (코스트센터별 · 비용요소 명세 탭)
비용 성격선택전체CostType eq 'V' · 'M' · 'F' (비용요소 명세 · 비용 성격별 탭)
점검 결과선택전체CheckStatus eq 'OK' · 'CHECK'

결과 컬럼

컬럼의미산출식
정적 예산계획 조업도로 짠 예산고정 예산 + 변동비율 × 계획 조업도
변동예산실제 조업도로 다시 구한 예산고정 예산 + 변동비율 × 실제 조업도
실적그 월에 실제로 쓴 금액원천 전표 합계
조업도 차이일의 양이 달라서 생긴 차이변동예산 − 정적 예산
지출 차이같은 일의 양에서 더 쓰거나 덜 쓴 차이(양수는 초과)실적 − 변동예산
지출 차이율변동예산 대비 지출 차이의 비율지출 차이 ÷ 변동예산 × 100
점검 코드MSK1 · SPN1 · FIX1 · VOL1 · 정상판정 규칙 표 참고

좁은 화면에서 달라지는 것

표는 가로로 스크롤되고, 조회조건은 줄바꿈되어 배치됩니다. 데스크톱 화면을 기준으로 설계했으며 태블릿에서도 사용할 수 있습니다. 한 줄에 놓이던 요약 지표는 폭에 맞춰 여러 줄로 나뉩니다.

파일 구성

화면 선언 · 컴포넌트   manifest.json · Component.js · index.html
뷰                    Main.view.xml · DetailDialog.fragment.xml
컨트롤러              Main.controller.js · BaseController.js
모델 보조             formatter.js · ErrorHandler.js
OData 서비스          metadata.xml · service.js · json 파일(엔티티셋별)
문구                  i18n_ko.properties
소개 영상             intro.mp4 · intro_poster.jpg

SAP 표준 기능 확장 포인트 — 표준 T-code 와 어떻게 연계되는지

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다. 이 절은 표준 화면으로 충분한 일과 이 화면이 더하는 관점을 나란히 놓고, 두 화면의 숫자를 어디서 맞추는지 적습니다.

표준으로 되는 것과 안 되는 것

하고 싶은 일SAP 표준표준에서 걸리는 자리이 화면이 더하는 것
코스트센터 실적 라인아이템 확인KSB1전표 단위 조회가 본업이라 조업도를 반영한 비교는 따로 만듭니다비용요소 · 월 실적을 변동예산과 나란히 둡니다
실적 / 계획 / 차이 확인S_ALR_87013611정적 계획 기준의 차이입니다조업도를 반영한 변동예산 기준 차이를 더합니다
총차이를 조업도 차이와 지출 차이로 가르기없음표준 보고서에서 한 표로 보기 어려워 보통 엑셀로 만듭니다정적 예산 → 조업도 차이 → 변동예산 → 지출 차이 → 실적을 한 문장으로 보여 줍니다
정적 예산에 가려진 초과 찾기없음조업도가 낮은 달의 초과를 따로 골라 주는 화면이 없습니다가려진 초과 항목을 점검 코드로 따로 셉니다

T-code 별 연계 지점

T-code이름연계
KSB1코스트센터: 실적 라인아이템이 화면의 실적은 같은 전표 합계에서 나옵니다. 코스트센터 · 비용요소 · 기간으로 좁혀 합계를 맞춰 보고, 이 화면의 행에서 KSB1 로 내려가 원천 전표를 확인합니다. 법정 · 감사 대응은 표준 화면에 남겨 둡니다.
S_ALR_87013611코스트센터: 실적/계획/차이표준 보고의 정적 계획 대비 차이와 이 화면의 총차이는 같은 관점이어야 합니다. 두 화면의 총차이를 월 단위로 맞추고, 표준에서 보이지 않던 조업도 차이를 이 화면에서 다시 봅니다.

운영으로 옮길 때 기존 표준 보고서를 없앨 필요는 없습니다. 표준은 계획 · 실적의 기록과 감사 대응 근거로 그대로 두고, 이 화면은 월마감 전에 확인할 항목을 먼저 골라내는 용도로 함께 씁니다.

S/4HANA 분석 스택과의 자리

S/4HANA 의 분석 쿼리나 Fiori 분석 앱으로도 코스트센터 비용 보고를 만들 수 있습니다. 다만 변동예산은 계획의 고정 · 변동 분리값과 실제 조업도를 함께 읽어야 하므로, 이 화면은 그 계산을 서비스 한 곳에 모으고 판정까지 함께 내려주는 쪽으로 만들었습니다. 표준 분석 쿼리의 계획 · 조업도 쪽 구성은 고객 환경에 따라 달라서 확인 필요로 남깁니다.

확장 포인트 — 운영에서 실제로 손대는 자리

자리무엇을 손대나비고
계획의 고정 · 변동 분리비용요소마다 고정 예산과 변동비율을 어디서 읽을지 정합니다계획 설계에 따라 다르며 확인 필요
조업도 기준계획 · 실제 조업도를 어떤 활동량으로 볼지 정합니다활동 수량 집계 원천 확인 필요
판정 기준 값지출 차이율 10% · 고정비 5% · 합계 3% · 금액 하한 30만 원기준표에서 바꾸며 화면 코드는 고치지 않습니다
비용 성격 분류변동 · 준변동 · 고정 구분을 비용요소에 어떻게 붙일지 정합니다분류 매핑 테이블
권한회사코드 · 코스트센터 단위 조회 권한집계 단계에서 거는 것을 권장

분석 지표 정의표

지표산식 · 판정 기준대응 기능원천 데이터비고
정적 예산고정 예산 + 변동비율 × 계획 조업도요약 · 모든 탭코스트센터 계획(고정 · 변동 분리) · 계획 조업도계획 버전 확인 필요
변동예산고정 예산 + 변동비율 × 실제 조업도요약 · 모든 탭위 값과 실제 조업도고정비는 정적 예산과 같음
조업도 차이변동예산 − 정적 예산요약 · 상세 차이 분해산출값조업도 변동으로 설명되는 몫
지출 차이실적 − 변동예산요약 · 판정코스트센터 실적양수는 초과 지출
지출 차이율지출 차이 ÷ 변동예산 × 100판정 기준산출값비용요소 10%(고정비 5%), 합계 3%
가려진 초과지출 차이율 10% 초과이고 정적 기준 총차이율 10% 이하요약 · 점검 코드산출값정적 예산만 보면 놓치는 항목
조업률실제 조업도 ÷ 계획 조업도 × 100코스트센터 · 월 탭계획 · 실제 조업도-

CDS 구성

아래는 이 화면이 읽는 데이터를 S/4HANA 에서 어떻게 구성할지 보여 주는 설계 스케치입니다. 표준 CDS 뷰 이름은 확인한 것만 적었고, 계획 · 조업도 쪽 표준 뷰는 확인 필요로 남기고 원천 테이블 기준으로 썼습니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준ZFLX_NATURE비용요소를 변동 · 준변동 · 고정으로 분류하는 매핑 테이블분류가 바뀌어도 코드를 고치지 않고 기준만 바꾸려고
차원ZI_FlexBudCostCtr코스트센터 이름과 계층이름 변경을 한 곳에서 반영하려고
실적ZI_FlexBudActual전표 라인을 코스트센터 · 비용요소 · 기간으로 합산실적의 원천을 한 곳에 두려고
계획ZI_FlexBudPlan고정 예산 · 변동비율 · 계획 · 실제 조업도계획 설계가 달라도 이 뷰만 바꾸려고
큐브ZI_FlexBudCube정적 예산 · 변동예산 · 차이 계산계산을 한 곳에서 해 화면과 CSV 숫자를 맞추려고
쿼리ZC_FlexBudQuery화면이 읽는 소비 뷰와 필터조회조건과 정렬을 서비스에 선언하려고
권한ZC_FlexBudQuery 의 접근 제어코스트센터 단위 조회 권한보이면 안 되는 센터를 집계 단계에서 막으려고
서비스ZUI_FlexBudOData 서비스 정의와 바인딩화면 선언 파일에는 서비스 주소만 남기려고

① 비용 성격 매핑 테이블

어떤 비용요소를 변동비로 볼지는 회사마다 다르고 해마다 바뀝니다. 이 분류를 코드에 박으면 바뀔 때마다 개발 요청이 생기므로 테이블로 뺍니다.

@EndUserText.label : 'Flexible budget - cost nature mapping'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
define table zflx_nature {
  key client    : abap.clnt not null;
  key chartacct : abap.char(4) not null;
  key costelem  : abap.char(10) not null;
  nature        : abap.char(1);   " V 변동 / M 준변동 / F 고정
}

② 코스트센터 차원 뷰

코스트센터 이름이 바뀌어도 한 곳만 고치면 되도록 차원을 따로 둡니다.

@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label: 'Cost center dimension'
@Analytics.dataCategory: #DIMENSION
define view entity ZI_FlexBudCostCtr
  as select from I_CostCenter
{
  key ControllingArea,
  key CostCenter,
      _Text[1: Language = $session.system_language].CostCenterName as CostCenterName
}

③ 실적 뷰

전표 라인을 코스트센터 · 비용요소 · 기간으로 합산합니다. 실적이 어디서 나오는지 한 곳에서 보이게 하는 자리입니다.

@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label: 'Flexible budget actual'
define view entity ZI_FlexBudActual
  as select from I_JournalEntryItem as je
{
  key je.CostCenter                         as CostCtr,
  key je.GLAccount                          as CostElem,
  key je.FiscalYear                         as Gjahr,
  key je.FiscalPeriod                       as Period,
      @Semantics.amount.currencyCode: 'Currency'
      sum(je.AmountInCompanyCodeCurrency)   as ActualCost,
      je.CompanyCodeCurrency                as Currency
}
where je.Ledger = '0L'
  and je.CostCenter <> ''
group by je.CostCenter, je.GLAccount, je.FiscalYear, je.FiscalPeriod, je.CompanyCodeCurrency

④ 계획 · 조업도 뷰

고정 예산, 변동비율, 계획 조업도, 실제 조업도를 한 행에 모읍니다. 계획 설계가 고객마다 달라 원천 테이블 이름은 확인 필요로 남기고, 아래는 별도 계획 테이블을 두는 경우의 예입니다.

@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label: 'Flexible budget plan and activity'
define view entity ZI_FlexBudPlan
  as select from zflx_plan
{
  key costctr   as CostCtr,
  key costelem  as CostElem,
  key gjahr     as Gjahr,
  key period    as Period,
      fixedbud  as FixedBud,     " 고정 예산
      varrate   as VarRate,      " 조업도 1단위당 변동비율
      planact   as PlanAct,      " 계획 조업도
      actact    as ActAct        " 실제 조업도 (활동 수량 집계에서 적재, 원천 확인 필요)
}

⑤ 큐브 — 예산과 차이를 계산하는 자리

정적 예산, 변동예산, 조업도 차이, 지출 차이를 이 뷰에서만 계산합니다. 화면과 CSV 숫자가 어긋나지 않는 이유가 이것입니다.

@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label: 'Flexible budget cube'
@Analytics.dataCategory: #CUBE
define view entity ZI_FlexBudCube
  as select from ZI_FlexBudPlan as p
    left outer join ZI_FlexBudActual as a
      on  a.CostCtr = p.CostCtr and a.CostElem = p.CostElem
      and a.Gjahr   = p.Gjahr   and a.Period   = p.Period
{
  key p.CostCtr, key p.CostElem, key p.Gjahr, key p.Period,
      cast( p.FixedBud + p.VarRate * p.PlanAct as abap.curr(15,0) ) as StaticBud,
      cast( p.FixedBud + p.VarRate * p.ActAct  as abap.curr(15,0) ) as FlexBud,
      cast( coalesce( a.ActualCost, 0 ) as abap.curr(15,0) )        as ActualCost,
      cast( ( p.VarRate * p.ActAct ) - ( p.VarRate * p.PlanAct )
                                       as abap.curr(15,0) )        as VolVar,
      cast( coalesce( a.ActualCost, 0 ) - ( p.FixedBud + p.VarRate * p.ActAct )
                                       as abap.curr(15,0) )        as SpendVar
}

⑥ 소비 뷰 · 쿼리

화면이 읽는 뷰입니다. 점검 코드를 여기서 정해 서비스가 내려주고, 화면은 보여 주기만 합니다.

@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Flexible budget query'
@Analytics.query: true
define view entity ZC_FlexBudQuery
  as select from ZI_FlexBudCube
{
  @AnalyticsDetails.query.axis: #ROWS
  key CostCtr,
  key CostElem,
  @Consumption.filter: { selectionType: #SINGLE, mandatory: true }
  key Gjahr,
  @Consumption.filter.selectionType: #INTERVAL
  key Period,
      StaticBud, FlexBud, ActualCost, VolVar, SpendVar,
      case
        when FlexBud <> 0 and abs( SpendVar ) > 300000
         and SpendVar * 100 > FlexBud * 10 then 'CHECK'
        else 'OK'
      end as CheckStatus
}

⑦ 접근 제어(DCL)

다른 코스트센터의 비용이 보이지 않도록 집계 단계에서 막습니다. 권한 오브젝트와 값은 회사 권한 설계에 맞춰 정합니다.

@EndUserText.label: 'Flexible budget access'
@MappingRole: true
define role ZC_FlexBudQuery {
  grant select on ZC_FlexBudQuery
    where ( CostCtr ) = aspect pfcg_auth( K_CCA, KSTAR, ACTVT = '03' );
}

⑧ 서비스 정의

엔티티셋 이름은 화면이 읽는 것과 같게 노출합니다. 게시는 서비스 바인딩에서 하고, 화면의 선언 파일은 서비스 주소만 바꿉니다.

@EndUserText.label: 'Flexible budget service'
define service ZUI_FlexBud {
  expose ZC_FlexBudQuery as LineSet;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다.

해야 할 일무엇을 정하나정하지 않으면누가
비용 성격 매핑비용요소를 변동 · 준변동 · 고정으로 나눕니다고정비를 변동비로 보아 조업도 차이가 왜곡됩니다원가회계 담당
계획의 고정 · 변동 분리비용요소마다 고정 예산과 변동비율을 어디서 읽을지 정합니다변동예산을 만들 수 없습니다원가회계 · 계획 담당
조업도 정의계획 · 실제 조업도를 어떤 활동량으로 볼지 정합니다조업률이 부서마다 다르게 읽힙니다생산 · 원가 공동
판정 기준 값10% · 5% · 3% · 30만 원을 회사 기준으로 바꿉니다점검 필요 건수가 많거나 적게 나옵니다원가회계 담당
부호 규칙비용을 양수로 볼지, 초과를 양수로 볼지 정합니다차이의 방향이 보고서마다 달라집니다원가회계 담당
권한 설계코스트센터 단위 조회 범위를 정합니다다른 부서의 비용이 보입니다보안 담당
대사 체계KSB1 · S_ALR_87013611 과 맞출 항목과 주기를 정합니다숫자가 어긋나도 알아채기 어렵습니다원가회계 담당
전송 순서기준 테이블 → 뷰 → 서비스 순서로 전송합니다서비스 활성화 때 뷰가 없어 오류가 납니다개발 · 운영 담당
서비스 활성화서비스 바인딩을 게시하고 화면 선언 파일의 서비스 주소를 교체합니다화면이 계속 샘플 서비스를 바라봅니다개발 담당

운영 데이터로 갈 때

전표가 많은 회사에서는 실적 뷰의 합산을 데이터베이스에서 끝내고 화면에는 합산된 행만 내려줍니다. 회계연도를 필수로 받고 기간 범위를 조회조건으로 쓰며, 코스트센터와 비용요소에 필요한 인덱스를 확인합니다. 화면은 한 번에 받는 행 수를 제한하고 필요한 만큼만 조회하도록 만들었습니다. 응답 시간 기준은 회사가 정하며, 일반화해서 말하기는 어렵습니다(확인 필요).

자주 묻는 질문

숫자와 산식, 화면과 조작, 점검 기능, 도입과 운영 순서로 27개를 묶었습니다.

숫자와 산식

정적 예산과 변동예산은 무엇이 다른가요?

정적 예산은 계획 조업도로, 변동예산은 실제 조업도로 같은 식(고정 예산 + 변동비율 × 조업도)을 계산한 금액입니다. 조업도가 계획과 같으면 두 금액이 같고, 달라지면 갈라집니다. 그 차이가 조업도 차이이며, 일의 양 때문에 생긴 차이라서 비용 통제의 잘잘못과는 구분해서 봅니다.

가려진 초과는 무엇을 뜻하나요?

정적 예산 기준으로는 한도 이내이지만 실제 조업도를 반영한 변동예산 기준으로는 한도를 넘은 항목입니다. 조업도가 낮은 달에 정적 예산이 넉넉해 보여 지나치기 쉬운 항목을 따로 셉니다. 이 자료에서는 6개월 동안 6건입니다.

총차이는 어떻게 두 가지로 나뉘나요?

총차이는 실적에서 정적 예산을 뺀 값이며, 변동예산에서 정적 예산을 뺀 조업도 차이와 실적에서 변동예산을 뺀 지출 차이의 합입니다. 이 관계는 대사식 R03 이 모든 행에서 검산합니다. 이 자료의 6개월 합계는 총차이 +10.9, 조업도 차이 -3.9, 지출 차이 +14.8(백만 원)입니다.

고정비는 왜 두 예산이 같나요?

고정비는 변동비율이 0 이어서 조업도가 달라져도 예산이 변하지 않습니다. 그래서 고정비의 차이는 모두 지출 차이이고 조업도로 설명할 수 없습니다. 기준을 5%로 낮추어 따로 보는 이유입니다.

금액 하한 30만 원은 왜 두나요?

작은 항목은 몇 천 원 차이도 비율로는 크게 나옵니다. 비율만으로 올리면 확인할 가치가 없는 건이 늘어나므로 지출 차이가 30만 원 이상일 때만 점검 필요로 올립니다. 이 값은 회사가 정하는 기준이며 이 화면이 대신 정해 주지 않습니다.

합계 기준 3%는 어디에 쓰나요?

코스트센터 · 비용 성격 · 월 합계의 지출 차이율이 3%를 넘으면 점검 필요(합계)로 표시합니다. 개별 비용요소는 한도 안인데 합쳐 보면 한 방향으로 쏠린 경우를 잡습니다. 이 자료에서는 코스트센터 · 월 4건과 3월 변동비 1건이 해당합니다.

화면과 조작

조회조건은 무엇이 있나요?

회계연도(필수), 전기 월 시작 · 종료, 코스트센터, 비용 성격, 점검 결과입니다. 선택 항목을 전체로 두면 해당 조건을 서비스에 보내지 않고 모든 값을 조회합니다. 조회 버튼은 조회조건 오른쪽 끝에 있고, 입력 칸에서 Enter 키를 눌러도 조회됩니다.

행을 누르면 무엇이 열리나요?

그 행의 차이 분해 문장과 같은 코스트센터 · 월(또는 같은 성격 · 월)의 비용요소 명세가 상세 창에 열립니다. 점검 필요 행은 어떤 조건에 걸렸는지도 문장으로 같이 나옵니다.

CSV 로 내려받을 수 있나요?

네. 현재 열려 있는 탭의 조회 결과를 UTF-8 CSV 로 내려받습니다. 엑셀에서 한글이 깨지지 않도록 처리되어 있고, 파일 이름은 기능명과 탭 이름으로 붙습니다.

서비스에 연결되지 않으면 어떻게 되나요?

빈 화면이나 콘솔 오류로 두지 않고, 서비스 정의를 불러오지 못했는지, 요청이 실패했는지를 구분해 안내 창을 띄웁니다. 조회는 성공했지만 결과가 없으면 조건에 맞는 항목이 없다는 안내가 나옵니다.

좁은 화면에서도 쓸 수 있나요?

표는 가로로 스크롤되고 조회조건은 줄바꿈되어 배치됩니다. 데스크톱 화면을 기준으로 설계했으며 태블릿에서도 사용할 수 있습니다.

샘플 화면의 숫자는 실제 회사 값인가요?

아닙니다. 가상의 코스트센터와 가상의 단가로 만든 검증용 샘플 데이터이며 실제 고객사의 값이 아닙니다. 산식이 의도대로 맞는지 보여 주기 위한 용도입니다.

점검 기능

점검 필요는 어떤 기준으로 표시되나요?

변동비 · 준변동비는 지출 차이율 10% 초과이고 지출 차이가 30만 원 이상일 때, 고정비는 5% 초과일 때 점검 필요입니다. 정적 기준 총차이율이 10% 이하이면 가려진 초과, 초과이면 지출 초과로 나눕니다.

점검 필요가 나오면 곧바로 문제가 있다는 뜻인가요?

아닙니다. 확인해 볼 만한 후보를 골라낸 것입니다. 단가 개정이나 일회성 수선처럼 정당한 사유가 있을 수 있고, 원인과 최종 판단은 회사가 합니다.

조업도 영향으로 분류된 항목은 왜 따로 두나요?

정적 예산 기준으로는 초과처럼 보이지만 변동예산 기준으로는 한도 이내인 항목입니다. 일이 많아서 따라 늘어난 비용이므로 초과 후보에서 빼 주고, 조업도 계획만 확인하면 됩니다. 이 자료에서는 8건입니다.

대사 결과 탭은 무엇을 보여 주나요?

여덟 가지 정합성 식의 검사 건수, 차이 건수, 최대 차이를 보여 줍니다. 차이 건수가 0 이어야 두 예산과 차이 계산이 서로 맞는 것입니다. 0 이 아니면 해당 행의 대사식을 보고 어느 단계에서 어긋나는지 따라가면 됩니다.

월별 추이는 어떻게 읽나요?

월마다 조업률과 정적 예산, 변동예산, 실적, 조업도 차이, 지출 차이를 나란히 둡니다. 조업률이 크게 흔들린 달은 조업도 차이가 크고, 지출 차이가 계속 양수이면 일의 양과 별개로 지출이 변동예산을 웃돈다는 뜻입니다.

비용 성격별 집계는 언제 보나요?

개별 비용요소는 한도 안인데 합쳐 보면 한 방향으로 쏠린 경우를 볼 때 씁니다. 변동비 · 준변동비 · 고정비로 나누면 어느 성격에서 차이가 나는지 바로 보입니다.

도입과 운영

SAP 표준 화면과 무엇이 다른가요?

표준 화면은 코스트센터 라인아이템과 실적/계획/차이를 각각 보여 줍니다. 이 화면은 같은 데이터를 조업도 기준으로 다시 계산해 정적 예산, 변동예산, 두 가지 차이와 점검 판정, 대사 결과를 한 곳에 모아 조회 · 점검 관점을 더합니다. 표준 실행은 SAP 표준 T-code 가 담당합니다.

기존 표준 보고서를 없애야 하나요?

아닙니다. 표준 보고서는 감사와 법정 대응의 근거로 남겨 두고, 이 화면은 월마감 전에 확인할 항목을 먼저 골라내는 용도로 씁니다. 두 화면의 숫자를 맞춰 보는 대사 지점은 코스트센터 실적 라인아이템과 정적 계획 대비 차이입니다.

운영 데이터로 연결하려면 무엇이 필요한가요?

비용 성격 매핑, 계획의 고정 · 변동 분리 원천, 조업도 원천, 권한 설계, 서비스 게시가 필요합니다. 화면의 선언 파일에 있는 서비스 주소만 운영 서비스로 바꾸면 화면 코드는 그대로 쓸 수 있습니다. 소요 기간은 계획과 조업도 원천이 얼마나 정리되어 있는지에 크게 좌우되며, 일반화해서 말하기는 어렵습니다(확인 필요).

계획에 고정비와 변동비 구분이 없으면 쓸 수 없나요?

변동예산은 고정 예산과 변동비율이 있어야 만들 수 있습니다. 구분이 없다면 먼저 비용요소별로 고정 · 변동을 나누는 합의가 필요합니다. 그 합의가 이 화면 도입에서 가장 큰 일이 되는 경우가 많습니다.

권한은 어떻게 나누나요?

코스트센터 단위로 조회 권한을 나누는 것을 기본으로 합니다. 다른 부서의 비용이 함께 보이면 안 되므로 집계 단계에서 접근 제어를 걸어 두는 것을 권장합니다. 권한 오브젝트와 값은 회사 권한 설계에 맞춰 정합니다.

대용량 데이터에서도 빠른가요?

운영 데이터에서는 전표가 많을 수 있어, 화면이 전체를 받아 계산하지 않고 조회조건을 서비스에 보내 필요한 만큼만 받도록 만들었습니다. 회계연도를 필수로 받고 합산은 데이터베이스에서 끝내는 것이 좋습니다. 실제 응답 시간은 환경에 따라 달라서 일반화해서 말하기는 어렵습니다.

비용요소나 코스트센터 체계가 바뀌면 어떻게 하나요?

비용 성격은 매핑 테이블에서, 코스트센터 이름은 차원 뷰에서 읽으므로 코드를 고치지 않고 기준만 바꾸면 됩니다. 새 비용요소는 매핑에 한 줄을 추가하면 같은 판정 규칙을 그대로 적용합니다.

이 화면의 결과를 감사 자료로 써도 되나요?

이 화면은 점검 도구이며 최종 판단은 회사와 감사인이 합니다. 점검 필요는 확인할 후보를 알려 주는 것이지 처리 방법을 정해 주는 것이 아닙니다. 감사 대응은 표준 보고서와 원장을 근거로 하시기 바랍니다.

적용 시기나 대상 범위에 정해진 것이 있나요?

이 화면은 특정 기준서 요구사항을 점검하는 것이 아니라 관리회계 영역의 내부 관리 점검 도구이므로 정해진 적용 시기는 없습니다. 도입 범위는 회사가 정합니다.