IFRS 18 자산 처분손익 범주 점검 — 유형자산·무형자산·투자부동산을 처분하며 남긴 손익이 영업·투자·중단영업 범주 중 맞는 곳에 놓였는지 다시 구해 장부와 맞춰 보는 화면
처분손익 재계산 · 범주 재계산 · 장부 범주 비교 · 점검 코드 판정 — 소개 영상과 실제 화면 6종, 그리고 CDS 코드까지
소개 영상1분 5초8개 장면음성 안내 · 자막조회 → 처분 건별 점검 → 점검 필요만 보기 → 상세 → 자산군별 합계 → 대사
개발 배경 — 이 앱을 사용해야 하는 이유
IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호)는 손익계산서의 수익과 비용을 영업 · 투자 · 재무 · 법인세 · 중단영업 범주로 나눠 표시하도록 요구합니다. 자산을 팔거나 폐기하면 처분대가에서 장부금액과 처분비용을 뺀 처분손익이 생기는데, 이 손익이 어느 범주에 놓이는지는 자산의 성격과 회사의 사업에 따라 달라집니다. 기준서의 범주별 정의 요건과 적용 범위는 원문으로 확인해야 하며, 이 글은 화면이 쓰는 단순 규칙을 설명하는 글입니다.
결산을 맡은 팀이 처분이 많은 달에 부딪히는 질문은 단순합니다. 이 처분손익이 영업범주에 있어야 하는가 투자범주에 있어야 하는가, 투자부동산을 팔았는데 주된 사업활동 여부를 반영했는가, 중단영업으로 분류된 사업부의 설비를 처분한 손익이 중단영업 범주에 들어갔는가. 표준 화면에는 처분 전표와 계정 잔액이 있지만, 자산군과 사업 성격을 손익 옆에 놓고 범주를 견주는 자리가 없어 대개 엑셀로 대조합니다.
이 앱은 그 자리를 메웁니다. 처분 건마다 처분손익을 다시 구하고, 자산군 · 주된 사업활동 · 중단영업 여부로 재계산 범주를 정해 장부에 놓인 범주 옆에 보여 주며, 다른 줄에는 이유가 붙은 점검 코드(D01 ~ D04, D09)를 답니다. 표준 실행은 SAP 표준 T-code 가 그대로 맡고, 이 화면은 조회와 점검 관점만 더합니다.
손익 금액이 맞는 것과 범주가 맞는 것은 서로 다른 질문이다
처분대가 − 장부금액 − 처분비용이 처분손익과 같은지는 대사 한 줄로 끝납니다. 그러나 그 손익이 영업범주에 있어야 하는지는 금액만 봐서는 알 수 없습니다. 같은 3억 3천만 원이 투자범주에 있느냐 영업범주에 있느냐가 문제인데, 합계 대사는 이 차이를 잡지 못합니다. 그래서 이 앱은 금액 대사와 범주 점검을 분리해 보여 줍니다.
투자부동산은 회사에 따라 답이 갈린다
투자부동산의 처분손익은 그 회사가 투자부동산 투자를 주된 사업활동으로 하는지에 따라 범주가 달라질 수 있습니다. 이 앱은 회사가 등록한 주된 사업활동 구분(Y/N)을 읽어, 주된 사업활동이 아닌 회사의 투자부동산 처분손익이 영업범주에 놓이면 D02, 주된 사업활동인 회사의 투자부동산 처분손익이 투자범주에 놓이면 D03 으로 가립니다. 구분 자체를 정하는 것은 회사의 몫이고 화면은 그 값을 읽을 뿐입니다.
자산군이 등록되지 않으면 범주를 정하지 않는다
자산군이 비어 있거나 매핑되지 않은 자산은 범주를 판단할 기준이 없습니다. 이 앱은 억지로 영업범주로 두지 않고 판단 보류로 빼낸 뒤 확인 필요(D09)로 표시해 회사가 먼저 자산군을 확인하게 합니다.
사용 방법
- 조회조건 입력 — 회계연도는 필수(4자리, 예: 2026)입니다. 회사 · 자산군 · 장부 범주 · 처분일 구간 · 자산명 일부 · 점검 코드 · 점검 결과는 선택이며 “전체”로 두면 그 조건은 조회에 쓰이지 않습니다.
- 조회 — 조회 버튼을 누르거나 입력 칸에서 Enter 키를 누릅니다. 화면을 처음 열 때는 자동으로 한 번 조회합니다.
- 요약 지표 확인 — 점검한 처분 건수, 점검 필요 항목, 확인 필요 항목, 범주 이동 필요 금액, 영업범주로 놓인 장부 금액, 정합성 대사 차이 건수 여섯 가지를 먼저 봅니다.
- 탭 이동 — 자산별 범주 판정 → 처분 건별 점검 → 자산군별 합계 → 대사 결과 순서로 봅니다. 탭 제목에 현재 조건의 건수가 붙습니다.
- 행 클릭 상세 — 처분 건별 점검 탭에서 행을 누르면 점검 사유와 재계산에 쓴 판단 요소가 팝업으로 열립니다.
- 내려받기 — 현재 탭의 조회 결과를 CSV(UTF-8)로 저장해 결산 점검표나 감사인 요청 자료에 붙입니다.
숫자를 믿을 수 있는가 — 검증 결과
점검 화면이 틀린 숫자를 보여 주면 점검 자체가 의미를 잃습니다. 그래서 화면에 올리기 전에 대사식을 세워 검증용 샘플 데이터 전수에 돌렸습니다. 샘플은 2개 회사, 자산 19개, 처분 22건이며 처분손익 합계는 1,724,000,000원입니다.
| 검사 | 검사 건수 | 차이 건수 | 최대 차이 |
|---|---|---|---|
| R01 · 처분대가 − 장부금액 − 처분비용 = 처분손익 | 22 | 0 | 0 |
| R02 · 처분 건 손익 합계 = 자산별 손익 합계 | 19 | 0 | 0 |
| R03 · 자산별 손익 합계 = 자산군별 손익 합계 | 9 | 0 | 0 |
| R04 · 장부 3범주 + 판정 보류 = 처분손익 | 9 | 0 | 0 |
| R05 · 재계산 3범주 + 판정 보류 = 처분손익 | 9 | 0 | 0 |
| R06 · 이동 필요 금액 = 범주가 다른 항목의 처분손익 | 22 | 0 | 0 |
이 숫자는 정합성 검사이고, 화면에서 점검 필요로 표시되는 건수와는 다른 이야기입니다. 점검 화면을 보여 주려고 일부러 어긋나게 만든 항목이 샘플에 들어 있습니다.
| 점검 화면 예외 | 건수 | 내용 |
|---|---|---|
| 점검 필요 (D01 · D02 · D03 · D04) | 6 | D01 2건 · D02 2건 · D03 1건 · D04 1건 |
| 확인 필요 (D09) | 1 | 자산군이 등록되지 않은 처분 1건 — 범주를 정하지 않고 판단 보류 |
참고 대사 R07 은 점검 필요 처분 건수가 자산별 점검 필요 합계와 같은지를 봅니다. 6건이 양쪽에서 같아 차이가 0 입니다. 이동 필요 금액은 부호를 포함하면 701,000,000원이고, 요약 지표에는 절대값 합계가 백만 원 단위로 표시됩니다. 앞은 “화면이 계산을 제대로 했는가”, 뒤는 “장부가 의심스러운 줄이 몇 개인가”라는 서로 다른 질문입니다.
무엇으로 만들었나
| 자리 | 무엇 | 왜 그렇게 두었나 |
|---|---|---|
| 화면 컨트롤 | 조회조건 영역, 요약 지표 여섯 칸, 탭 네 개, 처분 건 상세 팝업 | 한 화면에서 조회 · 점검 · 상세 · 대사를 오가기 위해서입니다 |
| 데이터 연결 | OData V2 서비스 한 개 — 처분 건 · 자산 · 자산군 · 대사 네 묶음과 점검 필요 건수를 세는 함수 한 개 | 조회조건을 서비스 필터로 보내 정렬 · 페이징 · 총건수를 서비스가 처리하게 했습니다 |
| 판정 로직 | 자산군 · 주된 사업활동 · 중단영업 여부로 재계산 범주를 정하는 단순 규칙 | 화면이 읽을 수 있는 정보만으로 설명 가능한 규칙을 택했습니다 |
| 화면 틀 | SAPUI5 1.120 · sap_horizon 테마 | 표준 Fiori 와 같은 모양으로 현업이 낯설어하지 않게 했습니다 |
앱 정보
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) — 고정자산 처분손익 |
| 관련 기준서 | IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호) — 영업 · 투자 · 중단영업 범주 구분. 시행일 · 경과규정은 이 화면이 다루지 않으며 원문 확인 필요 |
| 대상 자산 | 유형자산 · 무형자산 · 사용권자산 · 투자부동산 (자산군 미등록은 판단 보류) |
| 판정 결과 | 정상(D00) · 점검 필요(D01 ~ D04) · 확인 필요(D09) |
| 데이터 | 검증용 샘플 데이터 — 실제 회사의 숫자가 아닙니다 |
실행 화면
실제 화면 6종입니다. 순서는 사용 순서를 따랐습니다. 처음 연 화면에서 시작해 처분 건별 점검, 자산군별 합계, 대사 결과, 점검 필요만 보기, 상세 팝업으로 이어집니다. 화면 속 자산 이름과 금액은 검증용 샘플 데이터입니다.
처음 열었을 때 — 요약 지표와 자산별 범주 판정
화면을 열면 2026 회계연도로 자동 조회됩니다. 맨 위 조회조건, 그 아래 요약 지표 여섯 칸, 아래에 탭 네 개가 놓입니다.

