솔루션 홈
일반회계

SAP 일개표 — 하루가 끝났을 때 무엇이 움직였나

계정을 일계표 그룹으로 묶어 전일이월에서 금일 증감을 거쳐 금일잔액에 이르는 하루치 흐름을 한 장으로 보는 화면입니다.

월말 재무제표는 한 달이 끝나야 나옵니다. 그런데 자금 담당자는 오늘 하루 무엇이 움직였는지를 그날 알아야 합니다. 계정 잔액을 전부 늘어놓으면 숫자가 잘게 흩어지고, 재무제표는 하루 단위로 보기에 무겁습니다.

그래서 계정을 일계표 그룹으로 묶고 각 그룹이 전일이월 → 금일증가 → 금일감소 → 금일잔액으로 어떻게 변했는지를 한 줄씩 세웁니다. 그룹만 보면 큰 흐름이, 하위레벨을 펼치면 어느 계정이 움직였는지가 드러납니다. 표준 총계정원장 데이터를 그대로 이어받아 이 관점을 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 4종을 함께 공개합니다.

SAP 표준 데이터를 그대로 이어받은 부분

  • 이월 집계 — 총계정원장 월별 누계(FAGLFLEXT)의 HSLVT · HSL01~12 를 그대로 사용
  • 당일 증감 — 전표 라인(BSEG)과 헤더(BKPF)에서 취소전표(XREVERSAL)를 제외하고 집계
  • 그룹 체계 — 일계표 구분코드(ZTFIF0080) · 세부계정(ZTFIF0090) 표준 구조 유지
  • 마스터 텍스트 — 계정(SKAT) · 기능영역(TFKBT)
항목내용
업무 영역재무회계(FI-GL) · 일일 자금·손익 보고
Namespacezui5.dailysheet
셸 구조조회조건 영역(우측 조회) + 일개표 단일 테이블(그룹 · 계정 · 총계)
화면 수조회 화면 1개
데이터일계표 그룹 8종 · 계정 19개
성격조회형(Read-Only) — 전기와 집계는 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 4종 둘러보기

회사코드와 일자만 넣고 조회하면 그룹과 계정이 함께 나옵니다 → 하위레벨을 접어 그룹 흐름만 보고 → 증감 없는 계정을 숨겨 오늘 움직인 계정만 남깁니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

Main.view.xml
기본 조회 — 그룹과 계정을 함께
기본 조회 — 그룹과 계정을 함께 — 회사코드와 일자만 넣으면 일계표 그룹 8종 아래에 계정이 들여쓰기로 붙습니다. 그룹 줄은 강조되고 차/대 구분, 직접/간접, 기능영역이 함께 표시됩니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
총계
총계 줄 — 전일이월부터 금일잔액까지
총계 줄 — 전일이월부터 금일잔액까지 — 맨 아래 총계에서 전일이월·금일증가·금일감소·금일잔액의 전체 합을 확인합니다. 상단 툴바의 금일 증감 요약과 같은 값입니다.
그룹 레벨
하위레벨 접기 — 그룹 흐름만
하위레벨 접기 — 그룹 흐름만 — 체크를 풀면 계정 줄이 사라지고 그룹 줄만 남습니다. 현금·예금이 늘고 재고자산이 줄었다는 식의 하루 흐름을 먼저 잡을 때 씁니다.
움직인 계정만
증감 없는 계정 숨김
증감 없는 계정 숨김 — 오늘 전표가 없는 계정을 걷어내 실제로 움직인 계정만 남깁니다. 그룹 집계도 남은 계정 기준으로 다시 계산됩니다.

조작 방법

  1. 회사코드일자를 넣습니다. 둘 다 필수이며 비어 있으면 조회를 중단하고 안내합니다.
  2. 기본은 하위레벨 보임 상태라 그룹 아래에 계정이 들여쓰기로 붙습니다. 체크를 풀면 그룹 줄만 남아 큰 흐름이 먼저 보입니다.
  3. 증감 없는 계정 숨김으로 오늘 움직임이 없는 계정을 걷어냅니다. 하루 동안 무엇이 바뀌었는지만 보고 싶을 때 씁니다.
  4. 조회조건 입력필드에서 Enter 를 눌러도 바로 조회됩니다. 날짜를 하루씩 바꿔 가며 볼 때 편합니다.
  5. 맨 아래 총계 줄에서 전일이월 · 금일증가 · 금일감소 · 금일잔액의 전체 합을 확인합니다.
  6. 결과는 CSV 다운로드로 내려받습니다. 그룹·계정·총계 구분이 한 컬럼으로 들어가 엑셀에서 다시 묶기 쉽습니다.

