SAP 사용권자산·리스부채 재무상태표 표시 점검 — IFRS 16, 별도 표시했는지·합산했다면 주석에 밝혔는지·표시 항목 합계가 계약과 맞는지 한 화면에서
표시 항목 점검 · 합산 표시의 주석 공시 확인 · 투자부동산 표시 확인 · 리스부채 유동·비유동 재계산 · 표시 항목 합계와 계약 합계 대사 — 소개 영상과 실제 화면 7종, CDS 코드까지
소개 영상1분 45초 · 자막 포함8개 장면조회 → 조건 좁히기 → 표시 항목 → 유형별 합계 → 대사 → 계약 상세
개발 배경 — 이 앱을 사용해야 하는 이유
리스 회계의 재무상태표 표시는 숫자를 맞추는 일이 아니라 어디에 놓았는가를 확인하는 일입니다. 사용권자산과 리스부채는 별도 항목으로 표시하거나, 다른 항목에 합산했다면 그 항목을 주석에 밝히는 것이 IFRS 16 리스(K-IFRS 제1116호)의 요구이고, 임대·시세차익 목적의 사용권자산은 투자부동산 정의에 해당할 수 있는지도 따져야 합니다. 그런데 결산에서는 이 확인이 계정 잔액 조회, 주석 자료, 계약 목록으로 흩어져 있어 “금액은 맞는데 위치와 공시는 맞는지”가 마지막에 몰립니다.
이 앱은 계약 한 건마다 장부에 놓인 표시 위치와 회사 표시 정책·보유 목적으로 정한 점검 기준 위치를 나란히 두고, 합산해 표시했다면 주석에 밝혔는지, 리스부채의 유동·비유동 합이 잔액과 같은지를 한 표에 보여 줍니다. 그리고 표시 항목별 합계가 계약별 합계와 맞는지를 대사식으로 매번 검산합니다.
핵심 포인트 여섯 가지
| 포인트 | 고객이 얻는 것 | 지금 방식이라면 |
|---|---|---|
| ① 계약 단위로 보는 표시 위치 | 사용권자산과 리스부채 각각의 장부 표시와 기준 표시를 계약마다 나란히 놓아 어디가 다른지 바로 봅니다. | 계정 잔액만 보고 계약별로 어느 항목에 들어갔는지는 따로 추적합니다. |
| ② 합산 표시의 주석 확인 | 유형자산·차입금 등에 합산했다면 그 항목을 주석에 밝혔는지를 점검 코드로 보여 줍니다. | 주석 자료와 재무상태표를 눈으로 대조합니다. |
| ③ 투자부동산 표시 확인 | 임대·시세차익 목적의 사용권자산이 투자부동산이 아닌 항목에 놓인 계약을 추립니다. 목적이 비어 있으면 판단하지 않고 따로 표시합니다. | 보유 목적 확인이 결산 막판 질의로 올라옵니다. |
| ④ 유동·비유동 재계산 | 리스부채 유동과 비유동의 합이 잔액과 같은지 계약마다 확인합니다. | 총액만 맞춰 보고 구분은 주석 작성 때 발견합니다. |
| ⑤ 대사식이 스스로 검산 | 표시 항목 합계와 계약 합계, 유형별 합계 등 6식을 전수로 돌려 차이 0건을 확인합니다. | 집계 화면과 원본이 맞는지 따로 맞춰 봅니다. |
| ⑥ OData 로 분리된 구조 | 화면은 OData V2 서비스만 바라보고 조회조건은 $filter 로 전달합니다. 실제 서비스로 바꿀 때 화면을 고치지 않습니다. | 화면과 데이터가 엉켜 연동 때 다시 만듭니다. |
사례로 보는 효과 — 합계는 맞는데 위치가 다른 계약
샘플 데이터에서 사용권자산 표시 항목 합계와 계약별 합계는 26,601백만 원으로 같습니다. 그런데 계약 단위로 내려가면 임대 목적의 상가 전대 계약과 투자 목적 토지 계약, 임대용 사옥 일부 전대 계약 세 건의 사용권자산이 투자부동산이 아닌 항목에 놓여 있어 점검 코드 P01 로 나옵니다(실제 장부에서는 보유 목적과 정의 해당 여부 확인 필요). 합계 대사만 봤다면 지나쳤을 지점입니다. 한편 리스부채는 두 계약에서 유동과 비유동의 합이 잔액과 15백만 원, 22백만 원 달라 P05 로 나옵니다.
도입하면 달라지는 것
- 결산 막판 질의 — 어느 계약의 표시 위치와 주석 공시를 먼저 볼지 미리 정해 둘 수 있습니다.
- 확인 순서 — 총액이 아니라 점검 코드별로 계약을 추려 열어 볼 수 있습니다.
- 설명 자료 — 판정 규칙과 대사 결과가 화면에 있어 감사 질의에 같은 자료로 답합니다.
이런 회사에 맞습니다
리스 계약이 건물·차량·설비·IT 장비·토지로 여러 유형에 걸쳐 있고, 회사코드마다 표시 정책이 다른 그룹사를 결산하는 재무회계팀에 맞습니다. 계약을 RE-FX 등으로 관리하면서 장부의 표시 위치를 별도로 점검하고 싶은 경우에도 출발점이 됩니다.
사용 방법
- 회계연도를 확인하고 필요하면 회사·기초자산 유형·보유 목적·장부 표시·전기일 기간·계약명·점검 코드·점검 결과를 고른 뒤 조회를 누릅니다(Enter 도 됩니다).
- 요약 숫자에서 점검한 계약 수와 표시 항목 이동 검토, 확인 필요, 주석 공시 점검 건수를 봅니다.
- 점검 코드를 골라 다시 조회해 해당 계약만 추립니다.
- 탭을 오가며 재무상태표 표시 항목, 기초자산 유형별 합계, 대사 결과를 확인합니다.
- 계약 행을 눌러 보유 목적·표시 항목·전표 라인을 확인합니다.
- 필요하면 현재 탭을 CSV 로 내려받습니다.
숫자를 믿을 수 있는가 — 검증 결과
이 화면의 데이터는 모두 가상의 검증용 샘플이며, 실제 고객사의 계약·금액은 쓰지 않았습니다.
| 대사식 | 검사 건수 | 차이 |
|---|---|---|
| 표시 항목별 사용권자산 합계 = 계약별 사용권자산 합계 | 30 | 0 |
| 표시 항목별 리스부채 합계 = 계약별 리스부채 잔액 합계 | 30 | 0 |
| 점검 기준 표시 합계 = 장부 표시 합계(사용권자산) | 30 | 0 |
| 기초자산 유형별 합계 = 전체 합계(사용권자산+리스부채) | 9 | 0 |
| 투자부동산 점검 기준 표시액 = 보유 목적 해당 계약 합계 | 4 | 0 |
| 표시 이동 필요액 계약 합 = 유형별 합 | 30 | 0 |
이와 별도로 리스부채의 유동과 비유동 합이 잔액과 다른 계약 2건(최대 22백만 원)은 화면 동작을 보이려고 의도적으로 넣은 예외이며, 대사 차이 건수와 섞지 않고 참고 대사로 따로 셉니다. 점검·확인 대상 12건(P01 3·P02 2·P03 2·P04 1·P05 2·P09 2)도 같은 이유로 넣은 예외입니다.
무엇으로 만들었나
| 자리 | 무엇 | 왜 그렇게 두었나 |
|---|---|---|
| 화면 컨트롤 | OpenUI5 표준 컨트롤 — 조회조건 영역, 계약 표(sap.ui.table), 합계 표(sap.m.Table), 상세 팝업 | 외부 라이브러리 없이 표준 컨트롤만 써서 사내망·보안 검토 부담을 줄입니다. |
| OData 구성 | 화면은 앱 선언(manifest)에 적은 OData V2 서비스만 바라보고, 조회조건은 $filter, 정렬·페이징은 $orderby·$top·$skip 으로 보냅니다. 계약·전표 라인·표시 항목·유형·대사 다섯 개 엔티티셋과 표시 이동 검토 건수를 세는 함수 하나로 구성합니다. | 화면과 데이터를 갈라 두어 실제 SAP 서비스로 바꿀 때 화면을 고치지 않게 합니다. |
| 서비스 구현 | 조회·단건·생성·수정·삭제·함수 호출 여섯 가지를 처리하는 서비스 로직과 엔티티셋별 데이터 | 날짜 조건과 함수 반환형을 서비스가 직접 처리해 화면이 값을 가공하지 않습니다. |
| 판정·집계 | 점검 코드 판정과 요약 계산은 서비스 응답을 컨트롤러 한 곳에서 모아 계산 | 판정 순서를 한 곳에 두어 화면마다 결과가 달라지지 않게 합니다. |
| 오류 안내 | 서비스 정의를 못 읽은 경우와 요청이 실패한 경우를 구분해 안내 | 연결 문제와 데이터 문제를 구분해 알려 줍니다. |
| 테마 | sap_horizon | SAP 표준 화면과 같은 색·간격으로 보이게 합니다. |
앱 정보
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) |
| 관련 기준서·대상 영역 | IFRS 16 리스(K-IFRS 제1116호) — 사용권자산·리스부채의 재무상태표 표시와 주석 공시 |
| SAP 표준 T-code | FAGLL03 · FBL3N · FB03 · FS10N · RECN |
| 화면 성격 | 조회·점검 화면(탭 4개 + 계약 상세 팝업) |
| 데이터 연동 | OData V2 서비스 |
실행 화면
실제로 돌아가는 화면 7종을 사용 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 숫자는 모두 같은 자료에서 나온 것이라 화면끼리 맞춰 보셔도 됩니다.
처음 열었을 때와 조건으로 좁히기

