SAP 수표 발행/결제 현황 조회 — 발행한 수표가 아직 돌아다니는가
지급 시 발행한 수표의 발행·결제·부도·취소 상태를 하우스뱅크와 벤더별로 추적하는 화면입니다.
수표를 발행하면 우리 장부에서는 지급이 끝난 것처럼 보입니다. 그런데 상대가 은행에 가져가기 전까지 실제 돈은 계좌에 남아 있습니다.
이 차이가 은행 잔액과 장부 잔액을 벌어지게 만듭니다. 몇 달째 결제되지 않은 수표가 있으면 분실됐거나 잊힌 것일 수 있어 추적이 필요합니다. 표준 수표 관리 구조를 그대로 이어받아 발행부터 결제까지 상태를 따라가도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 수표 키 — 수표번호(
CheckNo) · 하우스뱅크(Hbkid) · 계좌 ID(Hktid) - 지급 연계 — 지급전표(
Vblnr)와 관련 전표(Belnr) - 벤더 — 수취인(
Lifnr)과 명칭 - 금액 — 수표 금액과 관련 전표별 항목 금액(
ItemAmount) - 발행 정보 — 발행일과 참조번호(
Xblnr)
| 항목 | 내용 |
|---|---|
| 대응 T-code | FCH1 · FCHN · FCHI |
| 업무 영역 | 재무회계(FI-AP) · 자금 · 수표 관리 |
| Namespace | zui5.checkreg |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 수표 목록, 행 선택 시 관련 전표 |
| 화면 수 | 조회 화면 1개 + 전표 상세 |
| 데이터 | 수표 171건 · 수표 항목 288건 · 하우스뱅크 5건 · 벤더 30건 |
| 성격 | 조회형(Read-Only) — 발행과 취소는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 2종 둘러보기
하우스뱅크·벤더·기간으로 조회하면 발행 수표가 상태와 함께 나옵니다 → 오래 미결제인 수표를 가려내고 → 행을 눌러 어느 전표를 지급한 수표인지 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 하우스뱅크와 계좌를 고릅니다. 수표책이 계좌별로 관리됩니다.
- 기간을 발행일 기준으로 지정합니다.
- 벤더로 특정 거래처에 발행한 수표만 볼 수 있습니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 미결제 수표 중 발행일이 오래된 건을 확인합니다.
- 부도·취소 건은 예외 처리 대상입니다.
- 행을 선택하면 관련 전표 항목이 열립니다.
- 결과는 CSV 다운로드로 내려받아 은행 조정에 씁니다.
상태 판정 규칙
결제일 유무와 취소 여부로 상태가 정해집니다.
결제일 없음 · 취소 아님 → 미결제 — 은행 조정 대상
결제일 있음 → 결제 완료 — 은행에서 인출됨
부도 표시 → 부도 — 잔액 부족 등
취소 표시 → 취소 — 재발행 또는 무효
미결제 경과일 = 기준일 − 발행일
경과일이 길면 → 분실·미전달 확인 필요
수표 금액 = Σ(관련 전표 항목 금액)
미결제 수표가 은행 조정의 단골인 이유
은행 잔액과 장부 잔액이 다른 이유의 대부분이 미결제 수표입니다. 우리는 지급으로 처리했는데 은행에서는 아직 나가지 않았기 때문입니다. 미결제 목록이 정확하면 은행계정조정표의 조정 항목이 그대로 채워집니다.
수표 생애 4단계
| 단계 | 내용 | 상태 |
|---|---|---|
| ① 발행 | 지급 실행 시 수표 번호 부여 | 미결제 상태 |
| ② 전달 | 벤더에게 교부 | 상태 변화 없음 |
| ③ 결제 | 은행에서 인출 | 결제 완료 · 계좌 차감 |
| ④ 예외 | 부도 · 분실 · 취소 | 재발행 또는 무효 처리 |
②는 시스템에 기록되지 않아, 오래 미결제인 수표가 전달됐는지조차 모를 수 있습니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
하우스뱅크 Hbkid | 필수 | 발행 은행 |
계좌 Hktid | 필수 | 수표 계좌 |
| 기간 | 필수 | 발행일 From~To |
벤더 Lifnr | 선택 | 수취인 코드·명칭 |
수표번호 CheckNo | 선택 | 특정 수표 |
| 상태 | 선택 | 미결제 / 결제완료 / 부도 / 취소 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
수표번호 CheckNo | 수표 식별 |
하우스뱅크 Hbkid · 계좌 Hktid | 발행 계좌 |
회사코드 Bukrs | 발행 법인 |
벤더 Lifnr | 수취인 |
지급전표 Vblnr | 지급 실행 전표 |
발행일 IssueDate | 수표 발행 날짜 |
금액 · 통화 Currency | 수표 금액 |
| 결제일 | 은행 인출 날짜 |
| 상태 | 미결제 / 결제완료 / 부도 / 취소. 상태 색 |
| 미결제 경과일 | 발행일부터 경과 일수 |
관련 전표 Belnr · 항목 금액 ItemAmount | 상세에서 확인 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FCH1 | 수표 정보 조회 | 지급전표와 관련 전표를 함께 표시 |
FCHN | 수표 대장 | 미결제 경과일과 상태를 추가 |
FCHI | 수표책 관리 | 계좌별 수표 번호 범위 |
PAYR | 수표 대장 테이블 | 조회 원천 |
REGUH | 지급 실행 헤더 | 지급전표 연계 |
LFA1 | 공급업체 마스터 | 수취인 명칭 |
도입 시 확인이 필요한 부분
결제 정보는 은행에서 받아야 합니다. 전자적으로 수취하면 자동 반영되지만 수기 관리라면 결제일 입력 절차가 필요합니다. 또 수표 번호 범위가 계좌별로 관리되므로, 번호가 소진되기 전에 새 수표책을 등록하는 운영도 함께 봐야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCCHECKREG'
@EndUserText.label: '수표 발행·결제 현황 (Z)'
define view Z_C_CHECK_REGISTER
as select from payr as Check
left outer join lfa1 as Vendor on Check.lifnr = Vendor.lifnr
{
key Check.zbukr as Bukrs,
key Check.hbkid as Hbkid,
key Check.hktid as Hktid,
key Check.chect as CheckNo,
Check.lifnr,
Vendor.name1 as Name1,
Check.vblnr as Vblnr,
Check.zaldt as IssueDate,
Check.rwbtr as Amount,
Check.waers as Currency,
Check.bancd as ClearingDate,
Check.voidr as VoidReason
// 상태: 결제일 유무와 취소 사유로 판정
// 미결제 경과일 = 기준일 − 발행일 (소비 뷰에서 계산)
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 수표 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 수표 테이블 | sap.m.Table — 발행일순 정렬, growing 적용 |
| 상태 표시 | sap.m.ObjectStatus — 미결제 경과에 따라 색 변화 |
| 상세 화면 | sap.m.Dialog — 관련 전표 항목 |
관련 전표를 상세로 둔 이유
수표 한 장으로 여러 전표를 한꺼번에 지급하는 경우가 많습니다. 목록에 다 펼치면 수표 한 장이 여러 줄을 차지해 수표 단위로 세기 어려워집니다. 목록은 수표 단위로 두고 전표는 상세에서 펼치면 두 관점이 모두 유지됩니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.checkreg) · ko 로케일 |
view/Main.view.xml | 조회조건과 수표 테이블 |
controller/Main.controller.js | 조회 · 상태 판정 · 경과일 계산 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 일자 · 상태 색 포맷터 |
localdata/checks.json | 수표 171건 |
localdata/checkitems.json | 수표 항목 288건 |
localdata/housebanks.json | 하우스뱅크 5건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 수표 금액 = 관련 전표 항목 금액 합계 (전 건) | 통과 |
| 결제 완료 건은 결제일 존재 | 통과 |
| 취소 건은 취소 사유 존재 | 통과 |
| 결제일 ≥ 발행일 | 통과 |
| 하우스뱅크·벤더 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처 | 2/2 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
몇 달째 미결제인 수표는 어떻게 하나요?
먼저 벤더에게 수령 여부를 확인합니다. 받지 못했다면 분실 가능성이 있어 지급정지 후 재발행하고, 받았는데 미제시라면 기한 경과 전에 처리하도록 안내합니다.
수표 한 장으로 여러 전표를 지급하면요?
가능합니다. 지급 실행에서 같은 벤더의 여러 채무를 묶어 한 장으로 발행합니다. 수표 금액은 관련 전표 항목의 합계와 일치해야 합니다.
결제 정보는 어떻게 들어오나요?
은행에서 받습니다. 전자적으로 수취하면 자동 반영되고, 수기 관리라면 은행 명세를 보고 입력합니다. 이 정보가 늦으면 미결제 목록이 실제보다 많아 보입니다.
SAP 표준 기능과 어떻게 이어지나요?
수표 발행과 대장 관리는 표준이 담당합니다. 이 화면은 그 대장에 미결제 경과일과 상태 구분을 얹어 은행 조정과 분실 추적을 한 화면에서 하게 하는 확장입니다.