솔루션 홈
F150 · 채권관리

SAP 채권 독촉현황 조회 — 연체일수만큼 독촉이 올라갔는가

연체 채권의 독촉 레벨이 연체일수에 맞게 상향됐는지 점검하고, 독촉이 멈춘 건과 법적조치 대상을 가려내는 화면입니다.

독촉은 보냈다는 사실보다 제때 단계가 올라갔는가가 중요합니다. 90일이 지났는데 아직 1차 독촉에 머물러 있으면, 절차는 돌았지만 압박은 없었던 셈입니다.

독촉이 멈추는 이유는 대개 독촉 차단이 걸려 있거나 실행이 누락됐기 때문입니다. SAP 표준 독촉 구조를 그대로 이어받아 연체일수와 독촉레벨을 나란히 놓아 어긋난 건을 찾도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 독촉 레벨 — 표준 독촉 절차의 레벨(RawDunningLevel)을 그대로 사용
  • 최종 독촉일 — 마지막 독촉 실행일(LastDunningDate)
  • 독촉 차단 — 차단 사유(DunningBlockReason)로 실행 제외 건 식별
  • 청구 문서 — 청구번호 · 청구일 · 만기일 · 금액 · 지급조건
  • 고객 마스터 — 고객 코드 · 명칭 · 고객그룹
항목내용
대응 T-codeF150 (Dunning Run)
업무 영역재무회계(FI-AR) · 채권 독촉
Namespacezui5.dunning
셸 구조조회조건 영역(우측 조회·초기화) + 독촉 현황 목록
화면 수조회 화면 1개 + 상세
데이터독촉 대상 29건 · 고객 20건
성격조회형(Read-Only) — 독촉 실행은 표준 Dunning Run 이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·고객·독촉레벨로 조회하면 연체 채권이 레벨과 함께 나옵니다 → 연체일수 대비 레벨이 낮은 건을 가려내고 → 독촉 차단 사유와 최종 독촉일로 왜 멈췄는지 확인합니다.

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

F150 — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·고객·고객그룹·독촉레벨을 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
F150 — 독촉 현황
메인화면 — 연체일수와 독촉레벨
메인화면 — 연체일수와 독촉레벨 — 고객·청구번호·청구일·만기일·금액·지급조건과 함께 연체일수와 독촉레벨이 나란히 놓입니다. 연체일수에 비해 레벨이 낮은 줄은 상태 색으로 구분돼 미상향 건이 드러납니다.
F150 — 상세
상세 다이얼로그 — 독촉 이력과 차단 사유
상세 다이얼로그 — 독촉 이력과 차단 사유 — 최종 독촉일과 차단 사유, 비고를 함께 보여 줍니다. 독촉이 멈춘 이유가 차단 때문인지 실행 누락인지가 여기서 갈립니다.

조작 방법

  1. 회사코드를 고르고 필요하면 고객·고객그룹으로 좁힙니다.
  2. 독촉레벨로 특정 단계에 머무는 건만 볼 수 있습니다.
  3. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  4. 연체일수독촉레벨을 나란히 보며 어긋난 건을 찾습니다.
  5. 독촉 차단 사유가 있는 건은 차단이 타당한지 확인합니다.
  6. 연체일수가 큰 건은 법적조치 검토 대상으로 따로 뽑습니다.
  7. 결과는 CSV 다운로드로 내려받습니다.

레벨 미상향 판정

판정은 두 숫자를 비교하는 일입니다. 연체일수에 맞는 레벨과 실제 레벨이 같은지 봅니다.

연체일수 = 기준일 − 만기일(DueDate)

연체일수 구간별 기대 독촉레벨과 실제 레벨(RawDunningLevel)을 비교
  실제 레벨 = 기대 레벨   →  정상
  실제 레벨 < 기대 레벨   →  미상향 — 독촉 누락 또는 차단 확인
  독촉 차단 사유 있음      →  차단 — 사유 타당성 검토

건수가 아니라 상태를 보는 이유

독촉 건수는 Dunning Run 을 돌리면 늘어납니다. 그런데 늘어난 건수가 압박으로 이어졌는지는 다른 문제입니다. 연체일수와 레벨을 나란히 두면 "돌긴 돌았는데 단계가 안 올라간" 건이 보이고, 그게 실제로 수금이 막힌 지점입니다.

독촉 단계와 대응

단계상황통상 대응
0단계만기 전 또는 독촉 미실행조치 없음
1차 독촉연체 초기안내 · 담당자 연락
2차 독촉지연 지속공식 문서 발송
3차 이상장기 연체거래 중단 검토 · 법적조치 준비

구간 경계와 단계 수는 회사 독촉 절차 설정을 따릅니다.

조회조건

필드필수설명
회사코드 Bukrs필수대상 회사코드
고객 CustomerId선택고객 코드·명칭
고객그룹 CustomerGroup선택국내출하처 등 그룹 단위
독촉레벨 RawDunningLevel선택0~3단계
기준일선택연체일수 계산 기준일

결과 컬럼

