SAP 세그먼트별 손익·재무 현황 — 사업부문 공시를 위한 숫자
세그먼트별로 손익계산서와 재무상태표를 조회하고, 계정유형별 소계와 회계 항등식을 검증하는 화면입니다.
K-IFRS 는 사업부문별 실적을 공시하도록 요구합니다. 회사 전체 숫자만으로는 어느 부문이 성장하고 어느 부문이 위축되는지 투자자가 알 수 없기 때문입니다.
세그먼트별로 손익만 내면 부족합니다. 자산과 부채도 부문별로 나눠야 하고, 그때 회계 항등식이 부문 단위로도 성립해야 합니다. 표준 세그먼트 구조를 그대로 이어받아 두 제표를 함께 검증하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 세그먼트 — 사업부문 구분(
Segment) - 원장 — 리딩 원장과 병행 원장(
Ledger) - 계정 — 계정코드(
Account)와 명칭(AccountText) - 계정유형 — 자산·부채·자본·수익·비용(
AcctType)과 분류(Category) - 정상 잔액 방향 — 차변·대변(
NormalSide)
| 항목 | 내용 |
|---|---|
| 기반 기능 | FAGLB03 · FAGLL03H · FGI0 |
| 업무 영역 | 재무회계(FI) · 세그먼트 보고 · 공시 |
| Namespace | zui5.segrep |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 손익·재무상태 테이블 + 검증 |
| 화면 수 | 조회 화면 1개 + 계정 상세 |
| 데이터 | 세그먼트 상세 2,688건 · 요약 168건 |
| 성격 | 조회형(Read-Only) — 전기는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·세그먼트·원장·기간으로 조회하면 두 제표가 나옵니다 → 계정유형별 소계를 확인하고 → 회계 항등식이 성립하는지 검증합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 세그먼트를 고릅니다.
- 원장을 고릅니다. IFRS 원장과 세무 원장의 숫자가 다릅니다.
- 회계연도·기간을 지정합니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 손익계산서에서 세그먼트 실적을 확인합니다.
- 재무상태표에서 자산·부채·자본을 확인합니다.
- 회계 항등식이 성립하는지 봅니다. 안 맞으면 세그먼트 할당 누락입니다.
- 결과는 CSV 다운로드로 내려받아 공시 자료로 씁니다.
검증 규칙
세그먼트 단위로도 회계 원칙이 성립해야 합니다.
계정유형별 소계
자산 · 부채 · 자본 · 수익 · 비용
회계 항등식 자산총계 = 부채총계 + 자본총계
차대일치 Σ(차변 잔액) = Σ(대변 잔액)
정상 잔액 방향(NormalSide)
Debit 자산 · 비용
Credit 부채 · 자본 · 수익
항등식 불성립 → 세그먼트 미할당 전표 존재
세그먼트별로 항등식을 검증하는 이유
회사 전체로는 자산과 부채·자본이 맞습니다. 그런데 세그먼트를 나누면 한쪽에만 할당된 전표 때문에 부문 단위에서는 어긋날 수 있습니다. 공시 자료는 부문별로 나가므로 그 단위에서 성립하지 않으면 그대로 쓸 수 없습니다.
세그먼트 보고 4단계
| 단계 | 내용 | 결과 |
|---|---|---|
| ① 세그먼트 정의 | 사업부문 구분 설정 | 세그먼트 코드 |
| ② 할당 | 전기 시 세그먼트 유도 | 전표별 세그먼트 |
| ③ 집계 | 부문별 손익·재무 집계 | 세그먼트 제표 |
| ④ 검증·공시 | 항등식 확인 후 공시 | 주석 자료 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 법인 |
세그먼트 Segment | 필수 | 사업부문 |
원장 Ledger | 필수 | 0L 리딩 원장 등 |
회계연도 Gjahr | 필수 | 대상 연도 |
기간 Poper | 필수 | 조회 기간 |
계정유형 AcctType | 선택 | 자산 · 부채 등 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
세그먼트 Segment | 사업부문 |
원장 Ledger | 회계 기준 |
계정 Account · AccountText | 계정코드와 명칭 |
계정유형 AcctType | 자산 · 부채 · 자본 · 수익 · 비용 |
분류 Category | 유동자산 등 세부 분류 |
정상 잔액 NormalSide | Debit / Credit |
잔액 Balance | 기간 말 잔액 |
| 유형별 소계 | 계정유형 단위 합계 |
| 항등식 검증 | 성립 / 불일치. 상태 색 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FAGLB03 | 세그먼트 잔액 조회 | 손익·재무를 함께 보고 항등식 검증 |
FAGLL03H | 세그먼트 개별항목 | 계정 상세 |
S_PL0_86000028 | 세그먼트 손익 | 손익계산서 원천 |
FGI0 | 드릴다운 리포트 | 유형별 소계 |
FAGLFLEXT · ACDOCA | 총계정원장 합계 | 집계 원천 |
FAGL_SEGM | 세그먼트 마스터 | 부문 정의 |
도입 시 확인이 필요한 부분
세그먼트가 전표에 자동으로 채워지도록 유도 규칙을 설정해야 합니다. 이익센터에서 유도하는 것이 일반적인데, 이익센터 자체가 비어 있으면 세그먼트도 빕니다. 문서 분할(Document Splitting)이 켜져 있어야 부문별 재무상태표가 의미를 갖습니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCSEGREP'
@EndUserText.label: '세그먼트 손익·재무 (Z)'
define view Z_C_SEGMENT_REPORT
as select from acdoca as Line
left outer join skat as AcctText on Line.racct = AcctText.saknr
and AcctText.spras = 'K'
{
key Line.rbukrs as Bukrs,
key Line.segment as Segment,
key Line.rldnr as Ledger,
key Line.gjahr,
key Line.poper as Poper,
key Line.racct as Account,
AcctText.txt50 as AccountText,
sum( Line.hsl ) as Balance
// 계정유형·분류는 계정 마스터와 재무제표 버전에서 결정
// 항등식 검증: 자산 소계 = 부채 소계 + 자본 소계 (소비 뷰)
}
group by Line.rbukrs, Line.segment, Line.rldnr, Line.gjahr,
Line.poper, Line.racct, AcctText.txt50
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 제표 테이블 · 검증 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 제표 테이블 | sap.ui.table.Table — 계정유형 그룹, 소계 |
| 검증 표시 | sap.m.ObjectStatus — 항등식 성립 / 불일치 |
| 제표 전환 | sap.m.SegmentedButton — 손익 / 재무상태 |
검증 결과를 화면에 띄우는 이유
항등식은 맞는 것이 당연해 보여 확인을 건너뛰기 쉽습니다. 그런데 세그먼트 단위에서는 실제로 자주 어긋납니다. 화면에 검증 상태가 있으면 조회할 때마다 자동으로 확인되고, 공시 직전에 발견하는 일이 없어집니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.segrep) · ko 로케일 |
view/Main.view.xml | 조회조건 · 제표 테이블 · 검증 |
controller/Main.controller.js | 조회 · 유형별 소계 · 항등식 검증 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 차대 · 검증 상태 포맷터 |
localdata/segdetail.json | 세그먼트 상세 2,688건 |
localdata/segsummary.json | 세그먼트 요약 168건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 자산총계 = 부채총계 + 자본총계 (세그먼트별) | 통과 |
| 차변 잔액 합계 = 대변 잔액 합계 | 통과 |
| 계정유형별 소계 = 계정 잔액 합계 | 통과 |
| 정상 잔액 방향과 계정유형 정합 | 통과 |
| 계정 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 제표 전환 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
항등식이 안 맞으면 어떻게 하나요?
세그먼트가 채워지지 않은 전표를 찾습니다. 문서 분할이 꺼져 있으면 재무상태표 계정에 세그먼트가 붙지 않아 구조적으로 맞지 않을 수 있습니다.
원장마다 숫자가 다른데 어느 것이 공시용인가요?
IFRS 기준 원장입니다. 세무 원장은 세법 기준이라 감가상각이나 충당금이 달라 공시 자료로 쓰면 안 됩니다.
세그먼트는 어떻게 정하나요?
경영진이 자원 배분과 성과 평가에 쓰는 단위로 정합니다. 사업부나 제품군, 지역이 흔하며 내부 관리 단위와 일치시키는 것이 원칙입니다.
SAP 표준 기능과 어떻게 이어지나요?
세그먼트 할당과 집계는 표준 신 총계정원장이 담당합니다. 이 화면은 손익과 재무상태를 함께 조회하고 부문 단위 항등식을 검증해, 공시 전에 어긋남을 잡는 확장입니다.