SAP 월별 수익/비용 명세서 — 계정 계층을 열두 달로 펼치기
수익·비용 계정을 계층 트리로 펼치고 1~12월 금액을 나란히 놓아, 금액을 누르면 근거 전표까지 여는 화면입니다.
비용이 늘었다는 사실은 총액으로 알 수 있습니다. 하지만 어느 달에 어느 계정에서 늘었는지는 계층을 펼쳐 봐야 압니다.
대분류만 보면 뭉뚱그려지고 실계정만 보면 수백 줄이 됩니다. 계층으로 펼쳐 필요한 만큼만 열고 이상한 금액은 전표까지 내려가도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 계정 계층 — 2자리(대분류) → 4자리(중분류) → 8자리(실계정)
- 월별 금액 — 총계정원장 합계의 1~12월(
HSL01~HSL12) - 계정 텍스트 — 계정 명칭(
SKAT) - 전표 — 근거 전표 헤더와 라인
- 기능영역 — 명세서 유형별 집계 기준
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 일반회계 · 손익 분석 |
| Namespace | zui5.pnlmonthly |
| 셸 구조 | 조회조건 영역(우측 조회) + 계층 트리 + 전표 상세 |
| 화면 수 | 조회 화면 1개 + 전표 상세 |
| 데이터 | 계정 계층과 월별 금액 |
| 성격 | 조회형(Read-Only) — 전기는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·회계연도·명세서 유형으로 조회하면 계정 계층이 나옵니다 → 대분류에서 실계정까지 펼쳐 내려가고 → 월 금액을 눌러 근거 전표를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 회계연도를 넣습니다.
- 명세서 유형을 고릅니다. 판매비·일반관리비 / 영업외수익 / 영업외비용 / 노무비·경비 중 하나입니다.
- 조회 버튼은 조회조건 영역 오른쪽 끝에 있고, 입력필드에서 Enter 로도 조회됩니다.
- 대분류에서 시작해 필요한 가지만 펼칩니다.
- 월별 금액을 훑으며 튀는 달을 찾습니다.
- 실계정의 월 금액을 클릭하면 근거 전표가 열립니다.
- 전표번호를 누르면 회계전표 조회로 이어집니다.
- 결과는 CSV 다운로드로 내려받습니다.
명세서 유형별 집계 기준
유형마다 기능영역과 금액 방향이 다릅니다.
월별 판매비/일반관리비 기능영역 3000·4000·5000 차변 − 대변
월별 영업외 수익 기능영역 1000~5000 대변 − 차변
월별 영업외 비용 기능영역 1000~5000 차변 − 대변
월별 노무비/경비 기능영역 1000·2000 차변 − 대변
계층 집계
8자리 실계정 = 총계정원장 월별 금액
4자리 중분류 = 하위 실계정 합
2자리 대분류 = 하위 중분류 합
조회 대상은 수익비용 계정코드 테이블 등록 계정의 하위 계정
취소전표는 전표 상세에서 제외
수익과 비용의 부호를 뒤집는 이유
회계 전표에서 수익은 대변, 비용은 차변에 잡힙니다. 그대로 두면 수익이 음수로 표시돼 명세서에서 읽기 불편합니다. 유형에 따라 방향을 정하면 어느 명세서든 금액이 양수로 나와 비교가 쉬워집니다.
명세서 유형 4종
| 유형 | 내용 | 기능영역 |
|---|---|---|
| 판매비·일반관리비 | 영업 활동 비용 | 3000 · 4000 · 5000 |
| 영업외수익 | 본업 외 수익 | 1000 ~ 5000 |
| 영업외비용 | 본업 외 비용 | 1000 ~ 5000 |
| 노무비·경비 | 제조 관련 비용 | 1000 · 2000 |
조회조건
| 항목 | 필수 | 설명 |
|---|---|---|
| 회사코드 / 회계연도 | 필수 | 집계 대상 |
| 명세서 유형 | 필수 | 판매비·일반관리비 / 영업외수익 / 영업외비용 / 노무비·경비 |
결과 컬럼
계층 트리
| 컬럼 | 의미 |
|---|---|
| 계정 레벨 | 2자리 · 4자리 · 8자리 |
| 계정코드 · 계정명 | 계층 단위 |
| 1월 ~ 12월 | 월별 금액. 조회 시 동적 생성 |
| 합계 | 연간 합계 |
전표 상세
| 컬럼 | 의미 |
|---|---|
| 전표유형 · 유형명 | 전표 성격 |
| 증빙일자 · 전기일자 | 날짜 정보 |
| 전표번호 | 회계전표 조회 연계 |
| 통화 · 금액(TC) · 금액(LC) | 거래 통화와 현지 통화 |
| 계정 · 계정명 | 전기 계정 |
| 적요 | 거래 설명 |
| 기능영역 | 집계 기준 (화면 확장) |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FAGLFLEXT | 총계정원장 합계 (HSL01~HSL12) | 월별 금액 원천 |
ZTFIF0100 | 수익비용 계정코드 | 조회 대상 계정 |
SKAT | 계정 텍스트 | 계정 명칭 |
BKPF · BSEG | 전표 헤더와 라인 | 근거 전표 |
T003T | 전표유형 텍스트 | 유형명 |
도입 시 확인이 필요한 부분
계정 계층이 코드 자릿수로 정해집니다. 계정 체계가 자릿수로 계층을 표현하지 않는 회사라면 별도 매핑 테이블이 필요합니다. 또 기능영역이 전표에 채워져야 유형별 집계가 정확하며, 누락되면 어느 명세서에도 잡히지 않습니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCPNLMONTH'
@EndUserText.label: '월별 수익/비용 명세서 (Z)'
define view Z_C_PNL_MONTHLY
as select from faglflext as Total
left outer join skat as AcctText on Total.racct = AcctText.saknr
and AcctText.spras = 'K'
{
key Total.rbukrs as Bukrs,
key Total.ryear as Gjahr,
key Total.racct as Account,
key Total.rfarea as FunctionalArea,
AcctText.txt50 as AccountText,
Total.hsl01, Total.hsl02, Total.hsl03, Total.hsl04,
Total.hsl05, Total.hsl06, Total.hsl07, Total.hsl08,
Total.hsl09, Total.hsl10, Total.hsl11, Total.hsl12
// 계층은 계정 코드 자릿수(2/4/8)로 구성
// 명세서 유형별 기능영역과 금액 방향을 적용
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 계층 트리 · 전표 상세 |
| 조회조건 | sap.m.Select · sap.m.RadioButtonGroup — 우측 끝에 조회 |
| 계층 트리 | sap.ui.table.TreeTable — 3단계 전개 |
| 월별 컬럼 | 조회 시점에 1~12월 동적 생성 |
| 금액 링크 | 실계정 월 금액 클릭 시 전표 목록 |
| 전표 링크 | sap.m.Link — 회계전표 조회 연계 |
금액에서 전표로 바로 잇는 이유
어느 달 금액이 튀면 곧바로 "왜" 를 묻게 됩니다. 계정과 기간을 적어 두고 다른 화면에서 다시 조회하면 그사이 맥락이 끊깁니다. 금액을 누르면 그 금액을 만든 전표가 바로 나오면 질문에서 답까지가 클릭 한 번입니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.pnlmonthly) · ko 로케일 |
view/Main.view.xml | 조회조건 · 계층 트리 · 전표 상세 |
controller/Main.controller.js | 조회 · 계층 집계 · 드릴다운 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 계층 들여쓰기 포맷터 |
localdata/pnlmonthly.json | 계정별 월 금액 |
localdata/pnldocs.json | 근거 전표 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 4자리 중분류 = 하위 실계정 합계 | 통과 |
| 2자리 대분류 = 하위 중분류 합계 | 통과 |
| 연간 합계 = 1~12월 합계 | 통과 |
| 전표 금액 합계 = 실계정 월 금액 | 통과 |
| 취소전표는 전표 상세에서 제외 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 전개·드릴다운 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
계정 계층은 어떻게 정해지나요?
계정 코드 자릿수로 구성합니다. 2자리가 대분류, 4자리가 중분류, 8자리가 실계정입니다. 계정 체계가 이 규칙을 따라야 트리가 성립합니다.
기능영역이 없는 전표는요?
유형별 집계에서 빠집니다. 전기 시 기능영역이 자동으로 채워지도록 설정하거나 누락 건을 별도로 확인해야 합니다.
상위 레벨 금액을 클릭하면요?
실계정에서만 전표로 내려갑니다. 상위는 합계라 대응하는 전표가 하나로 특정되지 않습니다.
SAP 표준 기능과 어떻게 이어지나요?
월별 금액은 총계정원장 합계에 이미 있습니다. 이 화면은 그것을 계정 계층으로 펼치고 금액에서 전표까지 이어 주는 확장입니다.