SAP 지급전표 승인 — 나가기 전에 결재선을 거친다
지급 전표를 결재 단계별로 확인하고 승인하거나, 문제가 있으면 지급을 차단하는 화면입니다.
지급은 되돌리기 가장 어려운 처리입니다. 돈이 나간 뒤에는 상대에게 요청해 받아야 하고, 상대가 협조하지 않으면 그걸로 끝입니다.
그래서 지급 전에 결재선을 둡니다. 문제는 결재자가 무엇을 봐야 하는지입니다. 금액만 보고 승인하면 통제가 아니라 형식입니다. 표준 지급 전표 구조를 그대로 이어받아 결재 단계와 전표 내용을 함께 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 지급 전표 — 전표번호 · 회계연도 · 회사코드 · 금액
- 결재선 — 단계별 결재자와 상태(
APVLINE1_STATUS·APVLINE2_STATUS) - 결재자 정보 — 이름(
APVLINE_EMPNAME)과 소속(APVLINE_KOSTL_TX) - 지급 정보 — 수취인 · 지급방법 · 은행 계좌
- 차단 — 지급차단 표시(
Block)
| 항목 | 내용 |
|---|---|
| 기반 기능 | 지급 전표 결재 · 지급차단 (FB02 계열) |
| 업무 영역 | 재무회계(FI-AP) · 자금 · 내부통제 |
| Namespace | fi093_paymentapproval |
| 셸 구조 | 조회조건 영역 + 지급 전표 목록 + 결재선 표시 + 승인·차단 |
| 화면 수 | 조회 화면 1개 + 상세 |
| 데이터 | 지급 전표·결재선·차단 등 다중 엔티티 |
| 성격 | 처리형 — 승인·차단이 전표에 반영 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 2종 둘러보기
회사코드·상태로 조회하면 결재 대기 지급 전표가 나옵니다 → 결재선 진행 상태와 전표 내용을 확인하고 → 승인하거나 지급차단합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드를 고르고 상태를 대기로 둡니다.
- 금액 범위로 고액 건을 먼저 볼 수 있습니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 결재선을 확인합니다. 1차가 끝났는지, 내가 몇 번째인지 봅니다.
- 수취인과 계좌를 확인합니다. 계좌가 최근 바뀌었으면 주의합니다.
- 이상이 없으면 승인합니다.
- 문제가 있으면 지급차단을 겁니다. 사유를 남겨야 합니다.
승인과 차단 규칙
결재는 단계를 순서대로 밟고, 차단은 어느 단계에서든 가능합니다.
1차 승인 → 2차 승인 → 지급 가능
현재 단계 결재자만 처리 가능
앞 단계 미완료 → 대기 — 처리 불가
지급차단 어느 단계에서든 설정 가능
사유 필수 → 지급 실행에서 제외됨
해제하려면 권한 있는 사용자가 사유와 함께 처리
차단을 승인 취소와 구분하는 이유
승인을 취소하면 결재가 처음으로 돌아가 다시 밟아야 합니다. 그런데 문제가 일시적이면 (증빙 미비, 금액 확인 중) 결재를 되돌릴 필요 없이 지급만 막으면 됩니다. 차단은 결재 상태를 유지한 채 지급만 보류하므로 해소 후 바로 진행됩니다.
지급 통제 4단계
| 단계 | 내용 | 결과 |
|---|---|---|
| ① 전표 생성 | 채무 전기와 지급 대상 확정 | 지급 전표 |
| ② 결재 | 단계별 승인 | 승인 이력 |
| ③ 지급 실행 | 자동지급으로 처리 | 지급전표와 이체 |
| ④ 확인 | 실제 출금과 반제 확인 | 채무 정리 |
차단은 ②와 ③ 사이에서 작동해 실행 대상에서 제외합니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대상 법인 |
| 상태 | 선택 | 대기 / 승인 / 차단 |
| 기간 | 선택 | 전기일 From~To |
| 수취인 | 선택 | 거래처별 조회 |
| 금액 범위 | 선택 | 고액 건 우선 확인 |
| 결재자 | 선택 | 특정 결재자 앞의 건 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
| 전표번호 · 회계연도 | 지급 대상 전표 |
| 회사코드 | 지급 주체 |
| 수취인 | 거래처 코드와 명칭 |
| 금액 · 통화 | 지급 금액 |
| 지급방법 · 은행계좌 | 출금 경로 |
1차 결재자 APVLINE1_EMPNAME · 상태 | 첫 단계 |
2차 결재자 APVLINE2_EMPNAME · 상태 | 두 번째 단계 |
결재자 소속 APVLINE_KOSTL_TX | 부서 정보 |
| 차단 여부 | 지급차단 표시와 사유 |
| 상태 | 대기 / 승인 / 차단. 상태 색 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FB02 | 전표 변경 — 지급차단 | 차단 설정과 사유 기록 |
F110 | 자동지급 실행 | 승인 건만 실행 대상 |
FBL1N | 공급업체 개별항목 | 지급 대상 확인 |
BSEG | 전표 라인 — 지급차단 표시 | 차단 반영 |
LFA1 · LFBK | 거래처와 은행 정보 | 수취 계좌 |
도입 시 확인이 필요한 부분
결재선을 금액 구간별로 둘지 정해야 합니다. 소액까지 2차 결재를 거치면 결재자 부담이 커져 형식적으로 승인하게 됩니다. 금액 기준을 두고 고액만 다단계로 가는 편이 실제 통제 효과가 큽니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCPAYAPPROVAL'
@EndUserText.label: '지급전표 승인 대상 (Z)'
define view Z_C_PAYMENT_APPROVAL
as select from bseg as Line
inner join bkpf as Header on Line.bukrs = Header.bukrs
and Line.belnr = Header.belnr
and Line.gjahr = Header.gjahr
left outer join lfa1 as Vendor on Line.lifnr = Vendor.lifnr
{
key Line.bukrs, key Line.belnr, key Line.gjahr, key Line.buzei,
Header.budat, Header.bldat,
Line.lifnr,
Vendor.name1 as PayeeName,
Line.dmbtr as Amount,
Header.waers,
Line.zlspr as PaymentBlock,
Line.zlsch as PaymentMethod
// 결재선 단계와 상태는 결재 관리 테이블과 조인
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 전표 목록 · 결재선 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 전표 목록 | sap.ui.table.Table — 다중 선택 |
| 결재선 | 단계별 결재자와 상태를 나란히 표시 |
| 처리 버튼 | 승인 · 지급차단 — 차단 시 사유 입력 |
결재선 전체를 보여 주는 이유
현재 단계만 보이면 2차 결재자는 1차가 무엇을 확인했는지 모른 채 승인하게 됩니다. 단계별 결재자와 처리 상태가 함께 보이면 앞 단계가 제대로 돌았는지 확인할 수 있고, 같은 것을 두 번 보는 낭비도 줄어듭니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — ko 로케일 · sap_horizon |
view/Main.view.xml | 조회조건 · 전표 목록 · 결재선 |
controller/Main.controller.js | 조회 · 승인 · 지급차단 처리 |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 상태 색 포맷터 |
localdata/Approve.json | 승인 데이터 |
localdata/Block.json | 차단 데이터 |
localdata/ZFCMC_F06_C001*.json | 지급 전표 엔티티 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 현재 단계 결재자만 처리 가능 | 통과 |
| 앞 단계 미완료 시 처리 차단 | 통과 |
| 차단 시 사유 미입력이면 처리 차단 | 통과 |
| 차단 건은 지급 실행 대상에서 제외 | 통과 |
| 수취인 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 처리 실동작 후 캡처 | 2/2 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
승인 취소와 지급차단 중 무엇을 써야 하나요?
문제가 근본적이면 승인 취소, 일시적이면 차단입니다. 증빙이 곧 올 예정이거나 금액을 확인 중이면 차단으로 두고 해소 후 풀면 결재를 다시 밟지 않아도 됩니다.
결재선은 금액에 따라 달라지나요?
대개 그렇습니다. 소액까지 다단계로 가면 결재자가 형식적으로 승인하게 됩니다. 금액 구간을 나눠 고액만 여러 단계를 거치는 편이 통제 효과가 큽니다.
계좌 변경 건은 어떻게 확인하나요?
계좌 변경 이력을 함께 보는 것이 안전합니다. 변경 직후 큰 금액이 나가는 상황이 가장 위험하므로, 그런 건은 별도 경로로 수취인에게 확인합니다.
SAP 표준 기능과 어떻게 이어지나요?
지급차단은 표준 전표 필드이고 지급 실행이 이를 읽어 제외합니다. 이 화면은 결재 단계를 붙이고 승인과 차단을 한 화면에서 처리하게 하는 확장입니다.