재무회계

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)로 표시해 회사가 먼저 자산군을 확인하게 합니다.

사용 방법

  1. 조회조건 입력 — 회계연도는 필수(4자리, 예: 2026)입니다. 회사 · 자산군 · 장부 범주 · 처분일 구간 · 자산명 일부 · 점검 코드 · 점검 결과는 선택이며 “전체”로 두면 그 조건은 조회에 쓰이지 않습니다.
  2. 조회 — 조회 버튼을 누르거나 입력 칸에서 Enter 키를 누릅니다. 화면을 처음 열 때는 자동으로 한 번 조회합니다.
  3. 요약 지표 확인 — 점검한 처분 건수, 점검 필요 항목, 확인 필요 항목, 범주 이동 필요 금액, 영업범주로 놓인 장부 금액, 정합성 대사 차이 건수 여섯 가지를 먼저 봅니다.
  4. 탭 이동 — 자산별 범주 판정 → 처분 건별 점검 → 자산군별 합계 → 대사 결과 순서로 봅니다. 탭 제목에 현재 조건의 건수가 붙습니다.
  5. 행 클릭 상세 — 처분 건별 점검 탭에서 행을 누르면 점검 사유와 재계산에 쓴 판단 요소가 팝업으로 열립니다.
  6. 내려받기 — 현재 탭의 조회 결과를 CSV(UTF-8)로 저장해 결산 점검표나 감사인 요청 자료에 붙입니다.

숫자를 믿을 수 있는가 — 검증 결과

점검 화면이 틀린 숫자를 보여 주면 점검 자체가 의미를 잃습니다. 그래서 화면에 올리기 전에 대사식을 세워 검증용 샘플 데이터 전수에 돌렸습니다. 샘플은 2개 회사, 자산 19개, 처분 22건이며 처분손익 합계는 1,724,000,000원입니다.

검사검사 건수차이 건수최대 차이
R01 · 처분대가 − 장부금액 − 처분비용 = 처분손익2200
R02 · 처분 건 손익 합계 = 자산별 손익 합계1900
R03 · 자산별 손익 합계 = 자산군별 손익 합계900
R04 · 장부 3범주 + 판정 보류 = 처분손익900
R05 · 재계산 3범주 + 판정 보류 = 처분손익900
R06 · 이동 필요 금액 = 범주가 다른 항목의 처분손익2200

이 숫자는 정합성 검사이고, 화면에서 점검 필요로 표시되는 건수와는 다른 이야기입니다. 점검 화면을 보여 주려고 일부러 어긋나게 만든 항목이 샘플에 들어 있습니다.

점검 화면 예외건수내용
점검 필요 (D01 · D02 · D03 · D04)6D01 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)
데이터검증용 샘플 데이터 — 실제 회사의 숫자가 아닙니다
SAP 표준 기능을 그대로 이어받은 부분 — 처분 거래와 금액은 표준 자산회계의 처분 전기에서 오고, 장부 범주는 처분손익 계정이 속한 범주 설정을 따릅니다. 이 앱은 표준 데이터 구조를 그대로 이어받아 조회 · 재계산 · 대사 관점만 더하고, 표준 전기와 마감은 건드리지 않습니다.

실행 화면

실제 화면 6종입니다. 순서는 사용 순서를 따랐습니다. 처음 연 화면에서 시작해 처분 건별 점검, 자산군별 합계, 대사 결과, 점검 필요만 보기, 상세 팝업으로 이어집니다. 화면 속 자산 이름과 금액은 검증용 샘플 데이터입니다.

처음 열었을 때 — 요약 지표와 자산별 범주 판정

화면을 열면 2026 회계연도로 자동 조회됩니다. 맨 위 조회조건, 그 아래 요약 지표 여섯 칸, 아래에 탭 네 개가 놓입니다.

처음 연 화면
처음 연 화면 — 회계연도를 정하고 조회하면 요약 지표와 자산별 범주 판정이 함께 뜹니다.

첫 탭은 자산별 범주 판정입니다. 한 줄이 자산 하나이고, 처분손익 합계, 장부 영업 · 투자 · 중단영업 범주 금액, 재계산 영업 · 투자 · 중단영업 범주 금액, 판정 보류 금액, 이동 필요 금액이 나란히 있습니다. 한 자산에 처분 건이 여럿이면 합계 한 줄로 묶입니다.

처분 건마다 다시 계산한다 — 처분 건별 점검

이 앱의 중심 탭입니다. 처분 건 한 줄마다 자산명, 자산군, 주된 사업활동, 처분대가, 장부금액, 처분비용, 처분손익, 장부 범주, 재계산 범주, 이동 필요 금액, 처분일, 점검 코드와 점검 내용이 나옵니다.

처분 건별 점검 탭
처분 건별 점검 탭 — 처분 건마다 처분손익을 구하고 재계산한 범주를 장부 범주 옆에 놓습니다.

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

자산군으로 묶어 본다 — 자산군별 합계

