SAP 건설중인자산 정산 — 짓는 동안 쌓인 돈을 자산으로 옮기기
건설중인자산에 쌓인 취득가액과 최종자산으로의 정산 진행률을 조회하고, 정산 합계가 맞는지 검증하는 화면입니다.
공장을 짓는 동안 들어가는 돈은 아직 자산이 아니라 건설중인자산입니다. 완공되면 건물이나 기계로 옮겨야 감가상각이 시작됩니다.
옮기지 않으면 상각이 안 되어 비용이 과소 계상되고, 세무에서도 문제가 됩니다. 그런데 완공 시점을 놓치기 쉽습니다. 쌓인 금액과 정산 진행률을 함께 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 건설중인자산 — 자산번호(
AnlnAuc)와 자산등급(Anlkl) - 투자 오더 — 오더번호(
Aufnr)와 명칭(AufnrText) - 코스트센터 — 책임 부서(
Kostl) - 취득가액 — 누적 투입 금액
- 정산 — 최종자산으로 이전된 금액
| 항목 | 내용 |
|---|---|
| 대응 T-code | AIAB (정산 규칙) · AIBU (정산 실행) |
| 업무 영역 | 재무회계(FI-AA) · 자산 정산 |
| Namespace | zui5.aucsettle |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + AUC 목록 + 정산 라인 |
| 화면 수 | 조회 화면 1개 + 정산 상세 |
| 데이터 | AUC 22건 · 정산 라인 26건 |
| 성격 | 조회형(Read-Only) — 정산 실행은 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·자산등급·기간으로 조회하면 건설중인자산이 나옵니다 → 누적 취득가액과 정산액을 비교하고 → 정산 라인 합계가 맞는지 검증합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드를 고릅니다.
- 자산등급으로 건설중인자산만 추립니다.
- 코스트센터나 기간으로 범위를 좁힐 수 있습니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 정산률이 낮은 건을 확인합니다. 완공됐는데 안 옮긴 것일 수 있습니다.
- 미정산 잔액이 오래 남은 건을 봅니다.
- 행을 선택해 정산 라인을 확인합니다. 합계가 맞는지 봅니다.
- 결과는 CSV 다운로드로 내려받아 자산 관리 자료로 씁니다.
정산 규칙
쌓인 금액을 최종자산으로 나눠 옮깁니다.
미정산 잔액 = 누적 취득가액 − 정산 완료액
정산률 = 정산 완료액 ÷ 누적 취득가액 × 100
정산 검증 Σ(정산 라인 금액) = 정산 완료액
불일치 → 정산 이력 확인 필요
정산률 100% → AUC 잔액 0 — 최종자산으로 전액 이전
정산률 < 100% → 잔액 존재 — 추가 정산 또는 미완공
정산 시점이 중요한 이유
건설중인자산은 감가상각을 하지 않습니다. 완공돼 사용 중인데 옮기지 않으면 상각비가 계상되지 않아 이익이 과대해집니다. 세무에서도 사용 개시 시점부터 상각을 인정하므로, 시점이 늦으면 손금 산입 기회를 잃습니다.
AUC 생애 4단계
| 단계 | 내용 | 처리 |
|---|---|---|
| ① 생성 | 투자 결정 시 AUC 등록 | 자산번호 부여 |
| ② 집행 | 공사비 · 자재비 투입 | 취득가액 누적 |
| ③ 정산 | 완공 시 최종자산으로 이전 | AIBU 실행 |
| ④ 상각 | 최종자산에서 감가상각 시작 | 비용 인식 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 법인 |
자산등급 Anlkl | 선택 | 건설중인자산 등급 |
건설중인자산 AnlnAuc | 선택 | 특정 자산 |
투자오더 Aufnr | 선택 | 관련 오더 |
코스트센터 Kostl | 선택 | 책임 부서 |
| 정산률 | 선택 | 미완료 건 추출 |
결과 컬럼
AUC 현황
| 컬럼 | 의미 |
|---|---|
건설중인자산 AnlnAuc | 자산번호 |
자산등급 Anlkl · AnlklText | CIP 등급 |
투자오더 Aufnr · AufnrText | 관련 오더 |
회사코드 Bukrs · BukrsText | 귀속 법인 |
코스트센터 Kostl | 책임 부서 |
| 누적 취득가액 | 투입 총액 |
| 정산 완료액 | 이전된 금액 |
| 미정산 잔액 | 취득 − 정산 |
| 정산률 | 정산 ÷ 취득. 구간별 상태 색 |
정산 라인
| 컬럼 | 의미 |
|---|---|
| 최종자산 | 이전 대상 자산 |
| 정산 금액 | 라인별 금액 |
| 정산일 | 이전 날짜 |
| 정산 전표 | 근거 전표 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
AIAB | 정산 규칙 설정 | 정산 대상과 배분 정의 |
AIBU | 정산 실행 | 최종자산으로 이전 |
AS03 | 자산 조회 | AUC 정보 |
ANLA · ANLC | 자산 마스터와 가액 | 취득가액 |
AUFK | 투자오더 마스터 | 오더 연결 |
ANEP | 자산 거래 라인 | 정산 이력 |
도입 시 확인이 필요한 부분
정산 규칙이 등록돼 있어야 AIBU 가 실행됩니다. 규칙이 없으면 정산이 실패하고 잔액이 계속 남습니다. 또 부분 정산을 허용할지 전액 정산만 할지에 따라 정산률 관리 방식이 달라집니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCAUCSETTLE'
@EndUserText.label: '건설중인자산 정산 현황 (Z)'
define view Z_C_AUC_SETTLEMENT
as select from anla as Asset
left outer join anlc as Value on Asset.bukrs = Value.bukrs
and Asset.anln1 = Value.anln1
and Asset.anln2 = Value.anln2
left outer join aufk as Order on Asset.aufnr = Order.aufnr
left outer join cskt as CCtrTxt on Asset.kostl = CCtrTxt.kostl
and CCtrTxt.spras = 'K'
{
key Asset.bukrs,
key Asset.anln1 as AnlnAuc,
key Asset.anln2,
Asset.anlkl as Anlkl,
Asset.txt50 as AssetName,
Asset.aufnr as Aufnr,
Order.ktext as AufnrText,
Asset.kostl, CCtrTxt.ktext as KostlText,
Value.kansw as AcquisitionValue
// 정산 완료액은 ANEP 의 정산 거래유형 합계
// 미정산 잔액 = 취득가액 − 정산액, 정산률 = 정산 ÷ 취득
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · AUC 목록 · 정산 라인 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| AUC 목록 | sap.ui.table.Table — 취득→정산→잔액 순서 |
| 정산률 | sap.m.ObjectStatus — 구간별 색 |
| 정산 라인 | 선택 시 하단에 최종자산별 배분 펼침 |
정산 라인 합계를 검증하는 이유
정산은 여러 최종자산으로 나눠 진행되는 경우가 많습니다. 건물과 기계와 비품으로 각각 옮기는 식입니다. 라인 합계가 정산 완료액과 다르면 어느 라인이 빠졌거나 중복된 것이므로, 조회할 때마다 자동으로 확인되는 편이 안전합니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.aucsettle) · ko 로케일 |
view/Main.view.xml | 조회조건 · AUC 목록 · 정산 라인 |
controller/Main.controller.js | 조회 · 정산률 계산 · 합계 검증 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 비율 · 상태 색 포맷터 |
localdata/aucdata.json | AUC 22건 |
localdata/settlementdata.json | 정산 라인 26건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 정산 라인 합계 = 정산 완료액 (전 건) | 통과 |
| 미정산 잔액 = 누적 취득가액 − 정산 완료액 | 통과 |
| 정산률 = 정산 완료액 ÷ 취득가액 × 100 | 통과 |
| 정산률 100% 인 건은 잔액 0 | 통과 |
| 자산등급·코스트센터 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
완공 시점을 어떻게 판단하나요?
사용 개시 시점입니다. 준공 검사가 끝나고 실제로 쓰기 시작하면 정산해야 합니다. 현업 부서와 확인 절차가 필요합니다.
부분 정산이 가능한가요?
가능합니다. 여러 자산이 순차적으로 완공되면 완공된 것부터 옮깁니다. 이 경우 정산률이 단계적으로 올라갑니다.
정산이 늦으면 무엇이 문제인가요?
감가상각이 시작되지 않아 비용이 과소 계상됩니다. 세무상으로도 사용 개시 시점부터 상각을 인정하므로 늦은 만큼 손금 산입 기회를 잃습니다.
SAP 표준 기능과 어떻게 이어지나요?
정산 규칙과 실행은 표준 자산회계가 담당합니다. 이 화면은 AUC별 정산 진행률을 보여 주고 정산 라인 합계를 검증해, 옮기지 못한 건을 드러내는 확장입니다.