SAP 전표 역분개 내역 조회 — 얼마나 늦게, 왜 취소했는가
취소된 전표를 사유별로 모으고 원전표에서 역분개까지 걸린 일수와 정정전표 작성 여부를 함께 확인하는 통제 화면입니다.
전표를 취소하는 일 자체는 문제가 아닙니다. 오타도 나고 중복 입력도 생깁니다. 문제는 취소가 늦을 때와 취소만 하고 정정을 안 했을 때입니다.
전기한 지 한 달 뒤에 취소하면 그 사이 결산과 보고가 잘못된 숫자로 나갑니다. 취소만 하고 올바른 전표를 다시 넣지 않으면 거래 자체가 장부에서 사라집니다. SAP 표준 역분개 구조를 그대로 이어받아 이 두 가지를 한 화면에서 걸러내도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 역분개 관계 — 원전표의 취소전표(
STBLG) · 취소연도(STJAH) 표준 필드로 연결 - 역분개 사유 — 표준 사유코드(
STGRD) 체계를 그대로 사용 - 전표 헤더 — 전표유형 · 전기일 · 증빙일 · 입력일시 · 등록자 · 헤더텍스트
- 사용자 마스터 —
USR01기준으로 등록자·역분개자 이름 표시 - 금액 — 전표 총액과 통화를 표준 구조 그대로
| 항목 | 내용 |
|---|---|
| 대응 T-code | FB08 (전표 역분개) |
| 업무 영역 | 재무회계(FI) · 전표 통제 |
| Namespace | zui5.reversal |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 역분개 내역 테이블 |
| 화면 수 | 조회 화면 1개 |
| 데이터 | 역분개 내역 56건 · 사용자 6건 |
| 성격 | 조회형(Read-Only) — 역분개 실행은 표준 트랜잭션이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 2종 둘러보기
회사코드·귀속월·전표유형·역분개사유로 조회하면 취소된 전표가 모입니다 → 경과일수로 늦게 취소된 건을 가려내고 → 정정전표 열로 다시 넣지 않은 건을 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 회계연도를 고릅니다. 전기와 당기를 오가며 비교할 수 있습니다.
- 귀속월 From~To로 기간을 잡습니다. 결산 대상 월을 좁혀 보는 데 씁니다.
- 전표유형과 역분개사유로 성격을 나눕니다. 자동 전표(KZ·DZ)의 취소는 성격이 다르므로 따로 봅니다.
- 역분개자로 특정 담당자의 취소 건만 추릴 수 있습니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 경과일수가 큰 건과 정정전표가 빈 건을 먼저 확인합니다.
- 결과는 CSV 다운로드로 내려받습니다. UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.
지연·미정정 판정 규칙
취소 건을 두 가지 축으로만 봅니다. 늦었는가, 그리고 다시 넣었는가.
경과일수(DaysToReverse) = 역분개 전기일 − 원전표 전기일
경과일수가 클수록 → 강조 표시 (그 사이 보고가 잘못된 숫자로 나갔을 가능성)
정정전표(CorrectionBelnr) 없음 → 미정정 (취소만 하고 올바른 전표를 넣지 않음)
역분개사유 01 입력 오류 · 02 계정/코스트센터 오류 · 03 금액 오류
04 중복 입력 · 05 거래 취소 · 99 기타(사유서 첨부)
경과일수를 핵심 지표로 둔 이유
취소 건수만 세면 "이번 달 12건" 으로 끝나고 아무 판단도 나오지 않습니다. 당일 취소는 사실상 무해하지만 25일 뒤 취소는 그 사이 월마감을 통과했다는 뜻입니다. 같은 12건이라도 경과일수 분포를 보면 통제가 작동하는지 아닌지가 드러납니다.
역분개 사유 6종과 후속 조치
사유에 따라 정정전표가 필요한지가 갈립니다. 거래 자체가 취소된 건은 다시 넣을 것이 없습니다.
| 사유 | 내용 | 정정전표 | 후속 조치 |
|---|---|---|---|
| 01 입력 오류 | 오타 · 오입력 | 필요 | 올바른 값으로 재작성 |
| 02 계정/코스트센터 오류 | 귀속처를 잘못 지정 | 필요 | 정확한 귀속처로 재작성 |
| 03 금액 오류 | 금액을 잘못 입력 | 필요 | 정정 금액으로 재작성 |
| 04 중복 입력 | 같은 거래를 두 번 전기 | 불필요 | 중복분만 제거 |
| 05 거래 취소 | 계약 파기 등 거래 자체가 없어짐 | 불필요 | 취소로 종결 |
| 99 기타 | 위에 속하지 않는 사유 | 사유별 | 사유서 확인 후 판단 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 1000 한국법인 / 2000 해외법인 |
회계연도 Gjahr | 필수 | 2025 전기 / 2026 당기 |
귀속월 From MonatFrom | 필수 | 01~12월 |
귀속월 To MonatTo | 필수 | 01~12월 |
전표유형 Blart | 선택 | 전체 / SA 일반 / KR 매입송장 / DR 매출송장 / KZ 지급(자동) / DZ 입금(자동) / AB 결산 |
역분개사유 StGrund | 선택 | 전체 / 입력 오류 / 계정·코스트센터 오류 / 금액 오류 / 중복 입력 / 거래 취소 / 기타 |
역분개자 UsnamText | 선택 | 담당자 이름으로 검색 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
귀속월 Zzim | 원전표의 귀속 연월 |
원전표번호 Belnr | 취소된 전표의 번호 |
전표유형 Blart · BlartText | 코드와 텍스트 |
작성자 Usnam · UsnamText | 원전표를 만든 사용자 |
전표금액 TotalAmount · Waers | 전표 총액과 통화 |
역분개전표 Stblg · Stjah | 취소전표 번호와 연도 |
역분개 전기일 StBudat | 취소가 반영된 날 |
경과일수 DaysToReverse | 원전표 전기일부터 역분개까지의 일수. 클수록 강조 |
역분개사유 StGrund · StGrundText | 사유 코드와 명칭 |
역분개자 StUsnam · StUsnamText | 취소를 실행한 사용자 |
정정전표 CorrectionBelnr | 재작성한 전표 번호. 비어 있으면 미정정 |
SAP 표준 기능 매핑
역분개 실행은 표준 트랜잭션이 담당하고, 취소 관계도 표준 필드에 남습니다. 이 화면은 그 기록을 통제 관점으로 재구성합니다.
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FB08 | 전표 역분개 실행 | 실행 결과를 사유·경과일수 관점으로 모아 조회 |
FBRA | 반제 취소 | 반제 취소 후 역분개 건도 같은 목록에서 추적 |
BKPF | 전표 헤더 — STBLG · STJAH · STGRD | 원전표와 취소전표를 연결하고 사유를 텍스트로 표시 |
T003T | 전표유형 텍스트 | 유형별 성격 구분 |
USR01 | 사용자 마스터 | 작성자·역분개자 이름 표시 |
FB03 관점 | 전표 조회 | 원전표와 취소전표를 한 줄에서 대조 |
도입 시 확인이 필요한 부분
역분개 사유코드는 회사별로 정의합니다. 표준 코드를 그대로 쓰는 곳도 있고 자체 코드를 추가한 곳도 있어, 사유별 후속 조치 기준을 함께 정리해야 합니다. 또 정정전표를 원전표와 연결하는 방법(참조번호·지정·헤더텍스트 중 무엇)을 운영 규칙으로 정해야 미정정 판정이 정확해집니다.
참고 CDS 뷰
운영 서비스로 연결할 때는 원전표와 취소전표를 self join 으로 묶고 경과일수를 계산한 뷰를 제안합니다.
@AbapCatalog.sqlViewName: 'ZCREVERSAL'
@EndUserText.label: '전표 역분개 내역 (Z)'
define view Z_C_DOCUMENT_REVERSAL
as select from bkpf as Origin
inner join bkpf as Reversal on Origin.bukrs = Reversal.bukrs
and Origin.stblg = Reversal.belnr
and Origin.stjah = Reversal.gjahr
left outer join t003t as DocType on Origin.blart = DocType.blart
and DocType.spras = 'K'
{
key Origin.bukrs,
key Origin.gjahr,
key Origin.belnr,
Origin.blart,
DocType.ltext as BlartText,
Origin.budat as OriginBudat,
Origin.monat as Monat,
Origin.usnam as Usnam,
Origin.stgrd as StGrund,
Reversal.belnr as Stblg,
Reversal.budat as StBudat,
Reversal.usnam as StUsnam,
// 경과일수 = 역분개 전기일 − 원전표 전기일
dats_days_between( Origin.budat, Reversal.budat ) as DaysToReverse
// 정정전표는 참조번호·지정 등 회사 운영 규칙에 따라 연결하는 연장 뷰에서
}
where Origin.stblg <> ''
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 사유코드 체계와 정정전표 연결 규칙에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 역분개 내역 테이블 |
| 조회조건 | sap.m.Select 6종 · sap.m.Input — 우측 끝에 조회·초기화 |
| 결과 테이블 | sap.m.Table — growing 적용, popin 반응형 |
| 경과일수 | sap.m.ObjectNumber — 일수에 따라 상태 색 |
| 정정전표 | sap.m.ObjectStatus — 미정정 건 강조 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
귀속월을 From~To 로 받는 이유
역분개는 월을 건너뛰어 일어납니다. 9월 전표를 10월에 취소하면 9월 귀속으로 잡히지만 실행은 10월입니다. 단월로만 조회하면 이런 건이 시야에서 빠집니다. 귀속월 구간으로 받으면 분기·반기 단위로 묶어 통제 추이를 보는 것도 가능해집니다.
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon |
Component.js | 조회조건 모델 · 결과 모델 초기화 |
manifest.json | 앱 디스크립터 — 앱 ID(zui5.reversal) · ko 로케일 |
view/Main.view.xml | 조회조건과 역분개 내역 테이블 |
controller/Main.controller.js | 조회 · 경과일수 계산 · 미정정 판정 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 일자 · 경과일수 색 · 사유 텍스트 포맷터 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
localdata/reversals.json | 역분개 내역 56건 (28개 필드) |
localdata/users.json | 사용자 6건 (2개 필드) |
사유 체계나 지연 기준이 바뀌어도 컨트롤러와 포맷터 두 파일만 손보면 됩니다.
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 경과일수 = 역분개 전기일 − 원전표 전기일 (전 건 재계산) | 통과 |
| 역분개전표가 있으면 취소연도·역분개자도 존재 | 통과 |
| 역분개사유 코드와 텍스트 일치 | 통과 |
| 정정전표 표시와 정정전표번호 정합 | 통과 |
| 원전표 귀속월과 회계연도 정합 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 후 캡처 | 2/2 |
| 테마 런타임 확인 | sap_horizon |
전표번호·금액·담당자는 모두 검증용 데이터입니다.
자주 묻는 질문
경과일수가 며칠부터 문제인가요?
회사 기준에 따라 다릅니다. 월마감을 넘겼는지가 실질적인 경계선이라, 같은 달 안에서 취소된 건과 다음 달로 넘어간 건을 나누는 기준을 먼저 정하는 곳이 많습니다.
정정전표가 없으면 무조건 문제인가요?
아닙니다. 중복 입력이나 거래 취소가 사유라면 다시 넣을 전표가 없습니다. 사유와 함께 봐야 하며, 입력 오류·계정 오류·금액 오류인데 정정전표가 비어 있는 건이 실제 확인 대상입니다.
자동 생성 전표의 취소도 보이나요?
보입니다. 지급(KZ)·입금(DZ)처럼 자동으로 만들어진 전표의 취소는 대개 지급 실행이나 반제를 되돌린 결과라 성격이 다릅니다. 전표유형 조건으로 따로 묶어 보는 것을 권합니다.
SAP 표준 기능과 어떻게 이어지나요?
역분개는 FB08 이 실행하고 관계는 BKPF 의 STBLG·STJAH 에 남습니다. 이 화면은 그 기록을 사유별로 모으고 경과일수와 정정전표 여부를 더해, 건수가 아니라 통제 상태를 보게 만드는 확장입니다.