자산군별 합계 탭
자산군별 합계 탭 — 자산군마다 장부 범주와 재계산 범주 금액이 어떻게 갈리는지 보여 줍니다.

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

마지막으로 대사를 확인한다

대사 결과 탭
대사 결과 탭 — 정합성 대사 6건과 참고 대사 1건의 좌변 · 우변 · 검사 건수 · 차이 건수를 보여 줍니다.

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

조건을 좁혀 본다 — 점검 필요만 모아 보기

조회조건을 좁힌 화면
조회조건을 좁힌 화면 — 점검 결과나 점검 코드로 좁히면 해당 처분 건만 남고 합계가 바뀝니다.

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

한 줄을 열어 이유를 본다 — 처분 건 상세

처분 건 상세 팝업
처분 건 상세 팝업 — 행을 누르면 자산군 · 처분일 · 점검 근거가 한 화면에 나옵니다.

표의 행을 누르면 팝업이 열려 점검 사유 문장, 재계산에 쓴 자산군 · 주된 사업활동 · 중단영업 여부, 처분손익의 구성(처분대가 − 장부금액 − 처분비용)을 보여 줍니다. 팝업은 닫기 버튼, 바깥 클릭, ESC 로 닫을 수 있습니다.

화면 뒤에서 일어나는 일

조회 버튼을 누르면 조회조건이 서비스 필터로 바뀌어 네 가지 데이터 묶음(처분 건 · 자산 · 자산군 · 대사 결과)에 각각 전달되고, 정렬 · 페이징 · 총건수도 서비스가 처리합니다. 점검 필요 항목 수는 별도의 함수가 처분 건의 점검 코드를 세어 정수 하나로 돌려줍니다. 처분일 조건은 서비스가 직접 걸러 줍니다.

점검 판정 규칙 — 조건에서 사용자 조치까지

코드판정 조건결과 상태사용자 조치
D00재계산 범주와 장부 범주가 같음정상조치 없음
D01유형자산 · 무형자산 · 사용권자산 처분손익이 영업범주가 아닌 곳(투자범주)에 놓임점검 필요분류 근거를 확인하고 영업범주로 옮겨야 하는지 판단
D02투자부동산 투자가 주된 사업활동이 아닌 회사의 투자부동산 처분손익이 영업범주에 놓임점검 필요투자범주 해당 여부를 확인
D03투자부동산 투자가 주된 사업활동인 회사의 투자부동산 처분손익이 투자범주에 놓임점검 필요영업범주 해당 여부를 확인
D04중단영업으로 분류된 자산의 처분손익이 중단영업 범주에 놓이지 않음점검 필요중단영업 범주 반영 여부를 확인
D09자산군이 등록되지 않아 범주를 판단할 기준이 없음확인 필요자산군을 먼저 등록 · 확인한 뒤 다시 조회

재계산 범주는 자산군 미등록이면 판단 보류, 중단영업이면 중단영업 범주, 투자부동산이면서 주된 사업활동이 아니면 투자범주, 그 밖은 영업범주로 둔 단순 규칙입니다. 실제 범주 판단은 회사의 사실관계와 기준서 원문에 따라 달라질 수 있어, 차이가 곧 오류라는 뜻은 아니며 사유를 확인하라는 신호입니다.

산출 · 대사 순서

  1. 처분손익 = 처분대가 − 장부금액 − 처분비용 (대사 R01, 차이 0)
  2. 재계산 범주 결정 — 자산군 미등록 → 판단 보류 / 중단영업 → 중단영업 범주 / 투자부동산이면서 주된 사업활동이 아님 → 투자범주 / 그 밖 → 영업범주
  3. 장부 범주와 비교 — 다르면 D01 ~ D04, 자산군 미등록이면 D09
  4. 이동 필요 금액 = 장부 범주와 재계산 범주가 다른 처분 건의 처분손익 (대사 R06, 차이 0)
  5. 자산별 합계 = Σ 처분 건 (대사 R02), 자산군별 합계 = Σ 자산별 (대사 R03)
  6. 장부 3범주 + 판단 보류 = 처분손익 (대사 R04), 재계산 3범주 + 판단 보류 = 처분손익 (대사 R05)
  7. 참고 대사 R07 — 점검 필요 처분 건수 = Σ 자산별 점검 필요

조회조건

조회조건필수기본값필터 조건
회계연도필수2026Gjahr 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자산 이력 시트기초 · 증감 · 기말 자산 장부금액을 맞춰 보는 표준 리포트입니다.
FAGLL03G/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_PpeDispCheckOData 로 노출화면이 바라보는 문입니다

① 설정 테이블 — 자산군과 주된 사업활동

이 앱의 판정은 자산이 어느 자산군인지, 회사가 투자부동산 투자를 주된 사업활동으로 하는지에서 출발합니다. 코드가 아니라 테이블에 두어야 회계팀이 직접 관리할 수 있고, 새 자산 클래스가 생겨도 개발 없이 반영됩니다. 매핑되지 않은 클래스는 미등록(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 과 맞추는 대사 절차를 정해 두는 것이 좋습니다.