금일잔액 산출 규칙

세 값이 정해지면 네 번째가 따라옵니다. 일개표의 모든 줄은 이 식 하나로 검증됩니다.

금일잔액 = 전일이월 + 금일증가 − 금일감소

전일이월 = 회계연도 초 이월(HSLVT)
         + 전월까지 월별 누계(HSL01 ~ 전월)      ← FAGLFLEXT
         + 당월 1일 ~ 전일 전표 순액              ← BSEG ⋈ BKPF

금일증가 = 조회일자 전표 중 그룹 차/대 구분과 같은 방향
금일감소 = 조회일자 전표 중 반대 방향
* 취소전표(XREVERSAL)는 어느 쪽에서도 제외
항목산식 · 규칙
전일이월 Carry회계연도 초 이월 + 전월까지 월별 누계 + 당월 1일~전일 전표 순액
금일증가 Up조회일자 전표 중 그룹 차/대 구분과 같은 방향의 금액
금일감소 Down조회일자 전표 중 반대 방향의 금액
금일잔액 Balance전일이월 + 금일증가 − 금일감소
순증감금일증가 − 금일감소. 잔액이 이월보다 늘었는지 줄었는지를 색으로 표시
그룹 집계소속 계정의 네 값을 각각 합산. 그룹 잔액도 같은 식이 성립

전일이월을 두 소스에서 만드는 이유

회계연도 초부터 전월 말까지는 이미 월별로 집계된 누계를 쓰는 것이 빠릅니다. 그런데 당월 1일부터 전일까지는 아직 월 집계가 닫히지 않았으므로 전표 라인에서 직접 더해야 합니다. 두 구간을 합쳐야 "어제까지의 잔액"이 나옵니다.

일계표 그룹 8종

그룹은 회사가 하루 단위로 무엇을 보고 싶은지에 따라 정합니다. 자산·부채 흐름과 손익 흐름을 함께 세워 자금과 실적을 한 장에서 읽도록 구성했습니다.

그룹명칭차/대포함 계정
D100현금·예금차변보통예금-국민 · 보통예금-신한 · 현금
D200매출채권차변외상매출금-국내 · 외상매출금-수출 · 받을어음
D300재고자산차변원재료 · 제품
D400매입채무대변외상매입금 · 미지급금
D500차입금대변단기차입금 · 장기차입금
D600매출대변제품매출 · 상품매출
D700매입·제조원가차변원재료비 · 외주가공비
D800판매관리비차변복리후생비 · 지급수수료 · 보험료

그룹의 차/대 구분은 그 묶음이 증가할 때 어느 쪽으로 기표되는지를 뜻합니다. 자산·비용 그룹은 차변, 부채·수익 그룹은 대변입니다.

조회조건

필드필수설명
회사코드 Bukrs필수대상 회사코드
일자 Budat필수조회일자. 이 날이 금일, 전날까지가 이월 구간
하위레벨 보임선택그룹 아래 계정 표시 여부
증감 없는 계정 숨김선택오늘 전표가 없는 계정 제외

일자는 하루 기준입니다. 이 날짜가 금일이 되고, 그 전날까지가 전일이월 구간이 됩니다.

결과 컬럼

컬럼의미 · 표시
일개표 그룹 / 계정과목키 컬럼. 그룹은 코드+명칭, 계정은 들여쓰기
그룹코드 DailyCode그룹 줄에만 표시
계정과목 코드 · 명 Hkont계정 줄에만 표시
차/대 구분 Shkzg차변 / 대변 — 그룹 정의에서 상속
직접/간접 Direct계정 성격 구분
기능영역 Fkber생산 · 영업 · 관리
전일이월 Carry어제까지의 잔액, 우측정렬
금일증가 · 금일감소조회일자 당일 차·대변 금액
순증감증가 − 감소. 방향을 색으로 표시
금일잔액 Balance전일이월 + 증가 − 감소

그룹 줄과 계정 줄, 총계 줄이 같은 표에 섞여 나오므로 행 강조로 구분합니다. 계정 줄은 계정과목을 들여쓰기해 그룹 아래에 붙은 것이 보이게 했습니다.

SAP 표준 기능 매핑

전표 전기와 총계정원장 집계는 표준이 담당합니다. 이 화면은 그 데이터를 회사가 정한 그룹으로 다시 묶어 하루 단위로 세우는 확장입니다.