회계연도 2026 으로 자동 조회되어 계약 30건이 한 표에 나옵니다. 요약의 “표시 항목 이동 검토”는 4건으로, 점검 코드가 P01 또는 P04 인 계약 수를 함수로 받아 옵니다. 점검 필요는 장부 표시와 기준 표시가 달라 보이거나 주석 공시·잔액에서 확인할 것이 있다는 뜻이고, 판단은 회사가 합니다. 조회 버튼은 조회조건 영역의 오른쪽 끝에 있습니다.

임대나 시세차익 목적의 사용권자산이 투자부동산이 아닌 항목에 놓인 계약만 추려집니다. 계약명 칸에 글자를 넣고 Enter 를 눌러도 같은 방식으로 조회됩니다. “전체”로 둔 조건은 서버로 보내지 않으므로, 조건을 비우고 조회하면 처음 상태로 돌아갑니다.
표시 항목과 유형별 합계

사용권자산 별도 표시, 유형자산·투자부동산·기타자산에 합산된 사용권자산, 리스부채 별도 표시, 차입금·기타부채에 합산된 리스부채 줄이 회사별로 나옵니다. 두 금액이 다르면 어느 항목에서 어느 항목으로 옮겨 볼지 가늠할 수 있습니다. 합계 줄의 차이는 0이며, 실제 이동 여부는 회사가 판단합니다.