첫 탭은 자산별 범주 판정입니다. 한 줄이 자산 하나이고, 처분손익 합계, 장부 영업 · 투자 · 중단영업 범주 금액, 재계산 영업 · 투자 · 중단영업 범주 금액, 판정 보류 금액, 이동 필요 금액이 나란히 있습니다. 한 자산에 처분 건이 여럿이면 합계 한 줄로 묶입니다.
처분 건마다 다시 계산한다 — 처분 건별 점검
이 앱의 중심 탭입니다. 처분 건 한 줄마다 자산명, 자산군, 주된 사업활동, 처분대가, 장부금액, 처분비용, 처분손익, 장부 범주, 재계산 범주, 이동 필요 금액, 처분일, 점검 코드와 점검 내용이 나옵니다.

장부 범주와 재계산 범주가 다른 줄은 점검 코드와 함께 색이 붙습니다. D01 은 유형 · 무형 · 사용권자산 처분손익이 영업범주가 아닌 곳에 놓인 경우, D02 와 D03 은 투자부동산 처분손익이 주된 사업활동 구분과 어긋난 경우, D04 는 중단영업 자산의 처분손익이 중단영업 범주에 없는 경우입니다.
자산군으로 묶어 본다 — 자산군별 합계

자산군은 유형자산 · 무형자산 · 사용권자산 · 투자부동산 · 자산군 미등록입니다. 한 자산군에서 점검 필요가 몰려 있으면 그 자산군의 처분손익 계정이 연결된 범주 설정을 먼저 의심합니다. 장부 3범주와 판단 보류 금액을 더하면 처분손익 합계가 됩니다.
마지막으로 대사를 확인한다

