솔루션 홈
FS10N · 총계정원장

SAP 계정별 월별잔액 조회 — 잔액이 맞는지 세 번 확인하기

계정 하나를 골라 1월부터 기말까지 기초·차변·대변·기말 흐름을 펼치고, 잔액식·전표합계·기간이월 세 가지로 대사해 숫자를 믿어도 되는지 판정하는 화면입니다.

월별 잔액표는 보기에 단순합니다. 기초에서 시작해 차변과 대변을 더하고 빼면 기말이 나옵니다. 그런데 이 표가 맞는지는 표 안에서 알 수 없습니다. 집계가 잘못돼도 표는 여전히 말이 되기 때문입니다.

그래서 필요한 것은 표 바깥의 근거입니다. 잔액식이 성립하는지, 집계 금액이 실제 전표 합계와 같은지, 전월 기말이 당월 기초로 넘어왔는지. SAP 표준 원장 구조를 그대로 이어받아 이 세 가지를 조회할 때마다 자동으로 대사하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 계정 마스터 — SKA1 기준 계정과목과 계정그룹·정상잔액측(차/대) 구분을 그대로 사용
  • 잔액 구조 — 회사코드 · 회계연도 · 기간 · 계정 키로 기초 · 차변 · 대변 · 기말을 보관하는 표준 구조
  • 전표 라인 — BKPF · BSEG(S/4HANA는 ACDOCA)에서 개별항목을 집계
  • 회사코드 마스터 — T001 기준 회사코드·통화
항목내용
대응 T-codeFS10N (G/L 계정 잔액 표시)
업무 영역재무회계(FI) · 총계정원장 잔액 조회와 대사
Namespacezui5.glbal
셸 구조조회조건 영역(우측 조회·초기화) + 월별 잔액 테이블, 행 선택 시 개별항목
화면 수조회 화면 1개 + 개별항목 상세
데이터계정 10건 · 월별 잔액 80건 · 개별항목 504건
성격조회형(Read-Only) — 전기와 결산은 표준 트랜잭션이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·회계연도·계정을 고르고 조회하면 1월부터 기준월까지 잔액이 한 줄씩 펼쳐집니다 → 각 행의 대사체크로 숫자를 믿어도 되는지 먼저 확인하고 → 금액이 튄 달을 눌러 개별항목으로 내려갑니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

FS10N — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·회계연도·기준월·계정을 고르는 화면입니다. 조회·초기화는 조회조건 영역 오른쪽 끝에 있고, 값을 바꾸거나 Enter 를 누르면 바로 조회됩니다.
FS10N — MainTable.fragment.xml
메인화면 — 월별 잔액 추이
메인화면 — 월별 잔액 추이 — 연월별로 기초잔액·차변합계·대변합계·기말잔액이 이어지고, 맨 오른쪽 대사체크 열이 그 달의 숫자가 정합한지 표시합니다. 한 줄이라도 어긋나면 그 달부터 파고들면 됩니다.
FS10N — DetailDialog.fragment.xml
상세 다이얼로그 — 개별항목
상세 다이얼로그 — 개별항목 — 월을 고르면 그 달의 전표 라인이 펼쳐집니다. 전기일·전표번호·전표유형·차대·금액·적요·거래처가 나와, 차변합계가 왜 그 금액인지 전표 단위로 확인됩니다.

조작 방법

  1. 회사코드회계연도를 고릅니다. 둘 다 필수입니다.
  2. 기준월은 연초부터 어디까지 볼지 정하는 값입니다. 08 을 고르면 1~8월이 펼쳐집니다.
  3. G/L 계정을 고릅니다. 현금·보통예금·외상매출금처럼 잔액을 따라가야 하는 계정에 주로 씁니다.
  4. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  5. 대사체크 열을 먼저 훑습니다. 모두 정상이면 아래 숫자를 그대로 읽어도 됩니다.
  6. 금액이 크게 움직인 달을 선택하면 개별항목이 열립니다.
  7. 결과는 CSV 다운로드로 내려받습니다. UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.

3중 대사 산식

같은 잔액을 서로 다른 세 경로로 계산해 봅니다. 세 값이 모두 맞아야 그 달의 숫자를 믿을 수 있습니다.

① 원장 잔액식   기말잔액 = 기초잔액 + 차변합계 − 대변합계
② 전표합계      차변합계 = Σ(개별항목 중 차변) · 대변합계 = Σ(개별항목 중 대변)
③ 기간이월      당월 기초잔액 = 전월 기말잔액   (1월은 연초 이월잔액)

