SAP 고정자산 대장 조회 — 취득가액에서 장부가액까지
자산별 취득가액과 상각누계를 놓고 장부가액을 확인하며, 내용연수와 상각방법까지 한 줄에서 읽는 자산대장 화면입니다.
자산대장을 보는 이유는 대개 하나입니다. 이 자산이 지금 장부에 얼마로 남아 있는가.
그 숫자는 취득가액에서 상각누계를 뺀 값이지만, 그것만으로는 판단이 어렵습니다. 내용연수가 몇 년인지, 어떤 방법으로 상각되는지, 언제 취득했는지를 함께 봐야 남은 기간이 그려집니다. 표준 고정자산 마스터 구조를 그대로 이어받아 이 정보를 한 줄에 담도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 자산 키 — 자산번호(
assetNo)와 부번호(subNo)의 표준 2단 키 - 자산등급 — 자산클래스(
assetClass)와 명칭으로 건물·기계 등 구분 - 취득 정보 — 취득일(
acqDate)과 취득가액(apc) - 상각 — 내용연수(
usefulLifeYears) · 상각방법(depreciationMethod) · 상각누계(accumDep) - 귀속 — 회사코드와 코스트센터(
costCenter)
| 항목 | 내용 |
|---|---|
| 대응 T-code | AS03 (자산 조회) · AR01 (자산 목록) |
| 업무 영역 | 재무회계(FI-AA) · 고정자산 관리 |
| Namespace | zui5.asset |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 자산대장 테이블, 행 선택 시 상각 이력 |
| 화면 수 | 조회 화면 1개 + 상각 이력 |
| 데이터 | 자산 16건 |
| 성격 | 조회형(Read-Only) — 자산 등록과 상각은 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 2종 둘러보기
회사코드·자산등급·코스트센터로 조회하면 자산이 목록으로 나옵니다 → 취득가액·상각누계·장부가액을 나란히 보고 → 행을 눌러 연도별 상각 이력을 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드를 고르고 자산등급으로 건물·기계·차량 등을 나눕니다.
- 코스트센터로 부서별 자산을 추릴 수 있습니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 장부가액이 0에 가까운 자산은 상각이 끝나가는 자산입니다. 교체 계획 대상이 됩니다.
- 취득일과 내용연수를 보면 남은 상각 기간이 계산됩니다.
- 행을 선택하면 연도별 상각 이력이 열립니다.
- 결과는 CSV 다운로드로 내려받습니다.
장부가액 산식
대장의 핵심은 세 숫자의 관계입니다.
장부가액(nbv) = 취득가액(apc) − 상각누계(accumDep)
상각방법(SL) 정액법 — 매기 동일 금액
연간 상각액 = 취득가액 ÷ 내용연수 (정액법 기준)
남은 기간 = 내용연수 − (기준일 − 취득일)
상태 ACTIVE → 사용 중
상태 RETIRED → 처분 완료 (처분일 존재)
내용연수를 함께 보여 주는 이유
장부가액이 낮다고 해서 자산이 낡은 것은 아닙니다. 내용연수가 짧은 자산은 금방 상각이 끝나지만 실제로는 더 오래 씁니다. 취득일과 내용연수를 함께 두면 "상각은 끝났지만 아직 쓰는 자산" 을 가려낼 수 있고, 이런 자산이 많으면 내용연수 정책을 재검토할 근거가 됩니다.
자산 생애 4단계
| 단계 | 내용 | 장부 영향 |
|---|---|---|
| 취득 | 외부 구입 또는 건설 완료 | 취득가액 확정 · 상각 시작 |
| 사용 | 내용연수에 걸쳐 상각 | 장부가액 감소 |
| 상각 완료 | 내용연수 경과 | 장부가액이 잔존가액에 도달 |
| 처분 | 매각 또는 폐기 | 처분손익 인식 · 대장에서 제외 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 bukrs | 필수 | 대상 회사코드 |
자산등급 assetClass | 선택 | 건물 · 기계 · 차량 등 |
코스트센터 costCenter | 선택 | 부서별 자산 |
자산번호 assetNo | 선택 | 특정 자산 |
상태 status | 선택 | ACTIVE / RETIRED |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
자산번호 assetNo · 부번호 subNo | 자산 식별 키 |
자산명 assetName | 자산 명칭 |
자산등급 assetClass · assetClassText | 등급 코드와 명칭 |
코스트센터 costCenter · costCenterText | 귀속 부서 |
취득일 acqDate | 자산 취득 날짜 |
내용연수 usefulLifeYears | 상각 기간(년) |
상각방법 depreciationMethod | SL 정액법 등 |
취득가액 apc | 취득 시 가액 |
상각누계 accumDep | 지금까지 상각한 합계 |
장부가액 nbv | 취득가액 − 상각누계 |
상태 status · 처분일 retireDate | ACTIVE / RETIRED |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
AS03 | 자산 마스터 조회 | 한 건씩 열지 않고 목록으로 조회 |
AR01 | 자산 목록 리포트 | 취득·상각·장부가액을 한 줄에 배치 |
ANLA · ANLB | 자산 마스터 · 상각 파라미터 | 자산 정보와 내용연수 |
ANLC | 자산 가액 — 취득 · 상각누계 | 금액 원천 |
CSKS · CSKT | 코스트센터 마스터 | 귀속 부서 명칭 |
도입 시 확인이 필요한 부분
감가상각영역이 여러 개면 장부가액도 여러 개입니다. 재무회계용(01)과 세무용(15)이 다른 것이 보통이라, 어느 영역을 기준으로 보여 줄지 정해야 합니다. 또 잔존가액 정책이 있으면 상각이 끝나도 장부가액이 0이 되지 않으므로 그 기준도 함께 확인합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCASSET'
@EndUserText.label: '고정자산 대장 (Z)'
define view Z_C_ASSET_REGISTER
as select from anla as Master
left outer join anlb as DeprParam on Master.bukrs = DeprParam.bukrs
and Master.anln1 = DeprParam.anln1
and Master.anln2 = DeprParam.anln2
left outer join anlc as Value on Master.bukrs = Value.bukrs
and Master.anln1 = Value.anln1
and Master.anln2 = Value.anln2
left outer join cskt as CCtrText on Master.kostl = CCtrText.kostl
and CCtrText.spras = 'K'
{
key Master.bukrs,
key Master.anln1 as AssetNo,
key Master.anln2 as SubNo,
Master.txt50 as AssetName,
Master.anlkl as AssetClass,
Master.kostl as CostCenter,
CCtrText.ktext as CostCenterText,
Master.aktiv as AcqDate,
DeprParam.ndjar as UsefulLifeYears,
Value.kansw as Apc,
Value.knafa as AccumDep
// 장부가액 = 취득가액 − 상각누계 (소비 뷰에서 계산)
// 감가상각영역(AFABE) 선택이 필요하면 조건으로 추가
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 자산대장 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 대장 테이블 | sap.m.Table — 금액 우측정렬 |
| 상태 표시 | sap.m.ObjectStatus — 사용 중 / 처분 |
| 상세 화면 | sap.m.Dialog — 연도별 상각 이력 |
세 금액을 인접 배치한 이유
취득가액·상각누계·장부가액은 하나의 식입니다. 표에서 떨어져 있으면 눈으로 검산하기 어렵고, 값이 어긋났을 때 알아채지 못합니다. 나란히 두면 세 숫자가 맞는지가 읽는 동안 자연스럽게 확인됩니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.asset) · ko 로케일 |
view/Main.view.xml | 조회조건과 자산대장 테이블 |
controller/Main.controller.js | 조회 · 장부가액 계산 · 상각 이력 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 일자 · 상태 포맷터 |
localdata/asset.json | 자산 16건 (상각 이력 포함) |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 장부가액 = 취득가액 − 상각누계 (전 건) | 통과 |
| 상각누계 ≤ 취득가액 | 통과 |
| 상각 이력 합계 = 상각누계 | 통과 |
| 처분 자산은 처분일 존재 | 통과 |
| 자산등급·코스트센터 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 후 캡처 | 2/2 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
감가상각영역이 여러 개면 어떤 값이 보이나요?
기본은 재무회계용 영역입니다. 세무용 장부가액이 따로 필요하면 영역 선택 조건을 추가해야 하며, 두 값을 나란히 보여 주는 구성도 가능합니다.
상각이 끝난 자산은 목록에서 빠지나요?
빠지지 않습니다. 장부가액이 0이거나 잔존가액만 남아도 자산은 계속 사용 중일 수 있습니다. 오히려 이런 자산을 가려내는 것이 교체 계획에 필요합니다.
부번호는 왜 있나요?
한 자산에 증설이나 부속 설비가 붙을 때 부번호로 관리합니다. 본체와 증설분의 취득일과 내용연수가 달라 상각도 따로 돌아가므로 키를 2단으로 둡니다.
SAP 표준 기능과 어떻게 이어지나요?
자산 등록과 상각 실행은 표준 FI-AA 가 담당합니다. 이 화면은 AS03 으로 한 건씩 열어 보던 정보를 목록으로 펼치고, 취득·상각·장부가액을 한 줄에 놓아 대장 전체를 훑을 수 있게 하는 확장입니다.