SAP 예산계획 수립 — 부서별로 쓸 돈을 미리 나누기
부서와 비용 항목별로 연간 예산을 배분하고, 총액 한도 안에서 조정하며 저장하는 화면입니다.
예산은 나누는 일입니다. 전사 총액이 정해져 있고 그 안에서 부서와 항목으로 배분합니다.
한 부서를 늘리면 다른 부서를 줄여야 하는데, 총액이 보이지 않으면 조정이 어렵습니다. 배분하면서 잔여 한도가 즉시 보이도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 예산 단위 — 회사코드(
BUKRS)와 부서 · 코스트센터 - 비용 항목 — 예산 배분 대상 항목
- 기간 — 예산 연도와 월
- 금액 — 항목·기간별 예산 금액
- 저장 — 일괄 저장 결과(
SavePlanData)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO) · 예산 수립 |
| Namespace | co027_budgetplan |
| 셸 구조 | 조회조건 영역 + 예산 배분 그리드 + 한도 대비 요약 |
| 화면 수 | 입력 화면 1개 |
| 데이터 | 예산 항목과 저장 결과 등 다중 엔티티 |
| 성격 | 입력형 — 저장 시 예산 테이블에 반영 |
| 주요 동작 | 배분 · 한도 확인 · 일괄 저장 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 1종 둘러보기
회사코드·연도·부서로 예산을 불러오고 → 항목·기간별로 배분하며 → 잔여 한도를 확인하고 저장합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 예산 연도를 고릅니다.
- 부서나 코스트센터를 정합니다. 예산 책임 단위입니다.
- 조회하면 기존 예산이 불러와집니다.
- 비용 항목별 금액을 기간에 맞춰 입력합니다.
- 잔여 한도를 확인하며 조정합니다. 음수가 되면 한도 초과입니다.
- 항목 간 금액을 옮겨 총액을 맞춥니다.
- 저장하면 예산이 확정되고 실적 통제 기준이 됩니다.
배분·검증 규칙
총 한도 안에서 항목과 기간으로 나눕니다.
배분액 = Σ(항목·기간별 예산)
잔여 한도 = 총 한도 − 배분액
잔여 > 0 → 아직 배분할 금액 있음
잔여 = 0 → 한도 정확히 소진
잔여 < 0 → 한도 초과 — 저장 차단 또는 경고
항목 합계 = Σ(기간별 금액)
기간 합계 = Σ(항목별 금액)
저장 검증 필수 항목 · 숫자 형식 · 한도 확인
잔여 한도를 상단에 고정하는 이유
예산 배분은 총액이 정해진 상태에서 나누는 작업입니다. 어느 항목을 늘리면 반드시 다른 항목을 줄여야 합니다. 잔여 한도가 항상 보이면 얼마를 더 쓸 수 있는지 알고 조정하게 되어, 초과한 뒤 되돌리는 일이 줄어듭니다.
예산 수립 4단계
| 단계 | 내용 | 결과 |
|---|---|---|
| ① 총액 결정 | 전사 예산 규모 확정 | 총 한도 |
| ② 부서 배분 | 부서별 한도 배정 | 부서 한도 |
| ③ 항목 배분 | 비용 항목과 기간으로 나눔 | 상세 예산 |
| ④ 확정 | 승인 후 통제 기준 반영 | 집행 통제 |
입력 항목
| 항목 | 필수 | 설명 |
|---|---|---|
회사코드 BUKRS | 필수 | 대상 법인 |
| 예산 연도 | 필수 | 수립 대상 연도 |
| 부서 · 코스트센터 | 필수 | 예산 책임 단위 |
| 비용 항목 | 필수 | 배분 대상 항목 |
| 기간별 금액 | 필수 | 월별 예산 금액 |
| 비고 | 선택 | 산출 근거 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
| 부서 · 코스트센터 | 예산 단위 |
| 예산 연도 | 대상 연도 |
| 비용 항목 | 배분 대상 |
| 월별 금액 | 기간별 예산 |
| 항목 합계 | 연간 항목 예산 |
| 기간 합계 | 월별 전체 예산 |
| 총 한도 | 배분 가능 총액 |
| 배분액 · 잔여 한도 | 한도 대비 상황. 음수면 경고 색 |
| 셀 상태 | 신규 / 수정 / 저장됨 |
| 저장 결과 | 건수와 메시지 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
KP06 | 코스트센터 원가요소 계획 | 항목별 예산 입력 |
KO22 | 내부오더 예산 배정 | 오더 예산 |
CJ30 | 프로젝트 예산 배정 | WBS 예산 |
BPGE · BPJA | 예산 데이터 | 저장 대상 |
CSKS | 코스트센터 마스터 | 예산 단위 |
도입 시 확인이 필요한 부분
예산을 코스트센터에 둘지 내부오더에 둘지 정해야 합니다. 경상 비용은 코스트센터, 프로젝트성 지출은 내부오더나 WBS 가 적합합니다. 또 예산 가용성 검사를 켜야 초과 집행이 실제로 통제됩니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCBUDGETPLAN'
@EndUserText.label: '예산계획 (Z)'
define view Z_C_BUDGET_PLAN
as select from zbudget_plan as Budget
left outer join cskt as CCtrText on Budget.kostl = CCtrText.kostl
and CCtrText.spras = 'K'
{
key Budget.bukrs,
key Budget.gjahr as BudgetYear,
key Budget.kostl as CostCenter,
key Budget.kstar as CostElement,
key Budget.poper as Period,
CCtrText.ktext as CostCenterText,
Budget.amount as BudgetAmount,
Budget.waers,
Budget.changed_by,
Budget.changed_at
// 총 한도는 상위 배정 테이블에서, 잔여 = 한도 − 배분 합계
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 · 한도 요약 · 배분 그리드 |
| 조회조건 | sap.m.Select — 우측 끝에 조회 |
| 한도 요약 | 총 한도 · 배분액 · 잔여를 상단 고정 |
| 배분 그리드 | sap.ui.table.Table — 셀 인라인 편집 |
| 잔여 표시 | sap.m.ObjectNumber — 음수 경고 색 |
| 이벤트 | onPAI 단일 진입점, fcCode 로 분기 |
셀 상태를 남기는 이유
예산 배분은 여러 셀을 오가며 조정합니다. 저장 전에 무엇을 바꿨는지 확인하려면 표시가 필요합니다. 변경된 셀만 훑어보면 의도하지 않은 수정이 있었는지 잡을 수 있습니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — ko 로케일 · sap_horizon |
view/Main.view.xml | 조회조건 · 한도 요약 · 배분 그리드 |
controller/Main.controller.js | 조회 · 인라인 편집 · 한도 계산 · 저장 |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 잔여 한도 색 포맷터 |
localdata/HeadsDraft.json | 예산 데이터 |
localdata/SavePlanData.json | 저장 결과 |
localdata/ZFCMC_F02_C018*.json | 예산 엔티티 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 항목 합계 = 기간별 금액 합계 (전 항목) | 통과 |
| 배분액 = 모든 셀 합계 | 통과 |
| 잔여 한도 = 총 한도 − 배분액 | 통과 |
| 입력 시 한도 요약이 즉시 갱신 | 통과 |
| 필수 항목 미입력 시 저장 차단 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 배분·저장 실동작 후 캡처 | 통과 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
한도를 넘으면 저장이 막히나요?
설정하기 나름입니다. 막으면 통제가 확실하지만 조정 과정이 불편합니다. 경고만 띄우고 승인 단계에서 걸러내는 방식도 씁니다.
사업계획과 예산계획은 무엇이 다른가요?
사업계획은 매출과 손익을 포함한 사업 전망이고, 예산계획은 쓸 돈의 배분입니다. 사업계획의 비용 부분이 예산으로 이어지는 구조가 일반적입니다.
기중에 예산을 바꿀 수 있나요?
증액이나 이관으로 조정합니다. 다만 변경 이력을 남겨야 왜 바뀌었는지 설명할 수 있고, 승인 절차도 함께 두는 것이 안전합니다.
SAP 표준 기능과 어떻게 이어지나요?
예산 데이터는 표준 예산 테이블에 저장되고 가용성 검사가 이를 읽습니다. 이 화면은 배분 과정에서 잔여 한도를 즉시 보여 주는 확장입니다.