대사체크 = ① AND ② AND ③  →  하나라도 어긋나면 그 달을 경고로 표시

세 개를 모두 보는 이유

①만 보면 집계 자체가 틀려도 통과합니다. 기초와 기말을 같은 잘못된 소스에서 만들었으면 식은 성립하니까요. ②는 그 집계를 전표로 되짚고, ③은 달과 달 사이가 끊기지 않았는지 봅니다. 세 관문을 두면 "표는 맞는데 실제와 다른" 상태가 남지 않습니다.

잔액이 어긋나는 네 가지 경우

대사체크가 걸렸을 때 어디를 볼지는 어긋난 항목으로 좁혀집니다.

어긋난 항목증상먼저 볼 곳
① 잔액식 불일치기말 ≠ 기초 + 차변 − 대변집계 로직 또는 소스 데이터 손상
② 전표합계 불일치집계 금액 ≠ 개별항목 합기간 귀속이 다른 전표, 집계 누락
③ 기간이월 끊김당월 기초 ≠ 전월 기말기간 이월 미실행, 소급 전기
①③ 동시연속된 달이 함께 어긋남특정 시점 이후 전 구간 재집계 필요

조회조건

필드필수설명
회사코드 Bukrs필수1000 한국법인 / 2000 미국법인
회계연도 Gjahr필수대상 회계연도
기준월 MonatTo필수연초 누계 대상월 (01~12)
G/L 계정 Saknr필수계정코드와 명칭을 함께 표시
잔액표시 기준옵션정상잔액측(차/대) 기준 표시 전환

결과 컬럼

월별 잔액

컬럼의미 · 표시
연월 MonatLabel회계연도와 기간을 결합해 표시
기초잔액 OpeningBalance그 달이 시작할 때의 잔액
차변합계 DebitTotal그 달의 차변 전기 합계
대변합계 CreditTotal그 달의 대변 전기 합계
기말잔액 ClosingBalance기초 + 차변 − 대변
대사체크3중 대사 결과. 정상/경고를 상태 색으로 표시

개별항목 상세

컬럼의미 · 표시
전기일 Budat전표가 원장에 반영된 날
전표번호 Belnr · 라인 Buzei표준 전표 조회로 이어지는 키
전표유형 Blart전표 성격 구분
차대 DC · 금액 Dmbtr차변/대변 구분과 금액
적요 Sgtxt · 거래처 Partner무엇에 대한 전기인지

SAP 표준 기능 매핑

잔액을 만드는 것은 표준 전기입니다. 이 화면은 그 결과를 월 단위로 펼치고 대사 판정을 얹어 확장합니다.

표준역할이 화면에서의 확장
FS10NG/L 계정 잔액 표시월별 추이를 한 화면에 펼치고 대사체크를 열로 추가
FBL3N 관점G/L 개별항목 조회월 행에서 바로 그 달의 라인으로 드릴다운
SKA1 · SKB1계정 마스터계정명·계정그룹·정상잔액측 표시
BKPF · BSEG전표 헤더와 라인전표합계 대사의 근거
ACDOCA유니버설 저널 (S/4HANA)집계 원천을 표준 CDS 로 교체 가능
T001회사코드 마스터회사코드·통화

도입 시 확인이 필요한 부분

클래식 환경과 S/4HANA 는 잔액 원천이 다릅니다. 전자는 GLT0·BSEG 계열, 후자는 ACDOCA 기반 표준 CDS 가 기준입니다. 또 특별기간(13~16기)을 월 흐름에 넣을지, 이월 시점을 어떻게 볼지는 결산 운영 방식에 따라 달라지므로 대사 규칙을 그에 맞춰 정합니다.

참고 CDS 뷰

운영 서비스로 연결할 때는 유니버설 저널을 회사코드·연도·기간·계정으로 집계하고 계정명을 붙인 뷰를 제안합니다.

