SAP 사업계획 수립 — 내년 숫자를 항목별로 채워 넣기
사업 단위별 매출과 비용 계획을 항목·기간별로 입력하고, 합계를 확인하며 저장하는 화면입니다.
사업계획은 숫자를 채우는 일이지만, 채우다 보면 전체가 얼마가 되는지를 계속 봐야 합니다. 한 항목을 올리면 총액이 목표를 넘고, 그러면 다른 항목을 줄여야 합니다.
엑셀로 하면 이 조정이 쉽지만 취합과 반영이 번거롭습니다. 화면에서 입력하면서 합계가 즉시 보이도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 계획 단위 — 회사코드(
BUKRS)와 사업장(BUPLA) - 계획 항목 — 매출·비용 등 항목 구분
- 기간 — 계획 대상 연도와 월
- 금액 — 항목·기간별 계획 금액
- 저장 — 일괄 저장 결과(
SavePlanData)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO) · 경영계획 |
| Namespace | co026_businessplan |
| 셸 구조 | 조회조건 영역 + 계획 입력 그리드 + 합계 요약 |
| 화면 수 | 입력 화면 1개 |
| 데이터 | 계획 항목과 저장 결과 등 다중 엔티티 |
| 성격 | 입력형 — 저장 시 계획 테이블에 반영 |
| 주요 동작 | 입력 · 합계 확인 · 일괄 저장 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 1종 둘러보기
회사코드·연도·사업 단위로 계획을 불러오고 → 항목·기간별로 금액을 채우며 → 합계를 확인하고 일괄 저장합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 계획 연도를 고릅니다.
- 사업 단위를 정합니다. 단위별로 따로 수립합니다.
- 조회하면 기존 계획이 불러와지고, 없으면 빈 그리드가 나옵니다.
- 항목·기간별 금액을 셀에서 직접 입력합니다.
- 입력할 때마다 행 합계와 전체 합계가 갱신됩니다.
- 목표와 맞을 때까지 항목을 조정합니다.
- 일괄 저장으로 한 번에 반영합니다.
- 저장 결과는 건수와 메시지로 확인합니다.
입력·검증 규칙
입력한 값을 모아 두었다가 저장 시 한 번에 반영합니다.
행 합계 = Σ(기간별 금액)
기간 합계 = Σ(항목별 금액)
전체 합계 = Σ(모든 셀)
입력 시 합계가 즉시 갱신
변경된 셀은 표시로 구분
저장 검증
필수 항목 미입력 → 저장 차단
숫자 형식 오류 → 저장 차단
미저장 상태에서 재조회 → 경고 후 진행
합계를 즉시 갱신하는 이유
계획 수립은 숫자를 넣는 일이 아니라 맞추는 일입니다. 총액 목표가 있고 항목을 오가며 조정합니다. 저장해야 합계가 보이면 조정할 때마다 저장하게 되고, 되돌리기도 어려워집니다. 화면에서 즉시 보이면 조정이 자연스럽게 이어집니다.
계획 수립 4단계
| 단계 | 내용 | 결과 |
|---|---|---|
| ① 목표 설정 | 전사 목표 배분 | 단위별 목표 |
| ② 수립 | 항목·기간별 금액 입력 | 계획 초안 |
| ③ 조정 | 합계 맞춰 항목 조정 | 확정 계획 |
| ④ 반영 | 계획 데이터 저장 | 실적 비교 기준 |
입력 항목
| 항목 | 필수 | 설명 |
|---|---|---|
회사코드 BUKRS | 필수 | 대상 법인 |
| 계획 연도 | 필수 | 수립 대상 연도 |
사업 단위 BUPLA | 필수 | 계획 단위 |
| 계획 항목 | 필수 | 매출 · 비용 등 |
| 기간별 금액 | 필수 | 월별 계획 금액 |
| 비고 | 선택 | 산출 근거 등 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
사업 단위 BUPLA | 계획 단위 |
| 계획 연도 | 대상 연도 |
| 계획 항목 | 매출 · 비용 등 |
| 월별 금액 | 기간별 계획 |
| 행 합계 | 항목별 연간 합계 |
| 기간 합계 | 월별 전체 합계 |
| 전체 합계 | 연간 총계 |
| 셀 상태 | 신규 / 수정 / 저장됨 |
| 저장 결과 | 건수와 메시지 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
KP06 · KP26 | 코스트센터 계획 | 유사 목적의 표준 기능 |
7KE1 | 손익센터 계획 | 계획 데이터 저장 |
KEPM | CO-PA 계획 | 수익성 계획 |
| 계획 원장 | 계획 데이터 보관 | 저장 대상 |
T001W | 사업장 마스터 | 계획 단위 |
도입 시 확인이 필요한 부분
계획을 어느 객체에 저장할지 정해야 합니다. 코스트센터·손익센터·CO-PA 중 어디에 넣느냐에 따라 나중에 실적과 비교하는 방식이 달라집니다. 실적을 보는 단위와 계획 단위가 같아야 대비가 성립합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCBUSPLAN'
@EndUserText.label: '사업계획 (Z)'
define view Z_C_BUSINESS_PLAN
as select from zbusiness_plan as Plan
{
key Plan.bukrs,
key Plan.gjahr as PlanYear,
key Plan.bupla as BusinessUnit,
key Plan.item as PlanItem,
key Plan.poper as Period,
Plan.amount as PlanAmount,
Plan.waers,
Plan.remark,
Plan.created_by,
Plan.changed_by,
Plan.changed_at
// 행 합계·기간 합계·전체 합계는 소비 뷰에서 집계
// 실적 비교는 ACDOCA 를 같은 단위로 집계해 조인
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 · 입력 그리드 · 합계 요약 |
| 조회조건 | sap.m.Select — 우측 끝에 조회 |
| 입력 그리드 | sap.ui.table.Table — 셀 인라인 편집 |
| 합계 요약 | 행·기간·전체 합계를 상단에 표시, 즉시 갱신 |
| 셀 상태 | 변경된 셀을 시각적으로 구분 |
| 이벤트 | onPAI 단일 진입점, fcCode 로 분기 |
항목을 행, 기간을 열로 둔 이유
계획은 항목별로 연간 흐름을 보며 세웁니다. 매출이 상반기에 몰리는지 하반기에 몰리는지가 한 줄에서 보여야 합니다. 기간을 행으로 두면 항목마다 12줄이 되어 그 흐름이 끊깁니다.
파일 구성
| 경로 | 역할 |
|---|---|
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_C017*.json | 계획 엔티티 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 행 합계 = 기간별 금액 합계 (전 항목) | 통과 |
| 전체 합계 = 모든 셀 합계 | 통과 |
| 입력 시 합계가 즉시 갱신 | 통과 |
| 필수 항목 미입력 시 저장 차단 | 통과 |
| 변경된 셀이 상태로 구분 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 입력·저장 실동작 후 캡처 | 통과 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
계획을 여러 버전으로 관리할 수 있나요?
버전 개념을 두면 가능합니다. 초안과 확정안을 나누거나 낙관·비관 시나리오를 함께 두는데, 실적 비교는 확정 버전 기준으로 합니다.
월별로 꼭 나눠야 하나요?
연간 총액만 세우면 월별 실적과 비교할 수 없습니다. 계절성을 반영해 나눠 두면 매달 진행 상황을 확인할 수 있습니다.
여러 부서가 동시에 입력하면요?
사업 단위별로 담당을 나누면 충돌이 없습니다. 같은 단위를 여럿이 편집하면 나중에 저장한 쪽이 덮어쓰므로 잠금이 필요합니다.
SAP 표준 기능과 어떻게 이어지나요?
계획 데이터는 표준 계획 원장에 저장됩니다. 이 화면은 입력 과정에서 합계를 즉시 보여 주고 일괄 저장으로 반영하는 확장입니다.