솔루션 홈
채권관리

SAP 채권/채무 증감내역 집계표 — 이월에서 잔액까지 한 줄로

계정과 거래처별로 이월 잔액에서 차변·대변을 거쳐 기말 잔액에 이르는 흐름을 한 줄에 담아, 어느 거래처에서 잔액이 움직였는지 보는 집계표입니다.

거래처 잔액이 지난달과 다르다는 것까지는 쉽게 압니다. 어려운 것은 왜 달라졌는가입니다. 새로 발행한 것이 많았는지, 회수가 적었는지는 잔액만 봐서는 갈라지지 않습니다.

그래서 필요한 것은 이월에서 기말까지의 경로입니다. SAP 표준 채권채무 전기 구조를 그대로 이어받아 이월 · 차변 · 대변 · 증감 · 잔액을 한 줄에 담아 거래처별로 비교하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면을 함께 공개합니다.

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

  • 계정유형 — 고객(D) · 공급업체(K) 구분(koart)을 표준 분류대로 유지
  • 계정과 거래처 — 조정계정(racct)과 고객(kunnr) · 공급업체(lifnr) 표준 키
  • 차대 구분 — drcrk 로 차변·대변을 갈라 집계
  • 금액 — 회사코드 통화 금액(hsl)과 거래통화 금액(tsl), 환율(kursf)
  • 전표 키 — 전표번호(belnr) · 라인(buzei) · 전기일(budat)
항목내용
업무 영역재무회계(FI-AR/AP) · 거래처별 잔액 증감
Namespacezui5.arapmove
셸 구조조회조건 영역(우측 조회·초기화) + 증감 집계 테이블
화면 수조회 화면 1개
데이터전기 라인 94건 (19개 필드)
성격조회형(Read-Only) — 전기는 표준 트랜잭션이 담당
UI 테마sap_horizon 단일 적용

실제 화면 1종 둘러보기

회사코드·계정유형·기간으로 조회하면 계정·거래처별 증감이 한 줄씩 나옵니다 → 증감이 큰 거래처를 추려 보고 → 라인수와 차변·대변 구성으로 무엇이 잔액을 움직였는지 확인합니다.

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

Main.view.xml
초기 진입 화면과 증감 집계
초기 진입 화면과 증감 집계 — 조회 전에는 메시지스트립이 조건을 안내하고, 조회하면 계정코드·계정명·거래처·통화와 함께 이월·차변·대변·증감·잔액·라인수가 한 줄로 이어집니다. 잔액은 상태 색으로 표시돼 부호가 바뀐 거래처가 눈에 들어옵니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.

조작 방법

  1. 회사코드계정유형(고객/공급업체)을 고릅니다.
  2. 기간을 지정합니다. 이월은 기간 시작 직전까지의 누계로 계산됩니다.
  3. 조정계정과 거래처로 범위를 좁힙니다. 특정 계정의 거래처별 구성을 볼 때 주로 씁니다.
  4. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  5. 증감 열로 잔액이 늘어난 거래처와 줄어든 거래처를 가릅니다.
  6. 라인수가 유난히 많은 거래처는 거래 빈도가 높거나 분할 결제가 잦은 곳입니다.
  7. 결과는 CSV 다운로드로 내려받습니다. UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.

증감 산식

한 줄에 담긴 다섯 숫자는 서로 묶여 있습니다. 어느 하나가 어긋나면 나머지도 맞지 않습니다.

차변합계 = Σ(drcrk = S 인 라인의 hsl)
대변합계 = Σ(drcrk = H 인 라인의 hsl)
증감     = 차변합계 − 대변합계
잔액     = 이월 + 증감

원화환산 검증  hsl = tsl × kursf

증감을 별도 열로 두는 이유

이월과 잔액만 있으면 차이는 알 수 있지만 그 차이가 어떻게 만들어졌는지는 모릅니다. 차변 5억·대변 4억으로 1억이 늘어난 것과, 차변 1억·대변 0으로 1억이 늘어난 것은 전혀 다른 상황입니다. 증감을 따로 두고 그 좌우에 차변·대변을 놓으면 한 줄만 보고도 거래 규모까지 읽힙니다.

잔액이 움직이는 네 가지 모양

증감의 부호와 차대 구성을 함께 보면 그 거래처에서 무슨 일이 있었는지가 좁혀집니다.

모양무엇을 뜻하는가다음에 볼 것
증가 · 차변 위주매출은 늘었는데 회수는 적음회수 지연 여부 확인
감소 · 대변 위주회수가 활발했음정상 — 다음 달 발행 계획 확인
증가 · 양쪽 모두 큼거래량 자체가 늘었음여신한도 여유 확인
변동 없음 · 라인 0기중 거래가 없었음휴면 거래처 · 잔액 정리 대상

조회조건

필드필수설명
회사코드 bukrs필수대상 회사코드
계정유형 koart필수D 고객 / K 공급업체
기간 budat필수전기일 From~To. 이월은 시작일 직전까지 누계
조정계정 racct선택외상매출금·외상매입금 등 계정 범위
거래처 partner선택고객 또는 공급업체 코드

결과 컬럼

컬럼의미 · 표시
계정코드 racct · 계정명 racctTx조정계정과 명칭
거래처 partner · partnerTx고객 또는 공급업체 코드와 명칭
통화 rhcur회사코드 통화
이월기간 시작 직전까지의 누계 잔액
차변기중 차변 합계
대변기중 대변 합계
증감차변 − 대변
잔액이월 + 증감. 부호에 따라 상태 색
라인수집계에 들어간 전기 라인 건수

SAP 표준 기능 매핑

전기는 표준이 만들고, 이 화면은 그 라인을 계정·거래처 축으로 접어 증감을 계산합니다.

