솔루션 홈
AR11N · 고정자산

SAP 고정자산 이력명세서 — 기초에서 기말까지 무엇이 움직였나

자산별 기초 장부가액에서 취득·처분·이체·상각을 거쳐 기말 장부가액에 이르는 변동을 한 줄로 펼치는 명세서입니다.

자산 명세서에서 감사가 가장 먼저 보는 것은 기초와 기말의 차이입니다. 그 차이가 취득·처분·이체·상각으로 모두 설명되면 그 자산은 넘어갑니다.

설명되지 않는 금액이 남으면 거기서부터 질문이 시작됩니다. 표준 고정자산 변동 구조를 그대로 이어받아 기초에서 기말까지의 경로를 한 줄에 담고 검산이 되게 하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 자산 키 — 자산번호(anln1)와 자산등급(anlkl)
  • 기초·기말 장부가액 — bvStart · bvEnd
  • 변동 — 취득(acqAmount) · 처분(retireNbv) · 이체(transferNet)
  • 감가상각 — 당기 상각액(deprYtd)
  • 처분 — 처분대가(retireProceeds)와 처분손익(retireGainLoss)
항목내용
대응 T-codeAR11N · S_ALR_87011990
업무 영역재무회계(FI-AA) · 자산 변동 · 결산
Namespacezui5.assetmove
셸 구조조회조건 영역(우측 조회·초기화) + 변동 명세 테이블
화면 수조회 화면 1개
데이터자산 변동 72건
성격조회형(Read-Only) — 취득·처분·상각은 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 2종 둘러보기

회사코드·회계연도·자산등급으로 조회하면 자산별 변동이 한 줄씩 나옵니다 → 기초에서 기말까지 검산하고 → 검증 표시가 걸린 자산을 확인합니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

AR11N — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·회계연도·자산등급·코스트센터를 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
AR11N — 변동 명세
메인화면 — 기초에서 기말까지
메인화면 — 기초에서 기말까지 — 자산번호·자산명·등급·코스트센터와 함께 기초 장부가액·취득·처분·이체·당기상각·기말 장부가액이 왼쪽에서 오른쪽으로 이어집니다. 검산이 맞지 않는 자산은 상태 표시로 구분됩니다.

조작 방법

  1. 회사코드회계연도를 고릅니다.
  2. 자산등급코스트센터로 범위를 좁힙니다.
  3. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  4. 왼쪽에서 오른쪽으로 읽으며 기초 + 변동 = 기말이 맞는지 봅니다.
  5. 검증 표시가 걸린 자산부터 확인합니다. 설명되지 않는 변동이 있다는 뜻입니다.
  6. 처분손익이 큰 자산은 손익 영향이 커 별도로 검토합니다.
  7. 결과는 CSV 다운로드로 내려받아 자산 명세서 조서에 씁니다.

변동 산식과 검증

한 줄에 담긴 여섯 숫자가 하나의 식으로 묶입니다.

기말 장부가액(bvEnd) = 기초 장부가액(bvStart)
                       + 취득(acqAmount)
                       − 처분 장부가액(retireNbv)
                       ± 이체(transferNet)
                       − 당기 상각(deprYtd)

처분손익 = 처분대가(retireProceeds) − 처분 장부가액(retireNbv)

식이 성립하지 않으면  →  검증 표시 (checkFlag)

검증을 행마다 두는 이유

합계만 맞추면 개별 자산의 오류가 서로 상쇄돼 보이지 않습니다. 한 자산에서 100만원이 남고 다른 자산에서 100만원이 모자라도 총계는 맞습니다. 행마다 검산하면 그런 상쇄가 드러나고, 문제 자산만 뽑아 볼 수 있습니다.

장부가액을 움직이는 네 가지

변동내용장부가액 영향
취득새 자산 또는 자본적 지출증가
처분매각 · 폐기감소 · 처분손익 발생
이체부서 · 법인 간 이동증감 (짝이 맞아야 함)
감가상각기간 경과에 따른 비용 인식감소

조회조건

필드필수설명
회사코드 bukrs필수대상 회사코드
회계연도 gjahr필수변동 대상 연도
자산등급 anlkl선택건물 · 기계 등
코스트센터 kostl선택귀속 부서
상태 status선택정상 / 검증 필요

결과 컬럼

컬럼의미 · 표시
자산번호 anln1 · 자산명 txt50자산 식별
자산등급 anlkl · anlklText등급 코드와 명칭
코스트센터 kostl · kostlText귀속 부서
기초 장부가액 bvStart연초 장부가액
취득 acqAmount · 취득일 acqDate기중 취득
처분 장부가액 retireNbv · 처분일 retireDate처분 시점 장부가액
처분대가 retireProceeds매각 대금
처분손익 retireGainLoss대가 − 장부가액
이체 transferNet이체 순증감
당기상각 deprYtd당해 연도 상각액
기말 장부가액 bvEnd기초 + 변동
검증 checkFlag식이 성립하지 않으면 표시

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
AR11N자산 변동 명세서행마다 검산을 붙여 설명되지 않는 변동 식별
S_ALR_87011990자산 이력 리포트취득·처분·이체·상각을 한 줄에 배치
ANLA · ANLC자산 마스터 · 가액기초·기말 장부가액
ANEP자산 거래 — 취득 · 처분 · 이체변동 원천
ANLP자산 상각 전기당기 상각액

