SAP 감가상각 예상표 시뮬레이션 — 내용연수를 바꾸면 얼마가 달라지나
내용연수 연장이나 상각키 변경 같은 가정을 넣어 앞으로의 감가상각비와 잔존 장부가액 추이를 미리 계산해 보는 화면입니다.
내용연수를 5년에서 8년으로 늘리면 당장의 비용은 줄고 이후 기간의 비용은 늘어납니다. 문제는 그 금액이 얼마인지를 결정 전에 알아야 한다는 것입니다.
실제 마스터를 바꿔 보고 되돌리는 방식은 위험합니다. 표준 상각 계획 구조를 그대로 이어받아 가정만 바꿔 계산해 보도록, 데이터를 건드리지 않는 시뮬레이션으로 OpenUI5 화면을 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 상각 방법 — 상각키(
AfaKeyPlanned)와 방법(AfaMethod) - 내용연수 — 개월 단위 내용연수(
UsefulLifeMonthsPlanned) - 잔여 기간 — 연초 잔여 개월(
RemainMonthsAtYearStart) - 자산 가액 — 취득가액(
AcqVal)과 연초 상각누계 · 비망가액(MemoValue) - 귀속 — 자산클래스(
Anlkl)와 코스트센터(Kostl)
| 항목 | 내용 |
|---|---|
| 참조 T-code | AFAR · S_ALR_87012936 |
| 업무 영역 | 재무회계(FI-AA) · 예산 · 계획 |
| Namespace | zui5.deprsim |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 시나리오 입력 + 상각 추이 |
| 화면 수 | 조회 화면 1개 + 자산별 추이 |
| 데이터 | 자산 마스터 25건 · 상각 계획 300건 |
| 성격 | 시뮬레이션형 — 실제 마스터와 전기는 변경하지 않음 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·자산클래스·코스트센터로 조회하면 현재 상각 계획이 나옵니다 → 내용연수나 상각키 가정을 바꾸고 → 연도별 상각비와 잔존 장부가액이 어떻게 달라지는지 비교합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 자산클래스·코스트센터로 대상 자산을 고릅니다.
- 조회하면 현재 상각 계획이 나옵니다. 상각키와 내용연수를 확인합니다.
- 시나리오를 입력합니다. 내용연수 연장 개월이나 변경할 상각키를 지정합니다.
- 현재 계획과 시나리오 결과가 나란히 계산돼 차이가 표시됩니다.
- 행을 선택하면 연도별 상각비와 잔존 장부가액 추이가 열립니다.
- 결과는 CSV 다운로드로 내려받아 예산 검토 자료로 씁니다.
시뮬레이션 산식
정액법 기준으로 잔여 가액을 잔여 기간에 나누는 계산입니다.
상각 대상액 = 취득가액 − 상각누계 − 비망가액(MemoValue)
월 상각비 = 상각 대상액 ÷ 잔여 내용연수 개월
연 상각비 = 월 상각비 × 12 (또는 남은 개월)
시나리오 적용
내용연수 연장 → 잔여 개월 증가 → 월 상각비 감소
상각키 변경 → 상각 방법 변경 → 기간별 배분 곡선이 달라짐
잔존 장부가액 = 직전 장부가액 − 해당 연도 상각비
비망가액을 빼고 계산하는 이유
상각이 끝나도 자산을 계속 쓰면 장부에 1원 또는 일정 금액을 남겨 둡니다. 이 비망가액까지 상각 대상에 넣으면 마지막 해에 금액이 어긋납니다. 대상액에서 먼저 빼고 계산해야 실제 상각 결과와 맞습니다.
자주 쓰는 시나리오 네 가지
| 시나리오 | 예 | 손익 영향 |
|---|---|---|
| 내용연수 연장 | 5년 → 8년 | 당기 비용 감소 · 이후 기간 증가 |
| 내용연수 단축 | 10년 → 6년 | 당기 비용 증가 · 조기 상각 완료 |
| 상각키 변경 | 정액법 → 정률법 | 초기 비용 증가 · 후기 감소 |
| 신규 취득 반영 | 예정 투자 추가 | 내년 이후 상각비 증가 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 회사코드 |
자산클래스 Anlkl | 선택 | 기계장치 · 건물 등 |
코스트센터 Kostl | 선택 | 귀속 부서 |
상각키 AfaKeyPlanned | 선택 | 현재 적용 중인 상각키 |
| 시나리오 — 내용연수 | 입력 | 연장·단축 개월 |
| 시나리오 — 상각키 | 입력 | 변경할 상각키 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
자산번호 Anln1 · 자산명 Txt50 | 자산 식별 |
자산클래스 Anlkl · AnlklText | 클래스와 명칭 |
코스트센터 Kostl · KostlText | 귀속 부서 |
취득일 AktivDate · 취득가액 AcqVal | 자산 기본 정보 |
상각키 AfaKeyPlanned · AfaKeyPlannedText | 현재 상각 방법 |
내용연수 UsefulLifeMonthsPlanned | 개월 단위 |
잔여 개월 RemainMonthsAtYearStart | 연초 기준 남은 기간 |
비망가액 MemoValue | 상각 후 남기는 금액 |
| 현재 계획 상각비 | 시나리오 적용 전 |
| 시나리오 상각비 | 가정 적용 후 |
| 차이 | 시나리오 − 현재. 부호에 따라 상태 색 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
AFAR | 감가상각 재계산 | 마스터를 바꾸지 않고 가정만으로 계산 |
S_ALR_87012936 | 감가상각 예상 리포트 | 시나리오 비교 열을 추가 |
ANLB | 상각 파라미터 | 현재 상각키·내용연수 원천 |
ANLC | 자산 가액 | 취득가액·상각누계 |
ANLP | 상각 계획 라인 | 연도별 계획 원천 |
도입 시 확인이 필요한 부분
정액법이 아닌 상각키는 계산식이 복잡합니다. 정률법·생산량비례법은 표준 상각키 설정을 읽어 재현해야 하며, 단순 산식으로 근사하면 결과가 어긋납니다. 시뮬레이션 대상 상각키를 정액법 계열로 한정하거나, 표준 재계산 기능을 호출하는 구조로 가는 편이 안전합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCDEPRSIM'
@EndUserText.label: '감가상각 시뮬레이션 기초 (Z)'
define view Z_C_DEPRECIATION_SIM_BASE
as select from anla as Master
left outer join anlb as Param on Master.bukrs = Param.bukrs
and Master.anln1 = Param.anln1
and Master.anln2 = Param.anln2
left outer join anlc as Value on Master.bukrs = Value.bukrs
and Master.anln1 = Value.anln1
and Master.anln2 = Value.anln2
{
key Master.bukrs,
key Master.anln1 as Anln1,
Master.txt50 as Txt50,
Master.anlkl as Anlkl,
Master.kostl as Kostl,
Master.aktiv as AktivDate,
Param.afasl as AfaKey,
Param.ndjar * 12 + Param.ndper as UsefulLifeMonths,
Value.kansw as AcqVal,
Value.knafa as AccumDepr,
Param.schrw as MemoValue
// 잔여 개월과 시나리오별 상각비는 소비 뷰 또는 앱 로직에서 계산
// 상각 대상액 = 취득가액 − 상각누계 − 비망가액
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 시나리오 입력 · 비교 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 시나리오 입력 | sap.m.StepInput · sap.m.Select — 내용연수·상각키 |
| 비교 테이블 | sap.m.Table — 현재와 시나리오를 인접 열로 |
| 추이 화면 | sap.m.Dialog + 연도별 표 — 잔존 장부가액 |
마스터를 바꾸지 않는 이유
내용연수를 실제로 바꿔 보고 되돌리면 그사이 상각이 돌거나 다른 사용자가 영향을 받습니다. 되돌린 뒤에도 변경 이력이 남아 감사에서 설명해야 합니다. 계산만 하고 저장하지 않으면 그런 흔적 없이 여러 가정을 비교할 수 있습니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.deprsim) · ko 로케일 |
view/Main.view.xml | 조회조건 · 시나리오 입력 · 비교 테이블 |
controller/Main.controller.js | 조회 · 시나리오 계산 · 추이 생성 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 개월 · 차이 부호 포맷터 |
localdata/assetmaster.json | 자산 마스터 25건 |
localdata/deprplan.json | 상각 계획 300건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 상각 대상액 = 취득가액 − 상각누계 − 비망가액 | 통과 |
| 월 상각비 × 잔여 개월 = 상각 대상액 | 통과 |
| 연도별 잔존 장부가액이 단조 감소 | 통과 |
| 마지막 연도 잔존 장부가액 = 비망가액 | 통과 |
| 시나리오 차이 = 시나리오 − 현재 계획 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 시나리오 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
시뮬레이션 결과를 실제로 적용하려면 어떻게 하나요?
결정이 나면 표준 자산 마스터에서 내용연수나 상각키를 변경하고 재계산을 실행합니다. 이 화면은 그 결정을 내리기 전 근거를 만드는 용도입니다.
정률법도 시뮬레이션되나요?
계산식이 복잡해 단순 산식으로는 근사만 됩니다. 정확한 값이 필요하면 표준 재계산 기능을 호출하는 구조로 만들어야 하며, 정액법 계열은 이 화면의 계산으로 충분합니다.
내용연수를 바꾸면 과거 상각도 다시 계산되나요?
보통은 미래 기간에만 적용합니다. 잔여 장부가액을 남은 기간에 나누는 방식이라 과거 전기는 그대로 둡니다. 소급 적용이 필요하면 별도 처리가 들어갑니다.
SAP 표준 기능과 어떻게 이어지나요?
상각 계획과 재계산은 표준 FI-AA 가 담당합니다. 이 화면은 그 계획값을 기준으로 가정을 바꿔 계산해 보되 마스터를 건드리지 않아, 결정 전에 여러 시나리오를 안전하게 비교하게 하는 확장입니다.