SAP 받을어음 현황·만기 관리 — 보유부터 부도까지 상태로 추적
수취한 어음의 보유·할인·추심·부도·배서 상태를 만기일 기준으로 조회하고, 상태별 회계처리를 시뮬레이션하는 화면입니다.
어음은 받은 순간 현금이 아니라 약속입니다. 만기가 와야 현금이 되고, 그전에 은행에서 할인받으면 이자를 떼고 먼저 받습니다.
중간에 부도가 나면 다시 채권으로 돌아옵니다. 상태가 여러 갈래로 갈리고 각각 회계처리가 달라서 어음 한 장이 어디까지 갔는지 추적해야 합니다. 표준 받을어음 구조를 그대로 이어받아 상태와 만기를 함께 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 어음 정보 — 어음번호(
NoteNo) · 종류(NoteType) · 발행일 · 만기일 - 발행인 — 고객(
Kunnr)과 명칭, 지급은행(DrawerBank) - 금액 — 액면금액(
Amount)과 통화 - 상태 — 보유 · 할인 · 추심 · 부도 · 배서(
Status) - 할인 정보 — 할인은행과 할인일
| 항목 | 내용 |
|---|---|
| 대응 T-code | FBL5N · J1G3N |
| 업무 영역 | 재무회계(FI-AR) · 자금 · 어음 관리 |
| Namespace | zui5.boe |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 어음 목록, 행 선택 시 분개 시뮬레이션 |
| 화면 수 | 조회 화면 1개 + 분개 미리보기 |
| 데이터 | 어음 54건 · 고객 10건 |
| 성격 | 조회·시뮬레이션형 — 전기는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·상태·만기 기간으로 조회하면 어음이 상태와 함께 나옵니다 → 만기 임박과 부도 건을 가려내고 → 행을 눌러 상태별 회계처리를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드를 고르고 만기 기간을 지정합니다.
- 상태로 보유·할인·추심·부도를 나눕니다.
- 고객으로 특정 거래처 어음만 볼 수 있습니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 만기 임박 어음을 확인해 추심 준비를 합니다.
- 부도 어음은 즉시 채권 회수 절차로 넘깁니다.
- 행을 선택하면 상태별 분개가 열립니다.
- 결과는 CSV 다운로드로 내려받아 자금 계획에 씁니다.
상태 전이와 회계처리
어음은 상태가 바뀔 때마다 분개가 생깁니다.
수취 차변: 받을어음 대변: 매출채권
할인 차변: 현금 + 할인료 대변: 받을어음(또는 할인어음)
추심(만기) 차변: 현금 대변: 받을어음
부도 차변: 부도어음 대변: 받을어음
배서양도 차변: 매입채무 대변: 받을어음
만기 경과 = 기준일 > 만기일 · 미처리 → 확인 필요
할인어음이 우발부채인 이유
어음을 은행에서 할인받아도 발행인이 부도나면 우리가 물어 줘야 합니다. 현금은 이미 받았지만 책임은 남아 있는 상태라, 만기까지는 우발부채로 관리해야 합니다. 할인 건을 별도 상태로 두는 이유가 여기 있습니다.
어음 상태 5종
| 상태 | 내용 | 회계 영향 |
|---|---|---|
| 보유 HELD | 수취 후 만기 대기 | 자산 — 받을어음 |
| 할인 DISCOUNTED | 은행에서 선할인 | 현금화 · 우발부채 발생 |
| 추심 COLLECTED | 만기에 정상 입금 | 현금 · 어음 소멸 |
| 부도 DISHONORED | 발행인 지급 불능 | 부도어음 · 채권 회수 |
| 배서 ENDORSED | 제3자에게 양도 | 채무 상계 · 우발부채 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 회사코드 |
만기일 DueDate | 필수 | 기간 From~To |
고객 Kunnr | 선택 | 발행인 코드·명칭 |
상태 Status | 선택 | 보유 / 할인 / 추심 / 부도 / 배서 |
어음 종류 NoteType | 선택 | 약속어음 · 전자어음 · 당좌수표 |
지급은행 DrawerBank | 선택 | 은행별 조회 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
어음 ID NoteId · 어음번호 NoteNo | 어음 식별 |
어음 종류 NoteType | 약속어음 · 전자어음 · 당좌수표 |
발행인 Kunnr · Name1 | 고객 코드와 명칭 |
지급은행 DrawerBank · DrawerBankText | 어음 지급 은행 |
발행일 IssueDate · 만기일 DueDate | 기간 정보 |
금액 Amount · 통화 Waers | 액면금액 |
상태 Status | 보유 · 할인 · 추심 · 부도 · 배서. 상태 색 |
할인은행 DiscountBank · 할인일 DiscountDate | 할인 정보 |
| 만기 경과 | 기준일 대비 경과 여부 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FBL5N | 고객 개별항목 | 어음 특별원장 항목을 상태별로 정리 |
J1G3N | 어음 관리 | 상태 전이와 분개를 시뮬레이션 |
BSID | 고객 미결 항목 — 특별원장 | 어음 원천 |
KNA1 | 고객 마스터 | 발행인 명칭 |
BNKA | 은행 마스터 | 지급·할인 은행 명칭 |
도입 시 확인이 필요한 부분
어음은 특별원장(Special GL)으로 관리되며 표시키 설정에 따라 계정이 달라집니다. 할인어음을 우발부채로 별도 관리할지, 받을어음에서 차감할지도 회계정책에 따라 갈립니다. 전자어음이 늘면서 물리적 어음과 처리가 달라진 부분도 확인이 필요합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCBOE'
@EndUserText.label: '받을어음 현황 (Z)'
define view Z_C_BILL_OF_EXCHANGE
as select from bsid as Item
inner join kna1 as Customer on Item.kunnr = Customer.kunnr
left outer join bnka as Bank on Item.bankl = Bank.bankl
{
key Item.bukrs,
key Item.belnr as NoteId,
key Item.gjahr,
Item.kunnr,
Customer.name1 as Name1,
Item.xblnr as NoteNo,
Item.bldat as IssueDate,
Item.zfbdt as DueDate,
Item.dmbtr as Amount,
Item.waers,
Item.bankl as DrawerBank,
Bank.banka as DrawerBankText,
Item.umskz as SpecialGlIndicator
// 상태(보유·할인·추심·부도·배서)는 특별원장 표시키와
// 후속 전표를 매핑해 판정
}
where Item.umskz <> ''
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 어음 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 어음 테이블 | sap.m.Table — 만기일 기준 정렬 |
| 상태 표시 | sap.m.ObjectStatus — 5종 상태별 색 |
| 시뮬레이션 | sap.m.Dialog — 상태별 분개 미리보기 |
분개를 미리 보여 주는 이유
어음 회계처리는 상태마다 계정이 달라 담당자가 헷갈리기 쉽습니다. 특히 할인과 배서는 현금이 들어오지 않는데도 어음이 빠져나가 분개가 직관적이지 않습니다. 상태를 고르면 해당 분개가 바로 보이면 실수가 줄어듭니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.boe) · ko 로케일 |
view/Main.view.xml | 조회조건과 어음 테이블 |
controller/Main.controller.js | 조회 · 상태 판정 · 분개 시뮬레이션 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 일자 · 상태 색 포맷터 |
localdata/boe.json | 어음 54건 |
localdata/kunnr.json | 고객 10건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 만기일 ≥ 발행일 (전 건) | 통과 |
| 할인 상태 건은 할인은행·할인일 존재 | 통과 |
| 상태별 분개 차변 합계 = 대변 합계 | 통과 |
| 추심 완료 건은 만기일 이후 처리 | 통과 |
| 고객·은행 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 시뮬레이션 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
할인한 어음도 계속 관리해야 하나요?
네. 발행인이 부도나면 우리가 물어 줘야 하므로 만기까지 우발부채로 남습니다. 현금은 받았지만 책임은 끝나지 않은 상태입니다.
부도가 나면 어떻게 처리하나요?
부도어음 계정으로 옮기고 채권 회수 절차를 시작합니다. 할인했던 어음이 부도나면 은행에 대금을 상환하고 다시 우리 채권이 됩니다.
전자어음은 다른가요?
법적 효력은 같지만 배서와 만기 처리가 전산으로 이뤄져 추적이 쉽습니다. 물리적 어음의 분실이나 도난 위험이 없다는 점도 다릅니다.
SAP 표준 기능과 어떻게 이어지나요?
어음은 특별원장 항목으로 표준이 관리합니다. 이 화면은 그 항목을 상태별로 정리하고 만기 기준으로 배열해, 자금 계획과 부도 대응을 같은 화면에서 하게 하는 확장입니다.