표준역할이 화면에서의 확장
FBL5N · FBL1N고객 · 공급업체 개별항목라인 나열 대신 거래처별로 접어 이월·차변·대변·잔액으로 요약
FD10N · FK10N고객 · 공급업체 잔액 조회잔액에 더해 차변·대변 구성과 라인수를 함께 표시
BSEG · BKPF전표 라인과 헤더집계 원천
KNA1 · LFA1고객 · 공급업체 마스터거래처 명칭
SKA1계정 마스터조정계정 명칭
ACDOCA유니버설 저널 (S/4HANA)집계 원천을 표준 CDS 로 교체 가능

도입 시 확인이 필요한 부분

이월 잔액을 어디서 가져올지가 관건입니다. 기간 시작 직전까지 라인을 누계하는 방법과 월별 잔액 테이블에서 읽는 방법이 있고, 데이터 양과 성능에 따라 선택이 갈립니다. 또 특별원장(선급금·선수금)을 이 집계에 포함할지도 업무 기준에 따라 정해야 합니다.

참고 CDS 뷰

운영 서비스로 연결할 때는 계정·거래처 단위로 차대를 갈라 집계한 뷰를 제안합니다.

@AbapCatalog.sqlViewName: 'ZCARAPMOVE'
@EndUserText.label: '채권채무 증감내역 (Z)'
define view Z_C_AR_AP_MOVEMENT
  as select from acdoca as Line
    left outer join kna1 as Customer on Line.kunnr = Customer.kunnr
    left outer join lfa1 as Vendor   on Line.lifnr = Vendor.lifnr
    left outer join skat as AcctText on Line.racct = AcctText.saknr
                                    and AcctText.spras = 'K'
{
  key Line.rbukrs                          as Bukrs,
  key Line.racct                           as Racct,
  key coalesce( Line.kunnr, Line.lifnr )   as Partner,
      AcctText.txt50                       as RacctTx,
      coalesce( Customer.name1, Vendor.name1 ) as PartnerTx,
      Line.rhcur,
      // 차변·대변을 갈라 집계하고 증감을 계산
      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 NetChange,
      count(*)                             as LineCount
      // 이월 잔액은 기간 시작 직전까지 누계를 계산하는 소비 뷰에서 결합
}
group by Line.rbukrs, Line.racct, Line.kunnr, Line.lifnr,
         AcctText.txt50, Customer.name1, Vendor.name1, Line.rhcur

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 이월 산출 방식과 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 집계 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
집계 테이블sap.m.Table — 금액 열 우측정렬, popin 반응형
잔액 표시sap.m.ObjectStatus — 부호에 따라 상태 색
거래처 열계정유형에 따라 머리글이 고객/공급업체로 바뀜
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기

거래처 열 머리글을 바꾸는 이유

같은 열이 고객일 때와 공급업체일 때 의미가 다릅니다. 머리글을 "거래처" 로 고정하면 지금 보는 것이 받을 돈인지 줄 돈인지 헷갈립니다. 계정유형 선택에 따라 머리글을 바꾸면 화면 하나로 두 업무를 쓰면서도 오독이 줄어듭니다.

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon
Component.js조회조건 모델 · 결과 모델 초기화
manifest.json앱 디스크립터 — 앱 ID(zui5.arapmove) · ko 로케일
view/Main.view.xml조회조건과 집계 테이블
controller/Main.controller.js조회 · 차대 집계 · 증감 계산 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
model/formatter.js금액 · 부호 · 상태 색 포맷터
i18n/i18n_ko.propertiesko 로케일 리소스
localdata/arapmove.json전기 라인 94건 (19개 필드)

집계 축이나 이월 산출 방식이 바뀌어도 컨트롤러 한 파일만 손보면 됩니다.

검증 결과

검증 항목결과
증감 = 차변합계 − 대변합계 (전 행)통과
잔액 = 이월 + 증감 (전 행)통과
원화환산 = 거래통화금액 × 환율통과
라인수 = 집계에 들어간 전기 라인 건수통과
계정유형과 거래처 필드 정합 (D↔고객 · K↔공급업체)통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 후 캡처통과
테마 런타임 확인sap_horizon

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

자주 묻는 질문

이월 잔액은 어떻게 계산하나요?

조회 기간 시작일 직전까지의 전기를 누계해 만듭니다. 월별 잔액 테이블을 쓰는 방법도 있고, 데이터 양과 성능에 따라 선택이 갈립니다. 어느 쪽이든 잔액 = 이월 + 증감 이 성립해야 합니다.

라인수는 왜 보여 주나요?

같은 증감이라도 한 건으로 움직인 것과 서른 건이 오간 것은 의미가 다릅니다. 라인수가 많으면 분할 결제나 잦은 거래를 뜻하므로, 대사할 때 어느 거래처가 손이 많이 가는지 미리 알 수 있습니다.

특별원장 항목도 포함되나요?

기본 집계는 일반 채권채무만 봅니다. 선급금·선수금 같은 특별원장 항목을 함께 볼지는 업무 기준에 따라 달라지므로 도입 시 포함 범위를 정합니다.

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

전기 데이터는 표준 구조 그대로이고, FD10N·FK10N 으로 잔액을 볼 수 있습니다. 이 화면은 잔액에 더해 이월·차변·대변·증감·라인수를 한 줄에 놓아, 잔액이 왜 달라졌는지까지 같은 화면에서 읽게 하는 확장입니다.

거래처 잔액 분석, 지금 쓰는 SAP 위에서 확장해 보세요

잔액이 달라진 이유를 찾으려고 여러 화면을 오가지 않아도 됩니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

채권채무증감내역이월잔액차변 대변거래처 잔액ACDOCAOpenUI5