솔루션 홈
자금

SAP 미지급 대상 조회 — 보류를 풀고 지급정보를 한 번에 바꾸기

지급하지 않은 매입채무를 조회해 지급보류를 해제하거나 지급방법·기산일·할인일수를 여러 건 한꺼번에 바꾸는 화면입니다.

지급보류는 걸기는 쉬운데 푸는 일이 번거롭습니다. 전표를 하나씩 열어 필드를 고쳐야 하고, 수십 건이면 수십 번 같은 동작을 반복합니다.

게다가 보류를 풀면서 지급방법이나 기산일도 함께 바꿔야 하는 경우가 많습니다. 여러 라인을 선택해 바꿀 필드만 체크하고 한 번에 적용하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 미결 매입채무 — 공급업체 미결 항목(BSIK) 구조 그대로
  • 지급 필드 — 지급보류(ZLSPR) · 지급방법(ZLSCH) · 기산일(ZFBDT) · 할인일수(ZBD1T)
  • 지급방법 마스터 — 코드와 텍스트(T042Z)
  • 전표 — 헤더(BKPF)와 라인(BSEG)의 일자·금액·적요
  • 입력자 — 사번과 이름(USR21 · ADRP)
항목내용
변경 함수FI_DOCUMENT_CHANGE — ZLSPR · ZLSCH · ZFBDT · ZBD1T
업무 영역재무회계(FI-AP) · 자금
Namespacezui5.apblock
셸 구조조회조건 영역(우측 조회) + 미지급 목록 + 일괄 변경 팝업
화면 수조회·변경 화면 1개 + 변경 팝업
데이터미결 매입채무 라인
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·거래처·지급보류로 조회하면 미지급 대상이 나옵니다 → 바꿀 라인을 선택하고 → 지급정보 변경 팝업에서 필요한 필드만 바꿉니다.

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

Main.view.xml
미지급 대상 — 보류 상태와 거래처
미지급 대상 — 보류 상태와 거래처 — 지급보류 상태·거래처·전표·일자·Baseline Date·Net Due Date·지급조건·할인일수·지급방법·금액·계정·적요·입력자가 표시됩니다. Net Due Date 가 기준일보다 이르면 만기 경과로 강조됩니다.
일괄 선택
지급보류 코드로 좁혀 조회
지급보류 코드로 좁혀 조회 — 특정 보류 코드만 뽑아 전체선택으로 한 번에 고릅니다.
지급정보 변경
바꿀 필드만 체크
바꿀 필드만 체크 — 팝업에서 지급보류 코드·지급방법·Baseline Date·할인일수 중 바꿀 것만 체크해 적용합니다. 보류를 해제하면 지급 가능 상태로 전환됩니다.

조작 방법

  1. 회사코드는 사양서에 따라 변경 불가입니다.
  2. 거래처·회계연도·전표번호·통화로 기본 조건을 겁니다.
  3. 증빙일자·전기일자·Baseline Date 로 기간을 좁힙니다.
  4. 지급보류 코드로 특정 보류 건만 볼 수 있습니다.
  5. 조회 버튼은 조회조건 영역 오른쪽 끝에 있고, 입력필드에서 Enter 로도 조회됩니다.
  6. 바꿀 라인을 고르거나 전체선택을 씁니다.
  7. 지급정보 변경 팝업에서 바꿀 필드만 체크해 적용합니다.
  8. 결과는 CSV 다운로드로 내려받습니다. 변경 상태가 함께 담깁니다.

계산 규칙

지급 기일은 두 단계로 계산됩니다.

Baseline Date = ZFBDT + ZBD1T
Net Due Date  = Baseline Date + 지급조건 일수

금액      = WRBTR (거래통화)
금액(원화) = DMBTR

만기 경과  Net Due Date < 기준일  →  강조 표시
보류 해제  지급보류 코드를 공란으로  →  지급 가능

지급정보를 바꾸면 Baseline Date 와 Net Due Date 를 다시 계산해 화면에 반영

바꿀 필드만 체크하게 한 이유

일괄 변경에서 모든 필드를 함께 덮어쓰면, 지급방법만 바꾸려다 기산일까지 같은 값으로 밀어 버립니다. 라인마다 원래 값이 다른데 하나로 통일되면 지급 기일이 어긋납니다. 체크한 필드만 적용하면 나머지는 각자의 값을 유지합니다.

지급보류가 걸리는 네 가지 경우

경우상황해제 시점
증빙 미비세금계산서나 계약서가 없음증빙 수령 후 해제
금액 확인 중청구 금액에 이견협의 후 해제 또는 조정
품질 문제납품물에 하자처리 완료 후 해제
자금 사정지급 시점 조정자금 확보 후 해제

조회조건

필드필수설명
회사코드필수사양서에 따라 변경 불가(읽기 전용)
거래처 · 회계연도 · 전표번호 · 통화선택기본 조건
증빙일자 · 전기일자 · Baseline Date선택기간 조건
지급보류선택보류 코드로 좁혀 보기

결과 컬럼

