솔루션 홈
FBL1N · 채무관리

SAP 매입채무 연령분석 — 지급이 늦어진 건을 구간으로 가르기

벤더별 미결 채무를 순지급기일 대비 연체일수로 재계산해 여섯 구간으로 집계하고, 전표 차대 상세까지 내려가는 자금 지원 화면입니다.

받을 돈만 늦는 게 아닙니다. 줄 돈도 늦습니다. 다만 이쪽은 늦는 이유가 대개 우리 쪽 사정이라 성격이 다릅니다.

자금이 부족했거나, 송장 검증이 막혔거나, 승인이 안 났거나입니다. 어느 쪽이든 구간별로 얼마가 밀렸는지 알아야 자금 계획을 세울 수 있습니다. SAP 표준 미결항목 구조를 그대로 이어받아 순지급기일 기준으로 여섯 구간에 집계하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 미결항목 — 벤더별 채무 전표(DocNo)와 금액을 표준 구조 그대로
  • 지급조건 — 결제 일수(PaymentTermsDays)와 텍스트로 순지급기일 산출
  • 환산 — 거래통화 금액(Amount)과 원화환산(AmountKRW), 환율(ExchRate)
  • 계정 — 매입채무 조정계정(GlAccount)과 명칭
  • 발주 연계 — 구매발주 참조(PoRef)로 물류 문서와 연결
항목내용
대응 T-codeFBL1N · S_ALR_87012078
업무 영역재무회계(FI-AP) · 자금 · 결산 지원
Namespacezui5.apaging
셸 구조조회조건 영역(우측 조회·초기화) + 연령 집계, 행 선택 시 전표 차대 상세
화면 수조회 화면 1개 + 전기 상세
데이터미결 채무 88건 · 전기 라인 176건
성격조회형(Read-Only) — 전기와 지급은 표준 트랜잭션이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·벤더·통화·기준일로 조회하면 구간별 채무가 집계됩니다 → 연체 구간에 몰린 벤더를 먼저 보고 → 행을 눌러 전표의 차대 상세와 발주 참조를 확인합니다.

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

FBL1N — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·벤더·통화·연령구간·기준일을 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
FBL1N — 연령 집계
메인화면 — 구간별 매입채무
메인화면 — 구간별 매입채무 — 벤더·전표·계정·지급조건과 함께 연체일수와 연령구간이 표시됩니다. 구간이 올라갈수록 상태 색이 강해져 오래 밀린 건이 먼저 눈에 들어옵니다.
FBL1N — 전기 상세
상세 다이얼로그 — 전표 차대 내역
상세 다이얼로그 — 전표 차대 내역 — 행을 고르면 그 전표의 라인이 차변·대변으로 펼쳐집니다. 어느 계정으로 잡힌 채무인지, 발주 참조가 무엇인지 확인할 수 있습니다.

조작 방법

  1. 회사코드기준일을 넣습니다. 연체일수는 이 날짜 기준으로 재계산됩니다.
  2. 벤더통화로 좁힙니다. 외화 채무는 별도로 보는 것이 자금 계획에 편합니다.
  3. 연령구간으로 특정 구간만 추릴 수 있습니다.
  4. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  5. 미도래 구간 금액으로 다가올 지급을, 연체 구간으로 밀린 지급을 파악합니다.
  6. 행을 선택하면 전표 차대 상세가 열립니다. 발주 참조로 물류 문서까지 이어집니다.
  7. 결과는 CSV 다운로드로 내려받습니다.

연체일수와 구간 판정

순지급기일을 기준으로 삼는 것이 핵심입니다. 송장일이 아니라 실제로 줘야 하는 날입니다.

순지급기일(DueDate) = 전기일 + 지급조건 일수(PaymentTermsDays)
연체일수(DaysOverdue) = 기준일 − 순지급기일

연체일수 ≤ 0        →  미도래
1~30 / 31~60 / 61~90 / 91~180 / 180일 초과  →  구간 분류

구간을 여섯으로 나눈 이유

채권은 회수 가능성이 관심사라 네 구간이면 충분합니다. 채무는 다릅니다. 30일 단위로 나눠야 이번 달·다음 달 지급 계획이 나오고, 180일을 넘긴 건은 거래 분쟁이나 검증 오류처럼 자금이 아닌 다른 문제일 가능성이 커 따로 봐야 합니다.

채무가 밀리는 네 가지 이유

이유상황다음 조치
자금 부족지급 여력이 없음자금 계획 조정
송장 검증 미완수량·단가 불일치로 막힘구매·검수와 대사
승인 지연지급 승인이 진행 중승인 절차 확인
거래 분쟁금액이나 품질 이견분쟁 해소 후 지급

180일을 넘긴 건은 대개 앞의 두 가지가 아니라 뒤의 두 가지입니다.

조회조건

필드필수설명
회사코드 Bukrs필수대상 회사코드
기준일 KeyDate필수연체일수 계산 기준일
벤더 Lifnr선택공급업체 코드·명칭
통화 Currency선택통화별 조회
연령구간 AgingBucket선택미도래 / 1~30 / 31~60 / 61~90 / 91~180 / 180일 초과
계정 GlAccount선택매입채무 계정 범위

결과 컬럼