R01 부터 R06 은 화면의 계산이 맞는지를 검사하는 정합성 대사이고 차이 건수는 모두 0 입니다. R07 은 점검 필요 처분 건수가 자산별 점검 필요 합계와 같은지를 보는 참고 대사입니다. 정합성 대사에 차이가 보이면 데이터 연결이나 계산을 먼저 의심합니다.
조건을 좁혀 본다 — 점검 필요만 모아 보기

결산 중에는 점검 필요 항목만 먼저 봅니다. 점검 결과를 “점검 필요”로 고르거나 점검 코드를 D02 처럼 하나로 고르고 조회하면 탭 제목의 건수와 요약 지표가 그 조건에 맞춰 다시 계산됩니다. 자산명 일부를 넣고 Enter 를 쳐도 조회됩니다.
한 줄을 열어 이유를 본다 — 처분 건 상세

표의 행을 누르면 팝업이 열려 점검 사유 문장, 재계산에 쓴 자산군 · 주된 사업활동 · 중단영업 여부, 처분손익의 구성(처분대가 − 장부금액 − 처분비용)을 보여 줍니다. 팝업은 닫기 버튼, 바깥 클릭, ESC 로 닫을 수 있습니다.
화면 뒤에서 일어나는 일
조회 버튼을 누르면 조회조건이 서비스 필터로 바뀌어 네 가지 데이터 묶음(처분 건 · 자산 · 자산군 · 대사 결과)에 각각 전달되고, 정렬 · 페이징 · 총건수도 서비스가 처리합니다. 점검 필요 항목 수는 별도의 함수가 처분 건의 점검 코드를 세어 정수 하나로 돌려줍니다. 처분일 조건은 서비스가 직접 걸러 줍니다.
점검 판정 규칙 — 조건에서 사용자 조치까지
| 코드 | 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|---|
| D00 | 재계산 범주와 장부 범주가 같음 | 정상 | 조치 없음 |
| D01 | 유형자산 · 무형자산 · 사용권자산 처분손익이 영업범주가 아닌 곳(투자범주)에 놓임 | 점검 필요 | 분류 근거를 확인하고 영업범주로 옮겨야 하는지 판단 |
| D02 | 투자부동산 투자가 주된 사업활동이 아닌 회사의 투자부동산 처분손익이 영업범주에 놓임 | 점검 필요 | 투자범주 해당 여부를 확인 |
| D03 | 투자부동산 투자가 주된 사업활동인 회사의 투자부동산 처분손익이 투자범주에 놓임 | 점검 필요 | 영업범주 해당 여부를 확인 |
| D04 | 중단영업으로 분류된 자산의 처분손익이 중단영업 범주에 놓이지 않음 | 점검 필요 | 중단영업 범주 반영 여부를 확인 |
| D09 | 자산군이 등록되지 않아 범주를 판단할 기준이 없음 | 확인 필요 | 자산군을 먼저 등록 · 확인한 뒤 다시 조회 |
재계산 범주는 자산군 미등록이면 판단 보류, 중단영업이면 중단영업 범주, 투자부동산이면서 주된 사업활동이 아니면 투자범주, 그 밖은 영업범주로 둔 단순 규칙입니다. 실제 범주 판단은 회사의 사실관계와 기준서 원문에 따라 달라질 수 있어, 차이가 곧 오류라는 뜻은 아니며 사유를 확인하라는 신호입니다.
산출 · 대사 순서
- 처분손익 = 처분대가 − 장부금액 − 처분비용 (대사 R01, 차이 0)
- 재계산 범주 결정 — 자산군 미등록 → 판단 보류 / 중단영업 → 중단영업 범주 / 투자부동산이면서 주된 사업활동이 아님 → 투자범주 / 그 밖 → 영업범주
- 장부 범주와 비교 — 다르면 D01 ~ D04, 자산군 미등록이면 D09
- 이동 필요 금액 = 장부 범주와 재계산 범주가 다른 처분 건의 처분손익 (대사 R06, 차이 0)
- 자산별 합계 = Σ 처분 건 (대사 R02), 자산군별 합계 = Σ 자산별 (대사 R03)
- 장부 3범주 + 판단 보류 = 처분손익 (대사 R04), 재계산 3범주 + 판단 보류 = 처분손익 (대사 R05)
- 참고 대사 R07 — 점검 필요 처분 건수 = Σ 자산별 점검 필요
조회조건
| 조회조건 | 필수 | 기본값 | 필터 조건 |
|---|---|---|---|
| 회계연도 | 필수 | 2026 | Gjahr eq '2026' |
| 회사 | 선택 | 전체 | Bukrs eq '1000' (전체면 필터 없음) |
| 자산군 | 선택 | 전체 | AstClass eq 'IP' |
| 장부 범주 | 선택 | 전체 | BookedCat eq 'OPR' (처분 건별 탭) |
| 처분일 시작 · 종료 | 선택 | 비어 있음 | DispDate ge … and le … (범위 하나로 전송) |
| 자산명 | 선택 | 비어 있음 | substringof('평택',AssetName) 형태의 포함 조건 |
| 점검 코드 | 선택 | 전체 | CheckCode eq 'D02' |
| 점검 결과 | 선택 | 전체 | CheckStatus eq 'CHECK' |
결과 컬럼
| 탭 | 주요 컬럼 | 의미 |
|---|---|---|
| 자산별 범주 판정 | 처분손익 합계 · 장부 3범주 · 재계산 3범주 · 판정 보류 금액 · 이동 필요 금액 · 처분 건수 · 점검 결과 | 자산 하나의 처분 건을 모아 장부 범주와 재계산 범주 금액을 나란히 보여 줍니다 |
| 처분 건별 점검 | 처분손익 · 장부 범주 · 재계산 범주 · 점검 결과 · 이동 필요 금액 · 주된 사업활동 · 처분대가 · 장부금액 · 처분비용 · 점검 내용 | 처분 건마다 범주를 견준 결과입니다 (행을 누르면 상세) |
| 자산군별 합계 | 자산군 · 처분손익 합계 · 장부 · 재계산 범주 금액 | 자산군마다 범주가 갈리는 금액입니다 |
| 대사 결과 | 대사 항목 · 좌변 · 우변 · 검사 건수 · 차이 건수 · 최대 차이 | 합계가 서로 맞는지 확인한 결과입니다 |
파일 구성
index.html · Component.js · manifest.json
controller/ BaseController.js · Main.controller.js
view/ Main.view.xml · DetailDialog.fragment.xml
model/ formatter.js · ErrorHandler.js
css/ · i18n/ (i18n_ko.properties)
서비스 정의 metadata.xml · service.js · 엔티티셋별 데이터
media/ intro.mp4 · intro_poster.jpg
SAP 표준 기능 확장 포인트 — 표준 T-code 와 어떻게 연계되는지
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 점검 관점을 더해 확장합니다. 이 절은 어디까지가 표준이고 어디서부터가 이 앱인지, 두 화면의 숫자를 어디서 맞춰 보는지를 정리합니다.
표준으로 되는 것과 안 되는 것
| 하고 싶은 일 | 표준 화면으로 되는 정도 | 이 앱이 더하는 관점 |
|---|---|---|
| 자산 하나의 처분 거래와 금액 확인 | AW01N 자산 탐색기로 충분합니다 | 처분 건을 회사 · 자산군 단위로 모아 한 표에 보여 줍니다 |
| 처분손익 계정의 전표 확인 | FAGLL03 으로 충분합니다 | 계정 라인이 아니라 처분 건 단위로 손익과 범주를 묶어 보여 줍니다 |
| 자산의 기초 · 증감 · 기말 장부금액 | S_ALR_87011990 자산 이력 시트로 충분합니다 | 처분 건의 장부금액이 처분손익 산식에 어떻게 들어갔는지 한 줄에서 봅니다 |
| 처분손익이 맞는 범주에 있는지 확인 | 표준에는 이 관점이 없어 직접 대조해야 합니다 | 자산군 · 주된 사업활동 · 중단영업 여부로 재계산 범주를 정해 장부 범주와 비교 |
| 범주가 다른 줄만 모아 보기 | 표준에서는 줄마다 열어 봐야 합니다 | 점검 필요 · 확인 필요를 필터 하나로 모아 보고 CSV 로 내보냅니다 |
T-code 별 연계 지점
| T-code | 이름 | 연계 |
|---|---|---|
| AW01N | 자산 탐색기 | 자산 하나의 처분 거래와 금액을 원천에서 확인합니다. 이 앱의 처분 건 한 줄에서 금액이 의심스러우면 해당 자산으로 이 화면을 엽니다. |
| F-92 | 고객 대상 자산 매각 | 처분대가가 생기는 매각 전기입니다. 이 앱의 처분대가 · 처분손익 원천입니다. |
| ABAVN | 수익 없는 자산 폐기 | 폐기로 생기는 처분손실의 원천을 확인합니다. |
| S_ALR_87011990 | 자산 이력 시트 | 기초 · 증감 · 기말 자산 장부금액을 맞춰 보는 표준 리포트입니다. |
| FAGLL03 | G/L 계정 라인 아이템 | 처분손익 계정의 전표를 범주별 계정과 맞춰 봅니다. |
오가는 방법은 두 갈래입니다. 이 앱에서 시작할 때는 점검 필요 줄의 자산을 확인한 뒤 위 T-code 에서 원천을 열고, 표준 화면에서 시작할 때는 이상한 처분 전표를 찾은 뒤 이 앱의 처분 건별 점검 탭에서 그 자산의 재계산 범주를 봅니다. 법정 보고와 감사 대응에 쓰는 화면은 표준에 그대로 둡니다.
요구사항 매핑표
| 기준서 | 요구사항 | 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호) | 손익계산서 범주 분류 — 영업 · 투자 · 재무 · 법인세 · 중단영업 | 처분손익 범주 재계산과 장부 범주 비교(D01 ~ D04) | 자산 마스터 · 자산 거래 · 원장 전표 | 범주별 정의 요건은 원문 확인 필요 |
| IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호) | 투자범주 손익의 식별 — 투자부동산 손익 | 투자부동산 처분손익의 투자범주 · 영업범주 판단(D02 · D03) | 자산 마스터(자산군) · 주된 사업활동 설정 | 주된 사업활동 판단은 회사의 몫 |
| IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호) | 중단영업 범주 표시 | 중단영업으로 분류된 자산의 처분손익 확인(D04) | 자산 마스터 · 중단영업 분류 설정 | 분류 자체는 회사가 판단 |
| IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호) | 전환 시 비교기간 재작성 | 이 화면은 당기 처분 건만 다룸 | - | 전환 조정은 별도 점검 필요 |
확장 포인트 — 운영에서 실제로 손대는 자리
| 자리 | 무엇을 손대나 | 비고 |
|---|---|---|
| 자산군 매핑 | 자산 클래스를 5개 자산군(유형 · 무형 · 사용권 · 투자부동산 · 미등록)으로 묶는 규칙 | 화면 코드가 아니라 매핑 테이블을 고칩니다 |
| 주된 사업활동 구분 | 회사별 투자부동산 투자의 주된 사업활동 여부(Y/N) | 회계팀이 정하고 설정 테이블에 둡니다 |
| 중단영업 분류 | 중단영업으로 분류된 사업부 · 자산 | 분류 자체는 회사가 판단합니다 |
| 처분손익 계정 → 범주 | 처분손익 계정이 영업 · 투자 · 중단영업 중 어느 범주 계정인지 | 장부 범주의 원천이라 가장 먼저 맞춰야 합니다 |
CDS 구성 — 코드와 운영 작업
아래 코드는 이 화면이 쓰는 데이터를 S/4HANA 위에 CDS 로 올릴 때의 스케치입니다. 표준 CDS 뷰 이름은 확인한 것만 쓰고, 확인하지 못한 자리는 원천 테이블(ANLA · ANEP · ACDOCA) 기준으로 썼습니다. 실제 시스템의 릴리스에 맞춘 검증은 구현 단계에서 거쳐야 합니다.
뷰 레이어 구성
| 레이어 | 뷰 | 하는 일 | 왜 나누나 |
|---|---|---|---|
| 기준 (설정 테이블) | ZPPE_ASTCLS | 자산 클래스를 5개 자산군으로 묶는 매핑 | 자산군은 회사가 정하는 값이라 코드에 넣지 않고 회계팀이 관리합니다 |
| 기준 (설정 테이블) | ZPPE_ENTITY | 회사별 주된 사업활동 구분 · 중단영업 분류 | 회사 정책이므로 코드가 아니라 테이블에 둡니다 |
| 기본 뷰 | ZI_PpeDispItem | 처분 거래 + 자산 마스터 | 원천 조인을 한 곳에 모읍니다 |
| 큐브 | ZC_PpeDispCategory | 장부 범주와 재계산 범주를 나란히 | 판정 쿼리가 읽을 단일 기준입니다 |
| 쿼리 | ZQ_PpeDispCheck | 점검 코드 판정 | 판정이 한 곳에 모여 화면과 배치가 같이 바뀝니다 |
| 서비스 정의 | ZUI_PpeDispCheck | OData 로 노출 | 화면이 바라보는 문입니다 |
① 설정 테이블 — 자산군과 주된 사업활동
이 앱의 판정은 자산이 어느 자산군인지, 회사가 투자부동산 투자를 주된 사업활동으로 하는지에서 출발합니다. 코드가 아니라 테이블에 두어야 회계팀이 직접 관리할 수 있고, 새 자산 클래스가 생겨도 개발 없이 반영됩니다. 매핑되지 않은 클래스는 미등록(UNK)으로 읽혀 곧바로 확인 필요(D09)로 드러납니다.
@EndUserText.label: '자산 클래스 → 자산군 매핑'
define table zppe_astcls {
key client : abap.clnt not null;
key anlkl : anlkl not null; " 자산 클래스
astclass : abap.char(3); " PPE / INT / ROU / IP
}
@EndUserText.label: '회사별 주된 사업활동 · 중단영업 분류'
define table zppe_entity {
key client : abap.clnt not null;
key bukrs : bukrs not null;
maininv : abap.char(1); " 투자부동산 투자가 주된 사업활동인가 (Y/N)
discflag: abap.char(1); " 중단영업으로 분류된 회사인가 (Y/N)
}
② 기본 뷰 — 처분 거래를 자산 단위로
@AccessControl.authorizationCheck: #CHECK
define view entity ZI_PpeDispItem
as select from anep
inner join anla on anla.bukrs = anep.bukrs
and anla.anln1 = anep.anln1
and anla.anln2 = anep.anln2
left outer join zppe_astcls as cls on cls.anlkl = anla.anlkl
left outer join zppe_entity as ent on ent.bukrs = anep.bukrs
{
key anep.bukrs,
key anep.anln1,
key anep.belnr,
anla.txt50 as AssetName,
coalesce( cls.astclass, 'UNK' ) as AstClass,
ent.maininv as MainInv,
ent.discflag as DiscFlag,
anep.bzdat as DispDate,
@Semantics.amount.currencyCode: 'Waers'
anep.anbtr as Amount
}
③ 큐브 — 재계산 범주와 장부 범주를 나란히
재계산 범주는 이 한 곳에서만 정합니다. 화면 로직도 배치도 이 뷰를 읽으므로 두 곳의 숫자가 갈라지지 않습니다. 장부 범주는 처분손익 계정이 속한 범주 설정에서 읽으며, 그 매핑은 확인 필요 항목입니다.
define view entity ZC_PpeDispCategory
as select from ZI_PpeDispItem
{
key bukrs, key anln1, key belnr,
AssetName, AstClass, MainInv, DiscFlag,
case when DiscFlag = 'Y' then 'DISC' " 중단영업
when AstClass = 'UNK' then 'NONE' " 판단 보류
when AstClass = 'IP' and MainInv <> 'Y' then 'INV' " 투자범주
else 'OPR' end as ExpectCat,
" BookedCat : 처분손익 계정 → 범주 매핑 (확인 필요)
BookedCat
}
④ 쿼리 — 점검 코드를 판정한다
@Analytics.query: true
define view entity ZQ_PpeDispCheck
as select from ZC_PpeDispCategory
{
key bukrs, key anln1, key belnr,
BookedCat, ExpectCat,
case
when ExpectCat = 'NONE' then 'D09'
when BookedCat = ExpectCat then 'D00'
when ExpectCat = 'DISC' then 'D04'
when AstClass = 'IP' and ExpectCat = 'INV' then 'D02'
when AstClass = 'IP' and ExpectCat = 'OPR' then 'D03'
else 'D01' end as CheckCode
}
판정 순서는 기계가 판정할 수 없는 것(D09)을 먼저 빼고, 같으면 정상(D00), 그다음 중단영업(D04), 투자부동산(D02 · D03), 나머지(D01) 순입니다. 앞 조건에 걸리면 뒤 조건은 보지 않으므로 한 줄에는 점검 코드가 하나만 붙습니다.
⑤ 권한과 서비스 정의
@EndUserText.label: '회사코드 단위 권한'
define role ZPPE_DispCheck {
grant select on ZC_PpeDispCategory
where ( bukrs ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}
define service ZUI_PpeDispCheck {
expose ZQ_PpeDispCheck as DispSet;
}
" 서비스 바인딩 : 유형 OData V2 - UI, 게시 후 활성화 (서비스 활성화 위치는 릴리스에 따라 확인 필요)
운영 시점에 해야 할 일
개발보다 정하는 일이 많습니다. 아래는 코딩이 아니라 합의입니다.
| 해야 할 일 | 무엇을 정하나 | 정하지 않으면 | 누가 |
|---|---|---|---|
| 자산군 매핑 | 자산 클래스를 5개 자산군으로 묶는 규칙 | 미등록이 쏟아져 확인 필요(D09)로 첫 점검이 막힙니다 | 회계팀 |
| 주된 사업활동 구분 | 회사별 투자부동산 투자의 주된 사업활동 값 | D02 · D03 판정이 비어 투자부동산 처분을 점검할 수 없습니다 | 회계팀 |
| 처분손익 계정 → 범주 | 처분손익 계정의 장부 범주 | 장부 범주 합계가 재무제표와 어긋납니다 | 회계팀 |
| 판정 규칙 합의 | 재계산 범주 단순 규칙의 적용 범위 | 화면 결과를 믿어도 되는지 다시 묻게 됩니다 | 회계팀 · 감사 대응 |
| 권한 설계 | 회사코드 단위 조회 권한 | 남의 회사 처분 내역이 줄 단위로 보입니다 | 보안 · 권한 |
| 전송 순서와 서비스 활성화 | CDS · 서비스 · 앱 순서 | 서비스가 먼저 올라가 빈 화면이 나옵니다 | Basis |
운영 데이터로 갈 때
집계를 데이터베이스 쪽에서 끝내고 회계연도를 필수 조건으로 두면 처분 건수가 늘어도 응답이 크게 흔들리지 않습니다. 이 앱이 읽는 것은 처분 거래 라인이기 때문입니다. 설정 테이블은 행 수가 적어 조인 비용이 작습니다. 응답이 느리다면 화면이 아니라 기본 뷰의 조인과 접근 경로를 먼저 점검하고, 정확한 응답 시간은 시스템 규모에 따라 달라 실제 환경에서 측정해야 합니다.
자주 묻는 질문
도입을 검토할 때 자주 나오는 질문을 네 묶음으로 모았습니다.
숫자와 산식
재계산 범주는 어떻게 정하나요?
자산군이 등록되지 않았으면 판단 보류(NONE), 중단영업으로 분류됐으면 중단영업(DISC), 투자부동산이면서 주된 사업활동이 아니면 투자(INV), 그 밖에는 영업(OPR)으로 둡니다.
이 방식은 화면이 읽을 수 있는 정보만으로 만든 단순 규칙이라 회사의 사실관계에 따른 실제 판단과 다를 수 있습니다. 차이가 곧 오류라는 뜻은 아니며, 차이가 나는 줄의 사유를 확인하라는 신호입니다.
점검 필요와 확인 필요는 무엇이 다른가요?
점검 필요는 화면이 계산해 보니 장부 범주와 재계산 범주가 다른 경우입니다. 확인 필요는 화면이 계산할 수 없어 사람이 근거 자료를 봐야 하는 경우, 곧 자산군이 등록되지 않은 경우입니다. 둘을 섞으면 현업이 확인 필요를 오류로 오해해 화면을 불신하게 되므로 나눠 두었습니다.
정합성 대사 차이와 점검 필요 건수는 왜 따로 보나요?
정합성 대사는 화면의 계산이 맞는지를 검사하고, 점검 필요는 장부가 의심스러운 줄이 몇 개인지를 셉니다. 앞의 차이가 0 이 아니면 데이터 연결이나 계산 자체를 의심해야 하고, 뒤의 건수는 정상적인 점검 결과입니다.
이동 필요 금액은 무엇을 뜻하나요?
장부 범주와 재계산 범주가 다른 처분 건의 처분손익입니다. 처분이익과 처분손실이 섞여 부호를 포함한 합계(샘플 701,000,000원)와 요약 지표의 절대값 합계가 다릅니다. 범주를 실제로 옮길지는 회사와 감사인이 판단할 일이고, 이 금액은 영향 규모를 가늠하는 참고 숫자입니다.
자산군이 등록되지 않은 처분은 어떻게 처리하나요?
재계산 범주를 정하지 않고(NONE) 확인 필요(D09)로 표시합니다. 처분손익 합계에는 들어가며, 장부 3범주 + 판단 보류 금액이 처분손익과 같도록 대사 R04 · R05 에서 판단 보류 금액을 따로 더합니다.
화면과 조작
조회조건을 모두 비우면 어떻게 되나요?
회계연도는 필수이고 나머지는 선택입니다. 선택 조건을 “전체”나 빈칸으로 두면 그 조건은 서비스로 보내지 않아 해당 회계연도의 모든 회사 · 자산이 조회됩니다.
점검 필요 항목만 빠르게 볼 수 있나요?
점검 결과를 “점검 필요”로 고르고 조회하면 됩니다. 점검 코드를 하나만 고르면 그 유형만 남고, 탭 제목의 건수와 요약 지표가 같은 조건으로 다시 계산됩니다. 조건을 되돌릴 때는 초기화 버튼을 누릅니다.
행을 눌렀을 때 나오는 상세에는 무엇이 있나요?
점검 사유 문장, 재계산에 쓴 자산군 · 주된 사업활동 · 중단영업 여부, 처분손익의 구성이 나옵니다. 팝업은 닫기 버튼, 바깥 클릭, ESC 로 닫을 수 있습니다.
조회 결과를 엑셀로 가져갈 수 있나요?
현재 탭의 조회 결과를 UTF-8 CSV 로 내려받을 수 있습니다. 한글이 깨지지 않도록 BOM 을 붙였으므로 엑셀에서 바로 열립니다. 결산 점검표나 감사인 요청 자료에 붙이는 용도로 쓰고, 원본 장부는 표준 화면에 남아 있습니다.
표준 T-code 와 데이터
기존 표준 화면을 없애야 하나요?
아니요. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 점검 관점을 더해 확장합니다. 법정 보고와 감사 대응에 쓰는 화면은 표준에 그대로 두고, 이 앱은 결산 중 어느 줄을 먼저 볼지 가리는 보조 화면으로 씁니다.
FAGLL03 과는 어떻게 맞춰 보나요?
이 앱의 처분 건 한 줄에서 금액이 의심스러우면 해당 처분손익 계정으로 FAGLL03 을 열어 전표 합계를 맞춰 봅니다. 두 화면의 금액이 다르면 먼저 계정이 어느 범주에 매핑되었는지 확인합니다.
데이터는 어디서 오나요?
처분 거래와 금액은 표준 자산회계 테이블(ANLA · ANEP)에서, 계정 라인은 ACDOCA 에서 오고, 자산군 매핑과 주된 사업활동 · 중단영업 분류는 회사가 관리하는 설정 테이블에서 옵니다. 설정 테이블이 비어 있으면 판정이 되지 않으므로 도입 초기에 채우는 일이 가장 먼저입니다.
도입과 운영
이 화면은 어떤 기준서와 관련이 있나요?
IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호)의 영업 · 투자 · 중단영업 범주 구분과 관련합니다. IFRS 18 은 2027-01-01 이후 개시하는 회계연도부터 적용하며 조기적용이 허용됩니다. 이 화면은 그 밖의 시행일 · 경과규정은 다루지 않으며, 범주별 정의 요건은 기준서 원문으로 확인해야 합니다.
이 화면이 범주를 대신 정해 주나요?
아닙니다. 이 화면은 분류 · 집계 · 대사를 돕는 점검 도구입니다. 범주의 최종 판단은 회사와 감사인이 하며, 화면은 재계산 범주와 장부 범주가 다른 줄과 근거가 비어 있는 줄을 가려내는 데까지만 갑니다.
권한과 보안은 어떻게 하나요?
이 화면은 줄 단위로 처분 내역을 보여 주므로 합계 화면보다 노출 위험이 큽니다. 회사코드 단위 권한을 CDS 에 걸어 서비스로 읽을 때도 제한하는 것을 권합니다. 권한 설계는 도입 초기에 반드시 정해야 하는 항목입니다.
샘플 데이터 대신 운영 데이터로 쓰려면 무엇이 필요한가요?
샘플 서비스를 운영 서비스로 바꾸고, 설정 테이블과 매핑 테이블을 회사 기준으로 채우며, 권한을 설계해야 합니다. 화면의 서비스 경로는 앱 설정의 서비스 선언 한 줄만 바꾸면 됩니다. 운영 전환 전에는 FAGLL03 · S_ALR_87011990 과 맞추는 대사 절차를 정해 두는 것이 좋습니다.