표준역할이 화면에서의 확장
FAGLB03 관점G/L 계정 잔액 조회월 단위 잔액 대신 하루 단위로 이월·증감·잔액을 나눠 표시
FBL3N 관점개별항목 조회라인 나열 대신 일계표 그룹으로 묶어 흐름 중심으로 재구성
FAGLFLEXT총계정원장 월별 누계전일이월의 전월까지 구간을 제공
BSEGBKPF전표 라인과 헤더당월 1일~전일 구간과 금일 증감을 제공
F.01 관점재무제표하루 단위로 보기 무거운 재무제표를 그룹 8종으로 압축

운영 데이터 소스 매핑

항목SAP 원천비고 · 산식
일계표 그룹ZTFIF0080그룹코드 · 그룹명 · 차대구분
세부계정ZTFIF0090그룹 ↔ 계정 매핑 · 직접/간접
계정 명칭SKAT계정과목 텍스트
전일이월(전월까지)FAGLFLEXTHSLVT + HSL01~전월 합산
전일이월(당월분) · 금일증감BSEGBKPFXREVERSAL 공란 조건
기능영역FKBER · TFKBT코드와 명칭

도입 시 확인이 필요한 부분

일계표 그룹과 세부계정 구성은 회사마다 다릅니다. 어떤 계정을 어느 그룹에 넣을지, 직접·간접을 어떻게 나눌지가 보고서의 성격을 결정하므로 재무팀과 그룹 정의를 먼저 확정해야 합니다. S/4HANA 환경이면 FAGLFLEXT 대신 ACDOCA 기반 표준 CDS 로 이월을 집계하는 편이 성능상 유리합니다.

참고 CDS 뷰

운영 서비스로 연결할 때는 일계표 그룹 매핑을 조인해 계정 단위로 이월·증감을 나누어 집계하는 뷰를 제안합니다.

@AbapCatalog.sqlViewName: 'ZCDAILYSHEET'
@EndUserText.label: '일개표 (Z)'
define view Z_C_DAILY_SHEET
  as select from acdoca as Line
    inner join      ztfif0090 as Map      on  Line.rbukrs = Map.bukrs
                                          and Line.racct  = Map.hkont
    left outer join ztfif0080 as Grp      on  Map.bukrs      = Grp.bukrs
                                          and Map.daily_code = Grp.daily_code
    left outer join skat      as AcctText on  Line.racct = AcctText.saknr
                                          and AcctText.spras = 'K'
{
  key Line.rbukrs        as Bukrs,
  key Grp.daily_code     as DailyCode,
  key Line.racct         as Hkont,
      Grp.daily_code_nm  as DailyCodeNm,
      AcctText.txt50     as HkontNm,
      Map.shkzg          as Shkzg,
      Line.rfarea        as Fkber,
      // 전일이월 : 조회일자 이전 전표의 순액
      sum( case when Line.budat < $parameters.p_date then Line.hsl else 0 end ) as Carry,
      // 금일증가 / 금일감소 : 조회일자 당일 차·대변
      sum( case when Line.budat = $parameters.p_date and Line.drcrk = 'S'
                then Line.hsl else 0 end ) as DailyUp,
      sum( case when Line.budat = $parameters.p_date and Line.drcrk = 'H'
                then Line.hsl else 0 end ) as DailyDown
}
group by Line.rbukrs, Grp.daily_code, Line.racct,
         Grp.daily_code_nm, AcctText.txt50, Map.shkzg, Line.rfarea

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 릴리즈와 일계표 그룹 정의에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 일개표 테이블
조회조건sap.m.Input · sap.m.DatePicker · sap.m.CheckBox — 우측 끝에 조회
결과 테이블sap.ui.table.Table — 그룹·계정·총계를 한 목록에, 첫 컬럼 고정
단계 구분RowSettings.highlight + 라벨 들여쓰기 포맷터
차대·순증감sap.m.ObjectStatus — 방향을 색으로 표시
요약 표시sap.m.MessageStrip · sap.m.ObjectStatus
CSVBlob + UTF-8 BOM — 구분 컬럼 포함

트리 대신 평면 목록에 구분을 둔 이유

