SAP 일일전도금 현황 — 이월액에서 시작해 잔액이 줄어드는 길
전도금 계정의 월 사용내역을 날짜순으로 펼치고, 전기이월액에서 시작해 잔액이 어떻게 줄어드는지 보는 화면입니다.
전도금은 미리 내준 돈입니다. 쓴 만큼 줄어들고 채워 넣으면 늘어납니다. 지금 얼마 남았는지가 관리의 전부입니다.
그런데 전도금은 매월 정산하지 않고 분기 단위로 정산하는 경우가 많습니다. 그래서 이번 달 사용내역만 봐서는 잔액을 알 수 없고 전기이월액이 함께 있어야 합니다. 이월액에서 시작해 잔액이 줄어드는 과정을 한 화면에 담도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 전도금 계정 — G/L 계정과 명칭(
SKAT·SKB1) - 전표 — 전표번호와 증빙일자를 표준 구조 그대로
- 금액 — 입금(Incoming)과 지출(Outgoing) 금액
- 상대 라인 — 전도금 계정에서 나간 전표의 실제 비용 계정
- 원천 — 미결항목(
BSIS) · 전표 라인(BSEG) · 총계정원장(FAGLFLEXT)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 일반회계 · 자금 |
| Namespace | zui5.imprest |
| 셸 구조 | 조회조건 영역(우측 조회) + 전기이월액 + 사용내역 + 집계 라인 |
| 화면 수 | 조회 화면 1개 + 상세 |
| 데이터 | 전도금 계정 5개 · 라인 67건 |
| 성격 | 조회형(Read-Only) — 전기는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·조회일자·전도금 계정으로 조회하면 이월액이 먼저 나옵니다 → 월초 입금부터 날짜순으로 사용내역이 이어지고 → 맨 아래 일계·월계·년계로 정리됩니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드는 사양서에 따라 변경 불가입니다.
- 조회일자를 넣습니다. 기본값은 당일이며, 해당 월 1일부터 이 날짜까지가 집계 대상입니다.
- 전도금 계정을 목록에서 고릅니다. Search help 로 선택합니다.
- 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
- 상단 전기이월액과 근거 전표를 확인합니다.
- 날짜순 사용내역을 보며 잔액이 줄어드는 흐름을 따라갑니다.
- 맨 아래 일계·월계·년계로 기간별 합계를 확인합니다.
- 결과는 CSV 다운로드로 내려받습니다. 계정 정보와 전기이월액이 머리글에 담기고 UTF-8 BOM 이 붙습니다.
집계 규칙
이월액에서 시작해 라인마다 잔액을 누계로 계산합니다.
전기이월액 = 당년 누적입금 − 누적지출 (전월까지)
잔액 = 전기이월액 + 누적입금 − 누적지출 (라인마다 누계)
집계 기간 = 조회일자가 속한 달의 1일 ~ 조회일자
일 계 = 조회일자 당일 입금·지출 합
월 계 = 집계 기간 입금·지출 합
년 계 = 당년 누계
잔액이 이월액의 20% 아래 → 경고 표시
상대 라인을 읽어 표시하는 이유
전도금 계정 자체의 라인만 보면 "전도금 100만원 지출" 로만 나옵니다. 무엇에 썼는지는 상대 라인의 비용 계정에 있습니다. 미결관리 계정이 물려 있으면 반제전표를 따라가 실제 처리 계정과 텍스트를 가져오는 것이 원본 로직이며, 이 화면은 그 결과 형태를 그대로 보여 줍니다.
전도금 운영 4단계
| 단계 | 내용 | 잔액 영향 |
|---|---|---|
| ① 지급 | 월초에 전도금 입금 | 잔액 증가 |
| ② 사용 | 경비 지출마다 차감 | 잔액 감소 |
| ③ 보충 | 잔액 부족 시 추가 지급 | 잔액 증가 |
| ④ 정산 | 분기 단위로 정산 | 이월액 확정 |
④가 분기 단위이므로 월별로 보려면 전기이월액이 반드시 필요합니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 사양서에 따라 변경 불가(읽기 전용) |
| 조회일자 (Doc. Date) | 선택 | 기본값 당일. 해당 월 1일부터 이 날짜까지 집계 |
| 전도금 계정 | 필수 | 등록된 전도금 계정 목록에서 선택 |
결과 컬럼
상단
| 항목 | 내용 |
|---|---|
| 전기이월액 | 전월까지의 잔액 |
| 이월 근거 전표 | 회사코드 · 연도 · 전표번호 |
사용내역
| 컬럼 | 의미 |
|---|---|
| 회사코드 | 대상 법인 |
| G/L Account · Account Text | 전도금 또는 비용 계정 |
| Item Text | 거래 적요 |
| Incoming amount | 입금액 |
| Outgoing amount | 지출액 |
| Balance | 처리 후 잔액 (누계) |
| Document No. | 전표번호 |
| Doc. date | 증빙일자 |
집계 라인
| 항목 | 내용 |
|---|---|
| 일 계 | 조회일자 당일 합계 |
| 월 계 | 집계 기간 합계 |
| 년 계 | 당년 누계 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FBL3N | G/L 개별항목 | 전도금 계정을 잔액 누계 형태로 재구성 |
FS10N | 계정 잔액 | 전기이월액 산출 |
BSIS | G/L 미결 항목 | 사용내역 원천 |
BSEG | 전표 라인 | 상대 계정 조회 |
FAGLFLEXT | 총계정원장 합계 | 누계 산출 |
SKAT · SKB1 | 계정 마스터와 텍스트 | 계정 명칭 |
도입 시 확인이 필요한 부분
전도금 계정이 미결관리 계정인지에 따라 상대 라인을 찾는 방식이 달라집니다. 미결관리면 반제전표를 따라가야 실제 처리 계정이 나옵니다. 또 전도금 계정 목록을 어디서 관리할지(계정 그룹 또는 별도 테이블) 정해야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCIMPREST'
@EndUserText.label: '일일전도금 현황 (Z)'
define view Z_C_IMPREST_STATUS
as select from bsis as Item
left outer join skat as AcctText on Item.hkont = AcctText.saknr
and AcctText.spras = 'K'
{
key Item.bukrs,
key Item.belnr,
key Item.gjahr,
key Item.buzei,
Item.hkont as GlAccount,
AcctText.txt50 as AccountText,
Item.bldat as DocDate,
Item.budat,
Item.shkzg,
Item.dmbtr as Amount,
Item.sgtxt as ItemText
// 입금·지출은 차대(shkzg)로 구분
// 전기이월액은 FAGLFLEXT 전월 누계에서 산출
// 잔액 = 이월 + 누적입금 − 누적지출 (소비 뷰에서 누계 계산)
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 이월액 · 사용내역 |
| 조회조건 | sap.m.DatePicker · sap.m.Select — 우측 끝에 조회 |
| 이월액 영역 | 전기이월액과 근거 전표를 상단에 고정 |
| 사용내역 | sap.m.Table — 날짜순, 잔액 누계 표시 |
| 집계 라인 | 목록 하단에 일계·월계·년계 |
| 상세 | sap.m.Dialog — 전표와 처리 후 잔액 |
잔액을 라인마다 누계로 보여 주는 이유
총액만 있으면 "언제부터 부족해졌는가" 를 알 수 없습니다. 라인마다 처리 후 잔액이 있으면 어느 지출에서 잔액이 크게 떨어졌는지가 보이고, 보충 시점을 정하는 근거가 됩니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.imprest) · ko 로케일 |
view/Main.view.xml | 조회조건 · 이월액 · 사용내역 · 집계 |
controller/Main.controller.js | 조회 · 잔액 누계 · 집계 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 일자 · 잔액 경고 포맷터 |
localdata/imprest.json | 전도금 계정 5개 · 라인 67건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 모든 라인은 입금 또는 지출 한쪽만 보유 · 금액 > 0 | 통과 |
| 입금 라인은 전도금 계정 자신, 지출 라인은 비용/부채 계정 | 통과 |
| 월초 입금은 계정별 1건, 당월 1일 | 통과 |
| 증빙일자 당월 1일~조회일자 · 전기일자 = 증빙일자 | 통과 |
| 잔액 = 전기이월 + 누적입금 − 누적지출 · 잔액 음수 없음 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
왜 매월 정산하지 않나요?
전도금은 계속 쓰는 자금이라 매월 정산하면 지급과 정산이 반복돼 번거롭습니다. 분기 단위로 정산하는 대신 월별 사용내역은 이월액과 함께 관리합니다.
잔액 경고 기준은 무엇인가요?
이월액의 20% 아래로 떨어지면 경고로 표시합니다. 보충이 필요한 시점을 미리 알리기 위한 것이며 기준은 운영에 맞춰 조정할 수 있습니다.
사용내역의 계정이 전도금 계정이 아닌 이유는?
지출 라인은 실제로 무엇에 썼는지를 보여 주기 위해 상대 라인의 비용 계정을 읽어 표시합니다. 전도금 계정만 보면 금액만 알고 용도를 알 수 없습니다.
SAP 표준 기능과 어떻게 이어지나요?
전도금 거래는 표준 전기로 기록됩니다. 이 화면은 그 라인을 날짜순으로 펼치고 이월액에서 시작하는 잔액 누계와 일·월·년 집계를 붙인 확장입니다.