컬럼의미 · 표시
고객 CustomerId · CustomerName코드와 명칭
고객그룹 CustomerGroup그룹 구분
청구번호 InvoiceDocNo독촉 대상 전표
청구일 InvoiceDate · 만기일 DueDate발행일과 결제 기한
금액 Amount · 통화 Currency연체 금액
지급조건 PaymentTermsNET30 등
연체일수기준일 − 만기일. 구간별 상태 색
독촉레벨 RawDunningLevel현재 단계. 연체일수 대비 미상향이면 경고
최종 독촉일 LastDunningDate마지막 독촉 실행일
독촉차단 DunningBlockReason차단 사유
비고 Remark담당자 메모

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
F150Dunning Run 실행실행 결과를 연체일수 대비 레벨 관점으로 점검
FBL5N고객 개별항목연체 건을 독촉 정보와 함께 표시
BSID고객 미결 항목연체 채권 원천
KNB5고객 독촉 데이터 — 레벨 · 최종 독촉일레벨 판정 근거
KNA1고객 마스터고객명 · 고객그룹

도입 시 확인이 필요한 부분

독촉 절차와 레벨별 연체일수 경계는 독촉 프로시저 설정에 정의돼 있습니다. 기대 레벨을 계산하려면 그 설정을 읽어야 하므로, 화면에 고정값으로 두지 말고 설정을 참조하도록 연결해야 합니다. 독촉 차단 사유 코드 체계도 회사별로 정리가 필요합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCDUNNING'
@EndUserText.label: '채권 독촉 현황 (Z)'
define view Z_C_DUNNING_STATUS
  with parameters p_keydate : dats
  as select from bsid as Item
    inner join      kna1 as Customer on Item.kunnr = Customer.kunnr
    left outer join knb5 as Dunn     on Item.kunnr = Dunn.kunnr
                                    and Item.bukrs = Dunn.bukrs
{
  key Item.bukrs, key Item.belnr, key Item.gjahr, key Item.buzei,
      Item.kunnr, Customer.name1 as CustomerName,
      Item.bldat  as InvoiceDate,
      Item.zfbdt  as DueDate,
      Item.dmbtr  as Amount,
      Item.zterm  as PaymentTerms,
      Dunn.mahns  as DunningLevel,
      Dunn.madat  as LastDunningDate,
      Dunn.mansp  as DunningBlockReason,
      dats_days_between( Item.zfbdt, :p_keydate ) as DaysOverdue
      // 기대 레벨은 독촉 프로시저 설정(T047A 계열)을 참조해 소비 뷰에서 판정
}

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 독촉 현황 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
현황 테이블sap.m.Table — 연체일수와 레벨을 인접 배치
상태 표시sap.m.ObjectStatus — 연체 구간과 레벨 미상향
상세 화면sap.m.Dialog — 독촉 이력과 차단 사유

두 열을 붙여 놓은 이유

연체일수와 독촉레벨이 표 양끝에 있으면 눈이 오가며 비교해야 합니다. 두 열을 나란히 두면 숫자 쌍으로 읽혀, "151일인데 1단계" 같은 어긋남이 훑는 것만으로 걸립니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.dunning) · ko 로케일
view/Main.view.xml조회조건과 독촉 현황 테이블
controller/Main.controller.js조회 · 연체일수 계산 · 레벨 판정 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 일자 · 레벨 · 상태 색 포맷터
localdata/dunning.json독촉 대상 29건
localdata/customers.json고객 20건

검증 결과

검증 항목결과
연체일수 = 기준일 − 만기일 (전 건 재계산)통과
독촉레벨이 있으면 최종 독촉일도 존재통과
차단 건은 차단 사유 존재통과
만기 전 건은 독촉레벨 0통과
고객 코드와 명칭 정합통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

독촉 차단은 왜 걸리나요?

거래처와 협상 중이거나 분쟁이 있어 독촉을 잠시 멈출 때 씁니다. 정당한 차단도 많지만, 한 번 걸고 해제를 잊는 경우가 있어 차단 사유와 기간을 함께 확인하는 것이 좋습니다.

기대 레벨은 어떻게 정하나요?

독촉 프로시저 설정에 레벨별 연체일수 경계가 정의돼 있습니다. 그 설정을 읽어 연체일수에 맞는 레벨을 계산하고 실제 레벨과 비교합니다. 화면에 고정값으로 두면 설정 변경 시 어긋나므로 참조 방식이 안전합니다.

법적조치 대상은 어떻게 뽑나요?

연체일수가 크고 최고 단계 독촉까지 진행된 건이 후보입니다. 금액 기준을 함께 걸어 실익이 있는 건만 추리는 것이 보통입니다.

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

독촉 실행은 F150 이 담당하고 레벨과 실행일은 표준 고객 독촉 데이터에 남습니다. 이 화면은 그 결과를 연체일수와 나란히 놓아 단계가 제때 올라갔는지 점검하게 하는 확장입니다.

채권 독촉 점검, 지금 쓰는 SAP 위에서 확장해 보세요

독촉을 몇 건 보냈는지보다 어느 건이 멈춰 있는지가 수금을 좌우합니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

독촉DunningF150연체채권독촉레벨수금관리법적조치OpenUI5