SAP 지급 대상 조회 — 이번 회차에 나갈 돈을 먼저 본다
지급 실행 회차별로 대상 전표를 벤더·은행계좌와 함께 모아, 실행 전에 금액과 계좌를 확인하는 화면입니다.
지급 실행은 되돌리기 어려운 작업입니다. 돈이 나간 뒤에 계좌가 틀렸다는 것을 알면 회수 절차가 시작됩니다.
그래서 실행 전에 누구에게 얼마가 어느 계좌로 나가는지 한 번 훑어야 합니다. SAP 표준 지급 실행 구조를 그대로 이어받아 회차별 대상 전표를 벤더·계좌와 함께 모아 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 실행 회차 — 실행일(
laufd)과 식별자(laufi)로 회차를 구분하는 표준 구조 - 지급 회사코드 —
zbukr기준으로 지급 주체 구분 - 대상 전표 — 전표번호(
belnr) · 라인(buzei) · 전표유형(blart) - 지급전표 — 생성된 지급전표 번호(
vblnr) - 은행 정보 — 은행키(
bankl) · 은행명(banka) · 계좌번호(bankn)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI-AP) · 자금 · 지급 실행 |
| Namespace | zui5.payrun |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 지급 대상 테이블 |
| 화면 수 | 조회 화면 1개 |
| 데이터 | 지급 대상 68건 |
| 성격 | 조회형(Read-Only) — 지급 실행은 표준 F110 이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 1종 둘러보기
실행일·회차 ID·지급 회사코드로 조회하면 대상 전표가 모입니다 → 벤더별 금액과 은행계좌를 확인하고 → 지급전표 번호로 실행 결과를 추적합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 실행일과 회차 ID를 넣습니다. 회차 이름(예: 9월 1차 정기지급)이 함께 표시됩니다.
- 지급 회사코드를 고릅니다. 여러 법인을 한 회차로 돌릴 때 구분됩니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 벤더별 금액을 확인합니다. 예상보다 큰 건은 실행 전에 근거를 확인합니다.
- 은행계좌가 최근에 바뀐 벤더가 있는지 봅니다. 계좌 변경 직후 지급은 주의 대상입니다.
- 지급전표 번호가 있으면 이미 실행된 회차입니다.
- 결과는 CSV 다운로드로 내려받아 승인 요청에 첨부합니다.
회차 구성과 확인 포인트
한 회차는 실행일과 식별자로 정해지고, 그 안에 대상 전표가 담깁니다.
회차 = 실행일(laufd) + 회차 ID(laufi)
회차 합계 = Σ(대상 전표 원화금액 dmbtr)
지급전표(vblnr) 없음 → 실행 전 — 검토 단계
지급전표 있음 → 실행 완료 — 결과 추적 단계
원화환산 검증 dmbtr = wrbtr × kursf
계좌를 같은 줄에 두는 이유
지급 사고의 상당수는 금액이 아니라 계좌에서 납니다. 벤더 마스터의 계좌가 바뀐 직후에 큰 금액이 나가는 상황이 가장 위험합니다. 은행명과 계좌번호를 대상 목록에 함께 두면 실행 전 검토에서 눈에 걸립니다.
지급 실행 4단계
| 단계 | 내용 | 결과물 |
|---|---|---|
| ① 대상 선정 | 만기 도래 채무를 회차에 모음 | 지급 제안 목록 |
| ② 검토 | 금액·계좌·벤더 확인 | 승인 또는 제외 |
| ③ 실행 | 지급전표 생성과 이체 데이터 작성 | 지급전표 번호 |
| ④ 추적 | 실제 이체와 반제 확인 | 채무 정리 완료 |
이 화면은 ②단계 검토와 ④단계 추적을 돕습니다. ①③은 표준 지급 실행이 담당합니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
실행일 laufd | 필수 | 지급 실행 예정일 |
회차 ID laufi | 필수 | 같은 날 여러 회차를 구분 |
지급 회사코드 zbukr | 필수 | 지급 주체 법인 |
벤더 lifnr | 선택 | 공급업체 코드·명칭 |
전표유형 blart | 선택 | KZ 지급전표 등 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
실행일 laufd · 회차 laufi · 회차명 laufTx | 지급 회차 식별 |
지급 회사코드 zbukr · zbukrTx | 지급 주체 |
벤더 lifnr · lifnrTx | 수취인 코드와 명칭 |
전표번호 belnr · 라인 buzei · 연도 gjahr | 지급 대상 전표 |
전표유형 blart · blartTx | 코드와 텍스트 |
증빙일 bldat · 전기일 budat | 날짜 정보 |
통화 waers · 환율 kursf | 통화 정보 |
금액 wrbtr · 원화 dmbtr | 거래통화와 원화환산 |
계정 hkont · hkontTx | 매입채무 조정계정 |
지급전표 vblnr | 실행 후 생성된 전표 |
은행 bankl · banka · 계좌 bankn | 수취 계좌 정보 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
F110 | 자동 지급 실행 | 실행 전 대상 검토와 실행 후 추적을 한 화면에서 |
FBL1N | 공급업체 개별항목 | 회차 단위로 묶어 조회 |
REGUH · REGUP | 지급 실행 헤더 · 항목 | 조회 원천 |
LFA1 · LFBK | 공급업체 마스터 · 은행 정보 | 수취 계좌 표시 |
T012 · T012K | 하우스뱅크 설정 | 지급 계좌 정보 |
도입 시 확인이 필요한 부분
지급 방법(이체·어음·수표)에 따라 필요한 정보가 다릅니다. 이체는 계좌가, 어음은 만기와 인수인이 중요합니다. 또 해외 송금이 있으면 SWIFT·IBAN 같은 필드가 추가로 필요하므로 대상 범위에 맞춰 열을 조정합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCPAYRUN'
@EndUserText.label: '지급 대상 조회 (Z)'
define view Z_C_PAYMENT_RUN
as select from reguh as RunHeader
inner join regup as RunItem on RunHeader.laufd = RunItem.laufd
and RunHeader.laufi = RunItem.laufi
and RunHeader.lifnr = RunItem.lifnr
left outer join lfa1 as Vendor on RunHeader.lifnr = Vendor.lifnr
{
key RunHeader.laufd, key RunHeader.laufi,
key RunItem.belnr, key RunItem.buzei,
RunHeader.zbukr, RunHeader.lifnr,
Vendor.name1 as LifnrTx,
RunItem.gjahr, RunItem.blart, RunItem.bldat, RunItem.budat,
RunItem.waers, RunItem.wrbtr, RunItem.dmbtr, RunItem.hkont,
RunHeader.vblnr,
RunHeader.ubnkl as Bankl,
RunHeader.ubknt as Bankn
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 지급 대상 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 대상 테이블 | sap.m.Table — 열이 많아 popin 반응형 |
| 금액 | sap.m.ObjectNumber — 우측정렬, 천단위 콤마 |
| 요약 | 회차 합계와 건수를 상단에 표시 |
회차 합계를 상단에 둔 이유
지급 승인에서 먼저 묻는 것은 "이번에 얼마 나가나" 입니다. 목록을 다 훑어 합산하지 않아도 상단에서 답이 나오면 승인 요청이 간단해집니다. 세부 확인은 그다음입니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.payrun) · ko 로케일 |
view/Main.view.xml | 조회조건과 지급 대상 테이블 |
controller/Main.controller.js | 조회 · 회차 집계 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
model/formatter.js | 금액 · 일자 · 계좌 포맷터 |
localdata/payrun.json | 지급 대상 68건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 원화환산 = 거래통화금액 × 환율 (전 건) | 통과 |
| 회차 합계 = 대상 전표 금액 합계 | 통과 |
| 지급전표가 있으면 실행 완료 상태와 정합 | 통과 |
| 벤더·계정 코드가 있으면 명칭도 존재 | 통과 |
| 은행키가 있으면 은행명·계좌번호도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 후 캡처 | 통과 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
실행 전에 특정 건을 빼려면 어떻게 하나요?
표준 지급 제안 편집에서 제외합니다. 이 화면은 조회 전용이라 목록에서 확인한 뒤 제외 대상을 정하고, 실제 제외는 표준 화면에서 처리합니다.
같은 날 여러 회차를 돌리면 구분되나요?
회차 ID 로 구분됩니다. 정기지급과 긴급지급을 나눠 돌리는 경우가 많아, 회차명까지 함께 표시해 어느 회차인지 헷갈리지 않게 했습니다.
계좌 변경 직후 지급은 왜 주의해야 하나요?
계좌 변경을 가장한 사기가 이 시점을 노리기 때문입니다. 벤더 계좌가 최근에 바뀌었다면 지급 전에 별도 경로로 확인하는 절차를 두는 것이 안전합니다.
SAP 표준 기능과 어떻게 이어지나요?
지급 실행은 F110 이 담당하고 결과는 표준 지급 실행 테이블에 남습니다. 이 화면은 그 데이터를 회차 단위로 모아 실행 전 검토와 실행 후 추적을 같은 화면에서 하게 하는 확장입니다.