SAP 현금출납장 조회 — 금고에 있어야 할 돈과 실제로 있는 돈
영업일 단위 현금 입출금과 개시-마감 잔액 체인을 조회하고, 실사 금액과의 과부족을 확인하는 화면입니다.
현금은 장부와 실물이 매일 맞아야 하는 유일한 자산입니다. 다른 자산은 월말에 확인해도 되지만 현금은 하루만 지나도 원인을 찾기 어려워집니다.
어제 마감 잔액이 오늘 개시 잔액이 되고, 거기에 입출금을 더하고 빼면 오늘 마감 잔액이 나옵니다. 이 체인이 끊기면 그 지점에 문제가 있습니다. 실사 금액까지 함께 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 현금출납장 — 출납장 코드(
CashJournal)와 명칭 - 영업일 — 거래 일자(
Busdate) - 잔액 — 개시 잔액(
OpeningBalance)과 마감 잔액(ClosingBalance) - 입출금 — 입금 합계(
TotalReceipts)와 출금 합계(TotalPayments) - 통화 — 출납장 통화(
Currency)
| 항목 | 내용 |
|---|---|
| 기반 T-code | FBCJ (현금출납장) |
| 업무 영역 | 자금(TR) · 현금 관리 |
| Namespace | zui5.cashjournal |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 일자별 잔액 체인 + 전표 상세 |
| 화면 수 | 조회 화면 1개 + 일자별 상세 |
| 데이터 | 일자 헤더 54건 · 전표 라인 299건 |
| 성격 | 조회형(Read-Only) — 현금 전기는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·출납장·기간으로 조회하면 일자별 잔액이 나옵니다 → 개시에서 마감까지 체인을 따라가고 → 실사 차이가 난 날을 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 현금출납장을 고릅니다. 사업장마다 별도 출납장을 두는 경우가 많습니다.
- 기간을 영업일 기준으로 지정합니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 개시 잔액이 전일 마감 잔액과 같은지 확인합니다.
- 마감 잔액과 실사 금액의 차이를 봅니다.
- 차이가 난 날을 선택해 전표 상세로 내려갑니다.
- 결과는 CSV 다운로드로 내려받아 현금 관리 기록으로 씁니다.
잔액 체인 규칙
날마다 이어지는 사슬이 끊기지 않아야 합니다.
마감 잔액 = 개시 잔액 + 입금 합계 − 출금 합계
체인 검증 당일 개시 잔액 = 전일 마감 잔액
어긋나면 그 지점에 누락 또는 소급 전기
과부족 = 실사 금액 − 마감 잔액
양수 → 실제 현금이 더 많음 (수입 누락 의심)
음수 → 실제 현금이 부족 (지출 누락 또는 분실)
마감 잔액은 음수가 될 수 없음
개시 잔액을 전일과 대조하는 이유
마감 잔액만 맞으면 그날은 문제없어 보입니다. 그런데 지난 날짜에 소급 전기가 들어가면 그날 마감이 바뀌어 다음 날 개시와 어긋납니다. 체인을 검증하면 언제 소급 처리가 있었는지 그 지점이 드러납니다.
현금 과부족의 네 가지 원인
| 원인 | 상황 | 과부족 방향 |
|---|---|---|
| 전표 누락 | 지출했는데 전기 안 함 | 실사가 부족 |
| 영수증 미처리 | 받았는데 기록 안 함 | 실사가 초과 |
| 금액 오기 | 전표 금액이 실제와 다름 | 방향 무관 |
| 분실·오차 | 거스름 오차나 분실 | 대개 부족 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 법인 |
현금출납장 CashJournal | 필수 | 출납장 코드 |
기간 Busdate | 필수 | 영업일 From~To |
통화 Currency | 선택 | 출납장 통화 |
| 상태 | 선택 | 전체 / 과부족 발생일만 |
결과 컬럼
일자별 요약
| 컬럼 | 의미 · 표시 |
|---|---|
회사코드 Bukrs | 대상 법인 |
현금출납장 CashJournal · CashJournalText | 출납장과 명칭 |
영업일 Busdate | 거래 날짜 |
통화 Currency | 출납장 통화 |
개시 잔액 OpeningBalance | 전일 마감 이월 |
입금 합계 TotalReceipts | 당일 입금 |
출금 합계 TotalPayments | 당일 출금 |
마감 잔액 ClosingBalance | 개시 + 입금 − 출금 |
| 실사 금액 · 과부족 | 실물 대조 결과. 차이 시 경고 색 |
전표 상세
| 컬럼 | 의미 |
|---|---|
| 전표번호 | 현금 전표 |
| 계정 · 적요 | 거래 내용 |
| 입금 · 출금 금액 | 거래 금액 |
| 거래처 · 담당자 | 상대와 처리자 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FBCJ | 현금출납장 | 잔액 체인 검증과 실사 대조를 추가 |
FBCJC0 | 현금출납장 설정 | 출납장 정의 |
TCJ_DOCUMENTS | 현금출납장 전표 | 조회 원천 |
TCJ_BALANCES | 현금출납장 잔액 | 일자별 잔액 |
BKPF · BSEG | 회계 전표 | 전기 결과 |
도입 시 확인이 필요한 부분
실사 금액을 어디에 기록할지 정해야 합니다. 표준 현금출납장에는 실사 금액 필드가 없어 별도 테이블이나 입력 화면이 필요합니다. 실사를 매일 하는지 주 단위로 하는지에 따라 과부족을 보는 주기도 달라집니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCCASHJRNL'
@EndUserText.label: '현금출납장 (Z)'
define view Z_C_CASH_JOURNAL
as select from tcj_balances as Bal
left outer join tcj_c_journals as Journal on Bal.bukrs = Journal.bukrs
and Bal.cajo_number = Journal.cajo_number
{
key Bal.bukrs,
key Bal.cajo_number as CashJournal,
key Bal.busdate as Busdate,
Journal.cajo_name as CashJournalText,
Bal.currency as Currency,
Bal.open_balance as OpeningBalance,
Bal.receipts as TotalReceipts,
Bal.payments as TotalPayments,
Bal.close_balance as ClosingBalance
// 마감 = 개시 + 입금 − 출금, 체인 검증은 전일 마감과 대조
// 실사 금액과 과부족은 별도 실사 테이블과 조인
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 잔액 테이블 · 전표 상세 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 잔액 테이블 | sap.m.Table — 영업일순, 개시→마감 순서로 열 배치 |
| 과부족 표시 | sap.m.ObjectStatus — 일치 / 과부족 |
| 전표 상세 | 일자 선택 시 하단에 라인아이템 펼침 |
일자에서 전표로 바로 내려가게 한 이유
과부족이 생긴 날을 찾았으면 그날 거래를 봐야 원인이 나옵니다. 다른 화면에서 날짜로 다시 조회하면 흐름이 끊깁니다. 행을 누르면 그 날 전표가 바로 펼쳐지면 찾는 과정이 한 화면에서 끝납니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.cashjournal) · ko 로케일 |
view/Main.view.xml | 조회조건 · 잔액 테이블 · 전표 상세 |
controller/Main.controller.js | 조회 · 체인 검증 · 과부족 계산 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 일자 · 상태 색 포맷터 |
localdata/cjheader.json | 일자 헤더 54건 |
localdata/cjitem.json | 전표 라인 299건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 마감 잔액 = 개시 + 입금 − 출금 (전 일자) | 통과 |
| 당일 개시 잔액 = 전일 마감 잔액 | 통과 |
| 전표 라인 합계 = 일자별 입금·출금 합계 | 통과 |
| 마감 잔액이 음수가 아님 | 통과 |
| 출납장 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
과부족이 조금씩 계속 나는데요?
거스름 오차라면 금액이 작고 방향이 무작위입니다. 한쪽으로 계속 치우치면 처리 규칙에 문제가 있거나 누락이 반복되는 것입니다.
체인이 끊기면 무엇을 보나요?
그 날짜에 소급 전기가 있었는지 확인합니다. 지난 날짜로 전표를 넣으면 그날 마감이 바뀌어 다음 날 개시와 어긋납니다.
현금을 쓰지 않는 회사도 필요한가요?
소액 경비나 전도금이 있으면 필요합니다. 규모가 작아도 현금은 관리 위험이 커서 별도 확인 절차를 두는 것이 안전합니다.
SAP 표준 기능과 어떻게 이어지나요?
현금 전기와 잔액 관리는 표준 현금출납장이 담당합니다. 이 화면은 잔액 체인을 검증하고 실사 과부족을 함께 보여 주며 전표까지 이어지게 한 확장입니다.