도입 시 확인이 필요한 부분

이체는 보내는 자산과 받는 자산이 짝을 이룹니다. 조회 범위가 한쪽만 포함하면 검산이 어긋난 것처럼 보이므로, 이체가 잦은 환경이면 전체 회사코드를 함께 조회하거나 이체 건을 별도로 대사해야 합니다. 감가상각영역이 여러 개인 경우 어느 영역 기준인지도 정해야 합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCASSETMOVE'
@EndUserText.label: '고정자산 변동 명세 (Z)'
define view Z_C_ASSET_MOVEMENT
  as select from anla as Master
    left outer join anlc as Value on Master.bukrs = Value.bukrs
                                and Master.anln1 = Value.anln1
                                and Master.anln2 = Value.anln2
    left outer join anep as Trans on Master.bukrs = Trans.bukrs
                                and Master.anln1 = Trans.anln1
                                and Master.anln2 = Trans.anln2
{
  key Master.bukrs,
  key Value.gjahr,
  key Master.anln1 as AssetNo,
      Master.txt50 as Txt50,
      Master.anlkl as Anlkl,
      Master.kostl as Kostl,
      // 기초 장부가액 = 전년도 기말 (누계 뷰에서 이월)
      // 거래유형(bwasl)으로 취득·처분·이체를 갈라 집계
      sum( case when Trans.bwasl like '1%' then Trans.anbtr else 0 end ) as AcqAmount,
      sum( case when Trans.bwasl like '2%' then Trans.anbtr else 0 end ) as RetireAmount,
      sum( case when Trans.bwasl like '3%' then Trans.anbtr else 0 end ) as TransferNet,
      Value.knafa  as AccumDep
      // 당기 상각은 ANLP 에서 집계, 기말 = 기초 + 취득 − 처분 ± 이체 − 상각
}
group by Master.bukrs, Value.gjahr, Master.anln1, Master.txt50,
         Master.anlkl, Master.kostl, Value.knafa

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 변동 명세 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
명세 테이블sap.m.Table — 기초→기말 순서로 열 배치
검증 표시sap.m.ObjectStatus — 검산 불일치
금액sap.m.ObjectNumber — 우측정렬, 감소는 음수 표기

열 순서를 식 순서와 맞춘 이유

기초·취득·처분·이체·상각·기말을 그 순서대로 배치하면 표를 왼쪽에서 오른쪽으로 읽는 것이 곧 검산이 됩니다. 순서가 뒤섞이면 계산기를 꺼내야 하고, 그러면 사람이 확인을 건너뜁니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.assetmove) · ko 로케일
view/Main.view.xml조회조건과 변동 명세 테이블
controller/Main.controller.js조회 · 변동 검산 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 일자 · 검증 상태 포맷터
localdata/assetmove.json자산 변동 72건

검증 결과

검증 항목결과
기말 = 기초 + 취득 − 처분 ± 이체 − 상각 (전 건)통과
처분손익 = 처분대가 − 처분 장부가액통과
취득 금액이 있으면 취득일도 존재통과
처분 금액이 있으면 처분일도 존재통과
자산등급·코스트센터 코드가 있으면 명칭도 존재통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 후 캡처2/2
테마 런타임 확인sap_horizon

자주 묻는 질문

검증 표시가 걸리면 무엇부터 보나요?

이체가 있는지 먼저 봅니다. 상대 자산이 조회 범위 밖이면 짝이 보이지 않아 검산이 어긋납니다. 이체가 없는데도 어긋나면 거래유형 분류나 상각 전기를 확인합니다.

처분손익은 어디에 반영되나요?

손익계산서의 영업외손익으로 갑니다. 금액이 크면 당기 손익에 영향이 크므로 결산 검토 대상이 되고, 그래서 명세서에 별도 열로 둡니다.

기초 장부가액은 어떻게 구하나요?

전년도 기말 장부가액이 그대로 이월됩니다. 연도가 바뀔 때 이월이 제대로 되지 않으면 그 해 명세서 전체가 어긋나므로 연초에 한 번 확인하는 것이 좋습니다.

SAP 표준 기능과 어떻게 이어지나요?

취득·처분·이체·상각은 표준 FI-AA 트랜잭션이 만들고 자산 거래 테이블에 남습니다. 이 화면은 그 거래를 자산별로 접어 기초에서 기말까지 한 줄로 펼치고, 행마다 검산을 붙여 설명되지 않는 변동을 찾는 확장입니다.

자산 변동 명세, 지금 쓰는 SAP 위에서 확장해 보세요

기초와 기말의 차이가 한 줄로 설명되면 자산 명세서 조서 작성이 짧아집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

자산이력명세서자산변동AR11N취득 처분 이체감가상각처분손익고정자산OpenUI5