@AbapCatalog.sqlViewName: 'ZCGLBAL'
@EndUserText.label: '계정별 월별잔액 (Z)'
define view Z_C_GL_MONTHLY_BALANCE
  as select from acdoca as Line
    left outer join skat as AcctText on  Line.racct = AcctText.saknr
                                     and AcctText.spras = 'K'
{
  key Line.rbukrs                as Bukrs,
  key Line.gjahr                 as Gjahr,
  key Line.poper                 as Monat,
  key Line.racct                 as Saknr,
      AcctText.txt50             as Txt50,
      // 차변·대변을 부호로 갈라 집계
      sum( case when Line.drcrk = 'S' then Line.hsl else 0 end ) as DebitTotal,
      sum( case when Line.drcrk = 'H' then abs(Line.hsl) else 0 end ) as CreditTotal,
      sum( Line.hsl )            as NetAmount
      // 기초잔액은 직전 기간까지의 누계를 계산하는 소비 뷰에서 산출
      // 기말잔액 = 기초 + 차변 − 대변 으로 재계산해 ① 대사에 사용
}
group by Line.rbukrs, Line.gjahr, Line.poper, Line.racct, AcctText.txt50

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경의 원장 구조와 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.f.DynamicPage + 조회조건 영역 · 잔액 테이블
조회조건sap.m.Select 4종 — 우측 끝에 조회·초기화
잔액 테이블sap.m.Table — 금액은 ObjectNumber 로 우측정렬
대사체크sap.m.ObjectStatus — 정상/경고 상태 색
개별항목sap.m.Dialog + 테이블 — 월 행에서 드릴다운
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기

대사 결과를 열로 만든 이유

대사는 보통 별도 리포트로 돌리고 결과를 따로 받습니다. 그러면 잔액표를 볼 때는 그 결과가 손에 없습니다. 같은 표 오른쪽 끝에 한 칸으로 붙여 두면, 잔액을 읽는 순간 그 줄을 믿어도 되는지가 함께 보입니다. 확인 절차가 한 단계 줄어듭니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.glbal) · ko 로케일 · sap_horizon
view/Main.view.xml조회 화면
view/fragments/MainSearch.fragment.xml조회조건 폼과 우측 조회·초기화
view/fragments/MainTable.fragment.xml월별 잔액 테이블과 대사체크 열
view/fragments/DetailDialog.fragment.xml개별항목 상세
controller/Main.controller.js조회 · 3중 대사 계산 · 드릴다운 · CSV
js/formatter.js금액 · 연월 · 대사 상태 포맷터
localdata/glaccounts.json계정 마스터 10건 (7개 필드)
localdata/glbalances.json월별 잔액 80건 (8개 필드)
localdata/glitems.json개별항목 504건 (12개 필드)

대사 규칙이 바뀌어도 컨트롤러와 포맷터 두 파일만 손보면 됩니다.

검증 결과

검증 항목결과
① 기말 = 기초 + 차변 − 대변 (전 월 · 전 계정)통과
② 집계 차변·대변 = 개별항목 합계통과
③ 당월 기초 = 전월 기말 (1월은 연초 이월)통과
계정 마스터의 정상잔액측과 기말 부호 정합통과
XML · JSON 전체 파싱오류 0건
manifest 참조 무결성 · i18n 키 누락이상 0건
화면 렌더링 — 실브라우저 조회 → 드릴다운 실동작 후 캡처3/3
테마 런타임 확인sap_horizon

계정·금액·거래처는 모두 검증용 데이터입니다.

자주 묻는 질문

대사체크가 경고로 뜨면 무엇부터 보나요?

어긋난 항목이 셋 중 무엇인지에 따라 갈립니다. 잔액식이 깨졌으면 집계 로직을, 전표합계가 다르면 기간 귀속이 다른 전표를, 기간이월이 끊겼으면 이월 실행 여부를 봅니다. 연속된 달이 함께 걸렸다면 특정 시점 이후를 다시 집계해야 합니다.

기준월은 왜 따로 받나요?

연초부터 어디까지 볼지를 정하는 값입니다. 결산 중에는 진행 중인 달까지만 보는 게 자연스럽고, 지난 시점을 재현해야 할 때도 있기 때문에 고정하지 않고 파라미터로 받습니다.

특별기간도 표시되나요?

기본 화면은 1~12기를 대상으로 합니다. 13~16기 특별기간을 월 흐름에 함께 넣을지는 결산 운영 방식에 따라 달라지므로, 도입 시 표시 여부와 대사 규칙을 함께 정합니다.

SAP 표준 기능과 어떻게 이어지나요?

잔액은 표준 전기가 만들고 FS10N 으로도 볼 수 있습니다. 이 화면은 그 잔액을 월별 추이로 펼치고, FBL3N 으로 따로 열던 개별항목을 같은 화면에서 드릴다운하게 하며, 대사 결과를 열로 붙여 확인 절차를 줄인 확장입니다.

원장 잔액 대사, 지금 쓰는 SAP 위에서 확장해 보세요

잔액표를 보면서 "이 숫자 맞나" 를 따로 확인하지 않아도 되면 결산 점검이 빨라집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

총계정원장계정별잔액월별잔액FS10N잔액 대사기간이월ACDOCAOpenUI5