컬럼의미 · 표시
전표번호 DocNo채무 전표
벤더 Lifnr · LifnrName코드와 명칭
금액 Amount · 원화 AmountKRW · 환율 ExchRate거래통화와 원화환산
전기일 PostingDate채무 인식일
순지급기일 DueDate전기일 + 지급조건 일수
지급조건 PaymentTermsDays · PaymentTermsText결제 조건과 일수
연체일수 DaysOverdue기준일 − 순지급기일
연령구간 AgingBucket · AgingBucketText여섯 구간 분류. 상태 색
계정 GlAccount · GlAccountText매입채무 조정계정
발주 참조 PoRef구매발주 번호
담당 Responsible구매 담당자

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
FBL1N공급업체 개별항목 조회순지급기일 기준 연체일수를 재계산해 구간 집계
S_ALR_87012078Due Date Analysis전표 차대 상세와 발주 참조까지 한 화면에서
BSIK공급업체 미결 항목분석 원천
BSEG · BKPF전표 라인과 헤더차대 상세
LFA1공급업체 마스터벤더 명칭
EKKO구매발주 헤더발주 참조 연결

도입 시 확인이 필요한 부분

순지급기일 산출이 관건입니다. 지급조건이 월말 기준인지 송장일 기준인지에 따라 같은 전표도 기일이 달라집니다. 또 현금할인 조건이 있으면 할인 기한과 순지급기일이 따로 있어, 어느 쪽을 연체 기준으로 볼지 정해야 합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCAPAGING'
@EndUserText.label: '매입채무 연령분석 (Z)'
define view Z_C_AP_AGING
  with parameters p_keydate : dats
  as select from bsik as Item
    inner join      lfa1 as Vendor   on Item.lifnr = Vendor.lifnr
    left outer join skat as AcctText on Item.hkont = AcctText.saknr
                                    and AcctText.spras = 'K'
{
  key Item.bukrs, key Item.belnr, key Item.gjahr, key Item.buzei,
      Item.lifnr, Vendor.name1 as LifnrName,
      Item.budat  as PostingDate,
      Item.zfbdt  as DueDate,
      Item.zterm  as PaymentTerms,
      Item.waers  as Currency,
      Item.wrbtr  as Amount,
      Item.dmbtr  as AmountKRW,
      Item.hkont  as GlAccount,
      AcctText.txt50 as GlAccountText,
      Item.ebeln  as PoRef,
      dats_days_between( Item.zfbdt, :p_keydate ) as DaysOverdue,
      case when dats_days_between( Item.zfbdt, :p_keydate ) <= 0   then 'NOTDUE'
           when dats_days_between( Item.zfbdt, :p_keydate ) <= 30  then 'D1_30'
           when dats_days_between( Item.zfbdt, :p_keydate ) <= 60  then 'D31_60'
           when dats_days_between( Item.zfbdt, :p_keydate ) <= 90  then 'D61_90'
           when dats_days_between( Item.zfbdt, :p_keydate ) <= 180 then 'D91_180'
           else 'D180P' end as AgingBucket
}

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 연령 집계 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
집계 테이블sap.m.Table — 금액 우측정렬, popin 반응형
구간 표시sap.m.ObjectStatus — 여섯 구간별 상태 색
상세 화면sap.m.Dialog — 전표 차대 라인

차대 상세까지 붙인 이유

채무가 밀린 이유를 찾으려면 어느 계정으로 잡혔는지 봐야 할 때가 있습니다. GR/IR 계정에 걸려 있으면 송장 검증 문제이고, 매입채무 계정이면 자금 문제입니다. 전표 라인을 같은 화면에서 펼치면 그 구분이 바로 됩니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.apaging) · ko 로케일
view/Main.view.xml조회조건과 연령 집계 테이블
controller/Main.controller.js조회 · 연체일수 재계산 · 구간 분류 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 일자 · 구간 상태 색 포맷터
localdata/apaging.json미결 채무 88건
localdata/postingdata.json전기 라인 176건

검증 결과

검증 항목결과
연체일수 = 기준일 − 순지급기일 (전 건 재계산)통과
구간 분류가 연체일수와 정합통과
원화환산 = 거래통화금액 × 환율통과
전표별 차변 합계 = 대변 합계통과
계정·벤더 코드가 있으면 명칭도 존재통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

왜 순지급기일을 다시 계산하나요?

전표에 들어 있는 기일이 지급조건과 어긋나는 경우가 있습니다. 전기일과 지급조건 일수로 다시 계산하면 기준이 통일돼 벤더 간 비교가 가능해집니다.

현금할인 기한과 순지급기일 중 무엇이 기준인가요?

연체 판정은 순지급기일이 기준입니다. 할인 기한은 놓쳐도 연체가 아니라 할인 상실이므로 성격이 다릅니다. 할인 실현 여부는 별도 화면에서 봅니다.

미도래 구간은 왜 보나요?

앞으로 나갈 돈이기 때문입니다. 연체만 보면 이번 달 자금 계획을 세울 수 없습니다. 미도래 금액이 다음 달 지급 예정액이 됩니다.

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

미결 채무는 표준 전기가 만들고 FBL1N 으로 조회할 수 있습니다. 이 화면은 순지급기일 기준으로 연체일수를 다시 계산해 여섯 구간으로 집계하고, 전표 차대 상세와 발주 참조까지 같은 화면에서 잇는 확장입니다.

매입채무 관리, 지금 쓰는 SAP 위에서 확장해 보세요

얼마가 밀렸고 얼마가 곧 나가는지 구간으로 보이면 자금 계획이 단순해집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

매입채무AP Aging연령분석FBL1N연체일수지급기일자금계획OpenUI5