SAP 총계정원장 개별항목 조회 — 잔액에서 전표 한 줄까지
계정 잔액을 만든 전표 라인을 조건으로 좁혀 보고, 미결과 반제를 함께 추적하는 개별항목 조회 화면입니다.
잔액은 결과이고, 개별항목은 그 결과를 만든 과정입니다. 외상매출금 잔액이 왜 이 금액인지 묻는 순간 필요한 것은 합계가 아니라 그 합계를 이루는 줄들입니다.
표준 개별항목 조회는 이미 강력하지만, 조건을 넣고 결과를 읽는 흐름이 길고 미결·반제 상태를 눈으로 구분해야 합니다. SAP 표준 전표 라인 구조를 그대로 이어받아 조회를 한 화면에서 끝내고 상태를 색으로 구분하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 전표 키 — 회사코드 · 회계연도 · 전표번호 · 라인번호의 4단 키를 그대로 유지
- 표준 필드명 —
Bukrs·Belnr·Buzei·Budat·Bldat·Blart·Shkzg·Dmbtr·Wrbtr등 - 반제 정보 — 반제 전표(
AUGBL)와 반제일자(AUGDT) 표준 필드로 미결·반제 판정 - 마스터 텍스트 — 계정(
SKA1) · 코스트센터(CSKS·CSKT) · 공급업체(LFA1) · 오더(AUFK)
| 항목 | 내용 |
|---|---|
| 대응 T-code | FBL3N (G/L 계정 개별항목 조회) |
| 업무 영역 | 재무회계(FI) · 총계정원장 개별항목 |
| Namespace | zui5.glitem |
| 셸 구조 | 조회조건 영역(우측 조회) + 개별항목 테이블, 정렬 아이콘으로 컬럼 정렬 |
| 화면 수 | 조회 화면 1개 |
| 데이터 | 개별항목 120건 (27개 필드) |
| 성격 | 조회형(Read-Only) — 전기와 반제는 표준 트랜잭션이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 2종 둘러보기
계정과 기간을 넣고 조회하면 전표 라인이 펼쳐집니다 → 미결·반제 상태와 금액으로 추려 보고 → 전표번호와 참조번호로 원전표까지 따라갑니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드 · 회계연도 · 계정을 넣습니다. 잔액을 따라 내려온 경우라면 계정은 이미 정해져 있습니다.
- 기간·거래처·코스트센터는 보조 조건입니다. 결과가 많을 때 범위를 좁히는 데 씁니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 컬럼 헤더의 정렬 아이콘으로 금액순·전기일순으로 바꿔 봅니다. 큰 금액부터 보면 원인이 빨리 잡힙니다.
- 상태 열로 미결과 반제를 구분합니다. 미결만 남기면 아직 정리되지 않은 금액이 보입니다.
- 결과는 CSV 다운로드로 내려받습니다. UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.
미결·반제 판정 규칙
상태는 별도 필드에 저장된 값이 아니라 반제 정보로 판정합니다.
반제 전표(AUGBL) 가 비어 있으면 → 미결 (Open)
반제 전표(AUGBL) 에 값이 있으면 → 반제 (Cleared), 반제일자(AUGDT) 와 함께 표시
원화환산 검증 Dmbtr = Wrbtr × 환율 (거래통화와 회사코드 통화가 다를 때)
상태를 계산값으로 두는 이유
반제 여부를 별도 플래그로 저장하면 반제가 취소됐을 때 플래그만 남는 일이 생깁니다. 반제 전표 유무로 매번 판정하면 취소·재반제가 일어나도 화면이 항상 현재 상태를 보여 줍니다. 표준이 반제 전표를 지우는 방식으로 취소를 처리하기 때문에 가능한 방법입니다.
개별항목을 보는 세 가지 상황
같은 화면이지만 무엇을 찾느냐에 따라 조건과 정렬이 달라집니다.
| 상황 | 주요 조건 | 정렬 | 목적 |
|---|---|---|---|
| 잔액 근거 확인 | 계정 + 기간 | 전기일순 | 잔액이 왜 이 금액인지 되짚을 때 |
| 미정리 항목 점검 | 계정 + 상태 미결 | 금액 큰 순 | 결산 전 정리 대상을 추릴 때 |
| 거래처 대사 | 계정 + 거래처 | 전기일순 | 특정 거래처와 주고받은 내역을 맞춰 볼 때 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 회사코드 |
회계연도 Gjahr | 필수 | 대상 회계연도 |
계정 Saknr | 필수 | 계정코드와 명칭 표시 |
전기일 Budat | 선택 | 기간 From~To |
거래처 Lifnr | 선택 | 공급업체 코드·명칭 |
코스트센터 Kostl | 선택 | 원가 귀속처 |
상태 Status | 선택 | 미결(O) / 반제(C) |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
전표번호 Belnr · 라인 Buzei | 표준 전표 조회로 이어지는 키 |
증빙일 Bldat · 전기일 Budat | 증빙 날짜와 원장 반영 날짜 |
전표유형 Blart · BlartText | 코드와 텍스트를 함께 표시 |
계정 Saknr · SaknrText | 계정코드와 명칭 |
차대 Shkzg | S(차변) / H(대변) |
금액 Dmbtr · Wrbtr | 원화환산 금액과 거래통화 금액, 우측정렬 |
통화 Waers | 거래통화 |
코스트센터 Kostl · KostlText | 원가 귀속처와 명칭 |
오더 Aufnr | 내부오더 번호 |
거래처 Lifnr · LifnrText | 공급업체 코드와 명칭 |
참조번호 Xblnr | 외부 문서 번호 (예: 세금계산서) |
적요 Sgtxt · 헤더텍스트 Bktxt | 라인 적요와 전표 헤더 텍스트 |
반제 Augbl · Augdt | 반제 전표번호와 반제일자 |
상태 Status | 미결/반제 — 반제 정보로 판정 |
등록자 Usnam | 전표를 만든 사용자 |
SAP 표준 기능 매핑
전표와 반제는 표준이 만듭니다. 이 화면은 그 라인을 읽어 조건 조회와 상태 구분을 더해 확장합니다.
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FBL3N | G/L 개별항목 조회 | 조건 입력과 결과를 한 화면에 두고 상태를 색으로 구분 |
FS10N 관점 | 계정 잔액 | 잔액에서 내려와 라인으로 이어지는 흐름 |
BKPF | 전표 헤더 — 전표유형 · 일자 · 참조번호 · 등록자 | 목록 컬럼에 그대로 표시 |
BSEG | 전표 라인 — 계정 · 차대 · 금액 · 적요 · 반제 | 상태 판정과 금액 표시 |
ACDOCA | 유니버설 저널 (S/4HANA) | 집계 원천을 표준 CDS 로 교체 가능 |
LFA1 · CSKS · CSKT · AUFK | 거래처 · 코스트센터 · 오더 마스터 | 코드 옆에 명칭을 붙여 표시 |
도입 시 확인이 필요한 부분
S/4HANA 환경이면 BSEG 직접 조회보다 ACDOCA 기반 표준 CDS 가 성능상 유리합니다. 또 개별항목 관리(Open Item Management) 설정이 되어 있지 않은 계정은 반제 개념이 없어 상태 열이 의미를 갖지 않으므로, 대상 계정 범위를 설정과 함께 확인해야 합니다.
참고 CDS 뷰
운영 서비스로 연결할 때는 전표 헤더와 라인에 마스터 명칭을 붙이고 상태를 계산한 뷰를 제안합니다.
@AbapCatalog.sqlViewName: 'ZCGLITEM'
@EndUserText.label: '총계정원장 개별항목 (Z)'
define view Z_C_GL_LINE_ITEM
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
left outer join cskt as CCtrText on Line.kostl = CCtrText.kostl
and CCtrText.spras = 'K'
left outer join skat as AcctText on Line.hkont = AcctText.saknr
and AcctText.spras = 'K'
{
key Line.bukrs,
key Line.gjahr,
key Line.belnr,
key Line.buzei,
Header.budat, Header.bldat, Header.blart, Header.xblnr, Header.usnam,
Line.hkont as Saknr,
AcctText.txt50 as SaknrText,
Line.shkzg, Line.dmbtr, Line.wrbtr, Line.waers, Line.sgtxt,
Line.kostl, CCtrText.ktext as KostlText,
Line.lifnr, Vendor.name1 as LifnrText,
Line.augbl, Line.augdt,
// 미결·반제는 반제 전표 유무로 판정
case when Line.augbl = '' then 'O' else 'C' end as Status
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 릴리즈와 개별항목 관리 설정에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 개별항목 테이블 |
| 조회조건 | sap.m.Input · sap.m.DatePicker — 우측 끝에 조회 |
| 결과 테이블 | sap.m.Table — 컬럼이 많아 popin 반응형, growing 적용 |
| 정렬 | 컬럼 헤더 정렬 아이콘 — fcSort 로 기준 전환 |
| 상태 표시 | sap.m.ObjectStatus — 미결/반제 구분 |
| 안내 메시지 | sap.m.MessageStrip — 조회 전 안내 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
컬럼을 27개까지 둔 이유
개별항목은 무엇을 확인하느냐에 따라 필요한 열이 매번 다릅니다. 거래처 대사에는 참조번호가, 원가 확인에는 코스트센터가, 결산 정리에는 반제 정보가 필요합니다. 미리 줄이면 그때마다 다른 화면을 찾게 되므로, 열은 넉넉히 두고 좁은 화면에서는 popin 으로 접히게 했습니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.glitem) · ko 로케일 · sap_horizon |
view/Main.view.xml | 조회 화면 |
view/fragments/MainHeader.fragment.xml | 조회조건 영역과 우측 조회 버튼 |
view/fragments/MainContent01.fragment.xml | 개별항목 테이블과 정렬 |
view/fragments/MainMessageStrip.fragment.xml | 조회 안내 메시지 |
controller/Main.controller.js | 조회 · 정렬 · 상태 판정 · CSV |
js/formatter.js | 금액 · 일자 · 차대 · 상태 포맷터 |
localdata/GLItem.json | 개별항목 120건 (27개 필드) |
운영 전환 시에는 ModelMock 내부만 실제 서비스 호출로 바꾸면 화면 로직은 그대로 씁니다.
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 전표 키(회사코드+연도+전표번호+라인) 중복 없음 | 통과 |
| 원화환산 = 거래통화금액 × 환율 | 통과 |
| 반제 전표가 있으면 반제일자도 존재 | 통과 |
| 상태 = 반제 전표 유무 판정값과 일치 | 통과 |
| 코드가 있는 항목은 명칭도 존재 (계정 · 거래처 · 코스트센터) | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 정렬 실동작 후 캡처 | 2/2 |
| 테마 런타임 확인 | sap_horizon |
계정·금액·거래처는 모두 검증용 데이터입니다. SAP 표준 필드 사전 대조에서 27개 중 26개가 표준 필드로 매칭됐습니다.
자주 묻는 질문
미결과 반제는 어떻게 구분하나요?
반제 전표 번호가 비어 있으면 미결, 값이 있으면 반제입니다. 별도 플래그를 두지 않고 매번 판정하므로 반제가 취소돼도 화면은 항상 현재 상태를 보여 줍니다.
모든 계정에서 상태 열이 의미가 있나요?
아닙니다. 개별항목 관리가 설정된 계정에서만 반제 개념이 있습니다. 설정되지 않은 계정은 모든 라인이 미결로 보이므로, 도입 시 대상 계정 범위를 설정과 함께 정합니다.
컬럼이 많은데 좁은 화면에서는 어떻게 되나요?
반응형 popin 으로 접힙니다. 화면 폭이 줄면 우선순위가 낮은 열이 행 아래로 내려가 한 줄이 두세 줄로 펼쳐지므로, 가로 스크롤 없이 같은 정보를 볼 수 있습니다.
SAP 표준 기능과 어떻게 이어지나요?
전표 전기와 반제는 표준 트랜잭션이 담당하고 데이터도 표준 구조 그대로입니다. 이 화면은 FBL3N 의 조회 흐름을 한 화면으로 줄이고, 미결·반제를 색으로 구분하며, 잔액 화면에서 바로 내려올 수 있게 이어 붙인 확장입니다.