그룹과 계정은 2단이라 트리 컨트롤을 쓸 만큼 깊지 않습니다. 대신 그룹·계정·총계를 한 목록에 순서대로 세우고 행 강조와 들여쓰기로 단계를 표시하면, 스크롤 한 번으로 전체를 훑을 수 있고 CSV 로 내려받을 때도 구조가 그대로 남습니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.dailysheet) · ko 로케일 · sap_horizon
Component.js선택조건 모델 · 결과 모델 초기화
view/Main.view.xml조회화면 + 일개표 테이블
controller/Main.controller.js조회 · 하위레벨 전환 · 합계 · CSV
model/ModelMock.jslocaldata JSON 읽기 — 그룹 집계와 트리 구성
model/formatter.js금액 · 일자 · 라벨 · 차대 · 순증감 포맷터
i18n/i18n_ko.propertiesko 로케일 리소스
localdata/dailysheet.json일계표 그룹·계정 시뮬레이션 데이터

일계표 그룹 구성이 바뀌어도 데이터와 ModelMock 두 곳만 손보면 화면 로직은 그대로 씁니다.

검증 결과

화면 구성에 쓴 데이터는 일계표 그룹 8종에 계정 19개를 배치하고 하루치 증감을 생성한 것입니다.

데이터규모구성
일계표 그룹8행자산·부채 흐름 5종 + 손익 흐름 3종
세부계정19행그룹당 2~3개, 직접/간접 구분 포함
전일이월 합계8,989,000,000원금일증가 208,000,000 · 금일감소 251,000,000 · 금일잔액 8,946,000,000
검증 항목결과
금일잔액 = 전일이월 + 금일증가 − 금일감소 (전 행)통과
금일감소가 이월+증가를 넘지 않음 · 모든 금액 0 이상통과
그룹 집계 = 소속 계정 합계 (4개 값 모두)통과
그룹 잔액 = 그룹 이월 + 증가 − 감소 · 전체 합계 = 그룹 합계통과
계정은 하나의 그룹에만 속함 · 그룹 정의와 일치통과
자산·비용 그룹은 차변, 부채·수익 그룹은 대변통과
차/대 · 직접/간접 코드와 명칭 일치 · 기능영역 보유통과
조회일자 · 전일 · 당월 1일 관계 정합통과
화면 렌더링 — 실브라우저 조회 → 레벨 전환 → 필터 실동작 후 캡처4/4
테마 런타임 확인sap_horizon

계정과 금액은 모두 검증용 데이터이며, 계정 체계는 프로젝트 표준을 따랐습니다.

자주 묻는 질문

전일이월을 왜 두 테이블에서 만드나요?

회계연도 초부터 전월 말까지는 총계정원장에 월별 누계가 이미 집계돼 있어 그대로 쓰는 것이 빠릅니다. 반면 당월 1일부터 전일까지는 월 집계가 아직 닫히지 않아 전표 라인에서 직접 더해야 합니다. 두 구간을 합쳐야 어제까지의 잔액이 완성됩니다.

일계표 그룹은 누가 정하나요?

재무팀이 정합니다. 어떤 계정을 어느 그룹에 넣을지가 보고서의 성격을 결정하기 때문입니다. 그룹과 세부계정은 별도 테이블로 관리하므로 프로그램을 고치지 않고 구성을 바꿀 수 있습니다.

하위레벨을 접으면 무엇이 달라지나요?

그룹 줄만 남습니다. 계정 단위로 내려가면 숫자가 잘게 흩어져 하루 흐름이 잘 안 보이는데, 그룹만 보면 현금이 늘었는지 재고가 줄었는지가 먼저 눈에 들어옵니다. 원인을 찾을 때 다시 펼쳐 확인하는 순서로 씁니다.

차/대 구분은 어디에 쓰나요?

그 그룹이 증가할 때 어느 쪽으로 기표되는지를 뜻합니다. 자산·비용은 차변, 부채·수익은 대변입니다. 이 구분이 있어야 같은 전표 금액을 그룹마다 증가로 볼지 감소로 볼지 판단할 수 있습니다.

SAP 표준 기능과 어떻게 이어지나요?

전표 전기와 총계정원장 집계는 표준이 담당하고 데이터도 표준 구조 그대로입니다. 이 화면은 그 데이터를 회사가 정한 일계표 그룹으로 다시 묶어 하루 단위로 이월·증감·잔액을 세운 조회 전용 화면입니다.

일일 보고, 지금 쓰는 SAP 위에서 확장해 보세요

하루가 끝났을 때 어느 그룹에서 얼마가 들어오고 나갔는지 한 장으로 보이면, 자금 판단이 하루 빨라집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

일개표일계표전일이월금일잔액FAGLFLEXT총계정원장OpenUI5