표시 이동 필요액은 장부 표시와 기준 표시가 다른 계약의 사용권자산 합계입니다. 건수로 세는 이동 검토(P01·P04)와 달리 주석 공시 점검 건(P02)의 계약도 위치가 다르면 금액에 들어가므로 두 숫자를 함께 봅니다.
대사 결과와 계약 상세

정합성 대사 6건은 모두 차이 0건입니다. 리스부채의 유동과 비유동 합이 잔액과 다른 계약 2건은 의도적 예외로 참고 대사에 따로 나오며, 최대 차이는 22백만 원입니다.

아래 전표 라인은 계정별로 사용권자산 원가·감가상각누계·리스부채 유동·비유동 네 줄로 나뉩니다. 점검 필요 계약은 점검 내용을 읽고 표시 위치를 회사가 판단하며, 전표 번호로 FB03 에서 원전표를 열어 확인합니다.
좁은 화면

휴대폰이나 좁은 창에서도 요약 숫자와 탭을 그대로 쓸 수 있습니다. 기능은 같고 배치만 달라집니다.
화면 뒤에서 일어나는 일
화면은 조회조건을 $filter 로 만들어 OData 서비스에 보내고, 서비스는 계약별 장부 표시와 기준 표시를 견주어 점검 코드를 정해 돌려줍니다. 요약 숫자는 그 응답과 함수 호출 결과를 컨트롤러 한 곳에서 모아 계산하므로 탭마다 숫자가 달라지지 않습니다.
점검 판정 규칙 — 판정 조건 → 결과 상태 → 사용자 조치
| 우선순위 | 판정 조건 | 결과 상태 | 코드 | 사용자 조치 |
|---|---|---|---|---|
| 1 | 보유 목적이 임대·시세차익인데 사용권자산이 투자부동산이 아닌 항목에 표시됨 | 점검 필요 | P01 | 투자부동산 해당 여부와 표시 항목 이동 검토 |
| 2 | 리스부채 잔액이 유동 + 비유동과 다름 | 점검 필요 | P05 | 상환 일정과 잔액 재계산 확인 |
| 3 | 사용권자산을 다른 자산 항목에 합산했는데 주석에 밝히지 않음 | 점검 필요 | P02 | 주석 공시 여부 확인 |
| 4 | 리스부채를 다른 부채 항목에 합산했는데 주석에 밝히지 않음 | 점검 필요 | P03 | 주석 공시 여부 확인 |
| 5 | 사용권자산 표시 위치가 회사 표시 정책과 다름 | 점검 필요 | P04 | 정책 변경 여부와 비교정보 확인 |
| 6 | 보유 목적이 확인되지 않음 | 확인 필요 | P09 | 회사 판단 근거 확인 |
| 7 | 위 어디에도 해당하지 않음 | 정상 | P00 | 조치 없음 |
한 계약에 둘 이상 해당하면 우선순위가 높은 코드 하나로 표시합니다.
처리 단계와 대사식
- 보유 목적과 회사 표시 정책으로 계약마다 사용권자산·리스부채의 점검 기준 표시를 정합니다.
- 장부 표시와 기준 표시, 주석 공시 여부, 유동·비유동 합을 견주어 점검 코드를 정합니다.
- 표시 항목별·유형별로 금액을 모으고 합계 줄을 만듭니다.
- 아래 7식으로 합계가 맞는지 확인합니다.
| 번호 | 구분 | 대사식 |
|---|---|---|
| 001 | 정합성 | Σ 표시 항목별 장부 금액 = Σ 계약별 사용권자산 |
| 002 | 정합성 | Σ 표시 항목별 장부 금액 = Σ 계약별 리스부채 잔액 |
| 003 | 정합성 | Σ 점검 기준 표시 금액 = Σ 장부 표시 금액(사용권자산) |
| 004 | 정합성 | Σ 유형별(사용권자산+리스부채) = Σ 계약별 합계 |
| 005 | 정합성 | 점검 기준 투자부동산 표시액 = Σ(보유 목적 임대·시세차익) 사용권자산 |
| 006 | 정합성 | Σ(장부 표시≠기준 표시) 계약 사용권자산 = Σ 유형별 이동액 |
| 007 | 참고 | 리스부채 유동 + 비유동 = 잔액(계약별, 의도적 예외 포함) |
조회조건
| 조회조건 | 필수 | 기본값 | $filter 속성 | 연산 |
|---|---|---|---|---|
| 회계연도 | 필수 | 2026 | Gjahr | eq |
| 회사 | 선택 | 전체 | Bukrs | eq |
| 기초자산 유형 | 선택 | 전체 | AssetClass | eq |
| 보유 목적 | 선택 | 전체 | PurposeFlag | eq |
| 사용권자산·리스부채 장부 표시 | 선택 | 전체 | BsRou · BsLiab | eq |
| 전기일 시작·종료 | 선택 | 비움 | PostDate | ge · le |
| 계약명 | 선택 | 비움 | ContractName | substringof |
| 점검 코드·점검 결과 | 선택 | 전체 | CheckCode · CheckStatus | eq |
결과 컬럼
| 탭 | 컬럼 | 의미·산식 |
|---|---|---|
| 계약별 표시 점검 | 사용권자산·리스부채 금액 | 계약별 장부 금액과 유동·비유동 구분 |
| 계약별 표시 점검 | 장부 표시·기준 표시 | 놓인 항목과 보유 목적·정책으로 정한 항목 |
| 계약별 표시 점검 | 점검 결과·코드·내용 | 정상 / 점검 필요 / 확인 필요 와 P00~P09 |
| 재무상태표 표시 항목 | 장부·기준 표시 금액·차이 | 표시 항목별 합과 그 차이(합계 줄은 줄의 합) |
| 기초자산 유형별 합계 | 표시 이동 필요액·점검 계약 수 | 위치가 다른 계약의 사용권자산 합 · 코드가 정상이 아닌 계약 수 |
| 대사 결과 | 좌변·우변·검사 건수·차이 건수 | 대사식 양쪽 값과 검사 대상 수, 달라진 건수 |
좁은 화면에서 달라지는 것
조회조건이 위아래로 쌓이고 요약 숫자가 줄바꿈되며, 표는 가로로 넘겨 봅니다. 탭·상세 팝업·CSV 는 그대로 동작합니다.
파일 구성
index.html · Component.js · manifest.json
controller/ Main.controller.js 등
view/ Main.view.xml · DetailDialog.fragment.xml
model/ formatter.js · ErrorHandler.js
css/ · i18n/
odata/ 서비스 정의(metadata) · 서비스 구현 · 엔티티셋별 데이터
media/ 소개 영상
SAP 표준 기능 확장 포인트
표준 실행과 결산 보고는 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다.
표준으로 되는 것과 안 되는 것
| 하고 싶은 일 | 표준 화면 | 이 앱이 더하는 관점 |
|---|---|---|
| 계정 잔액·라인 확인 | FS10N · FAGLL03 · FBL3N 으로 충분합니다 | 계약 단위로 어느 표시 항목에 들어갔는지를 한 표에서 봅니다 |
| 전표 확인 | FB03 으로 충분합니다 | 계약 상세에서 전표 번호로 바로 이어집니다 |
| 리스 계약 조건 확인 | RE-FX 를 쓰면 RECN 에서 확인합니다 | 계약 조건 대신 표시 위치와 공시 여부를 점검합니다 |
| 표시 위치·주석 공시 점검 | 표준 화면에는 점검 관점의 비교가 없어 보통 엑셀로 대조합니다 | 장부 표시와 기준 표시, 주석 공시 여부를 같은 틀로 견줍니다 |
T-code 별 연계 지점
| T-code | 이름 | 연계 |
|---|---|---|
| FAGLL03 | G/L 계정 라인 아이템 조회 | 같은 저널 항목(ACDOCA)에서 오는 사용권자산·리스부채 계정 라인을 이어서 확인합니다. 이 앱의 표시 항목 합계를 계정별 라인 합과 맞춰 보는 지점이고, 법정·감사 대응은 표준 화면에 둡니다. |
| FBL3N | G/L 계정 라인 아이템(전통 화면) | 계정별 라인을 기존 방식으로 대조해 온 팀이 같은 값을 계속 확인할 수 있습니다. 기존 리포트를 없앨 필요는 없습니다. |
| FB03 | 전표 조회 | 계약 상세의 전표 번호로 원전표를 엽니다. 이 앱 결과에서 표준으로 가는 가장 짧은 길입니다. |
| FS10N | G/L 계정 잔액 조회 | 표시 항목 합계를 계정 잔액과 견줄 때 씁니다. 두 화면의 숫자가 다르면 계정 매핑부터 확인합니다. |
| RECN | 부동산 계약(RE-FX) | 리스 계약을 RE-FX 로 관리하는 경우 보유 목적과 계약 조건을 확인하는 출발점입니다(항목 매핑은 확인 필요). |
S/4HANA 분석 스택과의 자리
표준 CDS 분석 쿼리나 Fiori 분석 앱은 계정 중심의 집계에 강합니다. 이 앱은 계약을 한 줄로 보고 점검 코드를 붙이는 점검 화면이라 그 옆에서 같은 원천을 다른 관점으로 읽습니다. 어느 표준 분석 앱을 함께 쓸지는 회사 환경에 따라 달라 확인 필요입니다.
확장 포인트 — 운영에서 실제로 손대는 자리
| 자리 | 무엇을 손대나 | 비고 |
|---|---|---|
| 계정 매핑 | 사용권자산·리스부채 계정이 어느 표시 항목인지 | 회계팀이 직접 관리 |
| 보유 목적·기초자산 유형 | 계약 마스터의 확장 필드 또는 매핑 테이블 | 확인 필요 |
| 표시 정책 | 회사코드별 별도 표시·합산 표시 선택 | 변경 이력 관리 |
| 주석 공시 관리 | 합산 표시 항목을 주석에 밝혔는지 표시하는 값 | 공시 담당자와 합의 |
| 권한 | 회사코드 단위 DCL | 보안 담당자 |
요구사항 매핑표
| 기준서 | 요구사항 | 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IFRS 16 리스(K-IFRS 제1116호) | 사용권자산을 재무상태표에 별도로 표시하거나 어느 항목에 포함했는지 주석에 공시 | 계약별 표시 점검 · P02 | 사용권자산 계정 라인 | 문단번호는 원문 확인 전이라 적지 않음 |
| IFRS 16 리스(K-IFRS 제1116호) | 리스부채를 재무상태표에 별도로 표시하거나 어느 항목에 포함했는지 주석에 공시 | 계약별 표시 점검 · P03 | 리스부채 계정 라인 | 문단번호는 원문 확인 전이라 적지 않음 |
| IFRS 16 리스(K-IFRS 제1116호) | 투자부동산 정의에 해당하는 사용권자산의 표시 | P01 · 대사 005 | 보유 목적 설정 | 목적 미확인 건은 P09 — 확인 필요 |
| IFRS 16 리스(K-IFRS 제1116호) | 리스부채 유동·비유동 구분과 잔액 일치 | P05 · 참고 대사 007 | 계약별 상환 일정 | 판단은 회사와 감사인 |
| 회사 표시 정책 | 사용권자산·리스부채 표시 위치의 일관성 | P04 | 회사 표시 정책 설정 | 정책 변경 시 비교정보 확인 필요 |
합산 표시의 적정성과 공시의 충분성은 이 화면이 판단하지 않습니다. 기준서 문단번호는 원문 확인 전이라 적지 않았습니다.
CDS 구성
장부 금액은 표준 저널 항목 CDS 뷰 위에서 가져오고, 계약 속성과 표시 매핑은 회사별 설정 테이블에서 읽어 계약 단위로 펼칩니다. 아래 코드는 구조를 보이기 위한 스케치이며 이름은 예시입니다. 확인하지 못한 설정 값은 “확인 필요”입니다.
뷰 레이어 구성
| 레이어 | 뷰 | 하는 일 | 왜 나누나 |
|---|---|---|---|
| 기준(매핑) | ZLBS_ACCTMAP · ZLBS_POLICY | 계정 → 표시 항목, 회사 → 표시 정책 | 매핑이 바뀌어도 뷰 코드를 안 고치려고 |
| 차원 | ZI_LeaseBsItem | 표시 항목 코드와 이름 | 화면 표와 대사가 같은 항목 목록을 쓰도록 |
| 큐브 | ZI_LeaseBsContractCube | 계약별 사용권자산·리스부채 장부 금액 | 집계 위치를 서버로 고정하려고 |
| 판정 | ZI_LeaseBsCheck | 점검 코드 판정 | 판정 순서를 한 곳에 두려고 |
| 쿼리 | ZC_LeaseBsContractQuery | 조회조건·정렬·화면 노출 필드 | 화면 계약을 한 곳에 두려고 |
| 권한 | ZC_LeaseBsContractQuery (DCL) | 회사코드 권한 | 집계 단계에서 걸러 새어 나가지 않게 |
| 서비스 | ZUI_LeaseBsCheck_O2 | OData V2 서비스 노출 | 화면 선언의 서비스 주소가 이것을 가리키도록 |
① 매핑 테이블 — 계정과 표시 항목, 회사 표시 정책
표시 위치는 코드가 아니라 데이터로 정합니다. 계정이 새로 생기거나 회사의 표시 정책이 바뀌면 이 두 테이블만 고칩니다. 운영에서는 이 값을 회계팀이 관리해야 하므로 변경 권한과 이력이 중요합니다.
" ─────────────────────────────────────────────
" ZLBS_ACCTMAP : 계정 → 재무상태표 표시 항목
" 역할 : 사용권자산·리스부채 계정이 어느 표시 항목에 놓이는지 정한다
" 이유 : 계정이 늘어도 뷰를 고치지 않고 행만 추가하려고
" ─────────────────────────────────────────────
@EndUserText.label : '리스 표시 항목 매핑'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
define table zlbs_acctmap {
key mandt : mandt not null;
key racct : racct not null; " 계정
item_code : abap.char(3); " RSP / PPE / IVP / OTA / LSP / BOR / OTL
side : abap.char(1); " A 사용권자산 L 리스부채
}
@EndUserText.label : '회사별 표시 정책'
define table zlbs_policy {
key mandt : mandt not null;
key bukrs : bukrs not null;
rou_policy : abap.char(1); " S 별도 표시 M 기초자산 항목에 합산
liab_policy : abap.char(1); " S 별도 표시 M 차입금에 합산
}
② 차원 — 표시 항목
화면의 재무상태표 표시 항목 탭과 대사가 같은 목록을 쓰도록 차원 뷰를 따로 둡니다. 항목 코드는 매핑 테이블의 값과 같아야 하며, 이름은 화면 언어에 맞춰 텍스트 뷰로 분리하는 방식이 일반적입니다.
" ZI_LeaseBsItem : 표시 항목 차원 — 화면 표와 대사가 같은 목록을 쓴다
@AbapCatalog.viewEnhancementCategory: [#NONE]
@Analytics.dataCategory: #DIMENSION
@ObjectModel.representativeKey: 'ItemCode'
define view entity ZI_LeaseBsItem
as select distinct from zlbs_acctmap
{
key item_code as ItemCode,
side as ItemSide
}
③ 큐브 — 계약별 장부 금액
장부 금액은 표준 저널 항목 뷰에서 계정 라인을 모아 계약 단위로 만듭니다. 계약 번호를 어느 필드에서 가져올지(오더·참조 필드 등)는 회사마다 달라 확인 필요이며, 통화 필드를 금액에 묶어 두어야 합계가 통화 혼합 없이 계산됩니다.
" ZI_LeaseBsContractCube : 계약별 사용권자산·리스부채 장부 금액
@AbapCatalog.viewEnhancementCategory: [#NONE]
@Analytics.dataCategory: #CUBE
define view entity ZI_LeaseBsContractCube
as select from I_JournalEntryItem as j
inner join zlbs_acctmap as m on m.racct = j.GLAccount
{
key j.CompanyCode,
key j.FiscalYear,
key j.ReferenceDocument as ContractNo, " 계약 번호 출처는 확인 필요
key m.item_code as BsItem,
m.side as Side,
j.CompanyCodeCurrency,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum( j.AmountInCompanyCodeCurrency ) as BookAmount,
max( j.PostingDate ) as PostingDate
}
where j.Ledger = '0L'
group by j.CompanyCode, j.FiscalYear, j.ReferenceDocument, m.item_code, m.side,
j.CompanyCodeCurrency
④ 판정 — 점검 코드
점검 코드의 우선순위는 case 문의 순서로 고정합니다. 판정 순서를 화면이 아니라 뷰에 두면 어느 화면에서 열어도 같은 결과가 나옵니다. 기준 표시는 보유 목적과 회사 정책에서 파생한 값이며, 목적이 비어 있으면 판단하지 않고 P09 로 보냅니다.
" ZI_LeaseBsCheck : 점검 코드 판정 (우선순위 = 앞선 when 이 이긴다)
define view entity ZI_LeaseBsCheck
as select from ZI_LeaseBsContractBase as c " 계약 속성 + 장부·기준 표시 (생략)
{
key c.CompanyCode, key c.FiscalYear, key c.ContractNo,
case
when c.PurposeFlag = 'R' and c.BsRou <> 'IVP' then 'P01'
when c.LiabAmount <> c.LiabCurrent + c.LiabNonCurrent then 'P05'
when c.BsRou in ('PPE','OTA') and c.DiscRou = ' ' then 'P02'
when c.BsLiab in ('BOR','OTL') and c.DiscLiab = ' ' then 'P03'
when c.PurposeFlag <> 'R' and c.BsRou <> c.ExpRou then 'P04'
when c.PurposeFlag = 'C' then 'P09'
else 'P00'
end as CheckCode
}
⑤ 쿼리 — 조회조건과 화면 노출 필드
화면이 받는 필드와 필터 가능한 필드를 소비 뷰에서 한 번 정하면 서비스와 화면이 같은 계약을 봅니다. 회계연도와 회사코드는 필수 조건으로 두어 대용량에서도 범위를 좁히게 합니다.
" ZC_LeaseBsContractQuery : 화면 계약
@AccessControl.authorizationCheck: #CHECK
@Metadata.allowExtensions: true
@Search.searchable: true
define view entity ZC_LeaseBsContractQuery
as projection on ZI_LeaseBsCheck
{
@Consumption.filter: { mandatory: true, selectionType: #SINGLE }
key CompanyCode,
@Consumption.filter: { mandatory: true, selectionType: #SINGLE }
key FiscalYear,
key ContractNo,
@Search.defaultSearchElement: true
ContractName,
@Consumption.filter.selectionType: #SINGLE
CheckCode,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
RouAmount,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
LiabAmount
}
⑥ 권한 — 회사코드 단위 DCL
권한은 화면에서 숨기지 않고 집계 단계에서 겁니다. 드릴다운에만 걸면 합계로 다른 회사의 숫자가 새어 나갑니다. 권한 오브젝트와 필드 매핑은 회사 보안 설계에 따르며 확인 필요입니다.
@EndUserText.label: '리스 표시 점검 — 회사코드 권한'
@MappingRole: true
define role ZC_LeaseBsContractQuery {
grant select on ZC_LeaseBsContractQuery
where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}
⑦ 서비스 정의와 바인딩 — OData V2 로 노출
화면이 바라보는 서비스는 서비스 정의에서 노출할 뷰를 정하고 바인딩으로 게시해 만듭니다. 서비스를 활성화한 뒤 앱 선언의 서비스 주소를 이 서비스로 바꾸면 화면은 그대로 동작합니다.
@EndUserText.label: '리스 표시 점검 서비스'
define service ZUI_LeaseBsCheck {
expose ZC_LeaseBsContractQuery as ContractSet;
expose ZC_LeaseBsStmtQuery as StmtSet;
expose ZC_LeaseBsClassQuery as ClassSet;
expose ZC_LeaseBsReconQuery as ReconSet;
expose ZC_LeaseBsDetailQuery as DetailSet;
}
" 서비스 바인딩 ZUI_LeaseBsCheck_O2 : 바인딩 유형 OData V2 - UI, 게시 후 활성화
운영 시점에 해야 할 일
개발보다 정하는 일이 많습니다.
| 해야 할 일 | 무엇을 정하나 | 정하지 않으면 | 누가 |
|---|---|---|---|
| 계정 → 표시 항목 매핑 | 사용권자산·리스부채 계정이 어느 표시 항목인지 | 화면 숫자가 재무상태표와 어긋나 첫 점검에서 막힙니다 | 회계팀 |
| 회사별 표시 정책 | 별도 표시·합산 표시 중 무엇인지 | 기준 표시를 잘못 정해 점검이 어긋납니다 | 회계팀·감사 대응 담당 |
| 보유 목적 출처 | 목적 값을 어느 필드에서 읽을지 | 투자부동산 점검이 전부 P09 로 쏠립니다 | 계약 관리 담당 |
| 주석 공시 관리 | 합산 항목 공시 여부를 어디에 기록할지 | P02·P03 판정 기준이 없습니다 | 공시 담당 |
| 대사 체계 | FS10N·FAGLL03 과 맞출 항목 | 두 화면 숫자가 다를 때 원인을 못 찾습니다 | 회계팀 |
| 권한 설계 | 회사코드 단위 권한 기준 | 남의 회사 숫자가 합계로 보입니다 | 보안 담당 |
| 전송(TR) 순서 | 매핑 테이블 → 뷰 → 서비스 순 | 서비스가 먼저 활성화되어 빈 결과가 나옵니다 | Basis |
| 서비스 활성화·주소 교체 | 게시한 서비스 활성화와 앱 선언의 서비스 주소 교체 | 화면이 샘플 서비스를 계속 봅니다 | Basis·개발 |
운영 데이터로 갈 때
계약 단위 조회는 서버 페이징으로 충분한 규모가 많습니다. 전표 라인이 대용량이면 집계 뷰를 미리 만들어 두고 회계연도·회사코드를 필수 조건으로 두며, 전표 라인은 계약을 고른 뒤에만 읽도록 합니다. 응답 시간 기준은 실측 뒤에 정하는 것이 맞아 확인 필요입니다.
자주 묻는 질문
도입을 검토하실 때 자주 나오는 질문을 네 묶음으로 정리했습니다.
숫자와 판정
이 화면이 재무상태표 표시가 맞다 틀리다를 판정해 주나요?
아닙니다. 계약별 장부 표시와 회사 표시 정책·보유 목적으로 정한 점검 기준 표시를 견주어 달라 보이는 곳을 “점검 필요”로, 회사가 먼저 판단해야 하는 곳을 “확인 필요”로 알려 주는 점검 도구입니다. 표시 위치의 적정성과 주석 공시의 충분성, 최종 판단은 회사와 감사인이 합니다.
점검 코드는 몇 가지이고 한 계약에 둘 이상 걸리면 어떻게 되나요?
P01(투자부동산 표시 확인), P05(리스부채 재계산 차이), P02(사용권자산 표시 항목 주석), P03(리스부채 표시 항목 주석), P04(표시 정책 확인), P09(보유 목적 확인)와 정상(P00)입니다. 둘 이상 해당하면 이 순서의 앞선 코드 하나로만 표시하므로, 앞선 코드를 정리한 뒤 다시 조회하면 다음 코드가 드러날 수 있습니다.
사용권자산을 유형자산에 합산해 표시한 계약은 모두 “점검 필요”인가요?
아닙니다. 합산 표시 자체는 문제로 보지 않고, 합산한 표시 항목을 주석에 밝히지 않은 계약만 P02 로 띄웁니다. 주석에 밝힌 계약은 정상으로 남습니다. 주석 공시가 충분한지는 이 화면이 판단하지 않습니다.
리스부채 재계산 차이는 어떻게 구하나요?
계약별로 유동 부분과 비유동 부분을 더한 값과 장부의 리스부채 잔액을 견줍니다. 샘플 데이터에서는 두 계약이 각각 15백만 원, 22백만 원 다르게 들어 있어 P05 로 나옵니다. 차이의 원인은 화면이 단정하지 않으며 상환 일정과 전표를 확인해야 합니다.
합계 대사가 맞는데 점검 필요 계약이 있는 건 모순 아닌가요?
모순이 아닙니다. 대사는 표시 항목별로 모은 합계가 계약별 합계와 같은지를 보는 산술 검산이고, 점검 코드는 그 금액이 놓인 위치와 공시 여부를 보는 판단 보조입니다. 금액 합계는 맞아도 위치가 기준과 다를 수 있습니다.
샘플 데이터는 실제 고객 자료인가요?
아닙니다. 가상의 회사코드 1000·2000과 계약 30건, 전표 라인 120건으로 만든 검증용 샘플이며 실제 고객사의 계약·계정·금액을 쓰지 않았습니다. 장부와 기준이 달라 보이는 12건은 화면 동작을 보이려고 의도적으로 넣은 예외입니다.
화면과 조작
조회는 어떻게 하나요?
회계연도를 4자리로 입력하고 조회 버튼을 누르거나 Enter 를 누릅니다. 회사·기초자산 유형·보유 목적·장부 표시·전기일 기간·계약명·점검 코드·점검 결과는 선택이며, “전체”로 두면 그 조건은 서버로 보내지 않습니다. 화면을 처음 열면 2026 으로 자동 조회합니다.
요약 숫자 일곱 가지는 무엇인가요?
점검한 계약 수, 표시 항목 이동 검토(함수 호출 결과), 확인 필요 계약, 주석 공시 점검 계약, 리스부채 재계산 차이 계약, 표시 항목별 장부와 기준의 차이 절댓값 합(백만 원), 정합성 대사 차이 건수입니다. 샘플 기준으로 30·4·2·4·2·12,650·0 이 나옵니다.
행을 누르면 무엇이 열리나요?
보유 목적, 장부·기준 표시 항목, 표시 항목 주석 여부, 점검 내용과 함께 그 계약의 장부 금액을 이룬 전표 라인이 계정별로 열립니다. 전표 번호는 FB03 으로 원전표를 확인하는 출발점이 됩니다.
결과를 파일로 가져갈 수 있나요?
현재 탭의 결과를 UTF-8(BOM) CSV 로 내려받을 수 있고 파일 이름은 기능명과 탭 이름입니다. 엑셀에서 한글이 깨지지 않도록 BOM 을 붙입니다.
좁은 화면에서도 쓸 수 있나요?
창이 좁아지면 조회조건이 위아래로 쌓이고 요약 숫자와 표가 줄바꿈되며 표는 가로로 넘겨 봅니다. 기능은 같고 배치만 달라집니다.
표준 연계와 기준서
이 화면이 SAP 표준 T-code 를 대신하나요?
대신하지 않습니다. 원천 라인은 FAGLL03·FBL3N, 전표는 FB03, 계정 잔액은 FS10N, 리스 계약 조건은 RECN 처럼 표준 화면이 담당하고 이 화면은 표시 위치와 주석 공시, 합계 대사라는 점검 관점을 더해 확장합니다. 기존 리포트를 없앨 필요는 없습니다.
어느 기준서의 어떤 요구를 다루나요?
IFRS 16 리스(K-IFRS 제1116호)에서 리스이용자가 사용권자산과 리스부채를 재무상태표에 별도로 표시하거나, 다른 항목에 포함했다면 그 항목을 주석에 공시하는 요구, 투자부동산 정의에 해당하는 사용권자산의 표시 요구를 다룹니다. 기준서 문단번호는 원문 확인 전이라 적지 않았습니다.
IFRS 16 은 언제부터 적용되나요?
IFRS 16 과 K-IFRS 제1116호는 2019년 1월 1일 이후 개시하는 회계연도부터 적용되는 기준으로 알려져 있습니다. 개별 회사의 경과규정 적용 여부는 이 글에서 확인하지 못해 다루지 않았으며 확인 필요입니다.
투자부동산 판단은 어떻게 하나요?
보유 목적이 임대 또는 시세차익으로 기록된 계약의 사용권자산이 투자부동산 항목에 놓였는지만 봅니다. 투자부동산 정의에 해당하는지의 판단은 회사가 하며, 보유 목적이 비어 있거나 불분명한 계약은 판단하지 않고 P09 로 분리합니다.
회사별 표시 정책은 어디에 두나요?
샘플에서는 회사 1000 이 사용권자산·리스부채를 별도 표시, 회사 2000 이 기초자산 항목·차입금에 합산하는 정책으로 설정되어 있습니다. 실제 운영에서는 정책 값을 매핑 테이블에 두고 변경 이력을 함께 관리해야 하며, 정책 변경 시 비교정보 처리는 확인 필요입니다.
도입과 운영
도입하면 무엇이 달라지나요?
결산마다 계정 잔액과 주석 자료, 계약 목록을 따로 맞추던 일을 한 화면에서 이어 보게 됩니다. 어느 계약의 표시 위치와 주석 공시를 먼저 확인할지 정해 두고 시작할 수 있어 확인 순서가 앞당겨집니다. 효과의 크기는 회사의 계약 수와 현재 점검 방식에 따라 다르며 확인 필요입니다.
누가 쓰나요?
리스 회계를 맡은 재무회계팀과 결산 담당자, 주석 공시를 준비하는 담당자가 주 사용자이고 감사 대응 때 같은 화면을 근거 자료로 열어 볼 수 있습니다. 조회·점검 화면이라 전표를 만들거나 수정하지 않습니다.
데이터는 어디서 가져오나요?
장부 금액은 표준 저널 항목(ACDOCA)의 사용권자산·리스부채 계정 라인에서, 계약 속성과 표시 매핑은 회사별 설정에서 가져오는 구성을 전제로 합니다. 계정과 매핑의 실제 값은 회사마다 달라 확인 필요입니다.
실제 SAP 데이터로 연결하려면 무엇을 바꾸나요?
화면은 앱 선언에 적힌 OData 서비스만 바라보므로 같은 구조의 서비스를 연결하면 화면을 고치지 않습니다. 서비스는 CDS 뷰 위에 서비스 정의와 바인딩을 게시해 만들고, 앱 선언의 서비스 주소를 바꿉니다. 소요 기간은 매핑 합의 범위에 따라 달라 확인 필요입니다.
권한과 보안은 어떻게 하나요?
회사코드 단위 권한을 CDS 접근 제어(DCL)로 집계 단계에 걸어 두는 구성을 권합니다. 화면에서 숨기는 방식은 합계로 새어 나갈 수 있어 서비스 쪽에서 거릅니다. 외부 라이브러리 없이 OpenUI5 표준 컨트롤만 쓰고 외부로 데이터를 보내지 않습니다.
계약이 많아지면 느려지지 않나요?
리스 계약은 수천 건 규모가 일반적이라 계약 단위 조회는 서버 페이징으로 충분한 경우가 많고, 전표 라인은 계약을 고른 뒤에만 읽습니다. 수백만 건 이상의 전표를 매번 집계해야 한다면 집계 뷰를 미리 만들고 회계연도·회사코드를 필수 조건으로 두는 설계가 필요하며 실측은 확인 필요입니다.
계정 체계나 매핑이 바뀌면 어떻게 하나요?
표시 항목과 계정의 연결은 매핑 테이블 한 곳에 있어 계정이 새로 생기거나 표시 정책이 바뀌면 그 테이블만 고칩니다. 화면과 판정 로직은 매핑 값을 읽을 뿐이라 코드를 바꾸지 않습니다. 변경은 이송 요청으로 이력을 남깁니다.
결과를 감사인에게 근거로 낼 수 있나요?
판정 규칙, 대사식, 검사 건수와 차이가 화면과 CSV 에 같은 틀로 남아 설명 자료로 쓸 수 있습니다. 다만 이 화면은 점검 도구이며 표시의 적정성과 공시의 충분성에 대한 최종 판단은 회사와 감사인에게 있습니다.