컬럼의미 · 표시
지급보류 상태보류 코드와 여부. 상태 색
거래처공급업체 코드와 명칭
전표번호 · 회계연도 · 항목전표 식별
증빙일자 · 전기일자날짜 정보
Baseline DateZFBDT + ZBD1T
Net Due DateBaseline + 지급조건 일수. 경과 시 강조
지급조건 · 할인일수결제 조건
지급방법이체 · 수표 등
통화 · 금액 · 원화환산채무 금액
계정 · 적요계정과 설명
입력자사번과 이름

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
FBL1N공급업체 개별항목지급 필드 일괄 변경을 추가
FB02전표 변경건별 변경을 다건으로
FI_DOCUMENT_CHANGE전표 필드 변경 함수변경 실행
BSIK미결 매입채무조회 원천
T042Z지급방법 마스터지급방법 목록
USR21 · ADRP사용자 마스터입력자 이름

도입 시 확인이 필요한 부분

지급보류 해제 권한을 누구에게 줄지가 중요합니다. 일괄로 풀 수 있으면 편하지만 실수나 남용 여지도 커집니다. 금액 기준으로 권한을 나누거나 변경 이력을 남겨 나중에 확인할 수 있게 해야 합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCAPBLOCK'
@EndUserText.label: '미지급 대상 조회 (Z)'
define view Z_C_AP_PAYMENT_BLOCK
  as select from bsik as Item
    inner join      bkpf  as Header on Item.bukrs = Header.bukrs
                                  and Item.belnr = Header.belnr
                                  and Item.gjahr = Header.gjahr
    left outer join lfa1  as Vendor on Item.lifnr = Vendor.lifnr
    left outer join t042z as PayMth on Item.zlsch = PayMth.zlsch
{
  key Item.bukrs, key Item.belnr, key Item.gjahr, key Item.buzei,
      Item.lifnr, Vendor.name1 as VendorName,
      Header.bldat, Header.budat,
      Item.zfbdt as BaselineBase,
      Item.zbd1t as DiscountDays,
      Item.zterm, Item.zlsch, Item.zlspr,
      PayMth.text1 as PayMethodText,
      Item.waers, Item.wrbtr, Item.dmbtr,
      Item.hkont, Item.sgtxt, Item.usnam
      // Baseline Date = ZFBDT + ZBD1T
      // Net Due Date = Baseline + 지급조건 일수 (소비 뷰에서 계산)
}

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 목록 · 요약
조회조건sap.m.Input · sap.m.DatePicker — 우측 끝에 조회
목록sap.ui.table.Table — 다중 선택, 전체선택
변경 팝업sap.m.Dialog — 필드별 체크박스와 입력
변경 표시바뀐 라인을 목록에서 구분
요약보류 건수·금액을 상단에 표시, 변경 시 재계산

Baseline Date 기본값을 Net Due Date 로 둔 이유

기산일을 바꾸는 이유는 대개 지급 시점을 미루기 위해서입니다. 그럴 때 기준이 되는 날은 원래 지급 기일입니다. 팝업을 열었을 때 선택 라인의 Net Due Date 가 채워져 있으면 거기서부터 조정하게 되어 입력이 줄어듭니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.apblock) · ko 로케일
view/Main.view.xml조회조건 · 목록 · 요약
controller/Main.controller.js조회 · 일괄 변경 · 기일 재계산 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 일자 · 보류 상태 포맷터
localdata/apblock.json미결 매입채무 라인

검증 결과

검증 항목결과
Baseline Date = ZFBDT + ZBD1T (전 라인)통과
Net Due Date = Baseline + 지급조건 일수통과
변경 후 기일이 다시 계산되어 반영통과
체크하지 않은 필드는 원래 값 유지통과
보류 해제 시 요약 건수·금액 재계산통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 선택 → 변경 실동작 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

보류를 풀면 바로 지급되나요?

지급 실행 대상에 포함될 뿐 바로 나가지는 않습니다. 다음 지급 실행에서 처리되므로 실행 전에 다시 확인할 기회가 있습니다.

Baseline Date 를 바꾸면 무엇이 달라지나요?

Net Due Date 가 함께 밀려 지급 시점이 늦춰집니다. 현금할인 기한도 기산일 기준이라 할인 조건이 있으면 영향을 확인해야 합니다.

여러 건을 한꺼번에 바꿔도 안전한가요?

체크한 필드만 적용되므로 나머지 값은 유지됩니다. 다만 선택 범위를 잘못 잡으면 의도하지 않은 건까지 바뀌므로 변경 표시로 결과를 확인해야 합니다.

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

변경은 표준 전표 변경 함수가 수행하므로 데이터는 표준 구조 그대로입니다. 이 화면은 건별 변경을 다건으로 묶고 기일 재계산을 즉시 보여 주는 확장입니다.

미지급 관리, 지금 쓰는 SAP 위에서 확장해 보세요

수십 건의 보류를 한 번에 정리할 수 있으면 지급 준비가 짧아집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

미지급 대상지급보류지급방법Baseline Date일괄 변경OpenUI5